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