Skip to Main Content
Go Somewhere

Menu Display

  • Membre
  • Infolettre
  • Dossiers
  • Je m'abonne

Vecteur de formation et d'intercoopération

Menu Display

  • Actualités
  • Dossiers
    • Changements climatiques
    • Global Innovation Coop Summit 2023
    • Innovation
    • Médias COOP
    • Technologies
    • Tourisme
    • Finances personnelles
  • Chroniqueurs
  • Revues
  • Régions

Asset Publisher

Actualités

Agriculture urbaine et inclusive à Laval

Grâce à ses projets d’agriculture urbaine, d’éducation citoyenne et d’insertion des jeunes en difficulté, la Coop micro fraîcheur devient petit à petit un incontournable du paysage coopératif lavallois.

Actualité  /  2024-07-12

ALTE Coop, première coopérative en ingénierie au Québec

Fondée en 2017 par huit finissants en génie qui ne trouvaient pas leur place au sein des grandes firmes d’ingénierie classiques, ALTE est la première coopérative d’ingénieurs au Québec. Elle se spécialise dans les solutions innovantes et durables pour réduire l’impact environnemental des bâtiments et infrastructures.

Actualité  /  2025-12-18

CCC, lier intercoopération et communication

Fondé en mai 2025, en collaboration avec le Réseau Coop, le Collectif de coops créatives (CCC) s’appuie sur l’expertise de six coopératives en communication et en création pour répondre aux besoins des organisations d’économie sociale.

Actualité  /  2025-09-05
Voir tous les actualités

Titre Nos chroniqueurs

Nos chroniqueurs

Category Filter

Éditeur du Coopoint et Directeur général de la MC2M

Maël Brunet

Rédacteur

Maureen Jouglain

Journaliste indépendante.


 

Stéphane Desjardins

Rédacteur en chef coopoint.info

3 boutons CTA - Accueil

