Kalender

Kalender von LEO Potsdam

Asset-Herausgeber

Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> datum  [in template "10154#10194#28933906" at line 109, column 30]

----
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#28933906" at line 109, column 9]
----
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-c-my-agenda"> 
34 
35 
36 
37    <#-- Anfang: nur für angemeldete User können Ihren persönlichen Kalender sehen --> 
38    <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
39    <#assign themeDisplay = serviceContext.getThemeDisplay() /> 
40    <#assign is_signed_in = themeDisplay.isSignedIn() /> 
41 
42    <#if !is_signed_in> 
43        <div class="portlet-msg-alert"><b>Bitte loggen Sie sich im System lions.de ein, um Ihren pers&ouml;nlichen Terminplan anzuzeigen!&nbsp;</b><br /> 
44            Der EINLOGGEN Button befindet sich oben rechts!</div> 
45    </#if> 
46 
47    <#-- ENDE: nur für angemeldete User können Ihren persönlichen Kalender sehen --> 
48 
49 
50 
51 
52 
53 
54 
55    <#if entries?has_content> 
56    <#list entries as entry> 
57    <#assign 
58    entry = entry 
59 
60    assetRenderer = entry.getAssetRenderer() 
61 
62    entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) 
63 
64    viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent")) 
65    /> 
66    <!-- entry --> 
67    <#if entry.getClassNameId() == 10109> 
68 
69    <#if entry.getAssetRenderer()?? && assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry)?? && saxReaderUtil.read(entry.getAssetRenderer().getArticle().getContent())?? > 
70    <#assign assetRenderer = entry.getAssetRenderer()?? /> 
71    <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
72    <#assign docXml = saxReaderUtil.read(entry.getAssetRenderer().getArticle().getContent()) /> 
73 
74 
75 
76 
77    <#assign untertitel = docXml.valueOf("//dynamic-element[@name='Untertitel']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
78 
79 
80 
81    <#assign teaser_text = docXml.valueOf("//dynamic-element[@name='Teaser_Text']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
82 
83 
84 
85    <#assign zeitZone = docXml.valueOf("//dynamic-element[@name='ZeitzoneVeranstaltung']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
86 
87 
88 
89 
90    <#assign Datumawhc_Data = docXml.valueOf("//dynamic-element[@name='Datumawhc']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
91    <#if validator.isNotNull(Datumawhc_Data)> 
92        <#assign Datumawhc_DateObj = dateUtil.parseDate("yyyy-MM-dd", Datumawhc_Data, locale)> 
93 
94        <#assign datum = dateUtil.getDate(Datumawhc_DateObj, "d. MMM yyyy", locale)> 
95        <#assign datumGueltigB = dateUtil.getDate(Datumawhc_DateObj, "yyyy-MM-dd", locale)> 
96 
97        <#assign datumUeberschriftNeu = dateUtil.getDate(Datumawhc_DateObj, "d. MMM yyyy", locale)> 
98    </#if> 
99 
100 
101    <#assign DatumawhcDatumEnde_Data = docXml.valueOf("//dynamic-element[@name='DatumEnde']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
102    <#if validator.isNotNull(DatumawhcDatumEnde_Data)> 
103        <#assign DatumawhcDatumEnde_DateObj = dateUtil.parseDate("yyyy-MM-dd", DatumawhcDatumEnde_Data, locale)> 
104 
105        <#assign datumEnde = dateUtil.getDate(DatumawhcDatumEnde_DateObj, "d. MMM yyyy", locale)> 
106        <#assign datumGueltigE = dateUtil.getDate(DatumawhcDatumEnde_DateObj, "yyyy-MM-dd", locale)> 
107 
108    <#else> 
109        <#assign datumEnde = datum> 
110        <#assign datumGueltigE = datumGueltigB> 
111    </#if> 
112 
113 
114 
115 
116    <#assign uhrzeit = docXml.valueOf("//dynamic-element[@name='Uhrzeit']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
117    <#if uhrzeit?length == 1><#assign uhrzeit = "000" + uhrzeit ></#if> 
118    <#if uhrzeit?length == 2><#assign uhrzeit = "00" + uhrzeit ></#if> 
119    <#if uhrzeit?length == 3><#assign uhrzeit = "0" + uhrzeit ></#if> 
120 
121 
122    <#assign einlass = docXml.valueOf("//dynamic-element[@name='Einlass']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
123    <#if einlass?length == 1><#assign einlass = "000" + einlass ></#if> 
124    <#if einlass?length == 2><#assign einlass = "00" + einlass ></#if> 
125    <#if einlass?length == 3><#assign einlass = "0" + einlass ></#if> 
126 
127 
128    <#assign ende = docXml.valueOf("//dynamic-element[@name='EndeZeit']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
129    <#if ende?length == 1><#assign ende = "000" + ende ></#if> 
130    <#if ende?length == 2><#assign ende = "00" + ende ></#if> 
131    <#if ende?length == 3><#assign ende = "0" + ende ></#if> 
132 
133 
134 
135 
136    <#assign artikel_text = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
137    <#assign bild = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='Bild']/dynamic-content[@language-id='${locale}']/text()") /> 
138    <#assign alternativtext_bild = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='Alternativtext_Bild']/dynamic-content[@language-id='${locale}']/text()") /> 
139    <#assign bildtext = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='Bildtext']/dynamic-content[@language-id='${locale}']/text()") /> 
140    <#assign bildausrichtung = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='Bildausrichtung']/dynamic-content[@language-id='${locale}']/text()") /> 
141    <#assign lightbox_anzeigen = docXml.valueOf("//dynamic-element[@name='Page'][1]/dynamic-element[@name='lightbox_anzeigen']/dynamic-content[@language-id='${locale}']/text()") /> 
142 
143 
144 
145    <#if validator.isNotNull(ende)> 
146        <#assign gueltigBis = datumGueltigE + " " + ende> 
147    <#else> 
148        <#assign gueltigBis = datumGueltigE + " 2359"> 
149    </#if> 
150 
151 
152    <#assign gueltigBis_DateObj = dateUtil.parseDate("yyyy-MM-dd HHmm", gueltigBis, locale)> 
153    <#assign gueltigBis_Date = dateUtil.getDate(gueltigBis_DateObj, "yyyy-MM-dd HH:mm:ss", locale)> 
154 
155    <#setting time_zone = zeitZone > 
156    <#setting datetime_format='yyyy-MM-dd HH:mm:ss'> 
157    <#assign gueltigBis_Date = gueltigBis_Date?datetime?iso_utc> 
158    <#assign vergleichsZeit = .now?datetime?iso_utc> 
159 
160    <#if vergleichsZeit?date("yyyy-MM-dd'T'HH:mm:ss") <= gueltigBis_Date?date("yyyy-MM-dd'T'HH:mm:ss")> 
161        <#assign anzeigen = "ja"> 
162    <#else> 
163        <#assign anzeigen = "nein"> 
164    </#if> 
165 
166 
167    <#-- nur meine Termine anzeigen --> 
168 
169 
170    <#-- Hier erfolgt die Prüfung der Teilnahme --> 
171 
172    <#-- Record Set auswählen --> 
173    <#assign recordSetId = 0 > 
174 
175    <#-- nur für angemeldete User nach der Teinehmerliste sehen --> 
176    <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
177    <#assign themeDisplay = serviceContext.getThemeDisplay() /> 
178    <#assign is_signed_in = themeDisplay.isSignedIn() /> 
179    <#if is_signed_in> 
180 
181        <#assign nrTeilnehmerliste = docXml.valueOf("//dynamic-element[@name='nrTeilnehmerliste']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
182 
183    <#-- ${nrTeilnehmerliste} --> 
184 
185        <#if nrTeilnehmerliste?? && nrTeilnehmerliste !="" > 
186            <#assign recordSetId =  nrTeilnehmerliste?number> 
187        </#if> 
188 
189    </#if> 
190 
191    <#-- ${recordSetId} --> 
192 
193    <#if recordSetId != 0> 
194 
195        <#assign DDLRecordLocalService = serviceLocator.findService("com.liferay.dynamic.data.lists.service.DDLRecordLocalService")> 
196        <#assign records = DDLRecordLocalService.getRecords(recordSetId)> 
197 
198 
199    <#-- Eigene Rückmeldung prüfen --> 
200 
201    <#-- noch ist kein eigener Record gefunden, d.h. ID auf 0 setzen --> 
202        <#assign myRecord = 0 > 
203 
204    <#-- ${entry} 
205    ${entryTitle} 
206    ${viewURL} --> 
207        <#assign articleId = (entry.getAssetRenderer().getArticle().getArticleId()) > 
208    <#-- Debug Info 
209    ${entry.getAssetRenderer().getArticle().getArticleId()} 
210    ${articleId} 
211    --> 
212 
213 
214    <#-- prüfen, ob es eine Rückmeldung des angemeldeten Users gibt --> 
215        <#if records?has_content> 
216 
217            <#assign auswahlGetroffen = false > 
218            <#list records as cur_record> 
219                <#if (cur_record.getDDMFormFieldValues("Veranstaltung")?? && cur_record.getDDMFormFieldValues("Veranstaltung")?first.getValue().getString(locale) == articleId) && (cur_record.userId == user.userId) > 
220                    <#assign entscheidung = cur_record.getDDMFormFieldValues("Teilnahme")?first.getValue().getString(locale)> 
221 
222                <#--     ${entscheidung}  --> 
223 
224 
225 
226                <#-- neu --> 
227                    <#assign partnerGastName = "" > 
228                    <#if cur_record.getDDMFormFieldValues("Name")?? > 
229                        <#assign partnerGastName = cur_record.getDDMFormFieldValues("Name")?first.getValue().getString(locale)> 
230 
231                    <#-- ${partnerGastName}--> 
232                    </#if> 
233 
234                <#--     ${entscheidung}  --> 
235 
236                    <#if partnerGastName == "" > 
237 
238 
239                        <#if entscheidung == "ja" > 
240                            <#assign auswahlGetroffen = true > 
241                        <#elseif entscheidung == "vielleicht" > 
242                            <#assign auswahlGetroffen = true > 
243                        <#elseif entscheidung == "nein" > 
244                            <#assign auswahlGetroffen = true > 
245                            <#assign anzeigen = "nein"> 
246                        </#if> 
247 
248                    </#if>  <#-- neu --> 
249 
250 
251 
252 
253                </#if> 
254            </#list> 
255 
256            <#if auswahlGetroffen == false > 
257                <#assign anzeigen = "nein"> 
258            </#if> 
259 
260        </#if> 
261    </#if> 
262 
263 
264 
265    <#-- Ende nur meine Termine anzeigen --> 
266 
267 
268    <#if anzeigen == "ja"> 
269 
270    <#-- Hier beginnt die Ausgabe des Termininhaltes --> 
271 
272 
273 
274    <#if datumUeberschrift != datumUeberschriftNeu> 
275        <div class="asset asset_news"> 
276 
277            <div class="asset_text"> 
278                <#assign datumUeberschrift = datumUeberschriftNeu> 
279                <h4 class="asset_headline">${datumUeberschrift}</h4> 
280 
281                <div class="clear"></div> 
282 
283            </div> 
284        </div> 
285 
286    </#if> 
287 
288 
289 
290 
291 
292 
293 
294    <div class="asset asset_news"> 
295 
296 
297        <table width = 100%> 
298            <tr> 
299                <td width = 90%> 
300 
301 
302 
303 
304                    <div class="asset_text"> 
305 
306                        <#assign terminZeit = datum> 
307                        <#if validator.isNotNull(uhrzeit) > 
308                            <#assign terminZeit = terminZeit + ": " + uhrzeit?substring(0,2) +":"+uhrzeit?substring(2)> 
309                        </#if> 
310                        <#if datum != datumEnde || validator.isNotNull(uhrzeit)> 
311                            <#assign terminZeit = terminZeit + " - "> 
312                        </#if> 
313 
314                        <#if datum != datumEnde > 
315                            <#assign terminZeit = terminZeit + datumEnde> 
316                        </#if> 
317 
318                        <#if datum != datumEnde && validator.isNotNull(ende)> 
319                            <#assign terminZeit = terminZeit + ": "> 
320                        </#if> 
321 
322                        <#if validator.isNotNull(ende)> 
323                            <#assign terminZeit = terminZeit + ende?substring(0,2) +":"+ende?substring(2)> 
324                        </#if> 
325 
326 
327 
328                        <h5 class="asset_headline"><b>${terminZeit}</b></h5> 
329 
330 
331                        <div class="text"><b>${entry.getTitle(locale)}</b></div> 
332 
333                        <#assign teaser_text_length = teaser_text?length> 
334                        <#assign artikel_text_length = artikel_text?length> 
335                        <#assign maxLength = 300> 
336 
337                        <#if teaser_text?has_content> 
338                            <#if teaser_text_length < maxLength> 
339                                <p><div class="text">${teaser_text}</div></p> 
340                            <#else> 
341                                <div class="text">${teaser_text?substring(0,maxLength-1)}...</div> 
342                            </#if> 
343                        <#else> 
344                            <#if artikel_text_length < maxLength> 
345                                <div class="text">${artikel_text}</div> 
346                            <#else> 
347                                <div class="text">${artikel_text?substring(0,maxLength-1)}...</div> 
348                            </#if> 
349                        </#if> 
350 
351                        <#assign viewInContext = false> 
352 
353                        <#if assetLinkBehavior??> 
354                            <#if assetLinkBehavior == "viewInPortlet"> 
355                                <#assign viewInContext = true> 
356                            </#if> 
357                        </#if> 
358                        ${request.setAttribute("view.jsp-showIconLabel", false)} 
359 
360                        <a class="anc_more" href="${viewURL}"><@liferay.language key="read-more" /></a> 
361 
362 
363 
364                    </div> 
365                    <div class="clear"></div> 
366    </div> 
367 
368 
369    </td> 
370    <td width = 10%> 
371        <#-- Hier erfolgt die Prüfung der Teilnahme --> 
372 
373        <#-- Record Set auswählen --> 
374        <#assign recordSetId = 0 > 
375 
376        <#-- nur für angemeldete User nach der Teinehmerliste sehen --> 
377        <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
378        <#assign themeDisplay = serviceContext.getThemeDisplay() /> 
379        <#assign is_signed_in = themeDisplay.isSignedIn() /> 
380        <#if is_signed_in> 
381 
382            <#assign nrTeilnehmerliste = docXml.valueOf("//dynamic-element[@name='nrTeilnehmerliste']/dynamic-content[@language-id='${locale}']/text()")?replace("</?[^>]+(>|$)", "", "r") /> 
383 
384        <#-- ${nrTeilnehmerliste} --> 
385 
386            <#if nrTeilnehmerliste?? && nrTeilnehmerliste !="" > 
387                <#assign recordSetId =  nrTeilnehmerliste?number> 
388 
389 
390            <#-- Start TEST auf gültige Teilnehmerliste --> 
391                <#assign gueltigeRecordSetId = false> 
392                <#if recordSetId gt 0> 
393                    <#assign DDLRecordSetLocalService = serviceLocator.findService("com.liferay.dynamic.data.lists.service.DDLRecordSetLocalService")> 
394                    <#assign recordSets = DDLRecordSetLocalService.getRecordSets(groupId)> 
395                    <#list recordSets as cur_recordSet> 
396                        <#if cur_recordSet.recordSetId == recordSetId> 
397                            <#assign gueltigeRecordSetId = true> 
398                        </#if> 
399                    </#list> 
400                <#else> 
401                    <#assign DDLRecordSetLocalService = serviceLocator.findService("com.liferay.dynamic.data.lists.service.DDLRecordSetLocalService")> 
402                    <#assign recordSets = DDLRecordSetLocalService.getRecordSets(groupId)> 
403                    <#list recordSets as cur_recordSet> 
404                        <#if cur_recordSet.name?trim?last_index_of(defaultTeilnehmerliste) gt 0  > 
405                            <#assign recordSetId = cur_recordSet.recordSetId > 
406                            <#assign gueltigeRecordSetId = true> 
407                        <#-- ${recordSetId} --> 
408                        </#if> 
409                    </#list> 
410                </#if> 
411 
412                <#if !gueltigeRecordSetId > 
413                    <div class="portlet-msg-alert"><h3><b>Konfigurationsfehler!</b></h3><b> 
414                            Bitte geben Sie eine korrekte Nummer der Teilnehmerliste ein!</b><br> 
415                        <u>Mögliche Werte sind:</u><br> 
416                        <#list recordSets as cur_recordSet> 
417                            ${cur_recordSet.recordSetId}: ${cur_recordSet.name}<br> 
418                        </#list> 
419                        sowie<br> 
420                        0: automatische Auswahl der Liste mit dem Namen &quot;${defaultTeilnehmerliste}&quot; 
421                    </div> 
422                </#if> 
423 
424 
425            <#-- Ende TEST auf gültige Teilnehmerliste --> 
426 
427 
428 
429            </#if> 
430 
431        </#if> 
432 
433        <#-- ${recordSetId} --> 
434 
435        <#if recordSetId != 0> 
436 
437            <#assign DDLRecordLocalService = serviceLocator.findService("com.liferay.dynamic.data.lists.service.DDLRecordLocalService")> 
438            <#assign records = DDLRecordLocalService.getRecords(recordSetId)> 
439 
440 
441        <#-- Eigene Rückmeldung prüfen --> 
442 
443        <#-- noch ist kein eigener Record gefunden, d.h. ID auf 0 setzen --> 
444            <#assign myRecord = 0 > 
445 
446        <#-- ${entry} 
447        ${entryTitle} 
448        ${viewURL} --> 
449            <#assign articleId = (entry.getAssetRenderer().getArticle().getArticleId()) > 
450        <#-- Debug Info 
451        ${entry.getAssetRenderer().getArticle().getArticleId()} 
452        ${articleId} 
453        --> 
454 
455 
456        <#-- prüfen, ob es eine Rückmeldung des angemeldeten Users gibt --> 
457            <#if records?has_content> 
458 
459                <#assign auswahlGetroffen = false > 
460                <#list records as cur_record> 
461                    <#if (cur_record.getDDMFormFieldValues("Veranstaltung")?? && cur_record.getDDMFormFieldValues("Veranstaltung")?first.getValue().getString(locale) == articleId) && (cur_record.userId == user.userId) > 
462                        <#assign entscheidung = cur_record.getDDMFormFieldValues("Teilnahme")?first.getValue().getString(locale)> 
463 
464                    <#--     ${entscheidung}  --> 
465 
466 
467                        <#assign partnerGastName = "" > 
468                        <#if cur_record.getDDMFormFieldValues("Name")?? > 
469                            <#assign partnerGastName = cur_record.getDDMFormFieldValues("Name")?first.getValue().getString(locale)> 
470 
471                        <#-- ${partnerGastName}--> 
472                        </#if> 
473 
474                        <#if partnerGastName == "" > 
475 
476                            <a href="${viewURL}#rueckmeldung"> 
477 
478 
479                                <#if entscheidung == "ja" > 
480                                    <div class="attendance-submit-button green"> <i class="icon-ok"></i></div> 
481                                    <#assign auswahlGetroffen = true > 
482                                <#elseif entscheidung == "vielleicht" > 
483                                    <div class="attendance-submit-button yellow"> <i class="icon-circle-blank"></i></div> 
484                                    <#assign auswahlGetroffen = true > 
485                                <#elseif entscheidung == "nein" > 
486                                    <div class="attendance-submit-button red" > <i class="icon-remove"></i></div> 
487                                    <#assign auswahlGetroffen = true > 
488                                </#if> 
489 
490                            </a> 
491 
492                        </#if> 
493 
494                    </#if> 
495                </#list> 
496 
497 
498                <#if auswahlGetroffen == false > 
499                    <a href="${viewURL}#rueckmeldung"> 
500                        <div class="attendance-submit-button green disabled"><<b>?</b>/div> 
501                    </a> 
502                </#if> 
503 
504 
505            </#if> 
506 
507        </#if> 
508 
509 
510 
511    </td> 
512    </tr> 
513    </table> 
514 
515 
516    <div class="clear"></div> 
517</div> 
518 
519 
520    <#-- Hier endet die Ausgabe des Termininhaltes --> 
521 
522 
523 
524 
525    </#if> 
526 
527<#else> 
528    <p>This Content produces a bug!!! Please contact the Administrator!</p> 
529    </#if> 
530<#else> 
531    <#assign assetRenderer = entry.getAssetRenderer() /> 
532    <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) /> 
533    <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
534 
535    <#if assetLinkBehavior??> 
536        <#if assetLinkBehavior != "showFullContent"> 
537            <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
538        </#if> 
539    </#if> 
540    <div class="asset-abstract"> 
541 
542        <h3 class="asset-title"> 
543            <a href="${viewURL}"><img alt="" src="${assetRenderer.getIconPath(renderRequest)}" />${entryTitle}</a> 
544        </h3> 
545 
546        <div class="asset-content"> 
547 
548            <div class="asset-summary"> 
549                ${htmlUtil.escape(assetRenderer.getSummary(locale))} 
550 
551                <a href="${viewURL}"><@liferay.language key="read-more" /><span class="hide-accessible"><@liferay.language key="about" />${entryTitle}</span> &raquo;</a> 
552            </div> 
553        </div> 
554    </div> 
555 
556    </#if> 
557 
558 
559 
560 
561 
562 
563 
564    </#list> 
565<#else> 
566    <p>Sorry, there are no entries to display!</p> 
567</#if> 
568</div>