Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> printImage  [in template "33201#33237#33894" at line 54, column 54]

----
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: #if printImage  [in template "33201#33237#33894" at line 54, column 49]
----
1<#-- Chiave del template globale "Utils" --> 
2<#include "${templatesPath}/33878" /> 
3 
4<#assign pathNewsList = "elenco-notizie"> 
5 
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
7<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
8<#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
9<#assign AssetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")> 
10<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
11<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticle.getResourcePrimKey()) /> 
12 
13<#assign title = .vars['reserved-article-title'].data /> 
14<#assign urlTitle = .vars['reserved-article-url-title'].data /> 
15<#assign date = .vars['reserved-article-display-date'].data> 
16<#assign dateTimeFormat = "dd MMMM yyyy"> 
17<#assign articleURL = themeDisplay.getURLPortal() + themeDisplay.getScopeGroup().getPathFriendlyURL(false, themeDisplay) + themeDisplay.getScopeGroup().getFriendlyURL() + "/-/" + urlTitle /> 
18 
19 
20<#setting locale = localeUtil.getDefault()> 
21<#assign notizieLandingPage = "#"> 
22<#if themeDisplay.getThemeSetting("notizie-landing-page")?has_content> 
23    <#assign notizieLandingPage = themeDisplay.getThemeSetting("notizie-landing-page")> 
24</#if> 
25 
26<div class="container portale-istituzionale"> 
27	<div class="row notizia"> 
28		<div class="col-md-8"> 
29		<!-- Inestazione --> 
30			<div class="row"> 
31				<div class="col"> 
32					<h2 class="h1">${title}</h2> 
33        			<#if parentStructure.Sottotitolo.getData()?has_content> 
34        				<h2>${parentStructure.Sottotitolo.getData()}</h2> 
35        			</#if> 
36				</div> 
37			</div> 
38			<!-- Inestazione --> 
39			<!-- Corpo --> 
40			<#if parentStructure.TestoNotizia?has_content> 
41    			<div class="row corpo" > 
42    				<div class="col"> 
43        				<#if parentStructure.showImage?? && parentStructure.showImage.getData()?has_content && parentStructure.showImage.getData() != "hide"> 
44							<#assign 
45							printImage = true 
46							imageCss = "full-width-img" 
47
48							<#if parentStructure.showImage.getData() == "float"> 
49									<#assign 	imageCss = "float-img"> 
50							</#if> 
51						</#if> 
52						 
53						 
54						<#if printImage> 
55						 
56								<#assign 								 
57								imageUrl = "" 
58								imageAlt = "" 
59								/> 
60								 
61								<#if parentStructure.principalImage?? && parentStructure.principalImage.getData()?has_content> 
62									<#attempt>								 
63										<#assign  
64										imgData = parentStructure.principalImage.getData() 
65										imageObj = jsonFactoryUtil.createJSONObject(imgData)  
66										/> 
67										<#if (imageObj.getString("url")?has_content && imageObj.getString("url")?length > 1) >									 
68											<#assign imageUrl = imageObj.getString("url") />											 
69											<#assign imageAlt = imageObj.getString("alt")!"" /> 
70										</#if> 
71									<#recover> 
72								 
73									</#attempt> 
74								</#if> 
75								 
76								<#if !imageUrl?has_content && parentStructure.principalImage_old?? && parentStructure.principalImage_old.getData()?has_content>									 
77        					<#assign imageUrl = parentStructure.principalImage_old.getData() /> 
78        					<#assign imageAlt = parentStructure.principalImage_old.getAttribute("alt")!"" /> 
79    						</#if> 
80								 
81								<#if imageUrl?has_content> 
82        					<img class="${imageCss}" src="${imageUrl}" alt="${imageAlt}" /> 
83    						</#if> 
84						</#if> 
85						<div class="news-description"> 
86    						${parentStructure.TestoNotizia.getData()} 
87						</div> 
88    				</div> 
89    			</div> 
90			</#if> 
91			<!-- Corpo --> 
92			 
93				<!-- slider Immagini o video --> 
94	<#assign expandoBridge = currentArticle.getExpandoBridge() /> 
95	<#if expandoBridge?? && expandoBridge.getAttribute("dlFolderID")?? >  
96		<#assign idFolder = expandoBridge.getAttribute("dlFolderID") /> 
97	</#if> 
98	 
99	<#if (idFolder?? && idFolder != "" && parentStructure?? && parentStructure.sliderVideoContent??) > 
100		<div class="row media-slider"> 
101			<div class="col-md-12"> 
102								<!-- parentStructure.sliderVideoContent --> 
103								<@printMediaGallery  
104										items=parentStructure.sliderVideoContent 
105										fieldImageName="sliderImageContent" 
106		/>							 
107			</div> 
108		</div> 
109	</#if>			 
110		<!-- slider Immagini o video --> 
111		 
112		<!-- Categorizzazione --> 
113    <div class="row col-md-12" > 
114      
115        	<#list currentArticleAssetEntry.getCategories() as category> 
116            	<#assign badgeClass = "grigio"> 
117               	<#assign categoryVocabulary =  vocabularyService.getVocabulary(category['vocabularyId']?number)['name']> 
118			<#if categoryVocabulary=="Aree Tematiche"> 
119            	        	<#assign badgeClass = AssetCategoryPropertyLocalService.getCategoryProperty(category['categoryId']?number, 'css_class')['value'] > 
120            	    	</#if> 
121            	    	 
122            	    <#if categoryVocabulary=="Tipologia"> 
123            	        <#assign badgeClass = "tipologia-press" > 
124            	    </#if> 
125            	     
126            	     
127            		<a class="link-badge mr-1" href="/${themeDisplay.getLocale()?substring(0, 2)}/web${themeDisplay.getScopeGroup()['friendlyURL']}/${pathNewsList}?p_r_p_categoryId=${category['categoryId']}"> 
128            			<span class="badge badge-${badgeClass}"> 
129            			    ${category.getTitle(locale)} 
130            			</span> 
131            		</a> 
132            </#list> 
133 
134	</div> 
135	<!-- Categorizzazione --> 
136	<!-- Data di visualizzazione --> 
137	    <div class="row col-md-12"> 
138    
139					<#assign languagePubblicato = 'Pubblicato il'/> 
140					<#if themeDisplay.getLanguageId()=='en_GB' || themeDisplay.getLanguageId()=='en_US'> 
141							<#assign languagePubblicato = 'Posted on'/> 
142					</#if> 
143    			<p>${languagePubblicato} ${date?datetime("EEE, d MMM yyyy HH:mm:ss Z")?string(dateTimeFormat)}</p> 
144    	 
145    </div> 
146		<!-- Data di visualizzazione --> 
147		</div> 
148 
149		<!-- Contenuti multimediali --> 
150		<div class="col-md-4"> 
151			<div class="row"> 
152			    <div class="d-none d-md-block"> 
153                    <@printSocialBlock title=title url=articleURL /> 
154                </div> 
155			</div> 
156			 
157			<#assign  
158			fromDate= getterUtil.getString(gruppoEvento.dataInizio.getData()) 
159			toDate= getterUtil.getString(gruppoEvento.dataFine.getData())		 
160			address = '' 
161			city = '' 
162			timeVisibility = 'hide' 
163			timeSeparator = '' 
164			fromTime = '' 
165			toTime = '' 
166			timePattern = "^(?:[01]\\d|2[0-3]):[0-5]\\d$"		 
167
168 
169			<#if validator.isNotNull(fromDate)> 
170				 
171					<div class="row"> 
172    			    <div class="col-12 documents-news"> 
173							   <div class="news-document-block"> 
174							  	<#assign languageEventLabel = 'Evento'/> 
175										<#if themeDisplay.getLanguageId()=='en_GB' || themeDisplay.getLanguageId()=='en_US'> 
176											<#assign languageEventLabel = 'Event'/> 
177										</#if>			 
178									<h3 >${languageEventLabel}</h3> 
179									 
180									<#if (gruppoEvento.titoloEvento.getData())?has_content> 
181											<div class="titolo-evento mb-1"><b>${gruppoEvento.titoloEvento.getData()}</b></div> 
182									</#if> 
183									 
184									<#if (gruppoEvento.luogoEvento.getData())?has_content> 
185										<div class="luogo-evento mb-1"> 
186											<span><b>Luogo:&nbsp;</b></span>										 
187											<span>	${gruppoEvento.luogoEvento.getData()}</span>										 
188										</div>									 
189									</#if> 
190									 
191								<#assign 
192									address = gruppoEvento.indirizzoEvento.getData() 
193									city = gruppoEvento.cittaEvento.getData() 
194									addressVisibility = (address?has_content || city?has_content)?then('','hide')  
195									separator = (address?has_content && city?has_content)?then('-','') 
196
197														 
198									<div class="indirizzo-evento ${addressVisibility} m-b-1"> 
199											<span><b>Indirizzo:&nbsp;</b></span>										 
200											<span>	${address} ${separator} ${city} </span>										 
201										</div>			 
202										 
203										<div class="data-evento mb-1"> 
204										<span><b>Data:&nbsp;</b></span>	 
205									 
206										<#if validator.isNotNull(toDate)> 
207											<span>dal	${fromDate?datetime("yyyy-MM-dd")?string(dateTimeFormat)} al ${toDate?datetime("yyyy-MM-dd")?string(dateTimeFormat)}</span>		 
208										<#else> 
209											<span>${fromDate?datetime("yyyy-MM-dd")?string(dateTimeFormat)}</span> 
210										</#if> 
211									</div>	 
212										 
213									<#if (gruppoEvento.oraInizio.getData())?has_content && (gruppoEvento.oraInizio.getData())?matches(timePattern) > 
214										<#assign fromTime = gruppoEvento.oraInizio.getData() /> 
215										<#assign timeVisibility = '' /> 
216										<#if (gruppoEvento.oraFine.getData())?has_content && (gruppoEvento.oraFine.getData())?matches(timePattern)> 
217											<#assign toTime = gruppoEvento.oraFine.getData() />			 
218											<#assign timeSeparator = 'alle' />									 
219										</#if>										 
220									</#if> 
221									 
222									<div class="orario-evento ${timeVisibility} mb-1"> 
223											<span><b>Orario:&nbsp;</b></span>										 
224											<span>dalle	${fromTime} ${timeSeparator} ${toTime} </span>										 
225										</div>																					 
226								</div> 
227							</div> 
228    			</div> 
229			</#if> 
230 
231			 
232			 
233			<!-- Allegati --> 
234            <#if groupItemHasContent(parentStructure.newsAttachmentFieldSet.newsAttachment)> 
235    			<div class="row"> 
236    			    <div class="col-12 documents-news"> 
237                        <div class="news-document-block"> 
238                            <#assign languageDocumentLabel = 'Documenti'/> 
239                            <#if themeDisplay.getLanguageId()=='en_GB' || themeDisplay.getLanguageId()=='en_US'> 
240                                <#assign languageDocumentLabel = 'Documents'/> 
241                            </#if> 
242                            <h3 >${languageDocumentLabel}</h3> 
243                            <@printDocumentList 
244                                documentList=parentStructure.newsAttachmentFieldSet.newsAttachment 
245                                documentTitleChildrenName="newsAttachmentTitle" 
246                                documentDescriptionChildrenName="newsAttachmentDescription" 
247                                printIcons = true /> 
248                        </div> 
249        			</div> 
250    			</div> 
251            </#if> 
252							<!-- Allegati --> 
253		</div> 
254		<!-- Contenuti multimediali  --> 
255	</div>	 
256</div> 
257 
258 
259 
260<style> 
261 
262body.portal-popup .row.media-slider #loader-cube { 
263    display: none; 
264
265 
266body.portal-popup .row.media-slider #first-slider{ 
267	display: block !important; 
268
269 
270 
271body.portal-popup .row.media-slider #first-slider .splide__slide.first_slider, 
272body.portal-popup .row.media-slider #first-slider .splide__slide.first_slider a{ 
273	display:none; 
274
275 
276 
277body.portal-popup .row.media-slider #first-slider .splide__slide.first_slider:first-child{ 
278	display:block; 
279
280 
281.row.corpo{ 
282	margin-bottom: 24px !important; 
283
284 
285</style>