Qui sommes-nous ?

La Rochelle Technopole encourage et soutient l’innovation en accompagnant l’émergence de projets et la création d’entreprises.

Retour

Au service de votre projet !

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 assetLinkLocalService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetLinkLocalService") /> 
4<#assign bookmarksEntryLocalService = serviceLocator.findService("com.liferay.portlet.bookmarks.service.BookmarksEntryLocalService") /> 
5<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService") /> 
6<#assign journalStructureLocalService = serviceLocator.findService("com.liferay.portlet.dynamicdatamapping.service.DDMStructureLocalService") /> 
7<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService") /> 
8 
9<#assign typeJournalArticle = "com.liferay.portlet.journal.model.JournalArticle" /> 
10<#assign typeBookmarksEntry = "com.liferay.portlet.bookmarks.model.BookmarksEntry" /> 
11<#assign typeDLFileEntry = "com.liferay.portlet.documentlibrary.model.DLFileEntry" /> 
12 
13<#assign journalArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
14<#assign entry = assetEntryLocalService.getEntry(typeJournalArticle, journalArticle.getResourcePrimKey()) /> 
15<#assign relatedAssetTypedLists = buildRelatedAssetTypedLists(entry, "false") /> 
16 
17<#assign jaClassNameId = classNameLocalService.getClassNameId(typeJournalArticle) /> 
18 
19<#assign pdfViewer = '/fu/js/pdfjs/web/viewer.html?zoom=page-fit&file=' /> 
20 
21<#assign anchorInProgress = "false" /> 
22<#assign carouselNb = 0 /> 
23 
24<#assign serviceContextThreadLocal = staticUtil["com.liferay.portal.service.ServiceContextThreadLocal"] /> 
25<#assign themeDisplay = serviceContextThreadLocal.getServiceContext().getThemeDisplay() /> 
26 
27<article class="interior-article"> 
28     
29    <section class="interior-article-mainContent" > 
30         
31        <h2 class="interior-article-title">${.vars['reserved-article-title'].data}</h2> 
32             
33        <#if content.getSiblings()?has_content> 
34         
35            <#list content.getSiblings() as contenu> 
36                 
37                <#assign zoomDisplay = "" /> 
38                <#if contenu.is_zoom.getData() == "true"> 
39                    <#assign zoomDisplay = "zoomed-paragraph" /> 
40                </#if> 
41                <@displayContent contenu=contenu isZoom=zoomDisplay /> 
42 
43            </#list> 
44         
45        </#if> 
46         
47        <#if anchorInProgress == "true"> 
48            </div> 
49        </#if> 
50          
51    </section> 
52     
53    <#if relatedAssetTypedLists?? && relatedAssetTypedLists?has_content > 
54        <@getCustomRelatedAssets relatedAssetTypedLists=relatedAssetTypedLists /> 
55    </#if> 
56     
57</article> 
58 
59<footer class="interior-article-footer"> 
60    <ul class="interior-article-footer-items-list"> 
61        <li class="interior-article-footer-item interior-article-print"><button type="button" class="inner-link" title="Imprimer">Imprimer</button></li> 
62        <li class="interior-article-footer-item interior-article-mail"><button type="button" class="inner-link" title="Partager par mail">Partager par mail</button></li> 
63        <li class="interior-article-footer-item interior-article-linkedin"><button type="button" class="inner-link" title="Partager sur LinkedIn">Partager sur LinkedIn</button></li> 
64        <li class="interior-article-footer-item interior-article-twitter"><button type="button" class="inner-link" title="Partager sur Twitter">Partager sur Twitter</button></li> 
65        <li class="interior-article-footer-item interior-article-facebook"><button type="button" class="inner-link" title="Partager sur Facebook">Partager sur Facebook</button></li> 
66    </ul> 
67</footer> 
68 
69 
70<#--************************************* 
71** CONTENT BLOCKS DISPLAY 
72*************************************--> 
73 
74<#macro displayContent contenu isZoom > 
75     
76    <#assign floatingMedia = "no-floating-media" /> 
77    <#assign alignValue = contenu.Media.media_options.alignment.getData() /> 
78    <#if alignValue == "fLeft" || alignValue == "fRight"> 
79        <#assign floatingMedia = "floating-media" /> 
80    </#if> 
81     
82    <#assign contentTitle = contenu.content_title.getData() /> 
83    <#assign contentText = contenu.content_text.getData() /> 
84     
85    <#assign innerMedia = contenu.Media /> 
86    <#assign mediaSrc = innerMedia.media_doc.getData()/> 
87    <#assign urlIframePortlet = innerMedia.url_iframe_portlet.getData() /> 
88         
89    <#assign anchor = "" /> 
90    <#if contenu.anchor?has_content> 
91        <#assign anchor = contenu.anchor.getData() /> 
92    </#if> 
93     
94    <#if contentTitle!="" || contentText!="" || mediaSrc!="" || urlIframePortlet !="" > 
95         
96        <#if anchor == "anchor-stop" && anchorInProgress == "true"> 
97            </div> 
98            <#assign anchor = "" /> 
99            <#assign anchorInProgress = "false" /> 
100        </#if> 
101         
102        <#if anchor != "" && contentTitle != "" > 
103            <#if anchorInProgress == "true"> 
104                </div> 
105            </#if> 
106            <h3 id="${anchor}" class="anchor-title displayed"><button type="button" class="anchor-button" role="tab" aria-expanded="true" data-anchor="${anchor}">${contentTitle}</button></h3> 
107            <div class="anchor-content"> 
108            <#assign anchorInProgress = "true" /> 
109        </#if> 
110         
111        <div class="interior-article-paragraph ${isZoom} ${floatingMedia}"> 
112             
113            <#if contentTitle != "" > 
114                <#if anchor == "" > 
115                    <h3>${contentTitle}</h3> 
116                </#if> 
117            <#else> 
118                <#if anchor != "" > 
119                    <a id="${anchor}" class="anchor-content"></a> 
120                </#if> 
121            </#if> 
122             
123            <#if floatingMedia == "no-floating-media" > 
124                 
125                ${contentText?replace("<p></p>","")} 
126                <#if innerMedia??> 
127                    <@getMedia media=innerMedia mediaSrc=mediaSrc urlIframePortlet=urlIframePortlet alignment=alignValue /> 
128                </#if> 
129                 
130                 
131            <#elseif floatingMedia == "floating-media"> 
132                 
133                <#if innerMedia??> 
134                    <@getMedia media=innerMedia mediaSrc=mediaSrc urlIframePortlet=urlIframePortlet alignment=alignValue /> 
135                </#if> 
136                ${contentText?replace("<p></p>","")} 
137                <div class="clear-float"></div> 
138                 
139            </#if> 
140             
141        </div> 
142         
143    </#if> 
144     
145</#macro> 
146 
147 
148<#--************************************* 
149** MEDIA DISPLAY 
150*************************************--> 
151 
152<#macro getMedia media mediaSrc urlIframePortlet alignment> 
153     
154    <#if mediaSrc != '' || urlIframePortlet != ''> 
155         
156        <#local mediaType = media.media_type.getData() /> 
157        <#assign carouselWrapper = "" /> 
158        <#if mediaType == "carousel"> 
159            <#assign carouselWrapper = "interior-article-media-carousel-wrapper" /> 
160        </#if> 
161        <#local width = media.media_options.width.getData() /> 
162        <#local displayWidth = '' /> 
163        <#if width == 'null'> 
164            <#local displayWidth = '' /> 
165        <#elseif width != ""> 
166            <#local displayWidth = 'style="width:'+width+'px;"' /> 
167        </#if> 
168         
169        <#local height = media.media_options.height.getData() /> 
170        <#if height == 'null'> 
171            <#local height = '' /> 
172        </#if> 
173        <#local displayMode = media.media_options.display_mode.getData() /> 
174        <#local imgMini = media.media_options.img_mini.getData() /> 
175        <#local legend = media.media_options.legend.getData() /> 
176        <#local altText = media.alt_text.getData() /> 
177        <#if altText == 'null'> 
178            <#local altText = '' /> 
179        </#if> 
180         
181        <figure class="interior-article-media interior-article-media-${alignment} ${carouselWrapper}" ${displayWidth}> 
182             
183            <#switch mediaType> 
184                <#case "image"> 
185                    <#if displayMode == "normal"> 
186                       <@getImageMedia mediaSrc=mediaSrc urlIframePortlet=urlIframePortlet altText=altText height=height /> 
187                    <#elseif displayMode == "popup"> 
188                        <@getImageMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
189                    </#if> 
190                    <#break > 
191                <#case "video"> 
192                    <#if displayMode == "normal"> 
193                       <@getVideoMedia imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
194                    <#elseif displayMode == "popup"> 
195                        <@getVideoMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
196                    </#if> 
197                    <#break > 
198                <#case "pdf"> 
199                    <#if displayMode == "normal"> 
200                       <@getPdfMedia mediaSrc=mediaSrc altText=altText height=height /> 
201                    <#elseif displayMode == "popup"> 
202                        <@getPdfMediaPopup imgMini=imgMini mediaSrc=mediaSrc altText=altText height=height /> 
203                    </#if> 
204                    <#break > 
205                <#case "iframe"> 
206                    <#if displayMode == "normal"> 
207                       <@getIframeMedia urlIframePortlet=urlIframePortlet altText=altText height=height /> 
208                    <#elseif displayMode == "popup"> 
209                        <@getIframeMediaPopup imgMini=imgMini urlIframePortlet=urlIframePortlet altText=altText height=height /> 
210                    </#if> 
211                    <#break > 
212                <#case "portlet"> 
213                    <#if displayMode == "normal"> 
214                       <@getPortletMedia urlIframePortlet=urlIframePortlet height=height /> 
215                    <#elseif displayMode == "popup"> 
216                        <@getPortletMediaPopup imgMini=imgMini urlIframePortlet=urlIframePortlet altText=altText height=height /> 
217                    </#if> 
218                    <#break > 
219                <#case "carousel"> 
220                    <#if displayMode == "normal"> 
221                       <@getCarouselMedia media=media altText=altText height=height width=width /> 
222                       <#assign carouselNb = carouselNb + 1 /> 
223                    <#elseif displayMode == "popup"> 
224                        <@getCarouselMediaPopup imgMini=imgMini media=media altText=altText height=height /> 
225                    </#if> 
226                    <#break > 
227                <#default> 
228            </#switch> 
229 
230            <#local hasLegend = legend?length != 0 /> 
231            <#if hasLegend> 
232                <figcaption class="interior-article-media-legend">${legend}</figcaption> 
233            </#if> 
234             
235        </figure> 
236         
237    </#if> 
238     
239</#macro> 
240 
241 
242<#macro getImageMedia mediaSrc urlIframePortlet altText height > 
243    <#local displayedHeight = '' /> 
244    <#if height != ""> 
245        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
246    </#if> 
247    <#if urlIframePortlet != ""> 
248        <#assign target = "href='"+ urlIframePortlet +"'" /> 
249        <#if !isInternalLink(urlIframePortlet)> 
250            <#assign target = target + " target='_blank' rel='noopener noreferrer'" /> 
251        </#if> 
252        <a ${target} title="${htmlUtil.escapeAttribute(altText)}"> 
253            <img class="interior-article-media-image" src="${mediaSrc}" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} /> 
254        </a> 
255    <#else> 
256        <img class="interior-article-media-image" src="${mediaSrc}" alt="${htmlUtil.escapeAttribute(altText)}" title="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} /> 
257    </#if> 
258</#macro> 
259 
260 
261<#macro getImageMediaPopup imgMini mediaSrc altText height > 
262    <#if imgMini != ""> 
263        <#local displayedHeight = '' /> 
264        <#if height != ""> 
265            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
266        </#if> 
267        <a class="link-img" href="${mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}"> 
268            <img class="interior-article-media-image" src="${imgMini}" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} /> 
269        </a> 
270    <#else> 
271        <a class="link-img interior-article-moreContent-doc interior-article-doc" title="${htmlUtil.escapeAttribute(altText)}" href="${mediaSrc}"> 
272            ${htmlUtil.escapeAttribute(altText)} 
273        </a> 
274    </#if> 
275</#macro> 
276 
277 
278<#macro getVideoMedia imgMini mediaSrc height altText> 
279    <#local displayedHeight = '' /> 
280    <#if height != ""> 
281        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
282    </#if> 
283    <video class="interior-article-media-video" itemprop="url" poster="${imgMini}" title="${htmlUtil.escapeAttribute(altText)}" controls="" preload="auto" ${displayedHeight} > 
284        <source itemprop="url" content="https://www2.larochelle-technopole.fr${mediaSrc}" src="${mediaSrc}" type="video/mp4"> 
285        <a href="${mediaSrc}" download="">${htmlUtil.escapeAttribute(altText)}</a> 
286    </video> 
287</#macro> 
288 
289 
290<#macro getVideoMediaPopup imgMini mediaSrc altText height > 
291    <#if imgMini != ""> 
292        <#local displayedHeight = '' /> 
293        <#if height != ""> 
294            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
295        </#if> 
296        <a class="link-video" href="${mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}"> 
297            <img class="interior-article-media-image" src="${imgMini}" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} /> 
298        </a> 
299    <#else> 
300        <a class="link-video interior-article-moreContent-doc interior-article-doc" title="${htmlUtil.escapeAttribute(altText)}" href="${mediaSrc}"> 
301            ${htmlUtil.escapeAttribute(altText)} 
302        </a> 
303    </#if> 
304</#macro> 
305 
306 
307<#macro getPdfMedia mediaSrc altText height > 
308    <#local displayedHeight = '' /> 
309    <#if height != ""> 
310        <#local displayedHeight = 'style="height:'+height+'px;"' /> 
311    </#if> 
312    <iframe class="interior-article-media-iframe" src="${pdfViewer+mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} allowfullscreen ></iframe> 
313</#macro> 
314 
315 
316<#macro getPdfMediaPopup imgMini mediaSrc altText height > 
317    <#if imgMini != ""> 
318        <#local displayedHeight = '' /> 
319        <#if height != ""> 
320            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
321        </#if> 
322        <a class="link-pdf" href="${mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}" target="_blank" rel="noopener noreferrer"> 
323            <img class="interior-article-media-image" src="${imgMini}" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} /> 
324        </a> 
325    <#else> 
326        <a class="link-pdf interior-article-moreContent-doc interior-article-doc" title="${htmlUtil.escapeAttribute(altText)}" href="${mediaSrc}" target="_blank" rel="noopener noreferrer"> 
327            ${htmlUtil.escapeAttribute(altText)} 
328        </a> 
329    </#if> 
330</#macro> 
331 
332 
333<#macro getIframeMedia urlIframePortlet altText height > 
334    <#local displayedHeight = '' /> 
335    <#if height != ""> 
336        <#local displayedHeight = 'style="height:'+height+'px;"' /> 
337    </#if> 
338    <iframe class="interior-article-media-iframe" src="${urlIframePortlet}" title="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} allowfullscreen ></iframe> 
339</#macro> 
340 
341 
342<#macro getIframeMediaPopup imgMini urlIframePortlet altText height > 
343    <#if imgMini != ""> 
344        <#local displayedHeight = '' /> 
345        <#if height != ""> 
346            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
347        </#if> 
348        <a class="link-iframe" href="${urlIframePortlet}" title="${htmlUtil.escapeAttribute(altText)}" target="_blank" rel="noopener noreferrer"> 
349            <img class="interior-article-media-image" src="${imgMini}" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} /> 
350        </a> 
351    <#else> 
352        <a class="link-iframe interior-article-moreContent-doc interior-article-doc" title="${htmlUtil.escapeAttribute(altText)}" href="${urlIframePortlet}" target="_blank" rel="noopener noreferrer"> 
353            ${htmlUtil.escapeAttribute(altText)} 
354        </a> 
355    </#if> 
356</#macro> 
357 
358 
359<#macro getCarouselMedia media altText height width >  
360     
361    <#local ratioDisplay = "" /> 
362    <#if height != "" && width != "" > 
363        <#local ratio = height?number / width?number * 100 /> 
364        <#local ratioDisplay = 'style="padding-top:' + ratio + '%"' /> 
365    </#if> 
366     
367    <div class="carousel" id="carousel-${carouselNb}" data-carousel="carousel-${carouselNb}" ${ratioDisplay}> 
368         
369        <button type="button" id="carousel-${carouselNb}-arrow-prev" data-carousel="carousel-${carouselNb}" data-direction="prev" class="carousel-arrow carousel-arrow-prev">Image précédente</button> 
370        <button type="button" id="carousel-${carouselNb}-arrow-next" data-carousel="carousel-${carouselNb}" data-direction="next" class="carousel-arrow carousel-arrow-next">Image suivante</button> 
371 
372        <#list media.media_doc.getSiblings() as node> 
373            <#if node_index == 0> 
374                <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}"> 
375            <#else> 
376                <img id="carousel-${carouselNb}-img-${node_index}" data-carousel="carousel-${carouselNb}" data-img="${node_index}" class="carousel-img carousel-img-noDisplay" src="/lr-technopole-theme/images/blank.png" data-src="${node.getData()}" alt="${altText}"> 
377            </#if> 
378        </#list> 
379 
380    </div> 
381 
382</#macro> 
383 
384 
385<#macro getCarouselMediaPopup imgMini media altText height > 
386    <#local diapos = "" /> 
387    <#list media.media_doc.getSiblings() as node> 
388        <#if node_index != 0> 
389            <#local diapos = diapos + "," /> 
390        </#if> 
391        <#local diapos = diapos + node.getData() /> 
392    </#list> 
393    <#if imgMini != ""> 
394        <#local displayedHeight = '' /> 
395        <#if height != ""> 
396            <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
397        </#if> 
398        <a class="link-diapo" href="${mediaSrc}" title="${htmlUtil.escapeAttribute(altText)}" data-diapos="${diapos}"> 
399            <img class="interior-article-media-image" src="${imgMini}" alt="${htmlUtil.escapeAttribute(altText)}" ${displayedHeight} /> 
400        </a> 
401    <#else> 
402        <a class="link-diapo interior-article-moreContent-doc interior-article-doc" title="${htmlUtil.escapeAttribute(altText)}" href="${mediaSrc}" data-diapos="${diapos}"> 
403            ${htmlUtil.escapeAttribute(altText)} 
404        </a> 
405    </#if> 
406</#macro> 
407 
408 
409<#macro getPortletMedia urlIframePortlet height > 
410     
411    <#local displayedHeight = '' /> 
412    <#if height != ""> 
413        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
414    </#if> 
415     
416    <#local hasInstanceId = urlIframePortlet?contains('INSTANCE') /> 
417    <#local hasQueryString = urlIframePortlet?contains('?') /> 
418    <#local queryString = '' /> 
419    <#local instanceId = '' /> 
420    <#local portletName = urlIframePortlet /> 
421    <#local portletId = urlIframePortlet /> 
422    <#local fullPortletName = '' /> 
423     
424    <#if hasInstanceId> 
425        <#if hasQueryString> 
426            <#local instanceId = urlIframePortlet[(urlIframePortlet?index_of('INSTANCE')+9)..urlIframePortlet?index_of('?')-1] /> 
427        <#else> 
428            <#local instanceId = urlIframePortlet[(urlIframePortlet?index_of('INSTANCE')+9)..] /> 
429        </#if> 
430        <#local portletName = urlIframePortlet[0..(urlIframePortlet?index_of('INSTANCE'))-2] /> 
431    <#else> 
432        <#if hasQueryString> 
433            <#local portletName = urlIframePortlet[0..(urlIframePortlet?index_of('?'))-1] /> 
434        </#if> 
435    </#if> 
436     
437    <#if hasQueryString> 
438        <#local queryString = urlIframePortlet[(urlIframePortlet?index_of('?')+1)..] /> 
439    </#if> 
440     
441    <#if hasInstanceId> 
442        <#local fullPortletName = portletName+'_INSTANCE_'+instanceId /> 
443    <#else> 
444         <#local fullPortletName = portletName /> 
445    </#if> 
446 
447    <#local divId = "embedded-portlet-" + fullPortletName + randomNamespace /> 
448    <#local plid = themeDisplay.plid /> 
449     
450    <#if urlIframePortlet?contains('cdalrEService') || urlIframePortlet?contains('cdalrEservice') || urlIframePortlet?contains('cuCreate')> 
451         
452        <#local queryString = queryString +"&p_l_id="+plid+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive&currentURL=" + themeDisplay.getURLCurrent() /> 
453 
454        <div id="${divId}" class="embedded-portlet" data-portlet="${fullPortletName}" data-remote-url="" data-querystring="${queryString}" ${displayedHeight}></div> 
455         
456    <#else> 
457         
458        <#local plid = themeDisplay.plid /> 
459        <#local portletURL = portletURLFactory.create(renderRequest, fullPortletName, plid, "RENDER_PHASE") /> 
460        <#local windowState = windowStateFactory.getWindowState("EXCLUSIVE") /> 
461        ${portletURL.setWindowState(windowState)} 
462        <#local remoteUrl = portletURL.toString() + "&" + queryString + "&currentURL=" + themeDisplay.getURLCurrent() /> 
463         
464        <div id="${divId}" class="embedded-portlet" data-portlet="${fullPortletName}" data-remote-url="${remoteUrl}" data-querystring="${queryString}" ${displayedHeight}></div> 
465         
466    </#if> 
467     
468</#macro> 
469 
470 
471<#macro getPortletMediaPopup imgMini urlIframePortlet altText height > 
472     
473    <#local displayedHeight = '' /> 
474    <#if height != ""> 
475        <#local displayedHeight = 'style="max-height:'+height+'px;"' /> 
476    </#if> 
477 
478    <#local hasInstanceId = urlIframePortlet?contains('INSTANCE') /> 
479    <#local hasQueryString = urlIframePortlet?contains('?') /> 
480    <#local portletId = urlIframePortlet /> 
481    <#local queryString = '' /> 
482     
483    <#if hasInstanceId> 
484        <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of(instanceId))] /> 
485    </#if> 
486    <#if hasQueryString> 
487        <#local portletId = urlIframePortlet[0..(urlIframePortlet?index_of('?')-1)] /> 
488        <#local queryString = urlIframePortlet[(urlIframePortlet?index_of('?')+1)..] /> 
489    </#if> 
490     
491    <#local divId = "embedded-portlet-" + portletId /> 
492     
493    <#if themeDisplay?? && themeDisplay.plid?? > 
494         
495        <#local plid = themeDisplay.plid /> 
496     
497        <#if urlIframePortlet?contains('cdalrEService') || urlIframePortlet?contains('cdalrEservice')> 
498             
499            <#local queryString = queryString +"&p_l_id="+plid+"&p_p_lifecycle=0&p_p_mode=view&p_p_state=exclusive&currentURL=" +themeDisplay.getURLCurrent() /> 
500             
501            <#local formPictoClass = "" /> 
502            <#if urlIframePortlet?contains('FiberOpticalConnectionRequest')> 
503                <#local formPictoClass = "eservice-form-opener-picto-fiber" /> 
504            <#elseif urlIframePortlet?contains('AntContact')> 
505                <#local formPictoClass = "eservice-form-opener-picto-contact" /> 
506            <#elseif urlIframePortlet?contains('ReinscriptionConservatoire')> 
507                <#local formPictoClass = "eservice-form-opener-picto-music" /> 
508            <#elseif urlIframePortlet?contains('ContactUs')> 
509                <#local formPictoClass = "eservice-form-opener-picto-contact" /> 
510            <#elseif urlIframePortlet?contains('JobApplication')> 
511                <#local formPictoClass = "eservice-form-opener-picto-job" /> 
512            <#elseif urlIframePortlet?contains('WastebinRepair')> 
513                <#local formPictoClass = "eservice-form-opener-picto-wastebin" /> 
514            <#elseif urlIframePortlet?contains('WastewaterConnection')> 
515                <#local formPictoClass = "eservice-form-opener-picto-water" /> 
516            <#elseif urlIframePortlet?contains('WastesortingTour')> 
517                <#local formPictoClass = "eservice-form-opener-picto-altriane" /> 
518            </#if> 
519             
520            <div class="link-portlet eservice-form-opener" data-divId="${divId}" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="" tabindex="0"> 
521                <div class="eservice-form-opener-picto ${formPictoClass}"></div> 
522                <p class="eservice-form-opener-text">${htmlUtil.escapeAttribute(altText)}</p> 
523            </div> 
524 
525        <#else> 
526             
527            <#local portletClass = "link-portlet" /> 
528            <#if urlIframePortlet?contains('19_WAR')> 
529                <#local portletClass = "link-portlet planning-cmd-opener" /> 
530            </#if> 
531            <#local plid = themeDisplay.plid /> 
532            <#local portletURL = portletURLFactory.create(renderRequest, portletId, plid, "RENDER_PHASE") /> 
533            <#local windowState = windowStateFactory.getWindowState("EXCLUSIVE") /> 
534            ${portletURL.setWindowState(windowState)} 
535            <#local remoteUrl = portletURL.toString() + "&" + queryString + "&currentURL=" + themeDisplay.getURLCurrent() /> 
536             
537            <div class="${portletClass}" data-divId="${divId}" data-portlet="${portletId}" data-querystring="${queryString}" data-remote-url="${remoteUrl}" tabindex="0"> 
538                <img class="interior-article-media-image" src="${imgMini}" alt="${altText}" ${displayedHeight} /> 
539            </div> 
540         
541        </#if> 
542         
543    </#if> 
544     
545</#macro> 
546 
547 
548<#--************************************* 
549**  RELATED CONTENT 
550*************************************--> 
551 
552<#function buildRelatedAssetTypedLists entry info > 
553	<#assign relatedAssetTypedLists = {} /> 
554	<#assign infos = "" /> 
555	<#assign assetLinks = assetLinkLocalService.getDirectLinks(entry.getEntryId()) /> 
556 
557	<#list assetLinks as assetLink> 
558		<#if assetLink.getEntryId1() == entry.getEntryId() > 
559		    <#assign assetLinkEntry = assetEntryLocalService.getEntry(assetLink.getEntryId2()) /> 
560		<#else> 
561			<#assign assetLinkEntry = assetEntryLocalService.getEntry(assetLink.getEntryId1()) /> 
562		</#if> 
563		 
564		<#if assetLinkEntry?? && assetLinkEntry.isVisible() > 
565			<#assign linkedAssetRenderer = assetLinkEntry.getAssetRenderer() /> 
566	 
567			<#if linkedAssetRenderer.hasViewPermission(permissionChecker) > 
568			 
569				<#assign type = assetLinkEntry.getClassName() /> 
570				 
571				<#assign newEntry = [{"assetEntry":assetLinkEntry,"assetLink":assetLink}] /> 
572				<#if relatedAssetTypedLists?keys?seq_contains(type)> 
573					<#assign relatedAssetTypedList = relatedAssetTypedLists[type] + newEntry /> 
574				<#else> 
575					<#assign relatedAssetTypedList = newEntry /> 
576				</#if> 
577				<#assign relatedAssetTypedLists = relatedAssetTypedLists + {type : relatedAssetTypedList} /> 
578			</#if> 
579		</#if> 
580	</#list> 
581	 
582	<#if info == "true"> 
583		<#return infos /> 
584	<#else> 
585		<#return relatedAssetTypedLists /> 
586	</#if> 
587	<#return {} /> 
588</#function> 
589 
590 
591<#macro getCustomRelatedAssets relatedAssetTypedLists> 
592    <#local hasRelatedAssets = "false" /> 
593	<#if relatedAssetTypedLists[typeDLFileEntry]?? && relatedAssetTypedLists[typeDLFileEntry]?size != 0> 
594		<#local hasRelatedAssets = "true" /> 
595	</#if> 
596	<#if hasRelatedAssets == "true" > 
597        <aside class="interior-article-moreContent-container"> 
598            <#if relatedAssetTypedLists[typeDLFileEntry]?? && relatedAssetTypedLists[typeDLFileEntry]?has_content > 
599                <@getRelatedDocuments assets=relatedAssetTypedLists[typeDLFileEntry] /> 
600            </#if> 
601        </aside> 
602    </#if> 
603</#macro> 
604 
605 
606<#macro getRelatedDocuments assets> 
607     
608    <#if assets?has_content && assets?size != 0> 
609         
610        <ul class="interior-article-moreContent-docs"> 
611             
612            <#local orderedAssets = getOrderedAssets(assets) /> 
613            <#list orderedAssets?reverse as assetMap> 
614                 
615                <#local assetDocEntry = assetMap.assetEntry /> 
616                <#local docEntry = dlFileEntryLocalService.getFileEntry(assetDocEntry.getClassPK()) /> 
617                 
618                <#if assetDocEntry.getAssetRenderer()??> 
619                 
620                    <#local linkedAssetRenderer = assetDocEntry.getAssetRenderer() /> 
621                     
622                    <#local assetLinkEntryTitle = assetDocEntry.getTitle(locale) /> 
623                    <#local assetLinkEntryDescription = assetDocEntry.getDescription(locale) /> 
624                    <#local assetURL = linkedAssetRenderer.getURLDownload(themeDisplay) /> 
625                     
626                    <#local extension = docEntry.getLatestFileVersion(true).getExtension() /> 
627                    <#local extensionType = "" /> 
628                    <#switch extension> 
629                        <#case "pdf"> 
630                            <#local extensionType = "link-pdf" /> 
631                            <#break> 
632                        <#case "jpg"> 
633                            <#local extensionType = "link-img" /> 
634                            <#break> 
635                        <#case "png"> 
636                            <#local extensionType = "link-img" /> 
637                            <#break> 
638                        <#case "mp4"> 
639                            <#local extensionType = "link-video" /> 
640                            <#break> 
641                        <#default> 
642                    </#switch> 
643                     
644                    <#local target = " href='"+ assetURL +"'" /> 
645                     
646                    <li class="interior-article-moreContent-doc-item" data-entry-id="${assetDocEntry.entryId}"> 
647                       <a ${target} class="inner-link interior-article-moreContent-doc ${extensionType}" title="${htmlUtil.escapeAttribute(assetLinkEntryDescription)}" > 
648                            ${assetLinkEntryTitle} <span class="interior-article-moreContent-aria">Ouvrir dans un nouvel onglet</span> 
649                        </a>  
650                    </li> 
651                     
652                </#if> 
653                 
654            </#list> 
655             
656        </ul> 
657         
658    </#if> 
659     
660</#macro> 
661 
662 
663<#function getOrderedAssets assets> 
664    <#local orderedAssets = [] /> 
665    <#local assetsWithDate = [] /> 
666    <#list assets as assetMap> 
667        <#local asset = assetMap.assetEntry /> 
668        <#local modifiedDate = asset.getModifiedDate() /> 
669        <#local assetsWithDate = assetsWithDate + [{'assetMap':assetMap,'modifiedDate':modifiedDate}] /> 
670    </#list> 
671    <#list assetsWithDate?sort_by('modifiedDate') as orderedAsset> 
672        <#local orderedAssets = orderedAssets + [orderedAsset.assetMap] /> 
673    </#list> 
674    <#return orderedAssets> 
675</#function> 
676 
677 
678<#function getOrderedDocs docs> 
679    <#local orderedDocs = [] /> 
680    <#local docsWithDate = [] /> 
681    <#list docs as docMap> 
682        <#local doc = assetEntryLocalService.getEntry(docMap.getGroupId(),docMap.getUuid()) /> 
683        <#local modifiedDate = doc.getModifiedDate() /> 
684        <#local docsWithDate = docsWithDate + [{'docMap':docMap,'modifiedDate':modifiedDate}] /> 
685    </#list> 
686    <#list docsWithDate?sort_by('modifiedDate') as orderedDoc> 
687        <#local orderedDocs = orderedDocs + [orderedDoc.docMap] /> 
688    </#list> 
689    <#return orderedDocs> 
690</#function> 
691 
692 
693<#function isInternalLink link> 
694  <#local internal = link?contains("www.agglo-larochelle.fr") || link?contains("www2.agglo-larochelle.fr") || link?contains("www-new.agglo-larochelle.fr") || !link?contains("//")> 
695  <#return internal> 
696</#function> 
697 
698 
699<#function getField journalArticle fieldName> 
700    <#local fieldValue = ''/> 
701     <#local document = saxReaderUtil.read(journalArticle.getContent()) /> 
702     <#local rootElement = document.getRootElement() /> 
703     <#if (rootElement?? && rootElement?has_content)> 
704        <#local xPathSelector =  saxReaderUtil.createXPath("dynamic-element[@name='"+fieldName+"']/dynamic-content") /> 
705        <#if (validator.isNotNull(xPathSelector))> 
706            <#local nbNodes = xPathSelector.selectNodes(rootElement)?size /> 
707            <#if (nbNodes &gt; 0)> 
708                <#local fieldValue = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 
709            </#if> 
710         </#if> 
711     <#return fieldValue /> 
712     </#if> 
713 </#function> 

Ils en parlent