Eco-quartier de Bongraine

L'Agglo a engagé à Aytré la réalisation d'un éco-quartier à vocation d'habitat. Un projet d'aménagement durable, à la fois urbain, environnemental et social, auquel l'ensemble des acteurs, professionnels, particuliers et associations sont étroitement associés.

Retour

Eco-quartier de Bongraine

Une erreur s'est produite en traitant le calibre.
Encountered "," at line 740, column 111 in 10154#10192#9786174.
Was expecting one of:
    <STRING_LITERAL> ...
    <RAW_STRING> ...
    "false" ...
    "true" ...
    <INTEGER> ...
    <DECIMAL> ...
    "." ...
    "+" ...
    "-" ...
    "!" ...
    "[" ...
    "(" ...
    "{" ...
    <ID> ...
    
1<#-- 
2Application display templates can be used to modify the look of a 
3specific application. 
4 
5Please use the left panel to quickly add commonly used variables. 
6Autocomplete is also available and can be invoked by typing "${". 
7--> 
8 
9<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetEntryLocalService") /> 
10<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetLinkLocalService") /> 
11<#assign classNameLocalService = serviceLocator.findService("com.liferay.portal.service.ClassNameLocalService") /> 
12<#assign bookmarksEntryLocalService = serviceLocator.findService("com.liferay.portlet.bookmarks.service.BookmarksEntryLocalService") /> 
13<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService") /> 
14<#assign journalStructureLocalService = serviceLocator.findService("com.liferay.portlet.dynamicdatamapping.service.DDMStructureLocalService") /> 
15<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService") /> 
16 
17<#assign typeJournalArticle = "com.liferay.portlet.journal.model.JournalArticle" /> 
18<#assign typeBookmarksEntry = "com.liferay.portlet.bookmarks.model.BookmarksEntry" /> 
19<#assign typeDLFileEntry = "com.liferay.portlet.documentlibrary.model.DLFileEntry" /> 
20 
21<#assign journalArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
22<#assign entry = assetEntryLocalService.getEntry(typeJournalArticle, journalArticle.getResourcePrimKey()) /> 
23<#assign relatedAssetTypedLists = buildRelatedAssetTypedLists(entry, "false") /> 
24 
25<#assign serviceContextThreadLocal = staticUtil["com.liferay.portal.service.ServiceContextThreadLocal"] /> 
26<#assign themeDisplay = serviceContextThreadLocal.getServiceContext().getThemeDisplay() /> 
27 
28<#assign layout = themeDisplay['plid'] /> 
29<#assign layoutService = serviceLocator.findService("com.liferay.portal.service.LayoutLocalService") /> 
30<#assign layoutObject = layoutService.getLayout(layout?number) /> 
31 
32<#assign jaClassNameId = classNameLocalService.getClassNameId(typeJournalArticle) /> 
33 
34<#assign pdfViewer = '/fu/js/pdfjs/web/viewer.html?zoom=page-fit&file=' /> 
35 
36<#assign serviceContextThreadLocal = staticUtil["com.liferay.portal.service.ServiceContextThreadLocal"] /> 
37<#assign themeDisplay = serviceContextThreadLocal.getServiceContext().getThemeDisplay() /> 
38 
39<#assign carouselNb = 0 /> 
40 
41<#-- ARTICLE CONTAINER --> 
42 
43<div class="interior-article-container"> 
44     
45    <article class="interior-article interior-article-displayed"> 
46         
47        <section class="interior-article-mainContent"> 
48             
49            <#if relatedAssetTypedLists[typeJournalArticle]?? && relatedAssetTypedLists[typeJournalArticle]?has_content > 
50                <@getTypedRelatedAssets relatedAssetTypedLists=relatedAssetTypedLists type=typeJournalArticle structure="CDA_ZOOM_SUR" /> 
51            </#if> 
52             
53            <h2>${.vars['reserved-article-title'].data}</h2> 
54             
55            <#if Accroche.getData() != ""> 
56                <p class="interior-article-chapo">${Accroche.getData()}</p> 
57            </#if> 
58             
59            <#if Contenu.getSiblings()?has_content> 
60                <#list Contenu.getSiblings() as content> 
61                     
62                    <#assign zoomedParagraph = "" /> 
63                    <#assign isZoomed = content.par_zoom.getData() /> 
64                    <#if isZoomed == "true" > 
65                        <#assign zoomedParagraph = "zoomed-paragraph" /> 
66                    </#if> 
67                     
68                    <#assign floatingMedia = "no-floating-media" /> 
69                    <#assign alignValue = "" /> 
70                    <#assign alignValue = content.Media.alignment.getData() /> 
71                    <#if alignValue == "fLeft" || alignValue == "fRight" > 
72                        <#assign floatingMedia = "floating-media" /> 
73                    <#elseif alignValue == "flexLeft" || alignValue == "flexRight"> 
74                        <#assign floatingMedia = "flex-media" /> 
75                    </#if> 
76                     
77                    <#assign contentTitle = content.content_title.getData() /> 
78                     
79                    <#assign mediaSrc = "" /> 
80                    <#assign urlIframePortlet = "" /> 
81                     
82                    <#if content.Media?? && content.Media?has_content > 
83                        <#assign mediaSrc = content.Media.getData()/> 
84                        <#assign urlIframePortlet = content.Media.url_iframe_portlet.getData() /> 
85                    </#if> 
86                     
87                     
88                    <#if contentTitle!="" || content.getData()!="" || mediaSrc!="" || urlIframePortlet !="" > 
89                         
90                        <div class="interior-article-paragraph ${zoomedParagraph} ${floatingMedia}"> 
91                             
92                            <#if content.anchor?has_content> 
93                                <#assign anchor = content.anchor.getData() /> 
94                                <#if anchor != "" > 
95                                    <a id="${anchor}" class="page-anchor"></a> 
96                                </#if> 
97                            </#if> 
98                             
99                            <#if contentTitle != "" > 
100                                <h3>${contentTitle}</h3> 
101                            </#if> 
102                             
103                            <#if floatingMedia == "no-floating-media" > 
104                             
105                                ${content.getData()?replace("<p></p>","")} 
106                                <#if content.Media?? && content.Media?has_content > 
107                                    <@getMedia media=content.Media urlIframePortlet=urlIframePortlet /> 
108                                </#if> 
109                                 
110                            <#elseif floatingMedia == "floating-media"> 
111                             
112                                <#if content.Media?? && content.Media?has_content > 
113                                    <@getMedia media=content.Media urlIframePortlet=urlIframePortlet /> 
114                                </#if> 
115                                ${content.getData()?replace("<p></p>","")} 
116                                <div class="clear-float"></div> 
117                                 
118                             <#elseif floatingMedia == "flex-media"> 
119                              
120                                <div class="flex-display flex-media-paragraph ${alignValue}"> 
121                                    <#if content.Media?? && content.Media?has_content > 
122                                        <@getMedia media=content.Media urlIframePortlet=urlIframePortlet /> 
123                                    </#if> 
124                                    <div class="flex-media-paragraph-content"> 
125                                        ${content.getData()?replace("<p></p>","")} 
126                                    </div> 
127                                </div> 
128                                 
129                            </#if> 
130                             
131                        </div> 
132                         
133                    </#if> 
134 
135                </#list> 
136            </#if> 
137              
138        </section> 
139         
140        <@getCustomRelatedAssets relatedAssetTypedLists=relatedAssetTypedLists /> 
141         
142    </article> 
143     
144    <footer class="interior-article-footer"> 
145        <ul class="interior-article-footer-items-list"> 
146            <li class="interior-article-footer-item interior-article-profile"><a class="inner-link" href="/tableau-de-bord" title="Gérer mon profil">Mon profil</a></li> 
147        <li class="interior-article-footer-item interior-article-rss"><a class="inner-link" href="/les-flux-rss-de-l-agglo">Les flux RSS de l'agglo</a></li> 
148        <li class="interior-article-footer-item interior-article-print"><button type="button" class="inner-link" title="Imprimer">Imprimer</button></li> 
149        <li class="interior-article-footer-item interior-article-mail"><button type="button" class="inner-link" title="Partager par mail">Partager par mail</button></li> 
150        <li class="interior-article-footer-item interior-article-twitter"><button type="button" class="inner-link" title="Partager sur Twitter">Partager sur Twitter</button></li> 
151        <li class="interior-article-footer-item interior-article-facebook"><button type="button" class="inner-link" title="Partager sur Facebook">Partager sur Facebook</button></li> 
152        </ul> 
153    </footer> 
154     
155</div> 
156 
157<#-- FOOTER CONTACT --> 
158 
159<footer class="interior-content-footer interior-content-footer-displayed"> 
160     
161    <#if relatedAssetTypedLists[typeJournalArticle]?? && relatedAssetTypedLists[typeJournalArticle]?has_content > 
162        <@getTypedRelatedAssets relatedAssetTypedLists=relatedAssetTypedLists type=typeJournalArticle structure="CDA_CONTACT_SERVICE" /> 
163    <#else> 
164        <@getDefaultFooterContact /> 
165    </#if> 
166 
167</footer> 
168 
169 
170<#--************************************* 
171** MEDIA DISPLAY 
172*************************************--> 
173 
174<#macro getMedia media urlIframePortlet> 
175     
176    <#local mediaSrc = media.getData()/> 
177     
178    <#if mediaSrc != '' || urlIframePortlet != ''> 
179         
180        <#local mediaType = media.media_type.getData() /> 
181        <#assign carouselWrapper = "" /> 
182        <#if mediaType == "carousel"> 
183            <#assign carouselWrapper = "interior-article-media-carousel-wrapper" /> 
184        </#if> 
185        <#local width = media.width.getData() /> 
186        <#local displayWidth = '' /> 
187        <#if width == 'null'> 
188            <#local displayWidth = '' /> 
189        <#elseif width != ""> 
190            <#local displayWidth = 'style="width:'+width+'px;"' /> 
191        </#if> 
192         
193        <#local height = media.height.getData() /> 
194        <#if height == 'null'> 
195            <#local height = '' /> 
196        </#if> 
197        <#local displayMode = media.display_mode.getData() /> 
198        <#local imgMini = media.img_mini.getData() /> 
199        <#local alignment = media.alignment.getData() /> 
200        <#local legend = media.legend.getData() /> 
201        <#local altText = media.alt_text.getData() /> 
202        <#if altText == 'null'> 
203            <#local altText = '' /> 
204        </#if> 
205         
206        <figure class="interior-article-media interior-article-media-${alignment} ${carouselWrapper}" ${displayWidth}> 
207             
208            <#switch mediaType> 
209                <#case "image"> 
210                    <#if displayMode == "normal"> 
211                       <@getImageMedia mediaSrc=mediaSrc urlIframePortlet=urlIframePortlet altText=altText height=height /> 
212                    <#elseif displayMode == "popup"> 
213                        <@getImageMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
214                    </#if> 
215                    <#break > 
216                <#case "video"> 
217                    <#if displayMode == "normal"> 
218                       <@getVideoMedia imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
219                    <#elseif displayMode == "popup"> 
220                        <@getVideoMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
221                    </#if> 
222                    <#break > 
223                <#case "pdf"> 
224                    <#if displayMode == "normal"> 
225                       <@getPdfMedia mediaSrc=mediaSrc height=height /> 
226                    <#elseif displayMode == "popup"> 
227                        <@getPdfMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
228                    </#if> 
229                    <#break > 
230                <#case "iframe"> 
231                    <#if displayMode == "normal"> 
232                       <@getIframeMedia urlIframePortlet=urlIframePortlet height=height /> 
233                    <#elseif displayMode == "popup"> 
234                        <@getIframeMediaPopup imgMini=imgMini urlIframePortlet=urlIframePortlet altText=altText height=height /> 
235                    </#if> 
236                    <#break > 
237                <#case "svg"> 
238                    <#if displayMode == "normal"> 
239                       <@getSvgMedia mediaSrc=mediaSrc height=height /> 
240                    <#elseif displayMode == "popup"> 
241                        <@getSvgMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
242                    </#if> 
243                    <#break > 
244                <#case "flash"> 
245                    <#if displayMode == "normal"> 
246                       <@getFlashMedia mediaSrc=mediaSrc height=height /> 
247                    <#elseif displayMode == "popup"> 
248                        <@getFlashMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
249                    </#if> 
250                    <#break > 
251                <#case "portlet"> 
252                    <#if displayMode == "normal"> 
253                       <@getPortletMedia urlIframePortlet=urlIframePortlet height=height /> 
254                    <#elseif displayMode == "popup"> 
255                        <@getPortletMediaPopup imgMini=imgMini urlIframePortlet=urlIframePortlet altText=altText height=height /> 
256                    </#if> 
257                    <#break > 
258                <#case "flickr"> 
259                    <#if displayMode == "normal"> 
260                       <@getFlickrMedia urlIframePortlet=urlIframePortlet /> 
261                    <#elseif displayMode == "popup"> 
262                        <@getFlickrMediaPopup imgMini=imgMini urlIframePortlet=urlIframePortlet altText=altText height=height /> 
263                    </#if> 
264                    <#break > 
265                <#case "gallery"> 
266                    <#if displayMode == "normal"> 
267                       <@getGalleryMedia mediaSrc=mediaSrc height=height /> 
268                    <#elseif displayMode == "popup"> 
269                        <@getGalleryMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
270                    </#if> 
271                    <#break > 
272                <#case "carousel"> 
273                    <#if displayMode == "normal"> 
274                       <@getCarouselMedia media=media mediaSrc=mediaSrc altText=altText height=height width=width /> 
275                       <#assign carouselNb = carouselNb + 1 /> 
276                    <#elseif displayMode == "popup"> 
277                        <@getCarouselMediaPopup imgMini=imgMini media=media mediaSrc=mediaSrc altText=altText height=height /> 
278                    </#if> 
279                    <#break > 
280                <#default> 
281            </#switch> 
282             
283            <#local hasLegend = legend?length != 0 /> 
284            <#if hasLegend> 
285                <figcaption class="interior-article-media-legend">${legend}</figcaption> 
286            </#if> 
287             
288        </figure> 
289         
290    </#if> 
291     
292</#macro> 
293 
294 
295<#macro getImageMedia mediaSrc urlIframePortlet altText height > 
296    <#local displayedHeight = '' /> 
297    <#if height != ""> 
298        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
299    </#if> 
300    <#if urlIframePortlet != ""> 
301        <#assign target = "href='"+ urlIframePortlet +"'" /> 
302        <#if !isInternalLink(urlIframePortlet)> 
303            <#assign target = target + " target='_blank' rel='noopener noreferrer'" /> 
304        </#if> 
305        <a ${target}> 
306    </#if> 
307    <img class="interior-article-media-image" src="/cdalr-new-theme/images/blank.png" data-src="${mediaSrc}" alt="${altText}" ${displayedHeight} /> 
308    <#if urlIframePortlet != ""> 
309        </a> 
310    </#if> 
311</#macro> 
312 
313 
314<#macro getImageMediaPopup imgMini mediaSrc altText height > 
315    <#local displayedHeight = '' /> 
316    <#if height != ""> 
317        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
318    </#if> 
319    <a class="link-img" href="${mediaSrc}" title="${altText}"> 
320        <img class="interior-article-media-image" src="${imgMini}" alt="${altText}" ${displayedHeight} /> 
321    </a> 
322</#macro> 
323 
324 
325<#macro getVideoMedia imgMini mediaSrc height altText> 
326    <div class="lazy-video" data-video="${mediaSrc}" data-height="${height}" data-text="${htmlUtil.escapeAttribute(altText)}" data-poster="${imgMini}" ></div> 
327</#macro> 
328 
329 
330<#macro getVideoMediaPopup imgMini mediaSrc altText height > 
331    <#local displayedHeight = '' /> 
332    <#if height != ""> 
333        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
334    </#if> 
335    <a class="link-video" href="${mediaSrc}" title="${altText}"> 
336        <img class="interior-article-media-image" src="/cdalr-new-theme/images/blank.png" data-src="${imgMini}" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} /> 
337    </a> 
338</#macro> 
339 
340 
341<#macro getPdfMedia mediaSrc height > 
342    <#local displayedHeight = '' /> 
343    <#if height != ""> 
344        <#local displayedHeight = 'style="height:'+height+'px;"' /> 
345    </#if> 
346    <iframe class="interior-article-media-iframe" data-src="${pdfViewer+mediaSrc}" ${displayedHeight} allowfullscreen ></iframe> 
347</#macro> 
348 
349 
350<#macro getPdfMedia mediaSrc height > 
351    <#local displayedHeight = '' /> 
352    <#if height != ""> 
353        <#local displayedHeight = 'style="height:'+height+'px;"' /> 
354    </#if> 
355    <iframe class="interior-article-media-iframe" src="${pdfViewer+mediaSrc}" ${displayedHeight} allowfullscreen></iframe>     
356</#macro> 
357 
358 
359<#macro getPdfMediaPopup imgMini mediaSrc altText height > 
360    <#local displayedHeight = '' /> 
361    <#if height != ""> 
362        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
363    </#if> 
364    <a class="link-pdf" href="${mediaSrc}"> 
365        <img class="interior-article-media-image" src="${imgMini}" alt="${altText}" ${displayedHeight} /> 
366    </a> 
367</#macro> 
368 
369 
370<#macro getIframeMedia urlIframePortlet height > 
371    <#local displayedHeight = '' /> 
372    <#if height != ""> 
373        <#local displayedHeight = 'style="height:'+height+'px;"' /> 
374    </#if> 
375    <iframe class="interior-article-media-iframe" src="${urlIframePortlet}" ${displayedHeight} allowfullscreen></iframe> 
376</#macro> 
377 
378 
379<#macro getIframeMediaPopup imgMini urlIframePortlet altText height > 
380    <#local displayedHeight = '' /> 
381    <#if height != ""> 
382        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
383    </#if> 
384    <a class="link-iframe" href="${urlIframePortlet}"> 
385        <img class="interior-article-media-image" src="${imgMini}" alt="${altText}" ${displayedHeight} /> 
386    </a> 
387</#macro> 
388 
389 
390<#macro getSvgMedia mediaSrc height > 
391 
392</#macro> 
393 
394 
395<#macro getSvgMediaPopup imgMini mediaSrc altText height > 
396 
397</#macro> 
398 
399 
400<#macro getFlashMedia mediaSrc height > 
401    <#local displayedHeight = '' /> 
402    <#if height != ""> 
403        <#local displayedHeight = 'style="height:'+height+'px;"' /> 
404    </#if> 
405    <object class="interior-article-media-object" type="application/x-shockwave-flash"  data="${mediaSrc}" ${displayedHeight}></object>  
406</#macro> 
407 
408 
409<#macro getFlashMediaPopup imgMini mediaSrc altText height > 
410    <#local displayedHeight = '' /> 
411    <#if height != ""> 
412        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
413    </#if> 
414    <a class="link-flash" href="${mediaSrc}"> 
415        <img class="interior-article-media-image" src="${imgMini}" alt="${altText}" ${displayedHeight} /> 
416    </a> 
417</#macro> 
418 
419 
420<#macro getPortletMedia urlIframePortlet height > 
421     
422    <#local displayedHeight = '' /> 
423    <#if height != ""> 
424        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
425    </#if> 
426     
427    <#local hasInstanceId = urlIframePortlet?contains('INSTANCE') /> 
428    <#local hasQueryString = urlIframePortlet?contains('?') /> 
429    <#local portletId = urlIframePortlet /> 
430    <#local queryString = '' /> 
431     
432    <#if hasInstanceId> 
433        <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of(instanceId))] /> 
434    </#if> 
435    <#if hasQueryString> 
436        <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of('?')-1)] /> 
437        <#local queryString = urlIframePortlet[(urlIframePortlet?index_of('?')+1)..] /> 
438    </#if> 
439     
440    <#local divId = "embedded-portlet-" + portletId /> 
441    <#local plid = themeDisplay.plid /> 
442     
443    <#if urlIframePortlet?contains('cdalrEService') || urlIframePortlet?contains('cdalrEservice') || urlIframePortlet?contains('cuCreate')> 
444        <#local queryString = queryString +"&p_l_id="+plid+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive" /> 
445     
446        <div id="${divId}" class="embedded-portlet" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="" ${displayedHeight}></div> 
447         
448    <#else> 
449         
450        <#local remoteUrl = "/c/portal/layout?p_l_id="+plid+"&p_p_id="+portletId+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive"+queryString /> 
451         
452        <div id="${divId}" class="embedded-portlet" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="${remoteUrl}" ${displayedHeight}></div> 
453         
454    </#if> 
455     
456</#macro> 
457 
458 
459<#macro getPortletMediaPopup imgMini urlIframePortlet altText height > 
460       
461    <#local divId = "embedded-portlet-" + urlIframePortlet /> 
462     
463    <#local displayedHeight = '' /> 
464    <#if height != ""> 
465        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
466    </#if> 
467     
468    <#local hasInstanceId = urlIframePortlet?contains('INSTANCE') /> 
469    <#local hasQueryString = urlIframePortlet?contains('?') /> 
470    <#local portletId = urlIframePortlet /> 
471    <#local queryString = '' /> 
472 
473    <#if hasInstanceId> 
474        <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of(instanceId))] /> 
475    </#if> 
476    <#if hasQueryString> 
477        <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of('?')-1)] /> 
478        <#local queryString = urlIframePortlet[(urlIframePortlet?index_of('?')+1)..] /> 
479    </#if> 
480     
481    <#if themeDisplay?? && themeDisplay.plid?? > 
482         
483        <#local plid = themeDisplay.plid /> 
484         
485        <#if urlIframePortlet?contains('cdalrEService') || urlIframePortlet?contains('cdalrEservice') > 
486            <#local queryString = queryString +"&p_l_id="+plid+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive" /> 
487      
488            <#local formTitle = "" /> 
489            <#local formPictoClass = "" /> 
490            <#if urlIframePortlet?contains('FiberOpticalConnectionRequest')> 
491                <#local formTitle = "Demande d'information pour le raccordement à la fibre optique" /> 
492                <#local formPictoClass = "eservice-form-opener-picto-fiber" /> 
493            <#elseif urlIframePortlet?contains('AntContact')> 
494                <#local formTitle = "Contacter l'aménagement numérique du territoire" /> 
495                <#local formPictoClass = "eservice-form-opener-picto-contact" /> 
496            <#elseif urlIframePortlet?contains('ReinscriptionConservatoire')> 
497                <#local formTitle = "Formulaire de réinscription au conservatoire" /> 
498                <#local formPictoClass = "eservice-form-opener-picto-music" /> 
499            <#elseif urlIframePortlet?contains('ContactUs')> 
500                <#local formTitle = "Contacter l'agglo" /> 
501                <#local formPictoClass = "eservice-form-opener-picto-contact" /> 
502            <#elseif urlIframePortlet?contains('JobApplication')> 
503                <#local formTitle = "Postuler à une offre d'emploi" /> 
504                <#local formPictoClass = "eservice-form-opener-picto-job" /> 
505            <#elseif urlIframePortlet?contains('WastebinRepair')> 
506                <#local formTitle = "Demande de nouveau bac ou de réparation" /> 
507                <#local formPictoClass = "eservice-form-opener-picto-wastebin" /> 
508            <#elseif urlIframePortlet?contains('WastewaterConnection')> 
509                <#local formTitle = "Raccorder ou brancher mon installation au réseau d'eaux usées" /> 
510                <#local formPictoClass = "eservice-form-opener-picto-water" /> 
511            <#elseif urlIframePortlet?contains('WastesortingTour')> 
512                <#local formTitle = "Visiter le centre de tri" /> 
513                <#local formPictoClass = "eservice-form-opener-picto-altriane" /> 
514            </#if> 
515             
516            <div class="link-portlet eservice-form-opener" data-divId="${divId}" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="" tabindex="0"> 
517                <div class="eservice-form-opener-picto ${formPictoClass}"></div> 
518                <p class="eservice-form-opener-text">${formTitle}</p> 
519            </div> 
520             
521        <#else> 
522             
523            <#local portletClass = "link-portlet" /> 
524            <#if urlIframePortlet?contains('19_WAR')> 
525                <#local portletClass = "link-portlet planning-cmd-opener" /> 
526            </#if> 
527            <#local remoteUrl = "/c/portal/layout?p_l_id="+plid+"&p_p_id="+portletId+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive"+queryString /> 
528         
529            <div class="${portletClass}" data-divId="${divId}" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="${remoteUrl}" tabindex="0"> 
530                <img class="interior-article-media-image" src="${imgMini}" alt="${altText}" ${displayedHeight} /> 
531            </div> 
532         
533        </#if> 
534         
535    </#if> 
536     
537</#macro> 
538 
539 
540<#macro getFlickrMedia urlIframePortlet > 
541    <div class="interior-article-media-flickr" data-embed-flickr='${urlIframePortlet}'></div> 
542</#macro> 
543 
544 
545<#macro getFlickrMediaPopup imgMini urlIframePortlet altText height > 
546    <#local displayedHeight = '' /> 
547    <#if height != ""> 
548        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
549    </#if> 
550    <div class="link-flickr" data-flickr='${urlIframePortlet}' tabindex="0"> 
551        <img class="interior-article-media-image" src="/cdalr-new-theme/images/blank.png" data-src="${imgMini}" alt="${altText}" ${displayedHeight} /> 
552    </div> 
553</#macro> 
554 
555 
556<#macro getGalleryMedia mediaSrc height > 
557 
558</#macro> 
559 
560 
561<#macro getGalleryMediaPopup imgMini mediaSrc altText height > 
562 
563</#macro> 
564 
565 
566<#macro getCarouselMedia media mediaSrc altText height width >  
567     
568    <#local ratioDisplay = "" /> 
569    <#if height != "" && width != "" > 
570        <#local ratio = height?number / width?number * 100 /> 
571        <#local ratioDisplay = 'style="padding-top:' + ratio + '%"' /> 
572    </#if> 
573     
574    <div class="carousel" id="carousel-${carouselNb}" data-carousel="carousel-${carouselNb}" ${ratioDisplay}> 
575         
576        <button type="button" id="carousel-${carouselNb}-arrow-prev" data-carousel="carousel-${carouselNb}" data-direction="prev" class="carousel-arrow carousel-arrow-prev">Image précédente</button> 
577        <button type="button" id="carousel-${carouselNb}-arrow-next" data-carousel="carousel-${carouselNb}" data-direction="next" class="carousel-arrow carousel-arrow-next">Image suivante</button> 
578 
579        <img id="carousel-${carouselNb}-img-0" data-carousel="carousel-${carouselNb}" data-img="0" class="carousel-img carousel-img-displayed" src="/cdalr-new-theme/images/blank.png" data-src="${mediaSrc}" alt="${altText}"> 
580 
581        <#if media.media_more??> 
582            <#list media.media_more.getSiblings() as node> 
583                <img id="carousel-${carouselNb}-img-${node_index+1}" data-carousel="carousel-${carouselNb}" data-img="${node_index+1}" class="carousel-img carousel-img-noDisplay" src="/cdalr-new-theme/images/blank.png" data-src="${node.getData()}" alt="${altText}"> 
584            </#list> 
585        </#if> 
586 
587    </div> 
588 
589</#macro> 
590 
591 
592<#macro getCarouselMediaPopup imgMini media mediaSrc altText height > 
593    <#local diapos = mediaSrc /> 
594    <#if media.media_more??> 
595        <#list media.media_more.getSiblings() as node> 
596            <#if node_index != 0> 
597                <#local diapos = diapos + "," /> 
598            </#if> 
599            <#local diapos = diapos + node.getData() /> 
600        </#list> 
601    </#if> 
602    <#local displayedHeight = '' /> 
603    <#if height != ""> 
604        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
605    </#if> 
606    <a class="link-diapo popup-img-opener" href="${mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}" data-diapos="${diapos}"> 
607        <img class="interior-article-media-image" src="/cdalr-new/images/blank.png" data-src="${imgMini}" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} /> 
608    </a> 
609</#macro> 
610 
611 
612<#--************************************* 
613**  RELATED CONTENT 
614*************************************--> 
615 
616<#function buildRelatedAssetTypedLists entry info > 
617    <#assign relatedAssetTypedLists = {} /> 
618    <#assign infos = "" /> 
619    <#assign assetLinks = assetLinkLocalService.getDirectLinks(entry.getEntryId()) /> 
620 
621    <#list assetLinks as assetLink> 
622        <#if assetLink.getEntryId1() == entry.getEntryId() > 
623            <#assign assetLinkEntry = assetEntryLocalService.getEntry(assetLink.getEntryId2()) /> 
624        <#else> 
625            <#assign assetLinkEntry = assetEntryLocalService.getEntry(assetLink.getEntryId1()) /> 
626        </#if> 
627         
628        <#if assetLinkEntry?? && assetLinkEntry.isVisible() > 
629            <#assign linkedAssetRenderer = assetLinkEntry.getAssetRenderer() /> 
630     
631            <#if linkedAssetRenderer.hasViewPermission(permissionChecker) > 
632             
633                <#assign type = assetLinkEntry.getClassName() /> 
634                 
635                <#assign newEntry = [{"assetEntry":assetLinkEntry,"assetLink":assetLink}] /> 
636                <#if relatedAssetTypedLists?keys?seq_contains(type)> 
637                    <#assign relatedAssetTypedList = relatedAssetTypedLists[type] + newEntry /> 
638                <#else> 
639                    <#assign relatedAssetTypedList = newEntry /> 
640                </#if> 
641                <#assign relatedAssetTypedLists = relatedAssetTypedLists + {type : relatedAssetTypedList} /> 
642                <#-- 
643                <#assign infos> 
644                    ${infos} ${type}=${relatedAssetTypedLists[type]?size}  (${newEntry?first.getClassPK()}) <br/> 
645                </#assign> 
646                --> 
647            </#if> 
648        </#if> 
649    </#list> 
650     
651    <#if info == "true"> 
652        <#return infos /> 
653    <#else> 
654        <#return relatedAssetTypedLists /> 
655    </#if> 
656    <#return {} /> 
657</#function> 
658 
659 
660<#macro getCustomRelatedAssets relatedAssetTypedLists> 
661    <#local hasRelatedAssets = "false" /> 
662    <#if relatedAssetTypedLists[typeBookmarksEntry]?? && relatedAssetTypedLists[typeBookmarksEntry]?size != 0> 
663        <#local hasRelatedAssets = "true" /> 
664    </#if> 
665    <#if relatedAssetTypedLists[typeDLFileEntry]?? && relatedAssetTypedLists[typeDLFileEntry]?size != 0> 
666        <#local hasRelatedAssets = "true" /> 
667    </#if> 
668    <#if relatedAssetTypedLists[typeJournalArticle]?? && relatedAssetTypedLists[typeJournalArticle]?has_content > 
669        <#local webContentNb = getRelatedWebContentNb(relatedAssetTypedLists[typeJournalArticle]) /> 
670        <#if webContentNb != 0> 
671            <#local hasRelatedAssets = "true" /> 
672        </#if> 
673    </#if> 
674    <#if hasRelatedAssets == "true" > 
675        <aside class="interior-article-moreContent-container"> 
676            <p class="interior-article-moreContent-title">En savoir plus</p> 
677            <#if relatedAssetTypedLists[typeJournalArticle]?? && relatedAssetTypedLists[typeJournalArticle]?has_content > 
678                <@getRelatedWebContents assets=relatedAssetTypedLists[typeJournalArticle] /> 
679            </#if> 
680            <#if relatedAssetTypedLists[typeBookmarksEntry]?? && relatedAssetTypedLists[typeBookmarksEntry]?has_content > 
681                <@getTypedRelatedAssets relatedAssetTypedLists=relatedAssetTypedLists type=typeBookmarksEntry structure=""/> 
682            </#if> 
683            <#if relatedAssetTypedLists[typeDLFileEntry]?? && relatedAssetTypedLists[typeDLFileEntry]?has_content > 
684                <@getTypedRelatedAssets relatedAssetTypedLists=relatedAssetTypedLists type=typeDLFileEntry structure="" /> 
685            </#if> 
686        </aside> 
687    </#if> 
688</#macro> 
689 
690 
691<#macro getTypedRelatedAssets relatedAssetTypedLists type structure> 
692    <#if type == typeJournalArticle && structure == "CDA_ZOOM_SUR" > 
693        <@getRelatedZoomSur assets=relatedAssetTypedLists[type] /> 
694    <#elseif type == typeJournalArticle && structure == "CDA_CONTACT_SERVICE" > 
695        <@getRelatedFooterContact assets=relatedAssetTypedLists[type] /> 
696    <#elseif type == typeBookmarksEntry > 
697        <@getRelatedPages assets=relatedAssetTypedLists[type] /> 
698    <#elseif type == typeDLFileEntry > 
699        <@getRelatedDocuments assets=relatedAssetTypedLists[type] /> 
700    </#if> 
701</#macro> 
702 
703 
704<#macro getRelatedZoomSur assets> 
705    <#if assets?size != 0> 
706        <#list assets as assetMap> 
707            <#local asset = assetMap.assetEntry /> 
708            <#local article = journalArticleLocalService.getLatestArticle(asset.getClassPK()) /> 
709            <#local strucName = journalStructureLocalService.getStructure(article.getGroupId(), jaClassNameId, article.getStructureId(), true).getName(locale) /> 
710            <#if strucName == 'CDA_ZOOM_SUR'> 
711                <#local img = getField(article,"back_img")/> 
712                <#local url = getField(article,"url_link")/> 
713                <#local target = "href='"+ url +"'" /> 
714                <#if !isInternalLink(url)> 
715                    <#local target = target + " target='_blank' rel='noopener noreferrer'" /> 
716                </#if> 
717                <div class="article-header-alert"> 
718                    <#if url != ""> 
719                        <a class="inner-link" ${target}> 
720                    </#if> 
721                    <img src="${img}" alt="${asset.getTitleCurrentValue()}"/> 
722                    <h3 class="article-header-alert-title">${asset.getTitleCurrentValue()}</h3> 
723                    <#if url != ""> 
724                        </a> 
725                    </#if> 
726                </div> 
727            </#if> 
728        </#list> 
729    </#if> 
730</#macro> 
731 
732<#macro getRelatedFooterContact assets> 
733    <#if assets?size == 0> 
734        <@getDefaultFooterContact /> 
735    <#else> 
736        <#local hasContactFooter = false /> 
737    	<#list assets as assetMap> 
738            <#local asset = assetMap.assetEntry /> 
739            <#local article = journalArticleLocalService.getLatestArticle(asset.getClassPK()) /> 
740            <#local strucName = journalStructureLocalService.getStructure(article.getGroupId(), jaClassNameId,, article.getStructureId(), true).getName(locale) /> 
741            <#if strucName == 'CDA_CONTACT_SERVICE'> 
742                <#local contact_service = getField(article,"Contact_service")/> 
743                <#local adresse = getField(article,"Adresse")/> 
744                <#local cp = getField(article,"CP")/> 
745                <#local ville = getField(article,"Ville")/> 
746                <#local telephone = getField(article,"Telephone")/> 
747                <#if telephone==""> 
748                    <#local telephone = "05 46 30 34 00" /> 
749                </#if> 
750                <#local courriel = getField(article,"Courriel")/> 
751                <#local annuaire = getField(article,"annuaire_link")/> 
752                <#if annuaire==""> 
753                    <#local annuaire = "/annuaire-des-services"/> 
754                </#if> 
755                <a class="interior-content-footer-contact interior-content-footer-service" href="${annuaire}"> 
756                    Contact<br/> 
757                    ${asset.getTitle(locale)} 
758                </a> 
759                <p class="interior-content-footer-contact interior-content-footer-address"> 
760                    <span class="interior-content-footer-contact-inner">${adresse}<br/>${cp} ${ville}</span> 
761                </p> 
762                <p class="interior-content-footer-contact interior-content-footer-phone"> 
763                    <span class="interior-content-footer-contact-inner">${telephone}</span> 
764                </p> 
765                <a class="interior-content-footer-contact interior-content-footer-email" href="mailto:${courriel}?subject=Contact%20site%20Agglo"> 
766                    <span class="interior-content-footer-contact-inner">Envoyer un courriel</span> 
767                </a> 
768                <a class="interior-content-footer-annuaire" href="${annuaire}">Annuaire des services</a> 
769                <#local hasContactFooter = true /> 
770                <#break /> 
771            </#if> 
772        </#list> 
773        <#if hasContactFooter == false> 
774            <@getDefaultFooterContact /> 
775        </#if> 
776	</#if> 
777</#macro> 
778 
779 
780<#macro getDefaultFooterContact > 
781    <a class="interior-content-footer-contact interior-content-footer-service" href="/annuaire-des-services"> 
782        Contact<br/> 
783        Agglo La Rochelle 
784    </a> 
785    <p class="interior-content-footer-contact interior-content-footer-address"> 
786        <span class="interior-content-footer-contact-inner">6, rue Saint-Michel<br/>17000 La Rochelle</span> 
787    </p> 
788    <p class="interior-content-footer-contact interior-content-footer-phone"> 
789        <span class="interior-content-footer-contact-inner">05 46 30 34 00</span> 
790    </p> 
791    <a class="interior-content-footer-contact interior-content-footer-email" href="/contacter-l-agglo"> 
792        <span class="interior-content-footer-contact-inner">Envoyer un courriel</span> 
793    </a> 
794    <a class="interior-content-footer-annuaire" href="/annuaire-des-services">Annuaire des services</a> 
795</#macro> 
796 
797 
798<#function getRelatedWebContentNb assets> 
799    <#local nb = 0 /> 
800    <#if assets?size != 0> 
801        <#local nb = 0 /> 
802        <#list assets as assetMap> 
803            <#local asset = assetMap.assetEntry /> 
804            <#local article = journalArticleLocalService.getLatestArticle(asset.getClassPK()) /> 
805            <#local strucName = journalStructureLocalService.getStructure(article.getGroupId(), jaClassNameId,, article.getStructureId(), true).getName(locale) /> 
806            <#if strucName != 'CDA_CONTACT_SERVICE' && strucName != 'CDA_ZOOM_SUR'> 
807                <#local nb = nb + 1 /> 
808            </#if> 
809        </#list> 
810    </#if> 
811    <#return nb /> 
812</#function> 
813 
814 
815<#macro getRelatedWebContents assets> 
816     
817    <#local pagesNb = 0 /> 
818    <#local pages = [] /> 
819     
820    <#if assets?has_content && assets?size != 0> 
821        <#list assets as assetMap> 
822            <#local asset = assetMap.assetEntry /> 
823            <#local article = journalArticleLocalService.getLatestArticle(asset.getClassPK()) /> 
824            <#local strucName = journalStructureLocalService.getStructure(article.groupId, jaClassNameId, article.structureId?string, true).getName(locale) /> 
825            <#if strucName == "CDA_ARTICLE_CMS_ENRICHI" || strucName == "CDA_ACTU"> 
826                <#local pagesNb = pagesNb + 1 /> 
827                <#local pages = pages + [assetMap] /> 
828            </#if> 
829        </#list> 
830    </#if> 
831     
832    <#if pagesNb != 0> 
833         
834        <ul> 
835             
836            <#list pages as page> 
837                 
838                <#local asset = page.assetEntry /> 
839                <#local article = journalArticleLocalService.getLatestArticle(asset.getClassPK()) /> 
840                <#local strucName = journalStructureLocalService.getStructure(article.groupId, jaClassNameId, article.structureId?string, true).getName(locale) /> 
841                <#if article.getLayoutUuid()?has_content> 
842                    <#if strucName == "CDA_ARTICLE_CMS_ENRICHI"> 
843                        <#local displayPage = layoutService.getLayoutByUuidAndGroupId(article.getLayoutUuid(),article.getGroupId(), false) /> 
844                        <#local assetPublisherURL = displayPage.getFriendlyURL() + "?article=" + article.getUrlTitle() /> 
845                    <#elseif strucName == "CDA_ACTU"> 
846                        <#local assetPublisherURL = "/-/" + article.getUrlTitle() /> 
847                    </#if> 
848                    <li class="interior-article-moreContent"><a href="${assetPublisherURL}">${article.getTitle(locale)}</a></li> 
849                </#if> 
850                 
851            </#list> 
852             
853        </ul> 
854         
855    </#if> 
856 
857</#macro> 
858 
859 
860<#macro getRelatedPages assets> 
861    <ul> 
862        <#local orderedAssets = getOrderedAssets(assets) /> 
863        <#list orderedAssets?reverse as assetMap> 
864            <#local asset = assetMap.assetEntry /> 
865            <#local assetLink = assetMap.assetLink /> 
866            <#local linkedAssetRenderer = asset.getAssetRenderer() /> 
867            <#local assetLinkEntryTitle = asset.getTitle(locale) /> 
868            <#local assetLinkEntryDescription = asset.getDescription() /> 
869            <#local assetLinkBookmark = bookmarksEntryLocalService.getEntry(asset.getClassPK()) /> 
870            <#local assetURL = assetLinkBookmark.getUrl() /> 
871             
872            <#local target = "" /> 
873            <#if assetURL?contains('widget') || assetURL?contains('iframe') || assetURL?contains('embed') > 
874                <#local target = " data-iframe='true' href='"+ assetURL +"' class='link-iframe'" /> 
875            <#else> 
876                <#local target = "href='"+ assetURL +"'" /> 
877                <#if !isInternalLink(assetURL)> 
878                    <#local target = target + " target='_blank' rel='noopener noreferrer'" /> 
879                </#if> 
880            </#if> 
881 
882            <li class="interior-article-moreContent" data-entry-id="${asset.getEntryId()}"><a ${target} title="${htmlUtil.escapeAttribute(assetLinkEntryDescription)}">${assetLinkEntryTitle}</a></li> 
883       </#list> 
884   </ul> 
885</#macro> 
886 
887 
888<#macro getRelatedDocuments assets> 
889     
890    <#assign folderNb = 0 /> 
891    <#local orderedAssets = getOrderedAssets(assets) /> 
892    <#local collapsedFolders = false /> 
893     
894    <#list orderedAssets?reverse as assetMap> 
895     
896        <#local asset = assetMap.assetEntry /> 
897        <#local fileEntry = dlFileEntryLocalService.getFileEntry(asset.getClassPK()) /> 
898 
899        <#local documents = dlFileEntryLocalService.getFileEntries(fileEntry.getGroupId(),fileEntry.getFolderId()) /> 
900        <#local folder = fileEntry.getFolder() /> 
901        <#local folderDescription = folder.getDescription()/> 
902        <#if folderDescription != ""> 
903            <#if documents?size &gt; 5> 
904                <#local collapsedFolders = true /> 
905            </#if> 
906        </#if> 
907    </#list> 
908     
909    <#list orderedAssets?reverse as assetMap> 
910     
911        <#local asset = assetMap.assetEntry /> 
912        <#local fileEntry = dlFileEntryLocalService.getFileEntry(asset.getClassPK()) /> 
913 
914        <#local documents = dlFileEntryLocalService.getFileEntries(fileEntry.getGroupId(),fileEntry.getFolderId()) /> 
915        <#local folder = fileEntry.getFolder() /> 
916        <#local folderDescription = folder.getDescription()/> 
917        <#if folderDescription != ""> 
918            <#if collapsedFolders == true> 
919                <input type="checkbox" class="interior-article-moreContent-checkbox" id="interior-article-moreContent-checkbox-${folderNb}" name="interior-article-moreContent-checkbox-${folderNb}"> 
920                <p class="interior-article-moreContent-title"><label for="interior-article-moreContent-checkbox-${folderNb}">${folderDescription}</label></p> 
921                <#assign folderNb = folderNb + 1 /> 
922            <#else> 
923                <p class="interior-article-moreContent-title">${folderDescription}</p> 
924            </#if> 
925        </#if> 
926         
927        <ul class="interior-article-moreContent-list"> 
928            <#local orderedDocs = getOrderedDocs(documents) /> 
929            <#list orderedDocs?reverse as docEntry> 
930                 
931                <#if !docEntry.isInTrash()> 
932                     
933                    <#local assetDocEntry = assetEntryLocalService.getEntry(docEntry.getGroupId(),docEntry.getUuid()) /> 
934                     
935                    <#if assetDocEntry.getAssetRenderer()??> 
936                     
937                        <#local linkedAssetRenderer = assetDocEntry.getAssetRenderer() /> 
938                         
939                        <#local assetLinkEntryTitle = assetDocEntry.getTitle(locale) /> 
940                        <#local assetLinkEntryDescription = assetDocEntry.getDescription(locale) /> 
941                        <#local extension = docEntry.getLatestFileVersion(true).getExtension() /> 
942                         
943                        <#local assetURL = linkedAssetRenderer.getURLDownload(themeDisplay) /> 
944                         
945                        <#local extensionType = "" /> 
946                        <#switch extension> 
947                            <#case "pdf"> 
948                                <#local extensionType = "link-pdf" /> 
949                                <#break> 
950                            <#case "jpg"> 
951                                <#local extensionType = "link-img" /> 
952                                <#break> 
953                            <#case "png"> 
954                                <#local extensionType = "link-img" /> 
955                                <#break> 
956                            <#case "mp4"> 
957                                <#local extensionType = "link-video" /> 
958                                <#break> 
959                            <#case "swf"> 
960                                <#local extensionType = "link-flash" /> 
961                                <#break> 
962                            <#default> 
963                        </#switch> 
964                        <#assign dlFileEntry = docEntry.getLatestFileVersion(true)/> 
965                         
966                        <#local toDownload = "" /> 
967                        <#if assetLinkEntryTitle?contains("- téléchargement")> 
968                            <#local toDownload = "download" /> 
969                            <#if assetURL?contains("?version")> 
970                                <#local assetURL = assetURL + "&download=true" /> 
971                            <#else> 
972                                <#local assetURL = assetURL + "?download=true" /> 
973                            </#if> 
974                        </#if> 
975                         
976                        <#local target = " href='"+ assetURL +"'" /> 
977                         
978                        <li class="interior-article-moreContent" data-entry-id="${asset.entryId}"> 
979                           <a ${target} class="extension-${extension} ${extensionType}" title="${htmlUtil.escapeAttribute(assetLinkEntryDescription)}" ${toDownload} > 
980                                ${assetLinkEntryTitle} <span class="interior-article-moreContent-extension">${extension}</span> 
981                            </a>  
982                        </li> 
983                         
984                    </#if> 
985                     
986                </#if> 
987                 
988            </#list> 
989        </ul> 
990         
991    </#list> 
992     
993</#macro> 
994 
995 
996<#function getOrderedAssets assets> 
997    <#local orderedAssets = [] /> 
998    <#local assetsWithDate = [] /> 
999    <#list assets as assetMap> 
1000        <#local asset = assetMap.assetEntry /> 
1001        <#local modifiedDate = asset.getModifiedDate() /> 
1002        <#local assetsWithDate = assetsWithDate + [{'assetMap':assetMap,'modifiedDate':modifiedDate}] /> 
1003    </#list> 
1004    <#list assetsWithDate?sort_by('modifiedDate') as orderedAsset> 
1005        <#local orderedAssets = orderedAssets + [orderedAsset.assetMap] /> 
1006    </#list> 
1007    <#return orderedAssets> 
1008</#function> 
1009 
1010<#function getOrderedDocs docs> 
1011    <#local orderedDocs = [] /> 
1012    <#local docsWithDate = [] /> 
1013    <#list docs as docMap> 
1014        <#local doc = assetEntryLocalService.getEntry(docMap.getGroupId(),docMap.getUuid()) /> 
1015        <#local modifiedDate = doc.getModifiedDate() /> 
1016        <#local docsWithDate = docsWithDate + [{'docMap':docMap,'modifiedDate':modifiedDate}] /> 
1017    </#list> 
1018    <#list docsWithDate?sort_by('modifiedDate') as orderedDoc> 
1019        <#local orderedDocs = orderedDocs + [orderedDoc.docMap] /> 
1020    </#list> 
1021    <#return orderedDocs> 
1022</#function> 
1023 
1024 
1025<#function isInternalLink link> 
1026  <#local internal = link?contains(".agglo-larochelle.fr") || !link?contains("//")> 
1027  <#return internal> 
1028</#function> 
1029 
1030 
1031<#function getField journalArticle fieldName> 
1032    <#local fieldValue = ''/> 
1033     <#local document = saxReaderUtil.read(journalArticle.getContent()) /> 
1034     <#local rootElement = document.getRootElement() /> 
1035     <#if (rootElement?? && rootElement?has_content)> 
1036        <#local xPathSelector =  saxReaderUtil.createXPath("dynamic-element[@name='"+fieldName+"']/dynamic-content") /> 
1037        <#if (validator.isNotNull(xPathSelector))> 
1038        <#local nbNodes = xPathSelector.selectNodes(rootElement)?size /> 
1039        <#if (nbNodes &gt; 0)> 
1040            <#local fieldValue = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 
1041        </#if> 
1042     </#if> 
1043     <#return fieldValue /> 
1044     </#if> 
1045</#function>