Entdecken Sie einzigartige Vorschläge, um das Gebiet von Ternano
Terni area
Ternano
Eine Gegend, die hauptsächlich durch ihre Industrie bekannt ist, bietet aber auch wichtige antike Denkmäler, wie z. B. die archäologische Stätte von Carsulae. Außerdem der einzigartig schöne Wasserfall Cascata delle Marmore, herrliche Flora und Fauna in der Oase von Alviano und vieles mehr.
Das Gebiet erleben
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> titleParentCategory [in template "20099#20135#977410" at line 129, column 88]
----
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: ${titleParentCategory} [in template "20099#20135#977410" at line 129, column 86]
----
1<#--
2Template ID: 977410
3Template Key: 977409
4Type: display
5Mode: None
6-->
7<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
8<#assign searchService = serviceLocator.findService("it.inera.structure.search.service.SearchService")>
9<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")>
10
11<#assign jaClassId = portalUtil.getClassNameId("com.liferay.journal.model.JournalArticle")!>
12<#assign vocabularyIdUmbria = structureService.getVocabularyIdByVocabularyName("Vocabolario Umbria") >
13
14
15<#assign showTemplate = true />
16<#list entries as curEntry>
17 <#assign assetRenderer = curEntry.getAssetRenderer()/>
18 <#if assetRenderer.getClassName() != "com.liferay.journal.model.JournalArticle">
19 <#assign showTemplate = false />
20 <#break>
21 </#if>
22 <#if (assetRenderer.getArticle().getDDMStructureKey())! != (structureService.getStructureItinerarioKey())!>
23 <#assign showTemplate = false />
24 <#break>
25 </#if>
26</#list>
27
28<#assign value_vivi_il_territorio = "#" />
29<#assign site_vivi_il_territorio_custom_field = (layout.getGroup().getExpandoBridge().getAttribute("vivi_il_territorio"))!{} />
30<#list (site_vivi_il_territorio_custom_field?keys)![] as key>
31 <#if key == locale>
32 <#assign value_vivi_il_territorio = site_vivi_il_territorio_custom_field?values[key_index] />
33 </#if>
34</#list>
35
36<#assign layout = themeDisplay.getLayout()/>
37<#assign urlCurrent = themeDisplay.getLayoutFriendlyURL(layout)?replace("/", "")/>
38
39<#if !showTemplate>
40<div style="border: 1px solid red; padding:20px;">
41 <h3 style="color: red;">Questo template supporta solo contenuti di tipo Web Content con struttura Itinerario.</h3>
42 <h3 style="color: red;">Configurare opportunamente l'aggregatore risorse</h3>
43</div>
44<#else>
45<div class="bg-gray margin-top-lg-rem-minus-2">
46 <div class="container-fluid container-fluid-max-xl">
47 <div class="d-flex flex-justify-content-end">
48 <a class="link-showall" href="${value_vivi_il_territorio}?territory=${urlCurrent}">
49 <@liferay.language key="label.scopri.tutte"/>
50 <i class="fas fa-angle-right"></i>
51 </a>
52 </div>
53 <div class="carousel-container carousel-controls-bottom transparent margin-top-em-1 margin-bottom-em-3 carousel-draggable same-heigh-cards"
54 style="margin-left: -15px;margin-right: -15px;">
55 <div class="tns-carousel tns-carousel-default tns-nav-off">
56 <#list entries as curEntry>
57 <#assign assetRenderer = curEntry.getAssetRenderer()/>
58 <#assign ja = assetRenderer.getArticle() />
59
60 <#assign contentByLocale = ja.getContentByLocale(themeDisplay.getLanguageId()) />
61 <#assign rootElement = (saxReaderUtil.read(contentByLocale).getRootElement())! />
62
63 <#assign titolo = (saxReaderUtil.createXPath("dynamic-element[@name='titolo']")
64 .selectSingleNode(rootElement).getStringValue())!>
65 <#assign sottotitolo = (saxReaderUtil.createXPath("dynamic-element[@name='sottotitolo']")
66 .selectSingleNode(rootElement).getStringValue())!>
67 <#assign abstract = (saxReaderUtil.createXPath("dynamic-element[@name='abstract']")
68 .selectSingleNode(rootElement).getStringValue())!>
69 <#assign imageBanner = (saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")
70 .selectSingleNode(rootElement).getStringValue())!>
71 <#assign altImageBanner = (saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_banner']")
72 .selectSingleNode(rootElement).getStringValue())!>
73 <#assign imageLista = (saxReaderUtil.createXPath("dynamic-element[@name='immagine_lista']")
74 .selectSingleNode(rootElement).getStringValue())!>
75 <#assign altImageLista = (saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_lista']")
76 .selectSingleNode(rootElement).getStringValue())!>
77
78 <#assign imageAsset = imageLista />
79 <#assign altImageAsset = altImageLista />
80
81 <#if !imageAsset?has_content || imageAsset == "{}" >
82 <#assign imageAsset = imageBanner />
83 <#assign altImageAsset = altImageBanner />
84 </#if>
85 <#if !altImageAsset?has_content >
86 <#assign altImageAsset = "Titolo: " + titolo>
87 </#if>
88
89 <#assign urlImage = "" />
90 <#if imageAsset?has_content && imageAsset != "{}" >
91 <#assign urlImage = searchService.getFileEntryUrl(imageAsset, themeDisplay) />
92 </#if>
93
94 <#assign detailUrl = searchService.getArticleDetailUrl(ja, jaClassId, themeDisplay)! />
95 <#assign externalTag = searchService.isDifferentGroup(ja, themeDisplay)?then("target=\"_blank\"","")/>
96
97 <div>
98 <a href="${detailUrl}" ${externalTag} aria-label="${titolo?trim}" class="card card-1 card-1-styled">
99 <div class="card-header">
100 <div class="card-header-bg aspect-ratio aspect-ratio-4-3">
101 <img src="${urlImage + urlImage?contains("?")?then("&","?")}imageThumbnail=2"
102 alt="${altImageAsset}">
103 </div>
104 <button class="link link-tripplanner link-tripplanner-top-right margin-top-em-2 margin-right-em-1 link-tripplanner-styled"
105 data-id="${ja.getArticleId()}"
106 data-tom="false"
107 aria-label="<@liferay.language key="label.aggiungi.elimina.viaggio" />">
108 <i class="far fa-heart text-red" data-prefix="far"></i>
109 <i class="fas fa-heart text-red" data-prefix="fas" style="display:none"></i>
110 </button>
111 <div class="card-header-info">
112 <div class="card-badges">
113 <#list curEntry.getCategories()![] as category>
114 <#if vocabularyIdUmbria == category.getVocabularyId() >
115 <#assign titleCategory = category.getTitle(themeDisplay.getLocale())>
116 <#assign parentCategoryId = category.getParentCategoryId()>
117 <#if parentCategoryId?? && parentCategoryId?has_content && parentCategoryId != 0>
118 <#assign pc = assetCategoryLocalService.getCategory(parentCategoryId) >
119 <#if pc?? && pc?has_content>
120 <#assign titleParentCategory = pc.getTitle("it_IT")>
121 </#if>
122 </#if>
123 <div class="badge btn-trasparent">${titleCategory}</div>
124 </#if>
125 </#list>
126 <span class="hidden" id="tagmanager_init_pagegroup">Esplora il territorio</span>
127 <div class="hidden" id="tagmanager_item_card">
128 <span id="tagmanager_item_id">${curEntry.getEntryId()}</span>
129 <span id="tagmanager_item_category_card">${titleParentCategory}</span>
130 <span id="tagmanager_item_category2_card">${titleCategory}</span>
131 <span id="tagmanager_item_name">${titolo}</span>
132 <span id="tagmanager_item_list_name_card">Vivi il territorio</span>
133 <span id="tagmanager_item_list_id"></span>
134 <span id="tagmanager_item_brand">>${titleCategory}</span>
135 <span id="tagmanager_index">${curEntry_index}</span>
136 </div>
137 </div>
138 </div>
139 </div>
140 <div class="card-body">
141 <div class="card-body-title title-4">
142 ${titolo}
143 </div>
144 <div class="card-body-subtitle">
145 ${sottotitolo}
146 </div>
147 </div>
148 <div class="card-info mt-4">
149 <span class="info">
150 <@liferay.language key="label.continua.a.leggere"/>
151 </span>
152 </div>
153 </a>
154 </div>
155 </#list>
156 </div>
157 </div>
158 </div>
159</div>
160</#if>