La boîte à outils du zéro carbone - La boîte à outils du zéro carbone

La boîte à outils du zéro carbone

Une erreur s'est produite en traitant le calibre.
No signature of method create matches the arguments
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetEntryLocalService") /> 
2<#assign classNameLocalService = serviceLocator.findService("com.liferay.portal.service.ClassNameLocalService") /> 
3<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService") /> 
4<#assign journalStructureLocalService = serviceLocator.findService("com.liferay.portlet.dynamicdatamapping.service.DDMStructureLocalService") /> 
5<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService") /> 
6 
7<#assign typeJournalArticle = "com.liferay.portlet.journal.model.JournalArticle" /> 
8 
9<#assign jaClassNameId = classNameLocalService.getClassNameId(typeJournalArticle) /> 
10 
11<#assign pdfViewer = '/fu/js/pdfjs/web/viewer.html?zoom=page-fit&file=' /> 
12 
13<#assign serviceContextThreadLocal = staticUtil["com.liferay.portal.service.ServiceContextThreadLocal"] /> 
14<#assign themeDisplay = serviceContextThreadLocal.getServiceContext().getThemeDisplay() /> 
15 
16<#assign carouselNb = 0 /> 
17<#assign keyNumbersInProgress = "false" /> 
18 
19<article class="interior-article" > 
20     
21    <#if Accroche.getData() != ""> 
22        <div class="useful-content"> 
23            <p class="interior-article-chapo">${Accroche.getData()}</p> 
24        </div> 
25    </#if> 
26 
27    <#if content.getSiblings()?has_content> 
28 
29        <#list content.getSiblings() as contenu> 
30 
31            <#if contenu.content_type.getData() != "keyNumber" && keyNumbersInProgress == "true" > 
32                </div></div> 
33                <#assign keyNumbersInProgress = "false" /> 
34            </#if> 
35 
36            <#if contenu.content_type.getData() == "oneColumn"> 
37                <@displayContent contenu=contenu columns="" /> 
38            <#elseif contenu.content_type.getData() == "twoColumns"> 
39                <@displayContent contenu=contenu columns="paragraph-columns" /> 
40            <#elseif contenu.content_type.getData() == "keyNumber"> 
41                <@displayKeyNumber contenu=contenu inProgress=keyNumbersInProgress /> 
42            </#if> 
43 
44        </#list> 
45 
46    </#if> 
47     
48</article> 
49 
50<ul class="share-buttons"> 
51    <li class="share-buttons-item share-buttons-item-eco"><a class="share-button share-button-eco inner-link" title="Un site éco-responsable" href="/un-site-eco-responsable"><span class="sr-only">Un site éco-responsable</span></a></li> 
52    <li class="share-buttons-item"><a class="share-button share-button-twitter inner-link" title="Page Twitter La Rochelle Territoire Zéro Carbone" href="https://twitter.com/LRzerocarbone" target="_blank" rel="noreferrer noopener"><span class="sr-only">Page Twitter La Rochelle Territoire Zéro Carbone</span></a></li> 
53    <li class="share-buttons-item"><a class="share-button share-button-mail inner-link" title="Nous contacter" href="/contact"><span class="sr-only">Nous contacter</span></a></li> 
54</ul> 
55 
56 
57<#--************************************* 
58** CONTENT BLOCKS DISPLAY 
59*************************************--> 
60 
61<#macro displayContent contenu columns > 
62 
63    <#assign flexMedia = "no-floating-media" /> 
64    <#assign alignValue = "" /> 
65    <#assign alignValue = contenu.Media.media_options.alignment.getData() /> 
66    <#if alignValue == "flexLeft" || alignValue == "flexRight"> 
67        <#assign flexMedia = "flex-media" /> 
68    </#if> 
69     
70    <#assign contentTitle = contenu.content_title.getData() /> 
71    <#assign contentText = contenu.content_text.getData() /> 
72    <#assign anchor = contenu.anchor.getData() /> 
73 
74    <#assign contentTitleDisplay = "" /> 
75    <#if contenu.content_title_display.getData() == "centerTitle" > 
76        <#assign contentTitleDisplay = "paragraph-title-center" /> 
77    <#elseif contenu.content_title_display.getData() == "blueTitle"> 
78        <#assign contentTitleDisplay = "paragraph-title-blue" /> 
79    </#if> 
80     
81    <#assign innerMedia = contenu.Media /> 
82    <#assign mediaSrc = innerMedia.media_doc.getData()/> 
83    <#assign urlIframePortlet = innerMedia.url_iframe_portlet.getData() /> 
84     
85    <#if contentTitle!="" || contentText!="" || mediaSrc!="" || urlIframePortlet !="" > 
86         
87        <#assign usefulContent = "useful-content" /> 
88        <#if contentTitleDisplay == "paragraph-title-blue"> 
89            <#assign usefulContent = "" /> 
90        </#if> 
91 
92        <div class="interior-article-paragraph ${usefulContent} ${flexMedia} ${columns}"> 
93             
94            <#if contentTitle != "" &&  ( !innerMedia?? || alignValue != "flexRight" ) > 
95                <h2 class="paragraph-title ${contentTitleDisplay}"><span class="paragraph-title-text">${contentTitle}</span></h2> 
96            </#if> 
97 
98            <#if contentTitleDisplay == "paragraph-title-blue"> 
99                <div class="interior-article-enhancedContent"> 
100            </#if> 
101             
102            <#if flexMedia == "no-floating-media" || !innerMedia?? > 
103                 
104                <#if columns == "paragraph-columns"> 
105                    <div class="two-columns"> 
106                        ${contentText?replace("<p></p>","")} 
107                    </div> 
108                <#else> 
109                    ${contentText?replace("<p></p>","")} 
110                </#if> 
111                <#if innerMedia??> 
112                    <@getMedia media=innerMedia mediaSrc=mediaSrc urlIframePortlet=urlIframePortlet alignment=alignValue /> 
113                </#if> 
114                 
115            <#elseif flexMedia == "flex-media" && innerMedia??> 
116                 
117                <div class="flex-media-paragraph ${alignValue}"> 
118                    <div class="flex-media-paragraph-content"> 
119                        <#if contentTitle != "" &&  alignValue == "flexRight" > 
120                            <h2 class="paragraph-title ${contentTitleDisplay}"><span class="paragraph-title-text">${contentTitle}</span></h2> 
121                        </#if> 
122                        ${contentText?replace("<p></p>","")} 
123                    </div> 
124                    <@getMedia media=innerMedia mediaSrc=mediaSrc urlIframePortlet=urlIframePortlet alignment=alignValue /> 
125                </div> 
126                 
127            </#if> 
128 
129            <#if contentTitleDisplay == "paragraph-title-blue"> 
130                </div> 
131            </#if> 
132 
133        </div> 
134         
135    </#if> 
136     
137</#macro> 
138 
139 
140<#--************************************* 
141** KEY NUMBERS DISPLAY 
142*************************************--> 
143 
144<#macro displayKeyNumber contenu inProgress > 
145 
146    <#if inProgress == "false"> 
147        <#assign keyNumbersInProgress = "true" /> 
148        <div class="interior-article-paragraph no-floating-media"> 
149            <h2 class="paragraph-title paragraph-title-enhanced"><span class="paragraph-title-text">Chiffres clés</span></h2> 
150                <div class="interior-article-contentsWrapper interior-article-keyNumbers useful-content"> 
151    </#if> 
152 
153    <#assign contentTitle = contenu.content_title.getData() /> 
154    <#assign contentText = contenu.content_text.getData() /> 
155 
156    <div class="interior-article-innerContent"> 
157        <h3 class="interior-article-keyNumber">${contentTitle}</h3> 
158        <p class="interior-article-keyNumber-text">${contentText?replace("<p>","")?replace("</p>","")}</p> 
159    </div> 
160 
161</#macro> 
162 
163 
164<#--************************************* 
165** MEDIA DISPLAY 
166*************************************--> 
167 
168<#macro getMedia media mediaSrc urlIframePortlet alignment> 
169     
170    <#if mediaSrc != '' || urlIframePortlet != ''> 
171 
172        <#local mediaType = media.media_type.getData() /> 
173        <#assign carouselWrapper = "" /> 
174        <#if mediaType == "carousel"> 
175            <#assign carouselWrapper = "interior-article-media-carousel-wrapper" /> 
176        </#if> 
177        <#local width = media.media_options.width.getData() /> 
178        <#local displayWidth = '' /> 
179        <#if width == 'null'> 
180            <#local displayWidth = '' /> 
181        <#elseif width != ""> 
182            <#local displayWidth = 'style="width:'+width+'px;"' /> 
183        </#if> 
184         
185        <#local height = media.media_options.height.getData() /> 
186        <#if height == 'null'> 
187            <#local height = '' /> 
188        </#if> 
189        <#local displayMode = media.media_options.display_mode.getData() /> 
190        <#local imgMini = media.media_options.img_mini.getData() /> 
191        <#local legend = media.media_options.legend.getData() /> 
192        <#local altText = media.alt_text.getData() /> 
193        <#if altText == 'null'> 
194            <#local altText = '' /> 
195        </#if> 
196         
197        <figure class="interior-article-media interior-article-media-${alignment} ${carouselWrapper}" ${displayWidth}> 
198             
199            <#switch mediaType> 
200                <#case "image"> 
201                    <#if displayMode == "normal"> 
202                       <@getImageMedia mediaSrc=mediaSrc urlIframePortlet=urlIframePortlet altText=altText height=height width=width /> 
203                    <#elseif displayMode == "popup"> 
204                        <@getImageMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height width=width /> 
205                    </#if> 
206                    <#break > 
207                <#case "video"> 
208                    <#if displayMode == "normal"> 
209                       <@getVideoMedia imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height width=width /> 
210                    <#elseif displayMode == "popup"> 
211                        <@getVideoMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height width=width /> 
212                    </#if> 
213                    <#break > 
214                <#case "pdf"> 
215                    <#if displayMode == "normal"> 
216                       <@getPdfMedia mediaSrc=mediaSrc altText=altText height=height /> 
217                    <#elseif displayMode == "popup"> 
218                        <@getPdfMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
219                    </#if> 
220                    <#break > 
221                <#case "carousel"> 
222                    <#if displayMode == "normal"> 
223                       <@getCarouselMedia media=media altText=altText height=height width=width /> 
224                    <#elseif displayMode == "popup"> 
225                        <@getCarouselMediaPopup imgMini=imgMini media=media altText=altText height=height width=width /> 
226                    </#if> 
227                    <#assign carouselNb = carouselNb + 1 /> 
228                    <#break > 
229                <#case "iframe"> 
230                    <#if displayMode == "normal"> 
231                       <@getIframeMedia urlIframePortlet=urlIframePortlet altText=altText height=height /> 
232                    <#elseif displayMode == "popup"> 
233                        <@getIframeMediaPopup imgMini=imgMini urlIframePortlet=urlIframePortlet altText=altText height=height width=width /> 
234                    </#if> 
235                    <#break > 
236                <#case "portlet"> 
237                    <#if displayMode == "normal"> 
238                       <@getPortletMedia urlIframePortlet=urlIframePortlet height=height /> 
239                    <#elseif displayMode == "popup"> 
240                        <@getPortletMediaPopup imgMini=imgMini urlIframePortlet=urlIframePortlet altText=altText height=height width=width /> 
241                    </#if> 
242                    <#break > 
243                <#default> 
244            </#switch> 
245 
246            <#local hasLegend = legend?length != 0 /> 
247            <#if hasLegend> 
248                <figcaption class="interior-article-media-legend">${legend}</figcaption> 
249            </#if> 
250             
251        </figure> 
252         
253    </#if> 
254     
255</#macro> 
256 
257 
258<#macro getImageMedia mediaSrc urlIframePortlet altText height width > 
259    <#local displayedHeight = '' /> 
260    <#if height != ""> 
261        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
262    </#if> 
263    <#if urlIframePortlet != ""> 
264        <#assign target = "href='"+ urlIframePortlet +"'" /> 
265        <#if !isInternalLink(urlIframePortlet)> 
266            <#assign target = target + " target='_blank' rel='noopener noreferrer'" /> 
267        </#if> 
268        <a ${target} title="${htmlUtil.escapeAttribute(altText)}"> 
269            <img class="interior-article-media-image" src="${mediaSrc}" loading="lazy" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> /> 
270        </a> 
271    <#else> 
272        <img class="interior-article-media-image" src="${mediaSrc}" loading="lazy" alt="${htmlUtil.escapeAttribute(altText)}" title="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> /> 
273    </#if> 
274</#macro> 
275 
276 
277<#macro getImageMediaPopup imgMini mediaSrc altText height width > 
278    <#if imgMini != ""> 
279        <#local displayedHeight = '' /> 
280        <#if height != ""> 
281            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
282        </#if> 
283        <a class="link-img" href="${mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}"> 
284            <img class="interior-article-media-image" src="${imgMini}" loading="lazy" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> /> 
285        </a> 
286    <#else> 
287        <h5> 
288            <a class="link-img" title="${htmlUtil.escapeAttribute(altText)}" href="${mediaSrc}"> 
289                ${htmlUtil.escapeAttribute(altText)} 
290            </a> 
291        </h5> 
292    </#if> 
293</#macro> 
294 
295 
296<#macro getVideoMedia imgMini mediaSrc height altText width> 
297    <#local displayedHeight = '' /> 
298    <#if height != ""> 
299        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
300    </#if> 
301    <video class="interior-article-media-video" itemprop="url" poster="${imgMini}" title="${htmlUtil.escapeAttribute(altText)}" controls="" preload="metadata" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> > 
302        <source itemprop="url" content="https://www2.larochelle-technopole.fr${mediaSrc}" src="${mediaSrc}" type="video/mp4"> 
303        <a href="${mediaSrc}" download="">${htmlUtil.escapeAttribute(altText)}</a> 
304    </video> 
305</#macro> 
306 
307 
308<#macro getVideoMediaPopup imgMini mediaSrc altText height width > 
309    <#if imgMini != ""> 
310        <#local displayedHeight = '' /> 
311        <#if height != ""> 
312            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
313        </#if> 
314        <a class="link-video" href="${mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}"> 
315            <img class="interior-article-media-image" src="${imgMini}" loading="lazy" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> /> 
316        </a> 
317    <#else> 
318        <h5> 
319            <a class="link-video" title="${htmlUtil.escapeAttribute(altText)}" href="${mediaSrc}"> 
320                ${htmlUtil.escapeAttribute(altText)} 
321            </a> 
322        </h5> 
323    </#if> 
324</#macro> 
325 
326 
327<#macro getPdfMedia mediaSrc altText height > 
328    <#local displayedHeight = '' /> 
329    <#if height != ""> 
330        <#local displayedHeight = 'style="height:'+height+'px;"' /> 
331    </#if> 
332    <iframe class="interior-article-media-iframe" src="${pdfViewer+mediaSrc}" loading="lazy" title="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} allowfullscreen ></iframe> 
333</#macro> 
334 
335 
336<#macro getPdfMediaPopup imgMini mediaSrc altText height width > 
337    <#if imgMini != ""> 
338        <#local displayedHeight = '' /> 
339        <#if height != ""> 
340            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
341        </#if> 
342        <a class="link-pdf" href="${mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}" target="_blank" rel="noopener noreferrer"> 
343            <img class="interior-article-media-image" src="${imgMini}" loading="lazy" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> /> 
344        </a> 
345    <#else> 
346        <h5> 
347            <a class="link-pdf" title="${htmlUtil.escapeAttribute(altText)}" href="${mediaSrc}" target="_blank" rel="noopener noreferrer"> 
348                ${htmlUtil.escapeAttribute(altText)} 
349            </a> 
350        </h5> 
351    </#if> 
352</#macro> 
353 
354 
355<#macro getCarouselMedia media altText height width >  
356     
357    <#local ratioDisplay = "" /> 
358    <#if height != "" && width != "" > 
359        <#local ratio = height?number / width?number * 100 /> 
360        <#local ratioDisplay = 'style="padding-top:' + ratio + '%"' /> 
361    </#if> 
362     
363    <div class="carousel" id="carousel-${carouselNb}" data-carousel="carousel-${carouselNb}" ${ratioDisplay}> 
364         
365        <button type="button" id="carousel-${carouselNb}-arrow-prev" data-carousel="carousel-${carouselNb}" data-direction="prev" class="carousel-arrow carousel-arrow-prev"><span class="sr-only">Image précédente</span></button> 
366        <button type="button" id="carousel-${carouselNb}-arrow-next" data-carousel="carousel-${carouselNb}" data-direction="next" class="carousel-arrow carousel-arrow-next"><span class="sr-only">Image suivante</span></button> 
367 
368        <#list media.media_doc.getSiblings() as node> 
369            <#if node_index == 0> 
370                <img id="carousel-${carouselNb}-img-${node_index}" data-carousel="carousel-${carouselNb}" data-img="${node_index}" class="carousel-img carousel-img-displayed" src="${node.getData()}" data-src="" alt="${altText}"> 
371            <#else> 
372                <img id="carousel-${carouselNb}-img-${node_index}" data-carousel="carousel-${carouselNb}" data-img="${node_index}" class="carousel-img carousel-img-noDisplay" src="/lr-zerocarbone-theme/images/blank.png" data-src="${node.getData()}" alt="${altText}"> 
373            </#if> 
374        </#list> 
375 
376        <ul class="carousel-buttons"> 
377            <#list media.media_doc.getSiblings() as node> 
378                <#local currentClass = "" /> 
379                <#if node_index == 0> 
380                    <#local currentClass = "carousel-button-current" /> 
381                </#if> 
382                <li class="carousel-buttons-item"><button type="button" id="carousel-${carouselNb}-arrow-${node_index}" class="carousel-button ${currentClass}" data-carousel="carousel-${carouselNb}" data-img="${node_index}"><span class="sr-only">Image ${node_index+1}</span></button></li> 
383            </#list> 
384        </ul> 
385 
386    </div> 
387 
388</#macro> 
389 
390<#macro getCarouselMediaPopup imgMini media altText height width > 
391    <#local diapos = "" /> 
392    <#list media.media_doc.getSiblings() as node> 
393        <#if node_index != 0> 
394            <#local diapos = diapos + "," /> 
395        </#if> 
396        <#local diapos = diapos + node.getData() /> 
397    </#list> 
398    <#if imgMini != ""> 
399        <#local displayedHeight = '' /> 
400        <#if height != ""> 
401            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
402        </#if> 
403        <a class="link-diapo" href="${mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}" data-diapos="${diapos}"> 
404            <img class="interior-article-media-image" src="${imgMini}" loading="lazy" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> /> 
405        </a> 
406    <#else> 
407        <h5> 
408            <a class="link-diapo" title="${htmlUtil.escapeAttribute(altText)}" href="${mediaSrc}" data-diapos="${diapos}"> 
409                ${htmlUtil.escapeAttribute(altText)} 
410            </a> 
411        </h5> 
412    </#if> 
413</#macro> 
414 
415 
416<#macro getIframeMedia urlIframePortlet altText height > 
417    <#local displayedHeight = '' /> 
418    <#if height != ""> 
419        <#local displayedHeight = 'style="height:'+height+'px;"' /> 
420    </#if> 
421    <#if urlIframePortlet?contains("youtube")> 
422        <#local youtubeId = urlIframePortlet?substring(urlIframePortlet?index_of("embed/")+6) /> 
423        <div class="interior-article-media-youtube-blocker" ${displayedHeight}> 
424            <div class="youtube-blocker-img-wrapper"> 
425                <img class="youtube-blocker-img" src="https://img.youtube.com/vi/${youtubeId}/0.jpg" loading="lazy" alt="${htmlUtil.escapeAttribute(altText)}" /> 
426            </div> 
427            <p class="youtube-blocker-text">Cette vidéo est fournie par la plateforme YouTube. En la visionnant vous acceptez les conditions d'utilisation de YouTube.</p> 
428            <div class="youtube-blocker-btn-wrapper"> 
429                <button type="button" class="youtube-blocker-btn" data-src="${urlIframePortlet?replace('youtube.com','youtube-nocookie.com')}?autoplay=1" data-title="${htmlUtil.escapeAttribute(altText)}">Voir la vidéo</button> 
430                <a href="https://www.youtube.com/static?template=terms&gl=FR" class="youtube-blocker-btn" target="_blank" rel="noopener noreferrer">En savoir plus</a> 
431            </div> 
432        </div> 
433    <#else> 
434        <iframe class="interior-article-media-iframe" src="${urlIframePortlet}" loading="lazy" title="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} allowfullscreen ></iframe> 
435    </#if> 
436</#macro> 
437 
438 
439<#macro getIframeMediaPopup imgMini urlIframePortlet altText height width > 
440    <#if imgMini != ""> 
441        <#local displayedHeight = '' /> 
442        <#if height != ""> 
443            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
444        </#if> 
445        <a class="link-iframe" href="${urlIframePortlet}" title="${htmlUtil.escapeAttribute(altText)}" target="_blank" rel="noopener noreferrer"> 
446            <img class="interior-article-media-image" src="${imgMini}" loading="lazy" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> /> 
447        </a> 
448    <#else> 
449        <h5> 
450            <a class="link-iframe" title="${htmlUtil.escapeAttribute(altText)}" href="${urlIframePortlet}" target="_blank" rel="noopener noreferrer"> 
451                ${htmlUtil.escapeAttribute(altText)} 
452            </a> 
453        </h5> 
454    </#if> 
455</#macro> 
456 
457 
458<#macro getPortletMedia urlIframePortlet height > 
459     
460    <#local displayedHeight = '' /> 
461    <#if height != ""> 
462        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
463    </#if> 
464     
465    <#local hasInstanceId = urlIframePortlet?contains('INSTANCE') /> 
466    <#local hasQueryString = urlIframePortlet?contains('?') /> 
467    <#local queryString = '' /> 
468    <#local instanceId = '' /> 
469    <#local portletName = urlIframePortlet /> 
470    <#local portletId = urlIframePortlet /> 
471    <#local fullPortletName = '' /> 
472     
473    <#if hasInstanceId> 
474        <#if hasQueryString> 
475            <#local instanceId = urlIframePortlet[(urlIframePortlet?index_of('INSTANCE')+9)..urlIframePortlet?index_of('?')-1] /> 
476        <#else> 
477            <#local instanceId = urlIframePortlet[(urlIframePortlet?index_of('INSTANCE')+9)..] /> 
478        </#if> 
479        <#local portletName = urlIframePortlet[0..(urlIframePortlet?index_of('INSTANCE'))-2] /> 
480    <#else> 
481        <#if hasQueryString> 
482            <#local portletName = urlIframePortlet[0..(urlIframePortlet?index_of('?'))-1] /> 
483        </#if> 
484    </#if> 
485     
486    <#if hasQueryString> 
487        <#local queryString = urlIframePortlet[(urlIframePortlet?index_of('?')+1)..] /> 
488    </#if> 
489     
490    <#if hasInstanceId> 
491        <#local fullPortletName = portletName+'_INSTANCE_'+instanceId /> 
492    <#else> 
493         <#local fullPortletName = portletName /> 
494    </#if> 
495 
496    <#local divId = "embedded-portlet-" + fullPortletName + randomNamespace /> 
497     
498    <#if urlIframePortlet?contains('cdalrEService') || urlIframePortlet?contains('cdalrEservice') || urlIframePortlet?contains('cuCreate')> 
499         
500        <#local queryString = queryString +"&p_l_id="+plid+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive&currentURL=" + themeDisplay.getURLCurrent() /> 
501 
502        <div id="${divId}" class="embedded-portlet" data-portlet="${fullPortletName}" data-remote-url="" data-querystring="${queryString}" ${displayedHeight}></div> 
503         
504    <#else> 
505         
506        <#local plid = themeDisplay.plid /> 
507        <#local portletURL = portletURLFactory.create(renderRequest, fullPortletName, plid, "RENDER_PHASE") /> 
508        <#local windowState = windowStateFactory.getWindowState("EXCLUSIVE") /> 
509        ${portletURL.setWindowState(windowState)} 
510        <#local remoteUrl = portletURL.toString() + "&" + queryString + "&currentURL=" + themeDisplay.getURLCurrent() /> 
511         
512        <div id="${divId}" class="embedded-portlet" data-portlet="${fullPortletName}" data-remote-url="${remoteUrl}" data-querystring="${queryString}" ${displayedHeight}></div> 
513         
514    </#if> 
515     
516</#macro> 
517 
518 
519<#macro getPortletMediaPopup imgMini urlIframePortlet altText height width > 
520     
521    <#local displayedHeight = '' /> 
522    <#if height != ""> 
523        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
524    </#if> 
525 
526    <#local hasInstanceId = urlIframePortlet?contains('INSTANCE') /> 
527    <#local hasQueryString = urlIframePortlet?contains('?') /> 
528    <#local portletId = urlIframePortlet /> 
529    <#local queryString = '' /> 
530     
531    <#if hasInstanceId> 
532        <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of(instanceId))] /> 
533    </#if> 
534    <#if hasQueryString> 
535        <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of('?')-1)] /> 
536        <#local queryString = urlIframePortlet[(urlIframePortlet?index_of('?')+1)..] /> 
537    </#if> 
538     
539    <#local divId = "embedded-portlet-" + portletId /> 
540         
541    <#if urlIframePortlet?contains('cdalrEService') || urlIframePortlet?contains('cdalrEservice')> 
542         
543        <#local queryString = queryString +"&p_l_id="+plid+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive&currentURL=" +themeDisplay.getURLCurrent() /> 
544         
545        <#local formPictoClass = "" /> 
546        <#if urlIframePortlet?contains('FiberOpticalConnectionRequest')> 
547            <#local formPictoClass = "eservice-form-opener-picto-fiber" /> 
548        <#elseif urlIframePortlet?contains('AntContact')> 
549            <#local formPictoClass = "eservice-form-opener-picto-contact" /> 
550        <#elseif urlIframePortlet?contains('ReinscriptionConservatoire')> 
551            <#local formPictoClass = "eservice-form-opener-picto-music" /> 
552        <#elseif urlIframePortlet?contains('ContactUs')> 
553            <#local formPictoClass = "eservice-form-opener-picto-contact" /> 
554        <#elseif urlIframePortlet?contains('JobApplication')> 
555            <#local formPictoClass = "eservice-form-opener-picto-job" /> 
556        <#elseif urlIframePortlet?contains('WastebinRepair')> 
557            <#local formPictoClass = "eservice-form-opener-picto-wastebin" /> 
558        <#elseif urlIframePortlet?contains('WastewaterConnection')> 
559            <#local formPictoClass = "eservice-form-opener-picto-water" /> 
560        <#elseif urlIframePortlet?contains('WastesortingTour')> 
561            <#local formPictoClass = "eservice-form-opener-picto-altriane" /> 
562        </#if> 
563         
564        <div class="link-portlet eservice-form-opener" data-divId="${divId}" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="" tabindex="0"> 
565            <div class="eservice-form-opener-picto ${formPictoClass}"></div> 
566            <p class="eservice-form-opener-text">${htmlUtil.escapeAttribute(altText)}</p> 
567        </div> 
568 
569    <#else> 
570         
571        <#local portletClass = "link-portlet" /> 
572        <#if urlIframePortlet?contains('19_WAR')> 
573            <#local portletClass = "link-portlet planning-cmd-opener" /> 
574        </#if> 
575        <#local plid = themeDisplay.plid /> 
576        <#local portletURL = portletURLFactory.create(renderRequest, portletId, plid, "RENDER_PHASE") /> 
577        <#local windowState = windowStateFactory.getWindowState("EXCLUSIVE") /> 
578        ${portletURL.setWindowState(windowState)} 
579        <#local remoteUrl = portletURL.toString() + "&" + queryString + "&currentURL=" + themeDisplay.getURLCurrent() /> 
580         
581        <div class="${portletClass}" data-divId="${divId}" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="${remoteUrl}" tabindex="0"> 
582            <img class="interior-article-media-image" src="${imgMini}" loading="lazy" alt="${altText}" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> /> 
583        </div> 
584     
585    </#if> 
586     
587</#macro> 
588 
589 
590<#function isInternalLink link> 
591  <#local internal = link?contains("www.larochelle-zerocarbone.fr") || link?contains("www2.larochelle-zerocarbone.fr") || !link?contains("//")> 
592  <#return internal> 
593</#function>