An error occurred while processing the template.
The following has evaluated to null or missing:
==> operaMmg.getTipologia  [in template "20096#20121#59095" at line 149, column 46]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 operaMmg.getTipologia()?? && oper...  [in template "20096#20121#59095" at line 149, column 41]
----
1<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")> 
2 
3<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
4<#assign jac = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")> 
5<#assign journalArticleId = .vars['reserved-article-id'].data> 
6<#assign ja = journalArticleLocalService.getArticle(groupId, journalArticleId)> 
7 
8<#assign operaMmg = jac.getOperaMmgMUSEO(ja, locale) /> 
9<#assign jaopereRelated = operaMmg.getDirectRelatedAssets() /> 
10<#assign jaopere = operaMmg.getDirectRelatedAssets() /> 
11 
12<#assign printsection = false> 
13<#assign printpercorsi = false> 
14<#assign printcollezioni = false> 
15 
16<#assign modifieddate = operaMmg.getModifiedDate()?string["dd/MM/yyyy, HH:mm"]> 
17 
18<#assign siteBasePath = "" > 
19<#attempt> 
20  <#assign utilityService = serviceLocator.findService("it.inera.utility.service.UtilityService")> 
21  <#recover> 
22</#attempt> 
23<#if utilityService?? && utilityService?has_content> 
24  <#assign serviceSiteBasePath = utilityService.getSiteBasePath(themeDisplay) > 
25  <#if (serviceSiteBasePath)?? && (serviceSiteBasePath)?has_content> 
26    <#assign siteBasePath = serviceSiteBasePath > 
27  </#if> 
28</#if> 
29 
30<div class="main-section"> 
31	<div class="container"> 
32		<nav class="breadcrumb-container" aria-label="breadcrumb"> 
33		<ol class="breadcrumb mb-4"> 
34			<li class="breadcrumb-item"><a class="back-link" href="${siteBasePath}/"><@liferay.language key="breadcrumbs.home" /></a><span class="separator">/</span></li> 
35			<li class="breadcrumb-item"><a class="back-link" href="${siteBasePath}/esplora-i-musei"><@liferay.language key="breadcrumbs.esploramusei" /></a><span class="separator">/</span></li> 
36			<li class="breadcrumb-item"><a class="back-link" href="${siteBasePath}/esplora-i-musei/opere"><@liferay.language key="breadcrumbs.opere" /></a><span class="separator">/</span></li> 
37			<li class="breadcrumb-item active" aria-current="page">${operaMmg.getTitolo()} 
38			</li> 
39		</ol> 
40		</nav> 
41	</div> 
42</div> 
43 
44<section class="section-background"> 
45	<div class="container p-5rem artwork"> 
46		<#list jaopereRelated as jaoperaRelated> 
47			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureCollezioneMmgMUSEOId()> 
48				<#assign collezioneMmg = jac.getCollezioneMmgMUSEO(jaoperaRelated, locale)> 
49				<#assign jacollezioneRelated = collezioneMmg.getDirectRelatedAssets() /> 
50				<#assign printsection = true> 
51				<#assign printcollezioni = true> 
52			</#if> 
53			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureSpazioEspositivoMmgMUSEOId()> 
54				<#assign spazioEspositivoMmg = jac.getSpazioEspositivoMmgMUSEO(jaoperaRelated, locale)> 
55				<#if spazioEspositivoMmg??> 
56					<#assign jaspaziespositiviReleted = spazioEspositivoMmg.getDirectRelatedAssets()> 
57					<#list jaspaziespositiviReleted as jaspazioespositivoReleted> 
58						<#if jaspazioespositivoReleted.getDDMStructureId() == structureService.getStructurePianoMmgMUSEOId()> 
59							<#assign pianoMmg = jac.getPianoMmgMUSEO(jaspazioespositivoReleted, locale)> 
60							<#assign jaluoghiReleted = pianoMmg.getDirectRelatedAssets()> 
61							<#list jaluoghiReleted as jaluogoReleted> 
62								<#if jaluogoReleted.getDDMStructureId() == structureService.getStructureLuogoMmgMUSEOId()> 
63									<#assign luogoMmg = jac.getLuogoMmgMUSEO(jaluogoReleted, locale)> 
64								</#if> 
65							</#list> 
66						</#if> 
67					</#list> 
68				</#if> 
69			</#if> 
70			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureAutoreMmgMUSEOId()> 
71				<#if autoriMmg??> 
72			        <#assign autoriMmg = autoriMmg + [jac.getAutoreMmgMUSEO(jaoperaRelated, locale)]> 
73			    <#else> 
74			        <#assign autoriMmg = [jac.getAutoreMmgMUSEO(jaoperaRelated, locale)]> 
75			    </#if> 
76			</#if> 
77			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructurePercorsoMmgMUSEOId()> 
78				<#assign printsection = true> 
79				<#assign printpercorsi = true> 
80			</#if> 
81			<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureLuogoMmgMUSEOId()> 
82				<#assign luogoMmg = jac.getLuogoMmgMUSEO(jaoperaRelated, locale)> 
83			</#if> 
84		</#list> 
85		<h1 class="mb-4">${operaMmg.titolo}</h1> 
86		<div class="row data-infos mb-4"> 
87			<#if autoriMmg??> 
88				<#list autoriMmg as autoreMmg > 
89					<a href="${siteBasePath}/w/${autoreMmg.urlTitle}">${autoreMmg.nome}</a> 
90				</#list> 
91			</#if> 
92			<#if (operaMmg.getDatazione())??> 
93				<p>${operaMmg.getDatazione()}</p> 
94			</#if> 
95		</div> 
96		<div class="container col-md-5"><img src="${operaMmg.immagineprincipale.immagine.url}" alt="${operaMmg.titolo}"> 
97			<div class="action-opera mt-4"> 
98				<div class="dropdown d-inline"> 
99					<button class="btn btn-dropdown dropdown-toggle text-decoration-underline d-inline-flex align-items-center fs-0" id="shareActions" aria-label="condividi sui social" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 
100						<div class="share-button"> 
101							<svg class="icon"> 
102								<use href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-share"></use> 
103							</svg><@liferay.language key="museo.social.condividi" /> 
104						</div> 
105					</button> 
106					<div class="dropdown-menu shadow-lg" aria-labelledby="shareActions"> 
107						<div class="link-list-wrapper"> 
108							<ul class="link-list share-btn" role="menu"> 
109								<li role="none"><a class="list-item" data-id="fb" href="#" role="menuitem"> 
110									<svg class="me-2 icon icon-sm" aria-hidden="true"> 
111										<use xlink:href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-facebook"></use> 
112									</svg><span><@liferay.language key="museo.social.facebook" /></span></a></li> 
113								<li role="none"><a class="list-item" data-id="tw" href="#" role="menuitem"> 
114									<svg class="me-2 icon icon-sm" aria-hidden="true"> 
115										<use xlink:href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-twitter"></use> 
116									</svg><span><@liferay.language key="museo.social.twitter" /></span></a></li> 
117								<li role="none"><a class="list-item" data-id="wa" href="#" role="menuitem"> 
118									<svg class="me-2 icon icon-sm" aria-hidden="true"> 
119										<use xlink:href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-whatsapp"></use> 
120									</svg><span><@liferay.language key="museo.social.whatsapp" /></span></a></li> 
121							</ul> 
122						</div> 
123					</div> 
124			 
125				</div> 
126				<a class="btn p-0" href="${operaMmg.immagineprincipale.immagine.url}" data-lightbox="gallery" data-title="${operaMmg.titolo}"> 
127					<svg class="icon"> 
128						<use href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-zoom-in"></use> 
129					</svg> 
130				</a> 
131			</div> 
132		</div> 
133	</div> 
134</section> 
135 
136<section class="artwork-info"> 
137	<div class="container col-md-9 p-6 p-sm-1rem"> 
138		<div class="description mb-5rem p-3"> 
139			<p>${operaMmg.getDescrizione()}</p> 
140		</div> 
141		<h2 class="h4 p-3"><@liferay.language key="museo.opera.informazionitecniche" /></h2> 
142		<div class="table-responsive mt-2 p-3"> 
143			<table class="table"> 
144				<tbody> 
145					<tr> 
146						<th scope="row"><@liferay.language key="museo.opera.titolooriginale" /></th> 
147						<td>${operaMmg.getTitolo()}</td> 
148					</tr> 
149					<#if operaMmg.getTipologia()?? && operaMmg.getTipologia()?has_content> 
150						<tr> 
151							<th scope="row"><@liferay.language key="museo.opera.tipologia" /></th> 
152							<td>${operaMmg.getTipologia()}</td> 
153						</tr> 
154					</#if> 
155					<#if collezioneMmg?has_content> 
156						<tr> 
157							<th scope="row"><@liferay.language key="museo.opera.collezione" /></th> 
158							<td>${collezioneMmg.nome}</td> 
159						</tr> 
160					</#if> 
161					<#if operaMmg.getAmbito()?has_content> 
162						<tr> 
163							<th scope="row"><@liferay.language key="museo.opera.ambito" /></th> 
164							<td>${operaMmg.ambito}</td> 
165						</tr> 
166					</#if> 
167					<#if operaMmg.getMateriale()?has_content> 
168						<tr> 
169							<th scope="row"><@liferay.language key="museo.opera.tecnica" /></th> 
170							<td>${operaMmg.materiale}</td> 
171						</tr> 
172					</#if> 
173					<#if operaMmg.getMisure()?has_content> 
174						<tr> 
175							<th scope="row"><@liferay.language key="museo.opera.dimensioni" /></th> 
176							<td>${operaMmg.misure}</td> 
177						</tr> 
178					</#if> 
179					<#if restauri.getData()?has_content> 
180						<tr> 
181							<th scope="row"><@liferay.language key="museo.opera.restauri" /></th> 
182							<td>${restauri.getData()}</td> 
183						</tr> 
184            		</#if> 
185					<tr> 
186						<th scope="row"><@liferay.language key="museo.opera.collocazione" /></th> 
187						<td> 
188						${luogoMmg.nome}<br/> 
189						<@liferay.language key="museo.ricerca.piano" />: <a href="${siteBasePath}/w/${pianoMmg.getUrlTitle()}" title="${pianoMmg.nome}" >${pianoMmg.nome}</a><br/> 
190						<@liferay.language key="museo.ricerca.spazioespositivo" />: <a href="${siteBasePath}/w/${spazioEspositivoMmg.getUrlTitle()}" title="${spazioEspositivoMmg.nome}" >${spazioEspositivoMmg.nome}</a></td> 
191					</tr> 
192				</tbody> 
193			</table> 
194		</div> 
195	</div> 
196	 
197</section> 
198 
199<#if printsection> 
200	<section class="section mb-3"> 
201		<h2><@liferay.language key="museo.opera.operanelmuseo" /></h2> 
202		<#if printpercorsi> 
203			<div class="mt-4"> 
204				<h3><@liferay.language key="museo.opera.percorsi" /></h3> 
205				<div class="row mt-3 row-cols-1 row-cols-md-3"> 
206					<#list jaopereRelated as jaoperaRelated> 
207						<#if jaoperaRelated.getDDMStructureId() == structureService.getStructurePercorsoMmgMUSEOId()> 
208							<#assign percorsoMmg = jac.getPercorsoMmgMUSEO(jaoperaRelated, locale)> 
209							<#assign jacpercorsoRelated = percorsoMmg.getDirectRelatedAssets() /> 
210 
211							<div class="col mb-5"><a class="card card-5 border border-light rounded shadow h-100" href="${siteBasePath}/w/${percorsoMmg.getUrlTitle()}"> 
212									<div class="ratio ratio-16x9"><img class="card-img-top" src="${percorsoMmg.immagineprincipale.immagine.url}" alt="${percorsoMmg.immagineprincipale.titolo}"></div> 
213									<div class="card-body"> 
214										<h3 class="mb-3 card-title">${percorsoMmg.getTitolo()}</h3> 
215										<p class="card-text font-serif">${percorsoMmg.getDescrizione()}</p> 
216										<p class="footer-card font-serif"><strong><@liferay.language key="museo.opera.durata" />: &nbsp;&nbsp;&nbsp;</strong>${percorsoMmg.getDurata()}</p> 
217									</div> 
218								</a> 
219							</div> 
220						</#if> 
221					</#list> 
222				</div> 
223			</div> 
224		</#if> 
225		<#if printcollezioni> 
226			<div class="mt-6"> 
227				<h3><@liferay.language key="museo.opera.collezioni" /></h3> 
228				<div class="row mt-3 row-cols-1 row-cols-md-2"> 
229					<#list jaopereRelated as jaoperaRelated> 
230						<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureCollezioneMmgMUSEOId()> 
231							<#assign collezioneMmg = jac.getCollezioneMmgMUSEO(jaoperaRelated, locale)> 
232							<#assign jacollezioneRelated = collezioneMmg.getDirectRelatedAssets() /> 
233 
234							<div class="col"> 
235								<a class="card card-4 h-100" href="${siteBasePath}/w/${collezioneMmg.getUrlTitle()}"> 
236									<div class="ratio ratio-21x9"><img class="card-img-top" src="${collezioneMmg.immagineprincipale.immagine.url}" alt="${collezioneMmg.immagineprincipale.titolo}"></div> 
237									<div class="card-body"> 
238										<h3 class="h4 card-title">${collezioneMmg.getNome()}</h3> 
239										<p class="font-sans-serif">${collezioneMmg.getDescrizione()}</p> 
240									</div> 
241								</a> 
242							</div> 
243						</#if> 
244					</#list> 
245				</div> 
246			</div> 
247		</#if> 
248	</section> 
249</#if> 
250 
251 
252<#assign printsectionopere = false> 
253<#list jaopereRelated as jaoperaRelated> 
254	<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureCollezioneMmgMUSEOId()> 
255		<#assign collezioneMmg = jac.getCollezioneMmgMUSEO(jaoperaRelated, locale)> 
256		<#assign jacollezioneRelated = collezioneMmg.getDirectRelatedAssets() /> 
257 
258		<#list jacollezioneRelated as jacollezioneRelated> 
259			<#if jacollezioneRelated.getDDMStructureId() == structureService.getStructureOperaMmgMUSEOId()> 
260				<#assign operacorrelataMmg = jac.getOperaMmgMUSEO(jacollezioneRelated, locale)> 
261				<#assign jarelopereRelated = operacorrelataMmg.getDirectRelatedAssets() /> 
262 
263				<#assign printsectionopere = true> 
264			</#if> 
265		</#list> 
266	</#if> 
267</#list> 
268 
269<#if printsectionopere> 
270	<section class="section section-background pb-7"> 
271		<h2 class="mb-4"><@liferay.language key="museo.opera.operecorrelate" /></h2> 
272			<div class="row row-cols-1 row-cols-md-3"> 
273 
274				<#list jaopereRelated as jaoperaRelated> 
275					<#if jaoperaRelated.getDDMStructureId() == structureService.getStructureCollezioneMmgMUSEOId()> 
276						<#assign collezioneMmg = jac.getCollezioneMmgMUSEO(jaoperaRelated, locale)> 
277						<#assign jacollezioneRelated = collezioneMmg.getDirectRelatedAssets() /> 
278 
279						<#list jacollezioneRelated as jacollezioneRelated> 
280							<#if jacollezioneRelated.getDDMStructureId() == structureService.getStructureOperaMmgMUSEOId()> 
281								<#assign operacorrelataMmg = jac.getOperaMmgMUSEO(jacollezioneRelated, locale)> 
282								<#assign jarelopereRelated = operacorrelataMmg.getDirectRelatedAssets() /> 
283 
284								<#assign autoristr = "" /> 
285								<#assign isFirst = true> 
286 
287								<#list jarelopereRelated as jareloperaRelated> 
288									<#if jareloperaRelated.getDDMStructureId() == structureService.getStructureAutoreMmgMUSEOId()> 
289										<#assign autoreMmg = jac.getAutoreMmgMUSEO(jareloperaRelated, locale)> 
290										<#if isFirst> 
291											<#assign autoristr = autoreMmg.getNome() /> 
292											<#assign isFirst = false> 
293										<#else> 
294											<#assign autoristr = autoristr + ", "+ autoreMmg.getNome() /> 
295										</#if> 
296									</#if> 
297								</#list> 
298								<div class="col"><a class="card card-4 h-100" href="${siteBasePath}/w/${operacorrelataMmg.getUrlTitle()}"> 
299										<div class="ratio ratio-1x1"><img class="card-img-top" src="${operacorrelataMmg.immagineprincipale.immagine.url}" alt="${operacorrelataMmg.immagineprincipale.immagine.alt}"></div> 
300										<div class="card-body"> 
301											<h3 class="h4 card-title">${operacorrelataMmg.getTitolo()}</h3> 
302											<#if autoristr??> 
303												<h4 class="h6 author">${autoristr}</h4> 
304											</#if> 
305											<#if operacorrelataMmg.getDatazione()?? && operacorrelataMmg.getDatazione()?has_content> 
306												<p class="font-monospace card-text">${operacorrelataMmg.getDatazione()}</p> 
307											</#if> 
308										</div> 
309									</a> 
310								</div> 
311							</#if> 
312						</#list> 
313					</#if> 
314				</#list> 
315			</div> 
316 
317		<div class="row"> 
318			<div class="col-12 d-flex justify-content-end"> 
319				<a class="read-more" href="#" data-focus-mouse="false" aria-label="tutte le opere"><span class="text"><@liferay.language key="museo.opera.tutteleopere" /></span> 
320					<svg class="icon"> 
321						<use href="${themeDisplay.getPathThemeImages()}/sprites.svg#it-arrow-right"></use> 
322					</svg> 
323				</a> 
324			</div> 
325		</div> 
326	</section> 
327	 
328	<#if operaMmg.getImmaginisecondarie()?has_content && operaMmg.getImmaginisecondarie()[0]?? && operaMmg.getImmaginisecondarie()[0]?has_content && operaMmg.getImmaginisecondarie()[0].getImmagine().getUrl()?? &&  operaMmg.getImmaginisecondarie()[0].getImmagine().getUrl()?has_content> 
329		<section class="section section-background-dark pb-7"> 
330			<div class="container"> 
331				<div class="row"> 
332					<div class="col-12"> 
333						<h2><@liferay.language key="museo.opera.immaginicorrelate" /></h2> 
334					</div> 
335				</div> 
336				<div class="row"> 
337					<div class="carousel-2 it-carousel-wrapper it-carousel-landscape-abstract-three-cols it-full-carousel it-standard-image splide" data-bs-carousel-splide=""> 
338						<div class="splide__track"> 
339							<ul class="splide__list"> 
340								<#list operaMmg.getImmaginisecondarie() as image> 
341									<#if image?has_content && image.getImmagine().getUrl()?? && image.getImmagine().getUrl()?has_content> 
342										<li class="splide__slide"> 
343											<div class="it-single-slide-wrapper"> 
344												<div class="card-wrapper"> 
345													<div class="card card-img no-after"> 
346														<div class="img-responsive-wrapper"> 
347															<div class="img-responsive"> 
348																<div class="img-wrapper"> 
349																	<img class="modalImage" href="${image.getImmagine().getUrl()}" alt="${image.getImmagine().getAlt()}" data-fileentryid="${image.getImmagine().getFileEntryId()}" src="${image.getImmagine().getUrl()}" data-bs-toggle="modal" data-bs-target="#modalCarouselImage"> 
350																</div> 
351															</div> 
352														</div> 
353													</div> 
354												</div> 
355											</div> 
356										</li> 
357									</#if> 
358								</#list> 
359							</ul> 
360						</div> 
361					</div> 
362				</div> 
363			</div> 
364		</section> 
365	</#if> 
366	<section class="section pt-0"> 
367		<div class="row"> 
368        	<div class="description mb-5"> 
369          		<div class="d-flex justify-content-between footer-text mt-5"> 
370					<div class="text-update"><strong><@liferay.language key="museo.opera.ultimoaggiornamento" />:&nbsp;&nbsp;</strong>${modifieddate}</div> 
371          		</div> 
372    		</div> 
373      	</div> 
374    </section> 
375</#if> 

Rating pagina

Quanto sono chiare le informazioni su questa pagina?

Valuta da 1 a 5 stelle la pagina

Quali sono stati gli aspetti che hai preferito?1/2

Dove hai incontrato le maggiori difficoltà?1/2

Vuoi aggiungere altri dettagli?2/2

Inserire massimo 200 caratteri