Asset Publisher

Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> structureService.getStructureAttrattoreKey()  [in template "20099#20135#154466" at line 9, column 39]

----
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: #assign attrattoreStructureKey = stru...  [in template "20099#20135#154466" at line 9, column 5]
----
1<#-- MOSAICO MULTITIPO  04/07/2023--> 
2 
3<#assign showTemplate = false /> 
4<#assign emptyEntries = false /> 
5 
6<#if entries?has_content>  
7    <#assign showTemplate = true /> 
8    <#assign structureService = serviceLocator.findService("it.inera.palermo.structure.service.StructureService")> 
9    <#assign attrattoreStructureKey = structureService.getStructureAttrattoreKey()> 
10    <#assign eventoStructureKey = structureService.getStructureEventoKey()> 
11    <#assign itinerarioStructureKey = structureService.getStructureItinerarioKey()> 
12    <#assign ricettaStructureKey = structureService.getStructureRicettaKey()> 
13    <#assign luogoStructureKey = structureService.getStructureLuogoKey()> 
14    <#assign layout = themeDisplay.getLayout()/> 
15    <#assign currentSite = themeDisplay.getSiteGroup()/> 
16    <#assign currentSiteUrl = currentSite.getPathFriendlyURL(false, themeDisplay)/> 
17    <#assign currentSiteFriendlyUrl = currentSite.getFriendlyURL()/> 
18 
19    <#assign count = 1/> 
20    <#list entries as curEntry> 
21        <#assign assetRenderer = curEntry.getAssetRenderer()/> 
22        <#if validator.isNotNull(assetRenderer)> 
23            <#assign className = assetRenderer.getClassName() /> 
24            <#if className == "com.liferay.journal.model.JournalArticle"> 
25                <#assign ja = assetRenderer.getArticle() /> 
26                <#assign structureId = ja.getStructureId() /> 
27 
28                <#if showTemplate && structureId != attrattoreStructureKey && structureId != eventoStructureKey  
29                	&& structureId != itinerarioStructureKey && structureId != ricettaStructureKey  
30                	&& structureId != luogoStructureKey > 
31                    <#assign showTemplate = false /> 
32                </#if> 
33            <#else> 
34                <#assign showTemplate = false /> 
35            </#if> 
36        <#else> 
37            <#assign showTemplate = false /> 
38        </#if> 
39    </#list> 
40<#else> 
41    <#assign emptyEntries = true /> 
42</#if>  
43 
44<#if !emptyEntries>  
45    <#if showTemplate> 
46    <div class="container"> 
47        <div class="row cards-wrapper"> 
48            <#list entries as curEntry> 
49                <#assign assetRenderer = curEntry.getAssetRenderer()/> 
50                <#assign ja = assetRenderer.getArticle() /> 
51                <#assign structureId = ja.getStructureId() /> 
52                <#assign langId = themeDisplay.getLanguageId() /> 
53                <#assign contentByLocale = ja.getContentByLocale(themeDisplay.getLanguageId()) /> 
54                <#assign colorebordo = "border-bottom-yellow"> 
55    			<#assign subpage = "luogo"> 
56                 
57                <#if structureId == attrattoreStructureKey> 
58                    <#assign subpage = "attrazione"> 
59                <#elseif structureId == eventoStructureKey> 
60                    <#assign subpage = "evento"> 
61                <#elseif structureId == itinerarioStructureKey> 
62                    <#assign subpage = "itinerario"> 
63                <#elseif structureId == ricettaStructureKey> 
64                    <#assign subpage = "ricetta"> 
65                <#elseif structureId == luogoStructureKey> 
66                    <#assign subpage = "luogo"> 
67                <#else> 
68                </#if> 
69                 
70                <#--CONTENT BY DEFAULT LOCALE--> 
71                <#assign url = "" > 
72                <#attempt> 
73                    <#assign contentByDefaultLocale = ja.getContentByLocale(localeUtil.getDefault()) /> 
74                    <#assign documentByDefaultLocale = saxReaderUtil.read(contentByDefaultLocale) > 
75                    <#assign rootElementByDefaultLocale = documentByDefaultLocale.getRootElement()> 
76                     
77                        <#assign xPathImmagineListaByDefaultLocale = saxReaderUtil.createXPath("dynamic-element[@name='immagine_lista']")> 
78                        <#if xPathImmagineListaByDefaultLocale?? && xPathImmagineListaByDefaultLocale?has_content> 
79                            <#if xPathImmagineListaByDefaultLocale.selectSingleNode(rootElementByDefaultLocale)?? && xPathImmagineListaByDefaultLocale.selectSingleNode(rootElementByDefaultLocale)?has_content> 
80                                <#assign immagineListaByDefaultLocale = xPathImmagineListaByDefaultLocale.selectSingleNode(rootElementByDefaultLocale).getStringValue()> 
81                            </#if> 
82                        </#if> 
83                        <#assign xPathImmagineBannerByDefaultLocale = saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")> 
84                     
85                        <#assign immagineBannerByDefaultLocale = xPathImmagineBannerByDefaultLocale.selectSingleNode(rootElementByDefaultLocale).getStringValue()> 
86                                                         
87                        <#if immagineListaByDefaultLocale?trim?has_content> 
88                            <#assign immagineByDefaultLocale = immagineListaByDefaultLocale> 
89                        <#else> 
90                            <#assign immagineByDefaultLocale = immagineBannerByDefaultLocale> 
91                        </#if> 
92 
93                        <#if validator.isNotNull(immagineByDefaultLocale)> 
94                            <#attempt> 
95                                <#assign imgJsonByDefaultLocale = jsonFactoryUtil.createJSONObject(immagineByDefaultLocale)> 
96                                <#assign url = "/documents/"+ imgJsonByDefaultLocale.groupId +"/" +imgJsonByDefaultLocale.classPK +"/"+ imgJsonByDefaultLocale.title +"/"+imgJsonByDefaultLocale.uuid + "?width=600" > 
97                            <#recover> 
98                                <#assign url = ""> 
99                            </#attempt> 
100                        </#if> 
101                <#recover> 
102                </#attempt> 
103                <#--CONTENT BY DEFAULT LOCALE--> 
104 
105                <#assign urlTitle = ja.getUrlTitle() /> 
106                <#assign document = saxReaderUtil.read(contentByLocale) > 
107                <#assign rootElement = document.getRootElement()> 
108                <#assign xPathTitolo = "" /> 
109                <#assign xPathSottotitolo_abstract = "" /> 
110                <#assign xPathImmagineBanner = "" /> 
111                <#assign xPathTextAltImg = "" /> 
112                <#assign textAltImg = "" /> 
113                <#assign destinationPage = "" /> 
114                <#assign immagineLista = ""> 
115                <#assign textAltImgLista = ""> 
116                <#assign immagine = "">   
117                <#assign xPathTitolo = saxReaderUtil.createXPath("dynamic-element[@name='titolo']")> 
118                <#assign xPathSottotitolo_abstract = saxReaderUtil.createXPath("dynamic-element[@name='sottotitolo']")> 
119                 
120                <#assign xPathImmagineLista = saxReaderUtil.createXPath("dynamic-element[@name='immagine_lista']")> 
121                <#if xPathImmagineLista?? && xPathImmagineLista?has_content> 
122                    <#if xPathImmagineLista.selectSingleNode(rootElement)?? && xPathImmagineLista.selectSingleNode(rootElement)?has_content> 
123                        <#assign immagineLista = xPathImmagineLista.selectSingleNode(rootElement).getStringValue()> 
124                    </#if> 
125                </#if> 
126                <#assign xPathTextAltImgLista = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_lista']")> 
127                <#if xPathTextAltImgLista?? && xPathTextAltImgLista?has_content> 
128                    <#if xPathTextAltImgLista.selectSingleNode(rootElement)?? && xPathTextAltImgLista.selectSingleNode(rootElement)?has_content> 
129                        <#assign textAltImgLista = xPathTextAltImgLista.selectSingleNode(rootElement).getStringValue()> 
130                    </#if> 
131                </#if> 
132 
133                <#assign xPathImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='banner']")> 
134                <#assign xPathTextAltImg = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_banner']")> 
135                <#assign textAltImg = xPathTextAltImg.selectSingleNode(rootElement).getStringValue()> 
136                <#assign destinationPage = "${currentSiteUrl}${currentSiteFriendlyUrl}/search/-/search/${subpage}/${urlTitle}" /> 
137                <#assign titolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
138                <#assign sottotitolo_abstract = xPathSottotitolo_abstract.selectSingleNode(rootElement).getStringValue()>    
139                 
140                <#assign immagineBanner = xPathImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
141                <#if !textAltImg?has_content> 
142                    <#assign textAltImg = titolo> 
143                </#if> 
144                                                 
145                <#if immagineLista?trim?has_content> 
146                    <#assign immagine = immagineLista> 
147                    <#assign textAltImg = textAltImgLista> 
148                <#else> 
149                    <#assign immagine = immagineBanner> 
150                </#if> 
151 
152                <#if validator.isNotNull(immagine)> 
153                    <#attempt> 
154                        <#assign imgJson = jsonFactoryUtil.createJSONObject(immagine)> 
155                        <#assign url = "/documents/"+ imgJson.groupId +"/" +imgJson.classPK +"/"+ imgJson.title +"/"+imgJson.uuid + "?width=600" > 
156                    <#recover> 
157                    </#attempt> 
158                </#if> 
159                <div class="card-container col-12 col-md-6 col-lg-4 ${colorebordo}"> 
160                    <div class="row"> 
161                      <div class="card"> 
162                        <a href="${destinationPage}"> 
163                          <img class="card-img-top" src="${url}" alt="${textAltImg}"> 
164                          <div class="card-body"> 
165                            <h3 class="card-title">${titolo}</h3> 
166                            <p class="card-text">${sottotitolo_abstract}</p> 
167                          </div> 
168                        </a> 
169                      </div> 
170                    </div> 
171                </div> 
172            </#list> 
173        </div> 
174    </div> 
175    <#else> 
176        <div style="border: 1px solid red; padding:20px;"> 
177            <h3 style="color: red;">Questo template supporta solo contenuti di tipo Web Content con struttura attrattori, eventi, itinerari, ricette, luoghi.</h3> 
178            <h3 style="color: red;">Configurare opportunamente l'aggregatore risorse</h3> 
179        </div> 
180    </#if> 
181</#if> 

