Détail Entité

Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> entry.getEvents  [in template "20116#20160#615282" at line 153, column 39]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign events = entry.getEvents()  [in template "20116#20160#615282" at line 153, column 21]
----
1<!-- Détail lieu --> 
2<#setting locale = locale /> 
3<#setting date_format="d MMMM yyyy"> 
4 
5<#if entry?has_content> 
6    <div class="place-detail"> 
7 
8        <div class="place-header"> 
9            <h1 class="place-title">${entry.getAlias(locale)}</h1> 
10 
11            <div class="place-address"> 
12                <#if entry.addressStreet?has_content> 
13                    ${entry.addressStreet} - 
14                </#if> 
15                <#if entry.addressComplement?has_content> 
16                    ${entry.addressComplement} - 
17                </#if> 
18                <#if entry.addressDistribution?has_content> 
19                    ${entry.addressDistribution} - 
20                </#if> 
21                ${entry.addressZipCode} ${entry.getCity(locale)} 
22            </div> 
23 
24            <#if entry.phone?has_content> 
25                <div class="place-phone"> 
26                    <@liferay_ui.message key="phone" /> ${entry.phone} 
27                </div> 
28            </#if> 
29 
30            <#if entry.mail?has_content || (entry.getFacebookLabel(locale)?has_content && entry.getFacebookURL(locale)?has_content)> 
31                <div class="place-links"> 
32                     
33                    <#if entry.getFacebookLabel(locale)?has_content && entry.getFacebookURL(locale)?has_content > 
34                        <a href="${entry.getFacebookURL(locale)}" title="${entry.getFacebookLabel(locale)} (<@liferay_ui.message key="eu.new-window" />)" target="_blank"> 
35                            ${entry.getFacebookLabel(locale)} 
36                        </a>  
37                    </#if> 
38                </div> 
39            </#if> 
40        </div> 
41 
42        <div class="place-info"> 
43            <div class="place-60"> 
44                <!-- <div class="google-map" data-zoom="13"> 
45                    <div class="marker" data-lat="${entry.mercatorY}" data-lng="${entry.mercatorX}" data-icon="img/design/gmap-markers.png"> 
46                    </div> 
47                </div> --> 
48 
49                <#if entry.getAccess(locale)?has_content > 
50                    <div class="place-info-section"> 
51                        <h4> 
52                            <@liferay_ui.message key="access" /> 
53                        </h4> 
54                        ${entry.getAccess(locale)} 
55                    </div> 
56                </#if> 
57 
58                <#if entry.getCharacteristics(locale)?has_content > 
59                    <div class="place-info-section"> 
60                        <h4> 
61                            <@liferay_ui.message key="eu.confort-and-equipment" /> 
62                        </h4> 
63                        ${entry.getCharacteristics(locale)} 
64                    </div> 
65                </#if> 
66 
67                <#if entry.getServiceAndActivities(locale)?has_content > 
68                    <div class="place-info-section"> 
69                        <h4> 
70                            <@liferay_ui.message key="eu.services-and-activities" /> 
71                        </h4> 
72                        ${entry.getServiceAndActivities(locale)} 
73                    </div> 
74                </#if> 
75 
76                <#if entry.hasAnyAccessForDisabled() || entry.getAccessForDisabled(locale)?has_content > 
77                    <div class="place-info-section"> 
78                        <h4> 
79                            <@liferay_ui.message key="eu.access-for-disabled" /> 
80                        </h4> 
81                       
82                        <#if entry.hasAnyAccessForDisabled() > 
83                            <div class="access-for-disabled-icons"> 
84                                <#if entry.accessForWheelchair> 
85                                    <img src="/o/placeweb/images/access-for-wheelchair.png" 
86                                        title="<@liferay_ui.message key='eu.access-for-wheelchair' />" 
87                                        alt="<@liferay_ui.message key='access-for-wheelchair' />"> 
88                                </#if> 
89                                <#if entry.accessForBlind> 
90                                    <img src="/o/placeweb/images/access-for-blind.png" 
91                                        title="<@liferay_ui.message key='eu.access-for-blind' />" 
92                                        alt="<@liferay_ui.message key='access-for-blind' />"> 
93                                </#if> 
94                                <#if entry.accessForDeaf> 
95                                    <img src="/o/placeweb/images/access-for-deaf.png" 
96                                        title="<@liferay_ui.message key='eu.access-for-deaf' />" 
97                                        alt="<@liferay_ui.message key='access-for-deaf' />"> 
98                                </#if> 
99                                <#if entry.accessForElder> 
100                                    <img src="/o/placeweb/images/access-for-elder.png" 
101                                        title="<@liferay_ui.message key='eu.access-for-elder' />" 
102                                        alt="<@liferay_ui.message key='access-for-elder' />"> 
103                                </#if> 
104                                <#if entry.accessForDeficient> 
105                                    <img src="/o/placeweb/images/access-for-deficient.png" 
106                                        title="<@liferay_ui.message key='eu.access-for-deficient' />" 
107                                        alt="<@liferay_ui.message key='access-for-deficient' />"> 
108                                </#if> 
109                            </div> 
110                        </#if> 
111                        ${entry.getAccessForDisabled(locale)} 
112                    </div> 
113                </#if> 
114 
115                <!-- Widget Bloc Contenus associés --> 
116                <#assign contenus = entry.getRandomContents() /> 
117                <#if contenus?has_content> 
118                    <div class="items-carousel places-carousel"> 
119                        <h4 class="items-carousel-title"> 
120                            <@liferay_ui.message key="associated-content" />    
121                        </h4> 
122                        <div class="owl-carousel"> 
123                            <#list contenus as contenu> 
124                                <div class="item">  
125                                    <div class="item-image"> 
126                                        <#assign class = contenu.getClassNameId() />   
127                                        <#if class == 20015>   
128                                            <#assign image = contenu.getAssetRenderer().getAssetObject() /> 
129                                            <#assign imageURL = entry.getImageURL(image.getFileEntryId()) /> 
130                                            <#assign imageTitle = entry.getImageCopyright(image.getFileEntryId(), locale) /> 
131                                            <img src="${imageURL}" > 
132                                            <div class="item-title"> 
133                                                <h4>${imageTitle}</h4> 
134                                            </div> 
135                                        <#else>   
136                                            <#assign video = contenu.getAssetRenderer().getAssetObject() />  
137                                            <a href="/web${layout.group.friendlyURL}/detail-video/-/entity/id/${video.videoId}" target="_blank"> 
138                                                <img src="${video.imageURL}" > 
139                                            </a> 
140                                            <div class="item-title"> 
141                                                <h4><a href="/web${layout.group.friendlyURL}/detail-video/-/entity/id/${video.videoId}" target="_blank">${video.getTitle(locale)}</a></h4> 
142                                            </div> 
143                                        </#if>   
144                                    </div> 
145                                </div>    
146                            </#list> 
147                        </div> 
148                    </div> 
149                </#if> 
150 
151                <!-- Widget Bloc Agenda --> 
152                <#if entry.displayEvents> 
153                    <#assign events = entry.getEvents() /> 
154                    <#if events?has_content> 
155                        <div class="agenda-collections-carousel"> 
156                            <h4 class="agenda-carousel-title"> 
157                                <@liferay_ui.message key="eu.agenda-and-exposition" /> 
158                            </h4> 
159                            <div class="owl-carousel"> 
160                                <#list events as event> 
161                                    <div class="item">  
162                                        <div class="item-image"> 
163                                            <a href="/web${layout.group.friendlyURL}/evenement-des-musees-de-strasbourg/-/entity/id/${event.eventId}"> 
164                                                <img src="${event.getImageURL()}" > 
165                                            </a> 
166                                        </div> 
167                                        <div class="item-info"> 
168                                            <div class="item-date"> 
169                                                <date>${event.getEventScheduleDisplay(locale)}</date> 
170                                            </div> 
171                                            <div class="item-title"> 
172                                                <h4><a href="/web${layout.group.friendlyURL}/evenement-des-musees-de-strasbourg/-/entity/id/${event.eventId}">${event.getTitle(locale)}</a></h4> 
173                                                <h5 style="margin-bottom: 25px"><a href="/web${layout.group.friendlyURL}/evenement-des-musees-de-strasbourg/-/entity/id/${event.eventId}">${event.getSubtitle(locale)}</a></h5> 
174                                            </div> 
175                                        </div> 
176                                    </div> 
177                                </#list> 
178                            </div> 
179                        </div> 
180                    </#if> 
181                </#if> 
182 
183 
184          
185            </div> 
186            <div class="place-40"> 
187                <div class="image-with-copyright-on-hover"> 
188                    <img src="${entry.getImageURL()}" class="lightbox"> 
189                    <#if entry.getImageCopyright(locale)?has_content> 
190                        <div class="image-copyright"> 
191                            ${entry.getImageCopyright(locale)} 
192                        </div> 
193                    </#if> 
194                </div> 
195                <#if entry.periods?has_content> 
196	                <div class="place-info-section"> 
197	                    <h4> 
198	                        <@liferay_ui.message key="eu.times" /> 
199	                        <#assign types = entry.getTypes() /> 
200	                        <#if types?has_content> 
201	                        	<#assign categoriesIds = "" /> 
202	                            <#list types as type> 
203	                                <#if type?counter == 1 > 
204	                        			<#assign categoriesIds = type.getCategoryId() /> 
205	                                <#else>  
206	                        			<#assign categoriesIds = categoriesIds + "," + type.getCategoryId() /> 
207	                                </#if>  
208	                            </#list> 
209	                            <a href="/tous-les-horaires/-/schedules/category/${categoriesIds}"><@liferay_ui.message key="eu.all-times" /></a> 
210	                        </#if> 
211	                    </h4> 
212	                    <#assign hasURL = 0 /> 
213	                    <#assign periods = entry.periods /> 
214	                    <#list periods as period> 
215	                        <#if period.linkURL?has_content && period.linkLabel?has_content > 
216	                            <div class="place-schedule"> 
217	                                <a href="${period.getLinkURL(locale)}" target="_blank"> ${period.getLinkLabel(locale)}</a> 
218	                            </div>     
219	                            <#assign hasURL = 1 /> 
220	                            <#break />                       
221	                        </#if>     
222	                    </#list>   
223	                    <#if hasURL == 0>   
224	                    	<#assign idException = 0 />  
225	                    	<#assign scheduleExceptions = "" />    
226	                        <div class="place-schedule"> 
227	                            <ul> 
228	                                <#assign horaires = entry.getHoraire(.now, locale) /> 
229	                                <#list horaires?keys as jour> 
230	                                    <li class="schedule"> 
231	                                        <div class="schedule-day"> 
232	                                            ${jour?capitalize} 
233	                                        </div> 
234	                                        <div class="schedule-time"> 
235	                                            <#assign liste = horaires[jour] /> 
236	                                            <#list liste as placeSchedule > 
237	                                                <#if placeSchedule.isException() || placeSchedule.isPublicHoliday() > 
238	                                                    <span style="color:#B22222;">                               
239	                                                </#if> 
240	                                                <#if placeSchedule.isClosed() > 
241	                                                    <@liferay_ui.message key="closed" /> 
242	                                                <#else> 
243	                                                    <#if placeSchedule.isAlwaysOpen() > 
244	                                                        <@liferay_ui.message key="always-open" />     
245	                                                    <#else> 
246	                                                        <#if placeSchedule?counter gt 1 > 
247	                                                            <br> 
248	                                                        </#if>  
249	                                                        <@liferay_ui.message key="eu.from" /> ${placeSchedule.getStartTime().toString()}  
250	                                                        <@liferay_ui.message key="eu.to" /> ${placeSchedule.getEndTime().toString()} 
251	                                                    </#if>  
252	                                                </#if>  
253	                                                <#if placeSchedule.isException() || placeSchedule.isPublicHoliday() > 
254	                                                    *</span>                               
255	                                                </#if> 
256													<!-- stock les descriptions pour les ouvertures et fermetures exceptionnelle  --> 
257	                                                <#if placeSchedule.isException() || placeSchedule.isPublicHoliday() > 
258		                                                <#if idException != placeSchedule.idSchedule > 
259	                    									<#assign idException = placeSchedule.idSchedule />   
260	                    									<#assign scheduleExceptions > 
261	                    										${scheduleExceptions} 
262										                        <p> 
263										                        	<strong> 
264											                            ${placeSchedule.period} 
265										                            </strong> 
266										                            <#if placeSchedule.isClosed() > 
267										                                <@liferay_ui.message key="closed" /> 
268										                            <#else>  
269										                                ${placeSchedule.startTime} - ${placeSchedule.endTime} 
270										                            </#if>  
271											                    	 - ${placeSchedule.getDescription()} 
272										                        </p> 
273	                    									</#assign>           
274		                                                </#if>                             
275	                                                </#if> 
276	                                            </#list> 
277	                                        </div> 
278	                                    </li> 
279	                                </#list> 
280	                            </ul> 
281	                        </div>                         
282	                    </#if> 
283 
284	                    <#if scheduleExceptions?has_content >   
285	                        <strong  style="color:#B22222;"> 
286	                        	*<@liferay_ui.message key="eu.exceptional-closings-openings" /> 
287	                        </strong> 
288	                        ${scheduleExceptions} 
289	                    </#if> 
290 
291	                    <#if entry.getExceptionalSchedule(locale)?has_content > 
292	                        <strong><@liferay_ui.message key="eu.exceptional-schedule" /></strong> 
293	                        <p> 
294	                        	${entry.getExceptionalSchedule(locale)} 
295	                        </p> 
296	                    </#if> 
297	                </div> 
298                </#if> 
299 
300                <#if entry.getPrice()?has_content > 
301                    <div class="place-info-section"> 
302                        <h4> 
303                            <@liferay_ui.message key="eu.prices" /> 
304                        </h4> 
305                        <p> 
306                            ${entry.getPrice().getPrice(locale)} 
307                        </p> 
308                    </div> 
309                </#if> 
310                <#if entry.getDocumentURLs()?has_content > 
311                    <div class="place-info-section"> 
312                        <h4> 
313                            <@liferay_ui.message key="eu.useful-documents" /> 
314                        </h4> 
315                        <ul> 
316                            <#assign documents = entry.getDocuments() /> 
317                            <#list documents?keys as title> 
318                                <li class="document"><a href="${documents[title]}" >${title}</a></li> 
319                            </#list> 
320                        </ul> 
321 
322                    </div> 
323                </#if> 
324            </div> 
325        </div> 
326 
327    </div> 
328<#else> 
329    <@liferay_ui.message key="select-place" /> 
330</#if>