Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing: ==> testo [in template "114284#114319#588836" at line 119, column 62] ---- Tip: If the failing expression is known to be 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: ${testo} [in template "114284#114319#588836" at line 119, column 60] ----
1<#assign
2 DLAppLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"]
3 mkspAPI = serviceLocator.findService("eu.suggesto.suggestogui.service.SuggestoGuiLocalService")
4 catsService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
5 serverName = request.getServerName()
6 defLng = themeDisplay.getSiteDefaultLocale()
7
8 id_vocabolario_appuntamenti = 572715
9/>
10
11<div class="gradient_bg">
12 <div class="page_content container-fluid text-center pt-5 pb-5">
13 <h1 class="pb-3">I nostri appuntamenti</h1>
14 <#-- <img style="max-width:90px;" src="${themeDisplay.getPathThemeImages()}/hashtag.png"/> -->
15 <img style="max-width:200px;" src="${themeDisplay.getPathThemeImages()}/appuntamenti.png"/>
16 </div>
17
18 <div class="row_appuntamenti container pb-5">
19
20 <div class="row_bottoni pt-sm-5 pt-3">
21 <div class="row">
22 <#list catsService.getVocabularyCategories(id_vocabolario_appuntamenti, -1, -1, null) as cat>
23 <#assign catUrl = renderResponse.createRenderURL()>
24
25 ${catUrl.setParameter("categoryId", cat.categoryId?string)}
26 <div class="col-xl-3 col-lg-6 my-2">
27 <a href="${catUrl}" class="btn">
28 ${cat.getName()}
29 </a>
30 </div>
31 </#list>
32 </div>
33 </div>
34
35 <div class="date_content">
36 <#if entries?has_content>
37 <div class="list_eventi text_content p-md-5 p-3 mt-5 text-md-left text-center">
38 <#list entries as entry>
39 <#assign
40 entry = entry
41 assetRenderer = entry.getAssetRenderer()
42 className = assetRenderer.getClassName()
43 entryTitle = htmlUtil.escape(assetRenderer.getTitle(themeDisplay.getLocale()))
44 />
45
46 <#if className == "com.liferay.journal.model.JournalArticle">
47 <#assign
48 journalArticle = assetRenderer.getArticle()
49 document = saxReaderUtil.read(journalArticle.getContent())
50 rootElement = document.getRootElement()
51 />
52
53
54 <#-- FORMATTAZIONE DATA ("dataContenuto" è la data finale da usare) -->
55
56 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Datadlnx']")>
57 <#if xPathSelector.selectSingleNode(rootElement)??>
58 <#assign stringData = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim>
59 <#setting locale = themeDisplay.getLocale()>
60
61 <#if validator.isNotNull(stringData)>
62 <#assign dataObj = dateUtil.parseDate("yyyy-MM-dd", stringData, locale)>
63 <#assign dataContenuto = dateUtil.getDate(dataObj, "dd MMMM yyyy", locale)>
64 <#assign giorno = dateUtil.getDate(dataObj, "dd", locale)>
65 <#assign mese = dateUtil.getDate(dataObj, "MMMM", locale)>
66 <#assign anno = dateUtil.getDate(dataObj, "yyyy", locale)>
67 <#else>
68 <#assign dataContenuto = "">
69 </#if>
70 </#if>
71
72 <#assign stringSelector = "dynamic-element[@name='ImmagineAbstract']">
73 <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>
74 <#if xPathSelector.selectSingleNode(rootElement)??>
75 <#assign
76 immagine = xPathSelector.selectSingleNode(rootElement).getStringValue()
77 fileEntryId = assetRenderer.getClassPK()
78 />
79 <#if immagine?trim?has_content>
80 <#assign
81 jsonField = jsonFactoryUtil.createJSONObject(immagine)
82 fileEntry = DLAppLocalServiceUtil.getFileEntryByUuidAndGroupId(jsonField.uuid, groupId)
83 immagine = "/documents/" + jsonField.groupId + "/" + fileEntry.folderId + "/" + jsonField.title + "/" + jsonField.uuid
84 />
85 <#else>
86 <#assign immagine = "https://via.placeholder.com/450x300?text=Placeholder">
87 </#if>
88 </#if>
89
90 <#assign stringSelector = "dynamic-element[@name='DescrizioneBreve']/dynamic-content[@language-id = '" + themeDisplay.getLocale() + "']">
91 <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>
92 <#if xPathSelector.selectSingleNode(rootElement)??>
93 <#assign testo = xPathSelector.selectSingleNode(rootElement).getStringValue()>
94 </#if>
95
96 <#assign stringSelector = "dynamic-element[@name='data_e_luogo']/dynamic-content[@language-id = '" + themeDisplay.getLocale() + "']">
97 <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>
98 <#if xPathSelector.selectSingleNode(rootElement)??>
99 <#assign data_e_luogo = xPathSelector.selectSingleNode(rootElement).getStringValue()>
100 </#if>
101
102 <#assign viewUrl = mkspAPI.getArticleUrl(groupId, serverName, journalArticle.articleId, localeUtil.fromLanguageId(themeDisplay.getLocale()), defLng, "/dettaglio-appuntamenti")>
103
104
105 <div>
106 <a href="${viewUrl}" class="row row_eventi pb-5 <#if entry?index == 0>pt-0<#else>pt-5</#if>">
107 <div class="row align-items-center pt-0">
108 <div class="col-md-4">
109 <img src="${immagine}" />
110 </div>
111
112 <div class="col-md-8 pl-5 mt-md-0 mt-5">
113 <#if data_e_luogo??>
114 <h3>${data_e_luogo}</h3>
115 <#else>
116 <h3>${dataContenuto}</h3>
117 </#if>
118 <h2>${entryTitle}</h2>
119 <p>${testo}</p>
120
121 <#assign
122 list_categories = entry.getCategories()
123 />
124
125 <#list list_categories as single_cat>
126
127 <#assign full_obj = jsonFactoryUtil.looseSerialize(single_cat) >
128
129 <#assign
130 catColor = jsonFactoryUtil.createJSONObject(full_obj).getString("descriptionCurrentValue")
131 catName = single_cat.getName()
132 />
133 </#list>
134
135 <p class="sing_cat">Trovi questo appuntamento in:<strong class="pl-1" style="color:${catColor}">${catName}</strong></p>
136
137 </div>
138 </div>
139 </a>
140 </div>
141 </#if>
142 </#list>
143 </div>
144 </#if>
145 </div>
146 </div>
147</div>