Veranstaltungen - Hof
Header Veranstaltungen
Lions Club Hof
We serve - wir dienen seit über 60 Jahren in der Region
Veranstaltungen
Veranstaltungen
Asset-Herausgeber
Webcontent, Artikel
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing: ==> datum [in template "10154#10194#28903743" at line 100, column 50] ---- 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 datumEnde = datum [in template "10154#10194#28903743" at line 100, column 29] ----
1<#-- LR7.2 Version 18.05.2021 Armin J. Gaul -->
2
3<#assign defaultTeilnehmerliste = "Teilnehmer Clubveranstaltungen" />
4
5<#assign datumUeberschrift = "">
6<#assign datumUeberschriftNeu = "">
7
8<style>
9 .attendance-submit-button {
10 width: 2.5em;
11 height: 2.5em;
12 line-height: 2.5em;
13 font-size: 2em;
14 margin: 2px;
15 text-align: center;
16 vertical-align: middle;
17 }
18 .attendance-submit-button.disabled {
19 background-color: lightgrey !important;
20 color: grey;
21 }
22 .attendance-submit-button.green {
23 background-color: lightgreen;
24 }
25 .attendance-submit-button.yellow {
26 background-color: yellow;
27 }
28 .attendance-submit-button.red {
29 background-color: red;
30 }
31</style>
32
33<div class="assets asset-theme-1 lions-events lions-events-list-b-confirm-cancel">
34
35 <#if entries?has_content>
36 <#list entries as entry>
37 <#if entry.getAssetRenderer()?has_content>
38 <#assign
39 entry = entry
40
41 assetRenderer = entry.getAssetRenderer()
42
43 entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))
44
45 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))
46 />
47 <!-- entry -->
48 <#if entry.getClassNameId() == 10109>
49
50 <#if entry.getAssetRenderer()?? && assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry)?? && saxReaderUtil.read(entry.getAssetRenderer().getArticle().getContent())?? >
51 <#assign assetRenderer = entry.getAssetRenderer()?? />
52 <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) />
53 <#assign docXml = saxReaderUtil.read(entry.getAssetRenderer().getArticle().getContent()) />
54
55
56
57
58 <#assign untertitel = docXml.valueOf("//dynamic-element[@name='Untertitel']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
59
60
61
62 <#assign teaser_text = docXml.valueOf("//dynamic-element[@name='Teaser_Text']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
63
64 <#assign nrTeilnehmerliste_Partner = docXml.valueOf("//dynamic-element[@name='Partner']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
65 <#assign nrTeilnehmerliste_Gaeste = docXml.valueOf("//dynamic-element[@name='Gaeste']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
66 <#assign nrTeilnehmerliste_anzEssen = docXml.valueOf("//dynamic-element[@name='anzEssen']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
67 <#assign nrTeilnehmerliste_anzTickets = docXml.valueOf("//dynamic-element[@name='anzTickets']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
68
69
70
71
72
73
74
75
76 <#assign zeitZone = docXml.valueOf("//dynamic-element[@name='ZeitzoneVeranstaltung']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
77
78
79
80
81 <#assign Datumawhc_Data = docXml.valueOf("//dynamic-element[@name='Datumawhc']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
82 <#if validator.isNotNull(Datumawhc_Data)>
83 <#assign Datumawhc_DateObj = dateUtil.parseDate("yyyy-MM-dd", Datumawhc_Data, locale)>
84
85 <#assign datum = dateUtil.getDate(Datumawhc_DateObj, "d. MMM yyyy", locale)>
86 <#assign datumGueltigB = dateUtil.getDate(Datumawhc_DateObj, "yyyy-MM-dd", locale)>
87
88 <#assign datumUeberschriftNeu = dateUtil.getDate(Datumawhc_DateObj, "MMM yyyy", locale)>
89 </#if>
90
91
92 <#assign DatumawhcDatumEnde_Data = docXml.valueOf("//dynamic-element[@name='DatumEnde']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
93 <#if validator.isNotNull(DatumawhcDatumEnde_Data)>
94 <#assign DatumawhcDatumEnde_DateObj = dateUtil.parseDate("yyyy-MM-dd", DatumawhcDatumEnde_Data, locale)>
95
96 <#assign datumEnde = dateUtil.getDate(DatumawhcDatumEnde_DateObj, "d. MMM yyyy", locale)>
97 <#assign datumGueltigE = dateUtil.getDate(DatumawhcDatumEnde_DateObj, "yyyy-MM-dd", locale)>
98
99 <#else>
100 <#assign datumEnde = datum>
101 <#assign datumGueltigE = datumGueltigB>
102 </#if>
103
104
105
106
107 <#assign uhrzeit = docXml.valueOf("//dynamic-element[@name='Uhrzeit']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
108 <#if uhrzeit?length == 1><#assign uhrzeit = "000" + uhrzeit ></#if>
109 <#if uhrzeit?length == 2><#assign uhrzeit = "00" + uhrzeit ></#if>
110 <#if uhrzeit?length == 3><#assign uhrzeit = "0" + uhrzeit ></#if>
111
112
113 <#assign einlass = docXml.valueOf("//dynamic-element[@name='Einlass']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
114 <#if einlass?length == 1><#assign einlass = "000" + einlass ></#if>
115 <#if einlass?length == 2><#assign einlass = "00" + einlass ></#if>
116 <#if einlass?length == 3><#assign einlass = "0" + einlass ></#if>
117
118
119 <#assign ende = docXml.valueOf("//dynamic-element[@name='EndeZeit']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
120 <#if ende?length == 1><#assign ende = "000" + ende ></#if>
121 <#if ende?length == 2><#assign ende = "00" + ende ></#if>
122 <#if ende?length == 3><#assign ende = "0" + ende ></#if>
123
124
125
126
127 <#assign artikel_text = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
128 <#assign bild = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='Bild']/dynamic-content[@language-id='${locale}']/text()") />
129 <#assign alternativtext_bild = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='Alternativtext_Bild']/dynamic-content[@language-id='${locale}']/text()") />
130 <#assign bildtext = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='Bildtext']/dynamic-content[@language-id='${locale}']/text()") />
131 <#assign bildausrichtung = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='Bildausrichtung']/dynamic-content[@language-id='${locale}']/text()") />
132 <#assign lightbox_anzeigen = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='lightbox_anzeigen']/dynamic-content[@language-id='${locale}']/text()") />
133
134
135
136
137
138
139 <#if validator.isNotNull(ende)>
140 <#assign gueltigBis = datumGueltigE + " " + ende>
141 <#else>
142 <#assign gueltigBis = datumGueltigE + " 2359">
143 </#if>
144
145
146 <#assign gueltigBis_DateObj = dateUtil.parseDate("yyyy-MM-dd HHmm", gueltigBis, locale)>
147 <#assign gueltigBis_Date = dateUtil.getDate(gueltigBis_DateObj, "yyyy-MM-dd HH:mm:ss", locale)>
148
149 <#setting time_zone = zeitZone >
150 <#setting datetime_format='yyyy-MM-dd HH:mm:ss'>
151 <#assign gueltigBis_Date = gueltigBis_Date?datetime?iso_utc>
152 <#assign vergleichsZeit = .now?datetime?iso_utc>
153
154 <#if vergleichsZeit?date("yyyy-MM-dd'T'HH:mm:ss") <= gueltigBis_Date?date("yyyy-MM-dd'T'HH:mm:ss")>
155 <#assign anzeigen = "ja">
156 <#else>
157 <#assign anzeigen = "nein">
158 </#if>
159
160 <#if anzeigen == "ja">
161
162 <#-- Hier beginnt die Ausgabe des Termininhaltes -->
163
164
165
166 <#if datumUeberschrift != datumUeberschriftNeu>
167 <div class="asset asset_news">
168
169 <div class="asset_text">
170 <#assign datumUeberschrift = datumUeberschriftNeu>
171 <h4 class="asset_headline">${datumUeberschrift}</h4>
172
173 <div class="clear"></div>
174
175 </div>
176 </div>
177
178 </#if>
179
180
181
182
183
184
185
186 <div class="asset asset_news">
187
188
189 <table width = 100%>
190 <tr>
191 <td width = 85%>
192
193
194
195
196 <div class="asset_text">
197
198 <#assign terminZeit = datum>
199 <#if validator.isNotNull(uhrzeit) >
200 <#assign terminZeit = terminZeit + ": " + uhrzeit?substring(0,2) +":"+uhrzeit?substring(2)>
201 </#if>
202 <#if datum != datumEnde || validator.isNotNull(uhrzeit)>
203 <#assign terminZeit = terminZeit + " - ">
204 </#if>
205
206 <#if datum != datumEnde >
207 <#assign terminZeit = terminZeit + datumEnde>
208 </#if>
209
210 <#if datum != datumEnde && validator.isNotNull(ende)>
211 <#assign terminZeit = terminZeit + ": ">
212 </#if>
213
214 <#if validator.isNotNull(ende)>
215 <#assign terminZeit = terminZeit + ende?substring(0,2) +":"+ende?substring(2)>
216 </#if>
217
218
219
220 <h5 class="asset_headline"><b>${terminZeit}</b></h5>
221
222
223 <div class="text"><b>${entry.getTitle(locale)}</b></div>
224
225 <#assign teaser_text_length = teaser_text?length>
226 <#assign artikel_text_length = artikel_text?length>
227 <#assign maxLength = 300>
228
229 <#if teaser_text?has_content>
230 <#if teaser_text_length < maxLength>
231 <p><div class="text">${teaser_text}</div></p>
232 <#else>
233 <div class="text">${teaser_text?substring(0,maxLength-1)}...</div>
234 </#if>
235 <#else>
236 <#if artikel_text_length < maxLength>
237 <div class="text">${artikel_text}</div>
238 <#else>
239 <div class="text">${artikel_text?substring(0,maxLength-1)}...</div>
240 </#if>
241 </#if>
242
243 <#assign viewInContext = false>
244
245 <#if assetLinkBehavior??>
246 <#if assetLinkBehavior == "viewInPortlet">
247 <#assign viewInContext = true>
248 </#if>
249 </#if>
250 ${request.setAttribute("view.jsp-showIconLabel", false)}
251
252 <a class="anc_more" href="${viewURL}"><@liferay.language key="read-more" /></a>
253
254
255
256 </div>
257
258
259 </td>
260
261 <td width = 5% align="center">
262
263 <#-- Hier erfolgt die Ausgabe der Optionen -->
264
265 <#if nrTeilnehmerliste_Partner?? && getterUtil.getBoolean(nrTeilnehmerliste_Partner)>
266 <i class="icon-user"></i><br>
267 </#if>
268
269 <#if nrTeilnehmerliste_Gaeste?? && getterUtil.getBoolean(nrTeilnehmerliste_Gaeste)>
270 <i class="icon-group"><br>
271 </#if>
272
273 <#if nrTeilnehmerliste_anzEssen?? && nrTeilnehmerliste_anzEssen?has_content>
274 <#assign anzEssen = nrTeilnehmerliste_anzEssen?number >
275 <i class="icon-food"><br>
276 </#if>
277
278 <#if nrTeilnehmerliste_anzTickets?? && nrTeilnehmerliste_anzTickets?has_content>
279 <b>#</b><i class="icon-user">
280 </#if>
281 </td>
282
283 <td width = 10%>
284 <#-- Hier erfolgt die Prüfung der Teilnahme -->
285
286 <#-- Record Set auswählen -->
287 <#assign recordSetId = 0 >
288
289 <#-- nur für angemeldete User nach der Teinehmerliste sehen -->
290 <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()>
291 <#assign themeDisplay = serviceContext.getThemeDisplay() />
292 <#assign is_signed_in = themeDisplay.isSignedIn() />
293 <#if is_signed_in>
294
295 <#assign nrTeilnehmerliste = docXml.valueOf("//dynamic-element[@name='nrTeilnehmerliste']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") />
296
297 <#-- ${nrTeilnehmerliste} -->
298
299 <#if nrTeilnehmerliste?? && nrTeilnehmerliste !="" >
300 <#assign recordSetId = nrTeilnehmerliste?number>
301
302 <#-- Start TEST auf gültige Teilnehmerliste -->
303 <#assign gueltigeRecordSetId = false>
304 <#if recordSetId gt 0>
305 <#assign DDLRecordSetLocalService = serviceLocator.findService("com.liferay.dynamic.data.lists.service.DDLRecordSetLocalService")>
306 <#assign recordSets = DDLRecordSetLocalService.getRecordSets(groupId)>
307 <#list recordSets as cur_recordSet>
308 <#if cur_recordSet.recordSetId == recordSetId>
309 <#assign gueltigeRecordSetId = true>
310 </#if>
311 </#list>
312 <#else>
313 <#assign DDLRecordSetLocalService = serviceLocator.findService("com.liferay.dynamic.data.lists.service.DDLRecordSetLocalService")>
314 <#assign recordSets = DDLRecordSetLocalService.getRecordSets(groupId)>
315 <#list recordSets as cur_recordSet>
316 <#if cur_recordSet.name?trim?last_index_of(defaultTeilnehmerliste) gt 0 >
317 <#assign recordSetId = cur_recordSet.recordSetId >
318 <#assign gueltigeRecordSetId = true>
319 <#-- ${recordSetId} -->
320 </#if>
321 </#list>
322 </#if>
323
324 <#if !gueltigeRecordSetId >
325 <div class="portlet-msg-alert"><h3><b>Konfigurationsfehler!</b></h3><b>
326 Bitte geben Sie eine korrekte Nummer der Teilnehmerliste ein!</b><br>
327 <u>Mögliche Werte sind:</u><br>
328 <#list recordSets as cur_recordSet>
329 ${cur_recordSet.recordSetId}: ${cur_recordSet.name}<br>
330 </#list>
331 sowie<br>
332 0: automatische Auswahl der Liste mit dem Namen "${defaultTeilnehmerliste}"
333 </div>
334 </#if>
335
336
337 <#-- Ende TEST auf gültige Teilnehmerliste -->
338
339
340 </#if>
341
342 </#if>
343
344 <#-- ${recordSetId} -->
345
346 <#if recordSetId != 0>
347
348 <#assign DDLRecordLocalService = serviceLocator.findService("com.liferay.dynamic.data.lists.service.DDLRecordLocalService")>
349 <#assign records = DDLRecordLocalService.getRecords(recordSetId)>
350
351
352 <#-- Eigene Rückmeldung prüfen -->
353
354 <#-- noch ist kein eigener Record gefunden, d.h. ID auf 0 setzen -->
355 <#assign myRecord = 0 >
356
357 <#-- ${entry}
358 ${entryTitle}
359 ${viewURL} -->
360 <#assign articleId = (entry.getAssetRenderer().getArticle().getArticleId()) >
361 <#-- Debug Info
362 ${entry.getAssetRenderer().getArticle().getArticleId()}
363 ${articleId}
364 -->
365
366
367 <#-- prüfen, ob es eine Rückmeldung des angemeldeten Users gibt -->
368 <#if records?has_content>
369
370 <#assign auswahlGetroffen = false >
371 <#list records as cur_record>
372 <#if cur_record.getDDMFormFieldValues("Veranstaltung")?? && (cur_record.getDDMFormFieldValues("Veranstaltung")?first.getValue().getString(locale) == articleId) && (cur_record.userId == user.userId) >
373 <#assign entscheidung = cur_record.getDDMFormFieldValues("Teilnahme")?first.getValue().getString(locale)>
374
375
376 <#assign partnerGastName = "" >
377 <#if cur_record.getDDMFormFieldValues("Name")?? >
378 <#assign partnerGastName = cur_record.getDDMFormFieldValues("Name")?first.getValue().getString(locale)>
379
380 <#-- ${partnerGastName}-->
381 </#if>
382
383 <#-- ${entscheidung} -->
384
385 <a href="${viewURL}#rueckmeldung">
386 <#if partnerGastName == "" >
387 <#if entscheidung == "ja" >
388 <div class="attendance-submit-button green"> <i class="icon-ok"></i></div>
389 <#assign auswahlGetroffen = true >
390 <#elseif entscheidung == "vielleicht" >
391 <div class="attendance-submit-button yellow"> <i class="icon-circle-blank"></i></div>
392 <#assign auswahlGetroffen = true >
393 <#elseif entscheidung == "nein" >
394 <div class="attendance-submit-button red"> <i class="icon-remove"></i></div>
395 <#assign auswahlGetroffen = true >
396 </#if>
397 </#if>
398 </a>
399
400 </#if>
401 </#list>
402
403 <a href="${viewURL}#rueckmeldung">
404 <#if auswahlGetroffen == false >
405 <div class="attendance-submit-button green disabled"><b>?</b></div>
406 </#if>
407 </a>
408
409
410
411 </#if>
412
413 </#if>
414
415
416
417 </td>
418 </tr>
419 </table>
420
421
422 <div class="clear"></div>
423 </div>
424
425
426 <#-- Hier endet die Ausgabe des Termininhaltes -->
427
428
429
430 </#if>
431
432 <#else>
433 <p>This Content produces a bug!!! Please contact the Administrator!</p>
434 </#if>
435 <#else>
436 <#assign assetRenderer = entry.getAssetRenderer() />
437 <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) />
438 <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) />
439
440 <#if assetLinkBehavior??>
441 <#if assetLinkBehavior != "showFullContent">
442 <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) />
443 </#if>
444 </#if>
445 <div class="asset-abstract">
446
447 <h3 class="asset-title">
448 <a href="${viewURL}"><img alt="" src="${assetRenderer.getIconPath(renderRequest)}" />${entryTitle}</a>
449 </h3>
450
451 <div class="asset-content">
452
453 <div class="asset-summary">
454 ${htmlUtil.escape(assetRenderer.getSummary(locale))}
455
456 <a href="${viewURL}"><@liferay.language key="read-more" /><span class="hide-accessible"><@liferay.language key="about" />${entryTitle}</span> »</a>
457 </div>
458 </div>
459 </div>
460
461 </#if>
462
463
464
465
466 <#else>
467 Asset Renderer is null for ${entry.getTitle(locale)}
468 </#if>
469 </#list>
470 <#else>
471 <p>Sorry, there are no entries to display!</p>
472 </#if>
473</div>