Aménagement de la voirie de la ZI de La Pallice

La Communauté d’Agglomération mène d’importants travaux d’aménagement de la voirie de la zone industrielle de La Pallice. Cette zone d’activités historique de La Rochelle présente une chaussée très dégradée et inadaptée.

Retour

Aménagement de la voirie de la ZI de La Pallice

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>