Travailler les puits de carbone - Travailler les puits de carbone
Travailler les puits de carbone
Une erreur s'est produite en traitant le calibre.
Error executing macro: getPdfMediaPopup required parameter: width is not specified.
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 <#assign ariaHidden = '' />
436 <#if urlIframePortlet?contains("/carto/")>
437 <#assign ariaHidden = 'aria-hidden="true"' />
438 </#if>
439 <iframe class="interior-article-media-iframe" src="${urlIframePortlet}" loading="lazy" title="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} ${ariaHidden} allowfullscreen ></iframe>
440 </#if>
441</#macro>
442
443
444<#macro getIframeMediaPopup imgMini urlIframePortlet altText height width >
445 <#if imgMini != "">
446 <#local displayedHeight = '' />
447 <#if height != "">
448 <#local displayedHeight = 'style="max-height:'+height+'px;"' />
449 </#if>
450 <a class="link-iframe" href="${urlIframePortlet}" title="${htmlUtil.escapeAttribute(altText)}" target="_blank" rel="noopener noreferrer">
451 <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> />
452 </a>
453 <#else>
454 <h5>
455 <a class="link-iframe" title="${htmlUtil.escapeAttribute(altText)}" href="${urlIframePortlet}" target="_blank" rel="noopener noreferrer">
456 ${htmlUtil.escapeAttribute(altText)}
457 </a>
458 </h5>
459 </#if>
460</#macro>
461
462
463<#macro getPortletMedia urlIframePortlet height >
464
465 <#local displayedHeight = '' />
466 <#if height != "">
467 <#local displayedHeight = 'style="max-height:'+height+'px;"' />
468 </#if>
469
470 <#local hasInstanceId = urlIframePortlet?contains('INSTANCE') />
471 <#local hasQueryString = urlIframePortlet?contains('?') />
472 <#local queryString = '' />
473 <#local instanceId = '' />
474 <#local portletName = urlIframePortlet />
475 <#local portletId = urlIframePortlet />
476 <#local fullPortletName = '' />
477
478 <#if hasInstanceId>
479 <#if hasQueryString>
480 <#local instanceId = urlIframePortlet[(urlIframePortlet?index_of('INSTANCE')+9)..urlIframePortlet?index_of('?')-1] />
481 <#else>
482 <#local instanceId = urlIframePortlet[(urlIframePortlet?index_of('INSTANCE')+9)..] />
483 </#if>
484 <#local portletName = urlIframePortlet[0..(urlIframePortlet?index_of('INSTANCE'))-2] />
485 <#else>
486 <#if hasQueryString>
487 <#local portletName = urlIframePortlet[0..(urlIframePortlet?index_of('?'))-1] />
488 </#if>
489 </#if>
490
491 <#if hasQueryString>
492 <#local queryString = urlIframePortlet[(urlIframePortlet?index_of('?')+1)..] />
493 </#if>
494
495 <#if hasInstanceId>
496 <#local fullPortletName = portletName+'_INSTANCE_'+instanceId />
497 <#else>
498 <#local fullPortletName = portletName />
499 </#if>
500
501 <#local divId = "embedded-portlet-" + fullPortletName + randomNamespace />
502
503 <#if urlIframePortlet?contains('cdalrEService') || urlIframePortlet?contains('cdalrEservice') || urlIframePortlet?contains('cuCreate')>
504
505 <#local queryString = queryString +"&p_l_id="+plid+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive¤tURL=" + themeDisplay.getURLCurrent() />
506
507 <div id="${divId}" class="embedded-portlet" data-portlet="${fullPortletName}" data-remote-url="" data-querystring="${queryString}" ${displayedHeight}></div>
508
509 <#else>
510
511 <#local plid = themeDisplay.plid />
512 <#local portletURL = portletURLFactory.create(renderRequest, fullPortletName, plid, "RENDER_PHASE") />
513 <#local windowState = windowStateFactory.getWindowState("EXCLUSIVE") />
514 ${portletURL.setWindowState(windowState)}
515 <#local remoteUrl = portletURL.toString() + "&" + queryString + "¤tURL=" + themeDisplay.getURLCurrent() />
516
517 <div id="${divId}" class="embedded-portlet" data-portlet="${fullPortletName}" data-remote-url="${remoteUrl}" data-querystring="${queryString}" ${displayedHeight}></div>
518
519 </#if>
520
521</#macro>
522
523
524<#macro getPortletMediaPopup imgMini urlIframePortlet altText height width >
525
526 <#local displayedHeight = '' />
527 <#if height != "">
528 <#local displayedHeight = 'style="max-height:'+height+'px;"' />
529 </#if>
530
531 <#local hasInstanceId = urlIframePortlet?contains('INSTANCE') />
532 <#local hasQueryString = urlIframePortlet?contains('?') />
533 <#local portletId = urlIframePortlet />
534 <#local queryString = '' />
535
536 <#if hasInstanceId>
537 <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of(instanceId))] />
538 </#if>
539 <#if hasQueryString>
540 <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of('?')-1)] />
541 <#local queryString = urlIframePortlet[(urlIframePortlet?index_of('?')+1)..] />
542 </#if>
543
544 <#local divId = "embedded-portlet-" + portletId />
545
546 <#if urlIframePortlet?contains('cdalrEService') || urlIframePortlet?contains('cdalrEservice')>
547
548 <#local queryString = queryString +"&p_l_id="+plid+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive¤tURL=" +themeDisplay.getURLCurrent() />
549
550 <#local formPictoClass = "" />
551 <#if urlIframePortlet?contains('FiberOpticalConnectionRequest')>
552 <#local formPictoClass = "eservice-form-opener-picto-fiber" />
553 <#elseif urlIframePortlet?contains('AntContact')>
554 <#local formPictoClass = "eservice-form-opener-picto-contact" />
555 <#elseif urlIframePortlet?contains('ReinscriptionConservatoire')>
556 <#local formPictoClass = "eservice-form-opener-picto-music" />
557 <#elseif urlIframePortlet?contains('ContactUs')>
558 <#local formPictoClass = "eservice-form-opener-picto-contact" />
559 <#elseif urlIframePortlet?contains('JobApplication')>
560 <#local formPictoClass = "eservice-form-opener-picto-job" />
561 <#elseif urlIframePortlet?contains('WastebinRepair')>
562 <#local formPictoClass = "eservice-form-opener-picto-wastebin" />
563 <#elseif urlIframePortlet?contains('WastewaterConnection')>
564 <#local formPictoClass = "eservice-form-opener-picto-water" />
565 <#elseif urlIframePortlet?contains('WastesortingTour')>
566 <#local formPictoClass = "eservice-form-opener-picto-altriane" />
567 </#if>
568
569 <div class="link-portlet eservice-form-opener" data-divId="${divId}" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="" tabindex="0">
570 <div class="eservice-form-opener-picto ${formPictoClass}"></div>
571 <p class="eservice-form-opener-text">${htmlUtil.escapeAttribute(altText)}</p>
572 </div>
573
574 <#else>
575
576 <#local portletClass = "link-portlet" />
577 <#if urlIframePortlet?contains('19_WAR')>
578 <#local portletClass = "link-portlet planning-cmd-opener" />
579 </#if>
580 <#local plid = themeDisplay.plid />
581 <#local portletURL = portletURLFactory.create(renderRequest, portletId, plid, "RENDER_PHASE") />
582 <#local windowState = windowStateFactory.getWindowState("EXCLUSIVE") />
583 ${portletURL.setWindowState(windowState)}
584 <#local remoteUrl = portletURL.toString() + "&" + queryString + "¤tURL=" + themeDisplay.getURLCurrent() />
585
586 <div class="${portletClass}" data-divId="${divId}" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="${remoteUrl}" tabindex="0">
587 <img class="interior-article-media-image" src="${imgMini}" loading="lazy" alt="${altText}" ${displayedHeight} <#if width!=""> width="${width}"</#if> <#if height!=""> height="${height}"</#if> />
588 </div>
589
590 </#if>
591
592</#macro>
593
594
595<#function isInternalLink link>
596 <#local internal = link?contains("www.larochelle-zerocarbone.fr") || link?contains("www2.larochelle-zerocarbone.fr") || !link?contains("//")>
597 <#return internal>
598</#function>