SEZIONE -Event archive

Event archive


Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> structureService.getStructureAttrattoreKey()  [in template "20099#20135#154466" at line 9, column 39]

----
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: #assign attrattoreStructureKey = stru...  [in template "20099#20135#154466" at line 9, column 5]
----
1<#-- MOSAICO MULTITIPO  04/07/2023--> 
2 
3<#assign showTemplate = false /> 
4<#assign emptyEntries = false /> 
5 
6<#if entries?has_content>  
7    <#assign showTemplate = true /> 
8    <#assign structureService = serviceLocator.findService("it.inera.palermo.structure.service.StructureService")> 
9    <#assign attrattoreStructureKey = structureService.getStructureAttrattoreKey()> 
10    <#assign eventoStructureKey = structureService.getStructureEventoKey()> 
11    <#assign itinerarioStructureKey = structureService.getStructureItinerarioKey()> 
12    <#assign ricettaStructureKey = structureService.getStructureRicettaKey()> 
13    <#assign luogoStructureKey = structureService.getStructureLuogoKey()> 
14    <#assign layout = themeDisplay.getLayout()/> 
15    <#assign currentSite = themeDisplay.getSiteGroup()/> 
16    <#assign currentSiteUrl = currentSite.getPathFriendlyURL(false, themeDisplay)/> 
17    <#assign currentSiteFriendlyUrl = currentSite.getFriendlyURL()/> 
18 
19    <#assign count = 1/> 
20    <#list entries as curEntry> 
21        <#assign assetRenderer = curEntry.getAssetRenderer()/> 
22        <#if validator.isNotNull(assetRenderer)> 
23            <#assign className = assetRenderer.getClassName() /> 
24            <#if className == "com.liferay.journal.model.JournalArticle"> 
25                <#assign ja = assetRenderer.getArticle() /> 
26                <#assign structureId = ja.getStructureId() /> 
27 
28                <#if showTemplate && structureId != attrattoreStructureKey && structureId != eventoStructureKey  
29                	&& structureId != itinerarioStructureKey && structureId != ricettaStructureKey  
30                	&& structureId != luogoStructureKey > 
31                    <#assign showTemplate = false /> 
32                </#if> 
33            <#else> 
34                <#assign showTemplate = false /> 
35            </#if> 
36        <#else> 
37            <#assign showTemplate = false /> 
38        </#if> 
39    </#list> 
40<#else> 
41    <#assign emptyEntries = true /> 
42</#if>  
43 
44<#if !emptyEntries>  
45    <#if showTemplate> 
46    <div class="container"> 
47        <div class="row cards-wrapper"> 
48            <#list entries as curEntry> 
49                <#assign assetRenderer = curEntry.getAssetRenderer()/> 
50                <#assign ja = assetRenderer.getArticle() /> 
51                <#assign structureId = ja.getStructureId() /> 
52                <#assign langId = themeDisplay.getLanguageId() /> 
53                <#assign contentByLocale = ja.getContentByLocale(themeDisplay.getLanguageId()) /> 
54                <#assign colorebordo = "border-bottom-yellow"> 
55    			<#assign subpage = "luogo"> 
56                 
57                <#if structureId == attrattoreStructureKey> 
58                    <#assign subpage = "attrazione"> 
59                <#elseif structureId == eventoStructureKey> 
60                    <#assign subpage = "evento"> 
61                <#elseif structureId == itinerarioStructureKey> 
62                    <#assign subpage = "itinerario"> 
63                <#elseif structureId == ricettaStructureKey> 
64                    <#assign subpage = "ricetta"> 
65                <#elseif structureId == luogoStructureKey> 
66                    <#assign subpage = "luogo"> 
67                <#else> 
68                </#if> 
69                 
70                <#--CONTENT BY DEFAULT LOCALE--> 
71                <#assign url = "" > 
72                <#attempt> 
73                    <#assign contentByDefaultLocale = ja.getContentByLocale(localeUtil.getDefault()) /> 
74                    <#assign documentByDefaultLocale = saxReaderUtil.read(contentByDefaultLocale) > 
75                    <#assign rootElementByDefaultLocale = documentByDefaultLocale.getRootElement()> 
76                     
77                        <#assign xPathImmagineListaByDefaultLocale = saxReaderUtil.createXPath("dynamic-element[@name='immagine_lista']")> 
78                        <#if xPathImmagineListaByDefaultLocale?? && xPathImmagineListaByDefaultLocale?has_content> 
79                            <#if xPathImmagineListaByDefaultLocale.selectSingleNode(rootElementByDefaultLocale)?? && xPathImmagineListaByDefaultLocale.selectSingleNode(rootElementByDefaultLocale)?has_content> 
80                                <#assign immagineListaByDefaultLocale = xPathImmagineListaByDefaultLocale.selectSingleNode(rootElementByDefaultLocale).getStringValue()> 
81                            </#if> 
82                        </#if> 
83                        <#assign xPathImmagineBannerByDefaultLocale = saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")> 
84                     
85                        <#assign immagineBannerByDefaultLocale = xPathImmagineBannerByDefaultLocale.selectSingleNode(rootElementByDefaultLocale).getStringValue()> 
86                                                         
87                        <#if immagineListaByDefaultLocale?trim?has_content> 
88                            <#assign immagineByDefaultLocale = immagineListaByDefaultLocale> 
89                        <#else> 
90                            <#assign immagineByDefaultLocale = immagineBannerByDefaultLocale> 
91                        </#if> 
92 
93                        <#if validator.isNotNull(immagineByDefaultLocale)> 
94                            <#attempt> 
95                                <#assign imgJsonByDefaultLocale = jsonFactoryUtil.createJSONObject(immagineByDefaultLocale)> 
96                                <#assign url = "/documents/"+ imgJsonByDefaultLocale.groupId +"/" +imgJsonByDefaultLocale.classPK +"/"+ imgJsonByDefaultLocale.title +"/"+imgJsonByDefaultLocale.uuid + "?width=600" > 
97                            <#recover> 
98                                <#assign url = ""> 
99                            </#attempt> 
100                        </#if> 
101                <#recover> 
102                </#attempt> 
103                <#--CONTENT BY DEFAULT LOCALE--> 
104 
105                <#assign urlTitle = ja.getUrlTitle() /> 
106                <#assign document = saxReaderUtil.read(contentByLocale) > 
107                <#assign rootElement = document.getRootElement()> 
108                <#assign xPathTitolo = "" /> 
109                <#assign xPathSottotitolo_abstract = "" /> 
110                <#assign xPathImmagineBanner = "" /> 
111                <#assign xPathTextAltImg = "" /> 
112                <#assign textAltImg = "" /> 
113                <#assign destinationPage = "" /> 
114                <#assign immagineLista = ""> 
115                <#assign textAltImgLista = ""> 
116                <#assign immagine = "">   
117                <#assign xPathTitolo = saxReaderUtil.createXPath("dynamic-element[@name='titolo']")> 
118                <#assign xPathSottotitolo_abstract = saxReaderUtil.createXPath("dynamic-element[@name='sottotitolo']")> 
119                 
120                <#assign xPathImmagineLista = saxReaderUtil.createXPath("dynamic-element[@name='immagine_lista']")> 
121                <#if xPathImmagineLista?? && xPathImmagineLista?has_content> 
122                    <#if xPathImmagineLista.selectSingleNode(rootElement)?? && xPathImmagineLista.selectSingleNode(rootElement)?has_content> 
123                        <#assign immagineLista = xPathImmagineLista.selectSingleNode(rootElement).getStringValue()> 
124                    </#if> 
125                </#if> 
126                <#assign xPathTextAltImgLista = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_lista']")> 
127                <#if xPathTextAltImgLista?? && xPathTextAltImgLista?has_content> 
128                    <#if xPathTextAltImgLista.selectSingleNode(rootElement)?? && xPathTextAltImgLista.selectSingleNode(rootElement)?has_content> 
129                        <#assign textAltImgLista = xPathTextAltImgLista.selectSingleNode(rootElement).getStringValue()> 
130                    </#if> 
131                </#if> 
132 
133                <#assign xPathImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='banner']")> 
134                <#assign xPathTextAltImg = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_banner']")> 
135                <#assign textAltImg = xPathTextAltImg.selectSingleNode(rootElement).getStringValue()> 
136                <#assign destinationPage = "${currentSiteUrl}${currentSiteFriendlyUrl}/search/-/search/${subpage}/${urlTitle}" /> 
137                <#assign titolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
138                <#assign sottotitolo_abstract = xPathSottotitolo_abstract.selectSingleNode(rootElement).getStringValue()>    
139                 
140                <#assign immagineBanner = xPathImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
141                <#if !textAltImg?has_content> 
142                    <#assign textAltImg = titolo> 
143                </#if> 
144                                                 
145                <#if immagineLista?trim?has_content> 
146                    <#assign immagine = immagineLista> 
147                    <#assign textAltImg = textAltImgLista> 
148                <#else> 
149                    <#assign immagine = immagineBanner> 
150                </#if> 
151 
152                <#if validator.isNotNull(immagine)> 
153                    <#attempt> 
154                        <#assign imgJson = jsonFactoryUtil.createJSONObject(immagine)> 
155                        <#assign url = "/documents/"+ imgJson.groupId +"/" +imgJson.classPK +"/"+ imgJson.title +"/"+imgJson.uuid + "?width=600" > 
156                    <#recover> 
157                    </#attempt> 
158                </#if> 
159                <div class="card-container col-12 col-md-6 col-lg-4 ${colorebordo}"> 
160                    <div class="row"> 
161                      <div class="card"> 
162                        <a href="${destinationPage}"> 
163                          <img class="card-img-top" src="${url}" alt="${textAltImg}"> 
164                          <div class="card-body"> 
165                            <h3 class="card-title">${titolo}</h3> 
166                            <p class="card-text">${sottotitolo_abstract}</p> 
167                          </div> 
168                        </a> 
169                      </div> 
170                    </div> 
171                </div> 
172            </#list> 
173        </div> 
174    </div> 
175    <#else> 
176        <div style="border: 1px solid red; padding:20px;"> 
177            <h3 style="color: red;">Questo template supporta solo contenuti di tipo Web Content con struttura attrattori, eventi, itinerari, ricette, luoghi.</h3> 
178            <h3 style="color: red;">Configurare opportunamente l'aggregatore risorse</h3> 
179        </div> 
180    </#if> 
181</#if>