Restons en contact, écrivez-nous!
Je m'inscris à l'infolettre pour des nouvelles en primeur.
Je m'abonne à la revue Coopoint

Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> dynamicElement.element("dynamic-content")  [in template "79933785239121#20119#38635" at line 63, column 41]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign sommaire = dynamicElement.ele...  [in template "79933785239121#20119#38635" at line 63, column 21]
----
1<#-- 
2Widget templates can be used to modify the look of a 
3specific application. 
4 
5Please use the right panel to quickly add commonly used variables. 
6Autocomplete is also available and can be invoked by typing "${". 
7--> 
8<style> 
9	.span-category p { 
10		display: inline; 
11		margin-bottom: 0; 
12	} 
13</style> 
14<#assign index = 0>	 
15<div class="container"> 
16   
17		<div class="border-bottom border-1 border-gray-300"> 
18        <div class="row d-flex align-items-end"> 
19            <div class="col"> 
20                <h2 class="mb-0"> 
21                    <span class="bottom-border bottom-border-primary pb-2">Les grands dossiers</span> 
22                </h2> 
23            </div> 
24            <div class="col-auto text-end"> 
25                <a class="text-decoration-none text-body" href="https://coopoint.info/dossiers"> 
26                    Voir tous les dossiers 
27                </a> 
28            </div> 
29        </div> 
30    </div> 
31	<div class="row d-flex align-items-stretch py-5"> 
32	       
33 
34<#if entries?has_content> 
35	<#list entries as curEntry> 
36		  <#assign assetEntryCategoryIds = curEntry.getCategoryIds() /> 
37    	<#assign renderer = curEntry.getAssetRenderer()> 
38	    <#assign className = renderer.getClassName()> 
39	    <#if className == "com.liferay.journal.model.JournalArticle"> 
40	          <#assign journalArticle = renderer.getArticle()> 
41            <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
42            <#assign rootElement = document.getRootElement()> 
43             
44            <#assign link = ""> 
45            <#assign titre = ""> 
46            <#assign sommaire= ""> 
47						<#assign date = ""> 
48					  <#assign estEnLigne = ""> 
49							 
50						<#assign imageFiche = ""> 
51						<#assign imageArticleContent = ""> 
52						<#assign journalArticleResourcePK = journalArticle.getResourcePrimKey()> 
53						<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]> 
54						<#assign categoryList = assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle", journalArticleResourcePK)/> 
55								 
56             
57             
58            <#list rootElement.elements() as dynamicElement> 
59                 <#if dynamicElement.attributeValue("name") == "Text45360172"> 
60                    <#assign titre = dynamicElement.element("dynamic-content").getText()> 
61                </#if> 
62                <#if dynamicElement.attributeValue("name") == "RichText73680515"> 
63                    <#assign sommaire = dynamicElement.element("dynamic-content").getText()> 
64                </#if> 
65								 <#if dynamicElement.attributeValue("name") == "Date19797917"> 
66                    <#assign date = dynamicElement.element("dynamic-content").getText()> 
67                </#if> 
68								<#if dynamicElement.attributeValue("name") == "Radio33203483"> 
69                    <#assign estEnLigne = dynamicElement.element("dynamic-content").getText()> 
70                </#if> 
71								<#if "Image60701321" == dynamicElement.attributeValue("name")> 
72                  <#assign imageArticleContent = dynamicElement.element("dynamic-content").getText()> 
73									<#if imageArticleContent??> 
74                    <#assign imgJson = jsonFactoryUtil.createJSONObject(imageArticleContent)> 
75									  <#if imgJson.url?has_content> 
76                  	  <#assign imageFiche = imgJson.url> 
77                    <#elseif imgJson.groupId?has_content> 
78                  	  <#assign imageFiche = "/documents/"+ imgJson.groupId +"/" +imgJson.resourcePrimKey +"/"+ imgJson.name +"/"+imgJson.uuid> 
79                    </#if> 
80									</#if> 
81								</#if> 
82                <#assign link = renderer.getURLViewInContext(renderRequest, renderResponse, '') > 
83                 
84								 
85		 
86		</#list> 
87		</#if> 
88			<!--Tester si le contenu est sélectionné En ligne--> 
89      <#if estEnLigne == "Option67141765"> 
90				<#if index == 0> 
91				  <div class="col-lg-6 d-flex align-items-stretch"> 
92			  </#if>	 
93				<#if index == 1> 
94				   <div class="col-lg-6"> 
95            <div class="row d-flex align-items-stretch"> 
96							 
97			  </#if> 
98				<#if index != 0> 
99							<div class="col-sm-6 col-lg-6 d-flex align-items-stretch"> 
100			  </#if> 
101          
102            <a class="box box-dossier mb-4 w-100 d-flex flex-column" href="${link}"> 
103							  <#if imageArticleContent?? && imageFiche != ""> 
104									  <div class="ratio-9-16 mb-3" alt="${titre}" style="background-image: url('${imageFiche}')"></div> 
105								<#else> 
106                     <div class="ratio-9-16 mb-3" alt="${titre}" style="background-color:black;"></div> 
107								</#if> 
108                 
109                <div class="px-2"> 
110                    <h3 class="h4 mb-3">${titre}</h3> 
111									  <#if index == 0> 
112											${sommaire} 
113									</#if> 
114                </div> 
115								   
116							 
117								 
118							  <div class="p-2 mt-auto row d-flex align-items-end"> 
119                    <div class="col-auto small"> 
120                        <span class="fw-bold text-uppercase span-category"> 
121													<#list categoryList as category> 
122														${htmlUtil.unescape(category.getDescription())} 
123													</#list> 
124											  </span> 
125                        <span>&nbsp;/&nbsp;</span> 
126                        <span>${date}</span> 
127                    </div> 
128                    <div class="col text-end text-right"> 
129											 <span data-toggle="tooltip" data-placement="top" title="Contenu payant - Abonnez-vous pour y avoir accès"> 
130                         <svg xmlns="http://www.w3.org/2000/svg" width="12.766" height="14.59" viewBox="0 0 12.766 14.59"><path id="Tracé_272" data-name="Tracé 272" d="M4.1,4.1V5.471H8.663V4.1A2.28,2.28,0,1,0,4.1,4.1ZM2.28,5.471V4.1a4.1,4.1,0,0,1,8.207,0V5.471h.456a1.825,1.825,0,0,1,1.824,1.824v5.471a1.825,1.825,0,0,1-1.824,1.824H1.824A1.825,1.825,0,0,1,0,12.766V7.295A1.825,1.825,0,0,1,1.824,5.471Z" fill="#2b3a8c"/></svg> 
131											</span>  
132										</div> 
133                </div> 
134 
135                
136            </a> 
137        <#if index != 0> 
138				  </div> 
139			  </#if>		 
140				<#if index == 0> 
141				  </div> 
142			  </#if>		 
143			  <#if index == 4> 
144				     </div> 
145           </div> 
146			  </#if>	 
147				<#assign index = index + 1> 
148			</#if> 
149	  </#list> 
150	</#if> 
151</div> 
152 
153</div> 

Asset Publisher

Pub Votre annonce ICI

Asset Publisher

Vecteur de formation
et d'intercoopération

Menu

Menu Display

  • Actualités
  • Dossiers
  • Chroniqueurs
  • Revues
  • Régions
Annoncer

Menu Display

  • Régie publicitaire
  • Abonnement collectif
  • Régions
  • Dossiers
À propos

Menu Display

  • À propos de Coopoint
  • Politique média
  • L'équipe
  • Nous joindre
  • Régions
  • Dossiers
Politique
  • Conditions générales
  • Communications et vie privée
  • Termes et conditions
  • Nétiquette
  • Régions
  • Dossiers

Coopoint 2025 Site web développé par CODE3

Heading Example

We use cookies to deliver personalized content, analyze trends, administer the site, track user movements on the site, and collect demographic information about our user base as a whole. Accept all cookies for the best possible experience on our website or manage your preferences. Visit our Privacy Policy