Saut au contenu
Retour

Vie étudiante

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

Pour naviguer sur le site de la Communauté d'Agglomération, veuillez mettre à jour votre navigateur ou utiliser un navigateur moderne.

Ci-dessous quelques liens de téléchargement vers des navigateurs récents :