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