Détail Entité

An error occurred while processing the template.
Java method "eu.strasbourg.utils.FileEntryHelperImpl.getFileTitle(long, Locale)" threw an exception when invoked on eu.strasbourg.utils.FileEntryHelperImpl object "eu.strasbourg.utils.FileEntryHelperImpl@33050581"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign title = fileEntryHelper.getFi...  [in template "20116#20160#4906352" at line 785, column 37]
----
1<!-- Détail lieu --> 
2<#setting locale = locale /> 
3 
4<#assign imageUrl = ""/> 
5<!-- 1ère image au dessus de l'adresse --> 
6<#if entry.imagesURLs?first?has_content> 
7    <#assign imageUrl = themeDisplay.getPortalURL() + entry.imagesURLs?first?replace('@', "")?replace('cdn_hostroot_path', "") /> 
8</#if> 
9<!-- bannière --> 
10<#if entry.imageURL?has_content> 
11    <#assign imageUrl = themeDisplay.getPortalURL() + entry.imageURL?replace('@', "")?replace('cdn_hostroot_path', "") /> 
12</#if> 
13 
14<#-- Liste des infos a partager --> 
15<#assign openGraph = { 
16"og:title":"${entry.getAlias(locale)?html}", 
17"og:description":'${entry.getPresentation(locale)?replace("<[^>]*>", "", "r")?html}', 
18"og:image":"${imageUrl}" 
19} /> 
20<#-- partage de la configuration open graph dans la request --> 
21${request.setAttribute("LIFERAY_SHARED_OPENGRAPH", openGraph)} 
22 
23<#if !themeDisplay.scopeGroup.publicLayoutSet.virtualHostname?has_content || themeDisplay.scopeGroup.isStagingGroup()> 
24    <#assign homeURL = "/web${layout.group.friendlyURL}/" /> 
25<#else> 
26    <#assign homeURL = "/" /> 
27</#if> 
28 
29<#assign fileEntryHelper = serviceLocator.findService("eu.strasbourg.utils.api.FileEntryHelperService") /> 
30<#assign EventLocalService = serviceLocator.findService("eu.strasbourg.service.agenda.service.EventLocalService")/> 
31 
32<@liferay_util["body-top"]> 
33    <script> 
34        window.title = "${entry.getAlias(locale)}"; 
35        window.x = ${entry.getMercatorX()}; 
36        window.y = ${entry.getMercatorY()}; 
37    </script> 
38</@> 
39<link rel="stylesheet" href="/o/strasbourg-theme/css/leaflet.css" /> 
40 
41<@liferay_util["html-bottom"]> 
42    <script src="/o/strasbourg-theme/js/leaflet.js"></script> 
43    <script src="/o/strasbourg-theme/js/map.js"></script> 
44</@> 
45 
46<div class="seu-page-lieu"> 
47    <main class="seu-container"> 
48        <a href="#" class="add-favorites" 
49           data-type="1" 
50           data-title="${entry.getAlias(locale)}" 
51           data-url="${themeDisplay.getPortalURL()}${homeURL}lieu/-/entity/sig/${entry.getSIGid()}/${entry.getNormalizedAlias(locale)}" 
52           data-id="${entry.placeId}"> 
53            <span><@liferay_ui.message key="eu.add-to-favorite" /></span> 
54        </a> 
55        <h1>${entry.getAlias(locale)}</h1> 
56 
57        <div class="seu-flexbox"> 
58 
59            <div class="seu-container-left"> 
60 
61                <!-- Cartographie --> 
62                <div id="aroundme" class="widget" style="margin-bottom: 45px"> 
63                    <div id="aroundme__center" style="height: auto;"> 
64                        <div id="mapid" style="height: 320px" > 
65                            <div class="aroundme__ui__group" style="z-index: 401"> 
66                                <button class="aroundme__ui aroundme__ui--zoomin"></button> 
67                                <button class="aroundme__ui aroundme__ui--zoomout"></button> 
68                            </div> 
69                        </div> 
70                    </div> 
71                </div> 
72 
73                <!-- Horaires --> 
74                <#if entry.periods?has_content || entry.hasURLSchedule> 
75                    <div class="seu-wi--collapsing <#if !renderRequest.getAttribute("fromContactForm")?has_content>seu-first-opened</#if>"> 
76                        <button class="seu-toggle-collapse"> 
77                            <h2 class="schedule"><span><@liferay_ui.message key="eu.times" /></span></h2> 
78                        </button> 
79                        <div class="seu-collapsing-box"> 
80                            <#if !entry.hasURLSchedule> 
81                                <div class="seu-wi seu-wi-schedules"> 
82                                    <div class="tab-list"> 
83                                    </div> 
84                                    <div class="tab-content"> 
85                                        <!-- Jours suivants --> 
86                                        <h3 class="hidden"><@liferay_ui.message key="eu.place.next-days" /></h3> 
87                                        <div class="tab-title">${entry.getAlias(locale)}</div> 
88                                        <ul class="schedule-list"> 
89                                            <#assign daySchedulesMap = entry.getFollowingWeekSchedules(.now, locale) /> 
90                                            <#assign hasException = false /> 
91                                            <#list daySchedulesMap?keys as day> 
92                                                <!-- Correctif car suite à une modif on n'envoie plus une liste vide mais null, donc erreur freemarker --> 
93                                                <#if daySchedulesMap[day]?size != 1 || (daySchedulesMap[day]?size == 1 && daySchedulesMap[day][0]?? && daySchedulesMap[day][0]?has_content)> 
94                                                    <li> 
95                                                        <span>${day}</span> 
96                                                        <span> 
97                                                            <#list daySchedulesMap[day] as schedule> 
98                                                                <div> 
99                                                                    <#if schedule.isException() || schedule.isPublicHoliday()> 
100                                                                        <#assign hasException = true /> 
101                                                                        <#assign hasAnyException = true /> 
102                                                                    <#else> 
103                                                                        <#assign hasException = false /> 
104                                                                    </#if> 
105                                                                    <#if schedule.isClosed()> 
106                                                                        <#if hasException><span class="exception"></#if> 
107                                                                        <@liferay_ui.message key="eu.closed" /> 
108                                                                        <#if hasException></span></#if> 
109                                                                    <#elseif schedule.isAlwaysOpen()> 
110                                                                        <#if hasException><span class="exception"></#if> 
111                                                                        <@liferay_ui.message key="always-open" /> 
112                                                                        <#if hasException></span></#if> 
113                                                                    <#else> 
114                                                                        <#list schedule.openingTimes as openingTime> 
115                                                                            <div> 
116                                                                                <#if hasException><span class="exception"></#if> 
117                                                                                    ${openingTime.first} - ${openingTime.second} 
118                                                                                    <#if hasException></span></#if> 
119                                                                            </div> 
120                                                                            <#if schedule.comments[openingTime?index]?has_content> 
121                                                                            <div style="margin-top: -10px;<#if hasException>color: #F44336;</#if>">(${schedule.comments[openingTime?index]})</div> 
122                                                                        </#if> 
123                                                                        </#list> 
124                                                                    </#if> 
125                                                                </div> 
126                                                                <#if schedule.isException() || schedule.isPublicHoliday()> 
127                                                                    </span> 
128                                                        </#if> 
129                                                        </#list> 
130                                                        </span> 
131                                                    </li> 
132                                                </#if> 
133                                            </#list> 
134                                        </ul> 
135                                        <!-- Jours suivants pour les sous-lieux --> 
136                                        <#list entry.publishedSubPlaces as subPlace> 
137                                            <div class="tab-title">${subPlace.getName(locale)}</div> 
138                                            <ul class="schedule-list"> 
139                                                <#assign daySchedulesMap = subPlace.getFollowingWeekSchedules(.now, locale) /> 
140                                                <#list daySchedulesMap?keys as day> 
141                                                    <!-- Correctif car suite à une modif on n'envoie plus une liste vide mais null, donc erreur freemarker --> 
142                                                    <#if daySchedulesMap[day]?size != 1 || (daySchedulesMap[day]?size == 1 && daySchedulesMap[day][0]?? && daySchedulesMap[day][0]?has_content)> 
143                                                        <li> 
144                                                            <span>${day}</span> 
145                                                            <span> 
146                                                                <#list daySchedulesMap[day] as schedule> 
147                                                                    <div> 
148                                                                        <#if schedule.isException() || schedule.isPublicHoliday()> 
149                                                                            <#assign hasException = true /> 
150                                                                            <#assign hasAnyException = true /> 
151                                                                        <#else> 
152                                                                            <#assign hasException = false /> 
153                                                                        </#if> 
154                                                                        <#if schedule.isClosed()> 
155                                                                            <#if hasException><span class="exception"></#if> 
156                                                                            <@liferay_ui.message key="eu.closed" /> 
157                                                                            <#if hasException></span></#if> 
158                                                                        <#elseif schedule.isAlwaysOpen()> 
159                                                                            <#if hasException><span class="exception"></#if> 
160                                                                            <@liferay_ui.message key="always-open" /> 
161                                                                            <#if hasException></span></#if> 
162                                                                        <#else> 
163                                                                            <#list schedule.openingTimes as openingTime> 
164                                                                                <div> 
165                                                                                    <#if hasException><span class="exception"></#if> 
166                                                                                        ${openingTime.first} - ${openingTime.second} 
167                                                                                        <#if hasException></span></#if> 
168                                                                                </div> 
169                                                                                <#if schedule.comments[openingTime?index]?has_content> 
170                                                                                <div style="margin-top: -10px;<#if hasException>color: #F44336;</#if>">(${schedule.comments[openingTime?index]})</div> 
171                                                                            </#if> 
172                                                                            </#list> 
173                                                                        </#if> 
174                                                                    </div> 
175                                                                </#list> 
176                                                            </span> 
177                                                        </li> 
178                                                    </#if> 
179                                                </#list> 
180                                            </ul> 
181                                        </#list> 
182                                        <#if hasAnyException?has_content && hasAnyException> 
183                                            <!-- Message pour exceptions --> 
184                                            <span style="color: #F44336; font-weight: bold; font-size: 1.6rem;"><@liferay_ui.message key="eu.place.look-at-exceptionnal-schedule" /></span> 
185                                        </#if> 
186                                    </div> 
187                                    <!-- Période par défaut --> 
188                                    <#if entry.defaultPeriod?has_content> 
189                                        <div class="tab-content"> 
190                                            <h3 class="hidden">${entry.defaultPeriod.getName(locale)}</h3> 
191                                            <div class="tab-title">${entry.getAlias(locale)}</div> 
192                                            <ul class="schedule-list"> 
193                                                <#assign weekSchedules = entry.defaultPeriod.getWeekSchedule() /> 
194                                                <#assign day = 0 /> 
195                                                <#list weekSchedules as schedule> 
196                                                    <li> 
197                                                        <span><@liferay_ui.message key="jour-semaine${day}" /></span> 
198                                                        <span> 
199                                                            <#if schedule.isClosed()> 
200                                                                <@liferay_ui.message key="eu.closed" /> 
201                                                            <#elseif schedule.isAlwaysOpen()> 
202                                                                <@liferay_ui.message key="always-open" /> 
203                                                            <#else> 
204                                                                <#list schedule.openingTimes as openingTime> 
205                                                                    <div> 
206                                                                        ${openingTime.first} - ${openingTime.second} 
207                                                                    </div> 
208                                                                    <#if schedule.comments[openingTime?index]?has_content> 
209                                                                    <div style="margin-top: -10px">(${schedule.comments[openingTime?index]})</div> 
210                                                                </#if> 
211                                                                </#list> 
212                                                            </#if> 
213                                                        </span> 
214                                                    </li> 
215                                                    <#assign day = day + 1 /> 
216                                                </#list> 
217                                            </ul> 
218                                            <!-- Période par défaut pour les sous-lieux --> 
219                                            <#list entry.publishedSubPlaces as subPlace> 
220                                                <div class="tab-title">${subPlace.getName(locale)}</div> 
221                                                <ul class="schedule-list"> 
222                                                    <#assign weekSchedules = subPlace.defaultPeriod.getWeekSchedule(subPlace.subPlaceId) /> 
223                                                    <#assign day = 0 /> 
224                                                    <#list weekSchedules as schedule> 
225                                                        <li> 
226                                                            <span><@liferay_ui.message key="jour-semaine${day}" /></span> 
227                                                            <span> 
228                                                                <#if schedule.isClosed()> 
229                                                                    <@liferay_ui.message key="eu.closed" /> 
230                                                                <#elseif schedule.isAlwaysOpen()> 
231                                                                    <@liferay_ui.message key="always-open" /> 
232                                                                <#else> 
233                                                                    <#list schedule.openingTimes as openingTime> 
234                                                                        <div> 
235                                                                            ${openingTime.first} - ${openingTime.second} 
236                                                                        </div> 
237                                                                        <#if schedule.comments[openingTime?index]?has_content> 
238                                                                        <div style="margin-top: -10px">(${schedule.comments[openingTime?index]})</div> 
239                                                                    </#if> 
240                                                                    </#list> 
241                                                                </#if> 
242                                                            </span> 
243                                                        </li> 
244                                                        <#assign day = day + 1 /> 
245                                                    </#list> 
246                                                </ul> 
247                                            </#list> 
248                                        </div> 
249                                    </#if> 
250                                    <!-- Autres périodes --> 
251                                    <#list entry.nonDefaultPeriods as period> 
252                                        <div class="tab-content"> 
253                                            <h3 class="hidden">${period.getName(locale)} <div>${period.getDisplay(locale)}</div></h3> 
254                                            <div class="tab-title">${entry.getAlias(locale)}</div> 
255                                            <ul class="schedule-list"> 
256                                                <#assign weekSchedules = period.getWeekSchedule() /> 
257                                                <#assign day = 0 /> 
258                                                <#list weekSchedules as schedule> 
259                                                    <li> 
260                                                        <span><@liferay_ui.message key="jour-semaine${day}" /></span> 
261                                                        <span> 
262                                                            <div> 
263                                                                <#if schedule.isClosed()> 
264                                                                    <@liferay_ui.message key="eu.closed" /> 
265                                                                <#elseif schedule.isAlwaysOpen()> 
266                                                                    <@liferay_ui.message key="always-open" /> 
267                                                                <#else> 
268                                                                    <#list schedule.openingTimes as openingTime> 
269                                                                        <div> 
270                                                                            ${openingTime.first} - ${openingTime.second} 
271                                                                        </div> 
272                                                                        <#if schedule.comments[openingTime?index]?has_content> 
273                                                                        <div style="margin-top: -10px">(${schedule.comments[openingTime?index]})</div> 
274                                                                    </#if> 
275                                                                    </#list> 
276                                                                </#if> 
277                                                            </div> 
278                                                        </span> 
279                                                    </li> 
280                                                    <#assign day = day + 1 /> 
281                                                </#list> 
282                                            </ul> 
283                                            <!-- Autres Périodes pour les sous-lieux --> 
284                                            <#list entry.publishedSubPlaces as subPlace> 
285                                                <div class="tab-title">${subPlace.getName(locale)}</div> 
286                                                <ul class="schedule-list"> 
287                                                    <#assign weekSchedules = period.getWeekSchedule(subPlace.subPlaceId) /> 
288                                                    <#assign day = 0 /> 
289                                                    <#list weekSchedules as schedule> 
290                                                        <li> 
291                                                            <span><@liferay_ui.message key="jour-semaine${day}" /></span> 
292                                                            <span> 
293                                                                <div> 
294                                                                    <#if schedule.isClosed()> 
295                                                                        <@liferay_ui.message key="eu.closed" /> 
296                                                                    <#elseif schedule.isAlwaysOpen()> 
297                                                                        <@liferay_ui.message key="always-open" /> 
298                                                                    <#else> 
299                                                                        <#list schedule.openingTimes as openingTime> 
300                                                                            <div> 
301                                                                                ${openingTime.first} - ${openingTime.second} 
302                                                                            </div> 
303                                                                            <#if schedule.comments[openingTime?index]?has_content> 
304                                                                            <div style="margin-top: -10px">(${schedule.comments[openingTime?index]})</div> 
305                                                                        </#if> 
306                                                                        </#list> 
307                                                                    </#if> 
308                                                                </div> 
309                                                            </span> 
310                                                        </li> 
311                                                        <#assign day = day + 1 /> 
312                                                    </#list> 
313                                                </ul> 
314                                            </#list> 
315                                        </div> 
316                                    </#list> 
317                                </div> 
318                            </#if> 
319                            <div class="rte"> 
320                                <#if entry.hasURLSchedule> 
321                                    <p style="margin-bottom: 20px;"> 
322                                        <a href="${entry.getScheduleLinkURL(locale)}" target="_blank" title="${entry.getScheduleLinkName(locale)} (<@liferay_ui.message key="eu.new-window" />)"> 
323                                            <span class="seu-btn-text">${entry.getScheduleLinkName(locale)}</span> 
324                                        </a> 
325                                    </p> 
326                                </#if> 
327                                <#if entry.hasScheduleTable()> 
328                                    <p> 
329                                        <#assign assetVocabularyHelper = serviceLocator.findService("eu.strasbourg.utils.api.AssetVocabularyHelperService") /> 
330                                        <#list entry.types as type> 
331                                            <#if (assetVocabularyHelper.getCategoryProperty(type.categoryId, 'schedule') == 'true')> 
332                                                <#assign category = type /> 
333                                            </#if> 
334                                        </#list> 
335                                        <a href="${homeURL}horaires-lieux/-/schedules/category/${category.categoryId}" class="seu-btn-square--filled--second"> 
336                                            <span class="seu-btn-text"><@liferay_ui.message key="eu.see-all-schedule-of" /> ${category.getTitle(locale)?lower_case}</span> 
337                                        </a> 
338                                    </p> 
339                                </#if> 
340                                <#if !entry.hasURLSchedule> 
341                                    <!-- Liste des exceptions --> 
342                                    <#assign exceptions = entry.getPlaceScheduleExceptionFreeMarker(.now, true, locale) /> 
343                                    <#if exceptions?has_content || (hasAnyException?has_content && hasAnyException)> 
344                                        <#assign totalExceptionsCount = 0 /> 
345                                        <h3><@liferay_ui.message key="eu.exceptional-closings-openings" /></h3> 
346                                        <ul class="seu-dates-list"> 
347                                            <#list exceptions as exception> 
348                                                <#assign totalExceptionsCount++ /> 
349                                                <li> 
350                                                    <strong>${exception.getPeriodDisplay(locale)}</strong> : 
351                                                    <#if exception.isClosed()> 
352                                                        <@liferay_ui.message key="eu.closed" /> 
353                                                    <#else> 
354                                                        <#list exception.openingTimes as openingTime> 
355                                                            ${openingTime.first} - ${openingTime.second}<#sep>, </#sep> 
356                                                        </#list> 
357                                                    </#if> 
358                                                    - ${exception.description} 
359                                                </li> 
360                                            </#list> 
361                                            <#list entry.publishedSubPlaces as subPlace> 
362                                                <#assign exceptions = subPlace.getSubPlaceScheduleExceptionFreeMarker(.now, true, locale) /> 
363                                                <#if exceptions?has_content> 
364                                                    <#list exceptions as exception> 
365                                                        <#assign totalExceptionsCount++ /> 
366                                                        <li> 
367                                                            <strong>${subPlace.getName(locale)} - ${exception.getPeriodDisplay(locale)}</strong> : 
368                                                            <#if exception.isClosed()> 
369                                                                <@liferay_ui.message key="eu.closed" /> 
370                                                            <#else> 
371                                                                <#list exception.openingTimes as openingTime> 
372                                                                    ${openingTime.first} - ${openingTime.second}<#sep>, </#sep> 
373                                                                </#list> 
374                                                            </#if> 
375                                                            - ${exception.description} 
376                                                        </li> 
377                                                    </#list> 
378                                                </#if> 
379                                            </#list> 
380                                        </ul> 
381 
382                                        <#if (totalExceptionsCount > 5)> 
383                                            <div class="seu-line-left"> 
384                                                <button class="seu-see-more seu-btn-square seu-bordered seu-core"> 
385                                                    <span class="seu-flexbox"> 
386                                                        <span class="seu-btn-text seu-more"><@liferay_ui.message key="eu.see-more" /></span> 
387                                                        <span class="seu-btn-text seu-less"><@liferay_ui.message key="eu.see-less" /></span> 
388                                                        <span class="seu-btn-arrow"></span> 
389                                                    </span> 
390                                                </button> 
391                                            </div> 
392                                        </#if> 
393                                    </#if> 
394                                </#if> 
395 
396                                <#if entry.getExceptionalSchedule(locale)?has_content> 
397                                    <h3><@liferay_ui.message key="eu.exceptional-schedule" /></h3> 
398                                    ${entry.getExceptionalSchedule(locale)} 
399                                </#if> 
400                            </div> 
401                        </div> 
402                    </div> 
403                </#if> 
404 
405 
406                <!-- Présentation --> 
407                <#if entry.getPresentation(locale)?has_content> 
408                    <div class="seu-wi--collapsing <#if !entry.periods?has_content && !renderRequest.getAttribute("fromContactForm")?has_content>seu-first-opened</#if>"> 
409                        <button class="seu-toggle-collapse"> 
410                            <h2 class="description"><span><@liferay_ui.message key="eu.presentation" /></span></h2> 
411                        </button> 
412                        <div class="seu-collapsing-box"> 
413                            <div class="rte"> 
414                                ${entry.getPresentation(locale)} 
415                            </div> 
416                        </div> 
417                    </div> 
418                </#if> 
419 
420                <!-- Agenda --> 
421                <#assign placeEvents = EventLocalService.getCurrentAndFuturePublishedEventsFromPlace(entry.getSIGid()) /> 
422                <#if entry.displayEvents && placeEvents?has_content> 
423                    <div class="seu-wi--collapsing"> 
424                        <button class="seu-toggle-collapse"> 
425                            <h2 class="description"><span style="text-transform: uppercase;"><@liferay_ui.message key="agenda" /></span></h2> 
426                        </button> 
427                        <div class="seu-collapsing-box"> 
428                            <div class="seu-agenda-slider-container"> 
429                                <div class="seu-slider"> 
430                                    <#assign i=0 /> 
431                                    <#list placeEvents?sort_by("startDateFirstCurrentAndFuturePeriod") as event> 
432                                        <#if i == 5> 
433                                            <#break> 
434                                        </#if> 
435                                        <div class="seu-agenda-slider-item seu-has-ville"> 
436                                            <a href="${homeURL}evenement/-/entity/id/${event.eventId}/${event.getNormalizedTitle(locale)}" class="seu-link" title="${event.getTitle(locale)}"> 
437                                                <div class="seu-date"> 
438                                                    <div class="seu-date-sup"> 
439                                                        <#if event.firstStartDate?date == event.lastEndDate?date> 
440                                                            <span class="seu-date-prefix"><@liferay_ui.message key="eu.event.the" /></span> 
441                                                        <#else> 
442                                                            <span class="seu-date-prefix"><@liferay_ui.message key="eu.event.from-the" /></span> 
443                                                        </#if> 
444                                                        <span class="seu-date-start"></span> 
445                                                        <span class="seu-date-suffix"></span> 
446                                                    </div> 
447                                                    <div class="seu-date-end">${event.firstStartDate?date?string['dd.MM']}</div> 
448                                                </div> 
449                                                <div class="seu-title dotme" data-dot="3" style="word-wrap: break-word;">${event.getTitle(locale)}</div> 
450                                                <div class="seu-ville"> 
451                                                    ${event.getPlaceAlias(locale)} 
452                                                    <#if event.getPlaceAddress(locale)?has_content> 
453                                                        - ${event.getPlaceAddress(locale)} 
454                                                    </#if> 
455                                                    - ${event.placeZipCode} ${event.getPlaceCity(locale)} 
456                                                </div> 
457                                                <div class="seu-lead dotme is-truncated" data-dot="3" style="word-wrap: break-word;">${event.getDescription(locale)?replace("<[^>]*>", "", "r")}</div> 
458                                            </a> 
459                                        </div> 
460                                        <#assign i++> 
461                                    </#list> 
462                                </div> 
463                                <div class="owl-nav"> 
464                                    <button class="seu-owl-prev"> 
465                                        <span class="seu-picto"></span> 
466                                    </button> 
467                                    <button class="seu-owl-next"> 
468                                        <span class="seu-picto"></span> 
469                                    </button> 
470                                </div> 
471                                <div class="seu-btn-line"> 
472                                    <a href="${homeURL}agenda?idSIGPlace=${entry.getSIGid()}" class="seu-btn-square seu-filled seu-second" title="<@liferay_ui.message key="eu.all-events" />"> 
473                                        <span class="seu-flexbox"> 
474                                            <span class="seu-btn-text"><@liferay_ui.message key="eu.all-events" /></span> 
475                                            <span class="seu-btn-arrow"></span> 
476                                        </span> 
477                                    </a> 
478                                </div> 
479                            </div> 
480                        </div> 
481                    </div> 
482                </#if> 
483 
484                <!-- Activités --> 
485                <#assign activityLocalService = serviceLocator.findService("eu.strasbourg.service.activity.service.ActivityLocalService") /> 
486                <#assign placeActivityAgenda = activityLocalService.getPlaceAgenda(entry.getSIGid(), locale) /> 
487                <#if placeActivityAgenda.periods?has_content> 
488                    <div class="seu-wi--collapsing"> 
489                        <button class="seu-toggle-collapse"> 
490                            <h2 class="more"><span><@liferay_ui.message key="eu.activity.activities" /></span></h2> 
491                        </button> 
492                        <div class="seu-collapsing-box"> 
493                            <div class="seu-wi seu-wi-schedules"> 
494                                <div class="tab-list"> 
495                                    <div class="tab-menu-rwd"> 
496                                        <#list placeActivityAgenda.periods as period> 
497                                            <button class="tab-toggle <#if period?is_first>current</#if>" data-tab-target="${period?index}"> 
498                                                ${period.periodName} 
499                                            </button> 
500                                        </#list> 
501                                    </div> 
502                                    <#list placeActivityAgenda.periods as period> 
503                                        <button class="tab-toggle <#if period?is_first>current</#if>" data-tab-target="${period?index}"> 
504                                            ${period.periodName} 
505                                        </button> 
506                                    </#list> 
507                                </div> 
508                                <#list placeActivityAgenda.periods as period> 
509                                    <div class="tab-content <#if period?is_first>tabbed</#if>" data-tab-index="${period?index}"> 
510                                        <h3 class="hidden">${period.periodName}</h3> 
511                                        <#list period.courses as course> 
512                                            <div style="margin-bottom: 20px"> 
513                                                <div class="tab-title">${course.courseName}</div> 
514                                                <div class="rte" style="margin-top: -5px; margin-bottom: 10px;"> 
515                                                    <a href="${homeURL}cours/-/entity/id/${course.courseId}"><@liferay_ui.message key="eu.see-detail" /></a> 
516                                                </div> 
517                                                <ul class="schedule-list" style="margin-bottom: 10px;"> 
518                                                    <#list 0..6 as day> 
519                                                        <#assign schedules = course.getSchedulesForDay(day) /> 
520                                                        <#if schedules?has_content> 
521                                                            <li> 
522                                                                <span><@liferay_ui.message key="${course.getDayName(day)}" /></span> 
523                                                                <span> 
524                                                                    <#list schedules as schedule> 
525                                                                        ${schedule.startTime} - ${schedule.endTime}<#sep><br></#sep> 
526                                                                    </#list> 
527                                                                </span> 
528                                                            </li> 
529                                                        </#if> 
530                                                    </#list> 
531                                                </ul> 
532                                            </div> 
533                                        </#list> 
534                                    </div> 
535                                </#list> 
536                            </div> 
537                        </div> 
538                    </div> 
539                </#if> 
540 
541                <!-- Informations complémentaires --> 
542                <#if entry.getAdditionalInformation(locale)?has_content> 
543                    <div class="seu-wi--collapsing"> 
544                        <button class="seu-toggle-collapse"> 
545                            <h2 class="more"><span><@liferay_ui.message key="eu.place.additional-information" /></span></h2> 
546                        </button> 
547                        <div class="seu-collapsing-box"> 
548                            <div class="rte"> 
549                                ${entry.getAdditionalInformation(locale)} 
550                            </div> 
551                        </div> 
552                    </div> 
553                </#if> 
554 
555                <!-- Médias --> 
556                <#if entry.documentsIds?has_content || entry.videos?has_content> 
557                    <div class="seu-wi--collapsing"> 
558                        <button class="seu-toggle-collapse"> 
559                            <h2 class="media"><span><@liferay_ui.message key="eu.place.medias" /></span></h2> 
560                        </button> 
561                        <div class="seu-collapsing-box"> 
562                            <#list entry.documentsIds?split(",") as fileId> 
563                                <#if fileId?has_content> 
564                                    <#assign url = fileEntryHelper.getFileEntryURL(fileId?number) /> 
565                                    <#assign title = fileEntryHelper.getFileTitle(fileId?number, locale) /> 
566                                    <#assign size = fileEntryHelper.getReadableFileEntrySize(fileId?number, locale) /> 
567                                    <#assign extension = fileEntryHelper.getFileExtension(fileId?number) /> 
568                                    <div class="seu-wi seu-media seu-wi-download"> 
569                                        <div class="seu-media-container"> 
570                                            <div class="seu-media-left"><div class="seu-media-picto"></div></div> 
571                                            <div class="seu-media-right"> 
572                                                <div class="seu-media-text"> 
573                                                    <div class="seu-media-title">${title}</div> 
574                                                    <p>${extension?upper_case} - ${size}</p> 
575                                                </div> 
576                                                <a href="${url}" target="_blank" class="seu-media-download seu-btn-square seu-filled seu-second" title="${title} (<@liferay_ui.message key="eu.new-window" />)"> 
577                                                    <div class="seu-btn-text-editable"> 
578                                                        <span class="seu-flexbox"> 
579                                                            <span class="seu-btn-text"><@liferay_ui.message key="download" /></span> 
580                                                            <span class="seu-btn-arrow">&nbsp;</span> 
581                                                        </span> 
582                                                    </div> 
583                                                </a> 
584                                            </div> 
585                                        </div> 
586                                    </div> 
587                                </#if> 
588                            </#list> 
589                            <#list entry.videos as video> 
590                                <div class="seu-wi seu-media seu-wi-embed"> 
591                                    <div class="seu-media-container"> 
592                                        <div class="seu-media-left"> 
593                                            <div class="seu-media-picto"></div> 
594                                        </div> 
595                                        <div class="seu-media-right"> 
596                                            <div class="seu-media-text"> 
597                                                <div class="seu-media-title">${video.getTitle(locale)}</div> 
598                                                <p class="seu-media-description">${video.getDescription(locale)}</p> 
599                                            </div> 
600                                        </div> 
601                                        <div class="seu-media-bottom"> 
602                                            <div class="seu-media-ratio"> 
603                                                ${video.getPlayer(locale)} 
604                                            </div> 
605                                        </div> 
606                                    </div> 
607                                </div> 
608                            </#list> 
609                        </div> 
610                    </div> 
611                </#if> 
612 
613                <!-- Accès --> 
614                <#if entry.getAccess(locale)?has_content> 
615                    <div class="seu-wi--collapsing"> 
616                        <button class="seu-toggle-collapse"> 
617                            <h2 class="geoloc"><span><@liferay_ui.message key="access" /></span></h2> 
618                        </button> 
619                        <div class="seu-collapsing-box"> 
620                            <div class="rte"> 
621                                ${entry.getAccess(locale)} 
622                            </div> 
623                        </div> 
624                    </div> 
625                </#if> 
626 
627                <!-- Accès pour handicapés --> 
628                <#if entry.hasAnyAccessForDisabled() || entry.getAccessForDisabled(locale)?has_content> 
629                    <div class="seu-wi--collapsing"> 
630                        <button class="seu-toggle-collapse"> 
631                            <h2 class="handicap"><span><@liferay_ui.message key="eu.access-for-disabled" /></span></h2> 
632                        </button> 
633                        <div class="seu-collapsing-box"> 
634                            <#if entry.hasAnyAccessForDisabled()> 
635                                <div class="seu-svg-list"> 
636                                    <#if entry.accessForWheelchair> 
637                                        <div class="seu-picto seu-picto-wheelchair" title="<@liferay_ui.message key='eu.access-for-wheelchair' />"></div> 
638                                    </#if> 
639 
640                                    <#if entry.accessForDeaf> 
641                                        <div class="seu-picto seu-picto-deaf" title="<@liferay_ui.message key='eu.access-for-deaf' />"></div> 
642                                    </#if> 
643 
644                                    <#if entry.accessForBlind> 
645                                        <div class="seu-picto seu-picto-blind" title="<@liferay_ui.message key='eu.access-for-blind' />"></div> 
646                                    </#if> 
647 
648                                    <#if entry.accessForDeficient> 
649                                        <div class="seu-picto seu-picto-mental" title="<@liferay_ui.message key='eu.access-for-deficient' />"></div> 
650                                    </#if> 
651 
652                                    <#if entry.accessForElder> 
653                                        <div class="seu-picto seu-picto-pmr" title="<@liferay_ui.message key='eu.access-for-elder' />"></div> 
654                                    </#if> 
655                                </div> 
656                            </#if> 
657                            <#if entry.getAccessForDisabled(locale)?has_content> 
658                                <div class="rte"> 
659                                    ${entry.getAccessForDisabled(locale)} 
660                                </div> 
661                            </#if> 
662                        </div> 
663                    </div> 
664                </#if> 
665 
666                <!-- Accès --> 
667                <#if entry.getServiceAndActivities(locale)?has_content> 
668                    <div class="seu-wi--collapsing"> 
669                        <button class="seu-toggle-collapse"> 
670                            <h2 class="services"><span><@liferay_ui.message key="eu.services-and-activities" /></span></h2> 
671                        </button> 
672                        <div class="seu-collapsing-box"> 
673                            <div class="rte"> 
674                                ${entry.getServiceAndActivities(locale)} 
675                            </div> 
676                        </div> 
677                    </div> 
678                </#if> 
679 
680                <!-- Caractéristiques --> 
681                <#if entry.getCharacteristics(locale)?has_content> 
682                    <div class="seu-wi--collapsing"> 
683                        <button class="seu-toggle-collapse"> 
684                            <h2 class="caracteristiques"><span><@liferay_ui.message key="eu.features" /></span></h2> 
685                        </button> 
686                        <div class="seu-collapsing-box"> 
687                            <div class="rte"> 
688                                ${entry.getCharacteristics(locale)} 
689                            </div> 
690                        </div> 
691                    </div> 
692                </#if> 
693 
694                <!-- Contact --> 
695                <#if entry.mail?has_content> 
696                    <div class="seu-wi--collapsing <#if renderRequest.getAttribute("fromContactForm")?has_content && renderRequest.getAttribute("fromContactForm")>seu-first-opened</#if>"> 
697                        <button class="seu-toggle-collapse"> 
698                            <h2 class="contact"><span><@liferay_ui.message key="eu.contact" /></span></h2> 
699                        </button> 
700                        <div class="seu-collapsing-box white-box"> 
701                            <div class="rte"> 
702                                <@liferay_portlet.actionURL var="contactURL" name="contact"> 
703                                    <@liferay_portlet.param name="classPK" value="${entry.getPlaceId()}" /> 
704                                    <@liferay_portlet.param name="to" value="${entry.mail}" /> 
705                                    <@liferay_portlet.param name="title" value="${entry.getAlias(locale)}" /> 
706                                    <@liferay_portlet.param name="type" value="Place" /> 
707                                </@liferay_portlet.actionURL> 
708 
709                                <form id="contactForm" action="${contactURL}#contactForm" name="contactForm" method="post" class="seu-wi seu-wi-contact-form col-md-8"> 
710                                    <@liferay_ui.error key="all-fields-required" message="eu.all-fields-required" targetNode="#contactForm" /> 
711                                    <@liferay_ui.error key="invalid-mail" message="eu.invalid-mail" targetNode="#contactForm" /> 
712                                    <@liferay_ui.error key="recaptcha-error" message="eu.recaptcha-error" targetNode="#contactForm" /> 
713 
714                                    <#if renderRequest.getAttribute("mailSent")?has_content && renderRequest.getAttribute("mailSent")> 
715                                        <p class="mail-success"> 
716                                            <@liferay_ui.message key="eu.mail-success" /> 
717                                        </p> 
718                                    </#if> 
719 
720                                    <div class="inline-group"> 
721                                        <div class="widget widget-required"> 
722                                            <div class="title"> 
723                                                <label for="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_lastName"><@liferay_ui.message key="contact.lastname" /></label> 
724                                            </div> 
725                                            <div class="content"> 
726                                                <input name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_lastName" aria-required="true" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_lastName" type="text" placeholder="<@liferay_ui.message key="contact.your-lastname" />" value="${renderRequest.getAttribute("lastName")!""}"> 
727                                            </div> 
728                                        </div> 
729                                        <div class="widget widget-required"> 
730                                            <div class="title"> 
731                                                <label for="prenom"><@liferay_ui.message key="contact.firstname" /></label> 
732                                            </div> 
733                                            <div class="content"> 
734                                                <input name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_firstName" aria-required="true" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_firstName" type="text" placeholder="<@liferay_ui.message key="contact.your-firstname" />" value="${renderRequest.getAttribute("firstName")!""}"> 
735                                            </div> 
736                                        </div> 
737                                    </div> 
738                                    <div class="widget widget-required"> 
739                                        <div class="title"> 
740                                            <label for="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_email"><@liferay_ui.message key="contact.mail" /></label> 
741                                        </div> 
742                                        <div class="content"> 
743                                            <input name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_email" aria-required="true" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_email" type="text" placeholder="<@liferay_ui.message key="contact.your-mail" />" value="${renderRequest.getAttribute("email")!""}"> 
744                                        </div> 
745                                    </div> 
746                                    <div class="widget widget-required"> 
747                                        <div class="title"> 
748                                            <label for="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_message"><@liferay_ui.message key="contact.request" /></label> 
749                                        </div> 
750                                        <div class="content"> 
751                                            <textarea name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_message" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_message" placeholder="<@liferay_ui.message key="contact.your-message" />" rows="5">${renderRequest.getAttribute("message")!""}</textarea> 
752                                        </div> 
753                                    </div> 
754                                    <div> 
755                                        <label for="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_notificationEmail"> 
756 
757                                            <input type="checkbox" class="notification-email" 
758                                                   name="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_notificationEmail" id="_eu_strasbourg_portlet_entity_detail_EntityDetailPortlet_notificationEmail" checked>&nbsp;<@liferay_ui.message key="eu.do-you-want-a-notification" /> 
759                                        </label> 
760                                    </div> 
761                                    <div style="margin: 20px 0;" class="g-recaptcha" data-sitekey="${propsUtil.get('eu.strasbourg.recaptcha.public')}"></div> 
762                                    <div style="padding-top: 20px; padding-bottom: 20px;"> 
763                                        <@liferay_ui.message key="contact.default-privacy" /> 
764                                    </div> 
765                                    <div class="buttons submit"> 
766                                        <div class="SubmitWidget widget submit-button" style="min-width: 150px;"> 
767                                            <div class="content"><button name="submit" value="<@liferay_ui.message key="send" />"><@liferay_ui.message key="send" /></button></div> 
768                                        </div> 
769                                    </div> 
770                                </form> 
771                            </div> 
772                        </div> 
773                    </div> 
774                </#if> 
775            </div> 
776 
777 
778            <div class="seu-container-right"> 
779                <#if entry.imagesURLs?has_content> 
780                    <div class="seu-wi-slideNpop"> 
781                        <div class="slide"> 
782                            <ul class="slider"> 
783                                <#list entry.imageIds?split(",") as imageId> 
784                                    <#assign imageURL = fileEntryHelper.getFileEntryURL(imageId?number) /> 
785                                    <#assign title = fileEntryHelper.getFileTitle(imageId?number, locale) /> 
786                                    <#assign legend = fileEntryHelper.getImageLegend(imageId?number, locale) /> 
787                                    <#assign copyright = fileEntryHelper.getImageCopyright(imageId?number, locale) /> 
788                                    <li style="background-image: url(${imageURL});"  data-title="${title}" data-description="${legend} <#if copyright?has_content>&copy; ${copyright}</#if>"> 
789                                        <img src="${imageURL}" alt="${title}"> 
790                                    </li> 
791                                </#list> 
792                            </ul> 
793                            <div class="owl-nav"> 
794                                <button class="seu-owl-prev disabled"> 
795                                    <span class="seu-picto"></span> 
796                                </button> 
797                                <button class="seu-owl-next"> 
798                                    <span class="seu-picto"></span> 
799                                </button> 
800                            </div> 
801                        </div> 
802                        <div class="pop"> 
803                            <div class="pop-box"> 
804                                <div class="pop-head"> 
805                                    <div class="pop-title dotme">Test de titre</div> 
806                                    <button class="pop-close"></button> 
807                                </div> 
808                                <div class="owl-nav"> 
809                                    <button class="seu-owl-prev disabled"> 
810                                        <span class="seu-picto"></span> 
811                                    </button> 
812                                    <button class="seu-owl-next"> 
813                                        <span class="seu-picto"></span> 
814                                    </button> 
815                                </div> 
816                                <div class="fill"></div> 
817                                <div class="pop-foot"> 
818                                    <div class="pop-description dotme">Test description</div> 
819                                    <div class="pop-pager"> 
820                                        <div class="pop-current"></div> 
821                                        <div class="pop-total"></div> 
822                                    </div> 
823                                </div> 
824                            </div> 
825                            <div class="pop-area"> 
826 
827                            </div> 
828                        </div> 
829                    </div> 
830                </#if> 
831                <div class="seu-location-infos"> 
832                    <#if entry.isEnabled()> 
833                        <#assign occupationState = entry.getRealTime() /> 
834                        <div class="seu-crowded-flexbox"> 
835                            <div class="flex-left"> 
836                                <#assign isSwimmingPool = entry.isSwimmingPool() /> 
837                                <#assign isIceRink = entry.isIceRink() /> 
838                                <#assign isMairie = entry.isMairie() /> 
839                                <#assign isParking = entry.isParking() /> 
840                                <#assign isVelhopStation = entry.isVelhopStation() /> 
841                                <#if isSwimmingPool || isIceRink > 
842                                    <h3><@liferay_ui.message key="live-frequentation" /></h3> 
843                                <#elseif isMairie> 
844                                    <h3><@liferay_ui.message key="estimated-time" /></h3> 
845                                <#elseif isParking> 
846                                    <h3><@liferay_ui.message key="live-occupation" /></h3> 
847                                <#elseif isVelhopStation> 
848                                    <h3><@liferay_ui.message key="live-disponibility" /></h3> 
849                                </#if> 
850                            </div> 
851                            <div class="flex-right"> 
852                                <!-- green orange red black --> 
853                                <div class="crowded-amount ${occupationState.cssClass}" <#if isMairie> style="font-size: 1.5rem"</#if>> 
854                                    <#if isSwimmingPool || isIceRink || isMairie> 
855                                        ${occupationState.occupationLabel} 
856                                    <#elseif isParking || isVelhopStation> 
857                                        ${occupationState.available} 
858                                    </#if> 
859                                </div> 
860                            </div> 
861                        </div> 
862                        <div class="crowded-caption"> 
863                            <#if isSwimmingPool || isIceRink || isMairie> 
864                                <@liferay_ui.message key="${occupationState.label}" /> 
865                            <#elseif isParking> 
866                                <@liferay_ui.message key="eu.place.available-spots" /> ${occupationState.available} 
867                            <#elseif isVelhopStation> 
868                                <@liferay_ui.message key="eu.place.available-velhop" /> ${occupationState.available} 
869                            </#if> 
870                        </div> 
871                        <!-- ajout post covid : affichage capacité totale --> 
872                        <#if isSwimmingPool > 
873                            <div class="crowded-caption"> 
874                                <@liferay_ui.message key="eu.place.total-capacity" /> ${occupationState.capacity} 
875                            </div> 
876                        </#if> 
877                        <div class="crowded-fyi"> 
878                            <#if isSwimmingPool> 
879                                <@liferay_ui.message key="live-occupation-explanation" /> 
880                            <#elseif isMairie> 
881                                <@liferay_ui.message key="estimated-time-explanation" /> 
882                            <#elseif isParking> 
883                                <@liferay_ui.message key="eu.place.total-capacity" /> ${occupationState.capacity} 
884                            <#elseif isIceRink> 
885                                <@liferay_ui.message key="live-ice-rink-occupation-explanation" /> 
886                            </#if> 
887                        </div> 
888                    </#if> 
889 
890                    <h3><@liferay_ui.message key="eu.place.address-details" /></h3> 
891                    <div class="rte"> 
892                        <p> 
893                            <#if entry.addressStreet?has_content> 
894                                ${entry.addressStreet} <br> 
895                            </#if> 
896                            <#if entry.addressComplement?has_content> 
897                                ${entry.addressComplement} <br> 
898                            </#if> 
899                            <#if entry.addressDistribution?has_content> 
900                                ${entry.addressDistribution} <br> 
901                            </#if> 
902                            ${entry.addressZipCode} ${entry.getCity(locale)} 
903                        </p> 
904                        <#if entry.phone?has_content> 
905                            <p> 
906                                <@liferay_ui.message key="phone" /> : ${entry.phone} 
907                            </p> 
908                        </#if> 
909                        <#if entry.getSiteLabel(locale)?has_content && entry.getSiteURL(locale)?has_content> 
910                            <p> 
911                                <a href="${entry.getSiteURL(locale)}" class="seu-external" title="${entry.getSiteLabel(locale)} (<@liferay_ui.message key="eu.new-window" />)" target="_blank">${entry.getSiteLabel(locale)}</a> 
912                            </p> 
913                        </#if> 
914                        <#if entry.getFacebookLabel(locale)?has_content && entry.getFacebookURL(locale)?has_content> 
915                            <p> 
916                                <a href="${entry.getFacebookURL(locale)}" class="seu-external" title="${entry.getFacebookLabel(locale)} (<@liferay_ui.message key="eu.new-window" />)" target="_blank">${entry.getFacebookLabel(locale)}</a> 
917                            </p> 
918                        </#if> 
919                        <#if entry.getInstagramLabel(locale)?has_content && entry.getInstagramURL(locale)?has_content> 
920                            <p> 
921                                <a href="${entry.getInstagramURL(locale)}" class="seu-external" title="${entry.getInstagramLabel(locale)} (<@liferay_ui.message key="eu.new-window" />)" target="_blank">${entry.getInstagramLabel(locale)}</a> 
922                            </p> 
923                        </#if> 
924                    </div> 
925                </div> 
926            </div> 
927        </div> 
928    </main> 
929</div> 
930 
931<style> 
932    .lfr-alert-container { 
933        position: static; 
934        padding: 40px; 
935        margin-bottom: 25px; 
936        background: #EF5350; 
937
938 
939    .lfr-alert-container .lfr-alert-wrapper { 
940        margin-bottom: 0; 
941        padding: 0; 
942        height: auto !important; 
943
944 
945    .lfr-alert-container .lfr-alert-wrapper + .lfr-alert-wrapper { 
946        margin-top: 15px; 
947
948 
949    .lfr-alert-container .alert-danger { 
950        background: none; 
951        border: none; 
952        margin: 0; 
953        padding: 0; 
954        color: white; 
955        line-height: 25px 
956
957 
958    .lfr-alert-container .alert-danger button, 
959    .lfr-alert-container .alert-danger .lead { 
960        display: none; 
961
962 
963    .mail-success { 
964        background: #4CAF50; 
965        color: white; 
966        padding: 40px; 
967
968 
969    @media only screen and (max-width: 767px){ 
970        #aroundme .aroundme__ui__group { 
971            height: calc(100% - 20px); 
972
973
974</style> 
975<#if entry.imageURL?has_content> 
976    <script> 
977        if ($('.region-banner').length == 0) { 
978            var bannerHtml = '<div class="region-banner"></div>'; 
979            $('.region-post-header').addClass('has-banner').prepend(bannerHtml); 
980
981    </script> 
982    <style> 
983        .region-banner { 
984            background-image: url(${entry.imageURL}) !important; 
985
986    </style> 
987</#if>