Riscaldamento sostenibile per uffici e aziende
Si è verificato un errore nell'elaborarazione del modello.
Java method "static com.liferay.portal.kernel.service.LayoutServiceUtil.getLayoutByUuidAndGroupId(String, long, boolean)" threw an exception; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: articleLayout = layoutServiceUtil.get... [in template "20099#20135#94266" at line 106, column 32] - Reached through: #assign-container [in template "20099#20135#94266" at line 104, column 14] ----
1<style>
2 .card-deck {
3 justify-content: center;
4 width: 100%;
5 }
6 .h-auto{
7 height: auto;
8 }
9 @media (max-width: 991px) {
10 .card {
11 max-width: 100% !important;
12 }
13 }
14 </style>
15 <#assign
16 assetVocabularyServiceUtil = objectUtil("com.liferay.asset.kernel.service.AssetVocabularyLocalServiceUtil")
17 vocabulariesList = assetVocabularyServiceUtil.getGroupVocabularies(themeDisplay.getScopeGroupId())
18 vocabularyId = 0
19 bgtheme = ""
20 immagineStrName = ""
21 prefUrl = layout.getGroup().getDisplayURL(themeDisplay, false)
22 emptyDivNumber = 0
23 emptyDiv = ""
24 totalEntryCounter = 0
25 classLoaderTwoDeck = ""
26 classLoaderTwoCard = ""
27 />
28 <#list vocabulariesList as vocabulary>
29 <#assign vocabularyName = vocabulary.getName() />
30 <#if vocabularyName?? && vocabularyName?lower_case == "servizio">
31 <#assign vocabularyId = vocabulary.getVocabularyId() />
32 </#if>
33 </#list>
34 <#if currentURL?contains("offerte-luce-gas")>
35 <#assign bgtheme = "card-deck-bg" />
36 </#if>
37 <#if entries?has_content>
38 <#assign totalEntryCounter = entries?size />
39 </#if>
40
41 <#if totalEntryCounter % 3 == 1>
42 <#assign emptyDiv = "<div class='card pb-2' style='opacity:0;'></div> <div class='card pb-2' style='opacity:0;'></div>" />
43 <#elseif totalEntryCounter % 3 == 2>
44 <#assign
45 classLoaderTwoDeck = "justify-content: center;"
46 classLoaderTwoCard = "max-width: 30%;text-align: left;"
47 />
48 <#else>
49 <#assign emptyDiv = "" />
50 </#if>
51
52 <#if themeDisplay.getScopeGroup().getParentGroupId() gt 0>
53 <#assign scopeGroupId = themeDisplay.getScopeGroup().getParentGroupId() />
54 <#else>
55 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
56 </#if>
57 <section id="offerte-luce-gas">
58 <div class="container-fluid ${bgtheme}">
59 <div class="container">
60 <div class="row">
61 <div class="col-lg-12">
62 <#if entries?has_content>
63 <#assign itemCounter = 0/>
64 <#list entries as curEntry>
65 <#assign
66 dateFormat = "dd MM yyyy"
67 itemCounter = itemCounter + 1
68 assetRenderer = curEntry.getAssetRenderer()
69 docXml = saxReaderUtil.read(assetRenderer.getArticle().getContentByLocale(locale.toString()))
70 immagineInEvidenza = docXml.valueOf("//dynamic-element[@name='ImmagineOfferta']/dynamic-content/text()")
71 sottotitolo = docXml.valueOf("//dynamic-element[@name='SottotitoloOfferta']/dynamic-content/text()")
72 titolo = docXml.valueOf("//dynamic-element[@name='TitoloIntro']/dynamic-content/text()")
73 descrizione = docXml.valueOf("//dynamic-element[@name='DescrizioneIntro']/dynamic-content/text()")
74 scadenzaOfferta = docXml.valueOf("//dynamic-element[@name='ScadenzaOfferta']/dynamic-content/text()")
75 offertaFlat = docXml.valueOf("//dynamic-element[@name='OffertaFlat']/dynamic-content/text()")
76 offertaAConsumo = docXml.valueOf("//dynamic-element[@name='OffertaAConsumo']/dynamic-content/text()")
77 primoTestoElenco = docXml.valueOf("//dynamic-element[@name='PrimoTestoElenco']/dynamic-content/text()")
78 secondoTestoElenco = docXml.valueOf("//dynamic-element[@name='SecondoTestoElenco']/dynamic-content/text()")
79 terzoTestoElenco = docXml.valueOf("//dynamic-element[@name='TerzoTestoElenco']/dynamic-content/text()")
80 />
81 <#if currentURL?contains("soluzioni-sostenibili")>
82 <#assign immagineInEvidenza = docXml.valueOf("//dynamic-element[@name='ImmaginePiccola']/dynamic-content/text()") />
83 <#if !immagineInEvidenza?has_content>
84 <#assign immagineInEvidenza = docXml.valueOf("//dynamic-element[@name='ImmagineOfferta']/dynamic-content/text()") />
85 </#if>
86 </#if>
87 <#list "${immagineInEvidenza}"?split(",") as imageTmpSingleVar>
88 <#assign imageSingleVar = imageTmpSingleVar?split(":") />
89 <#if imageSingleVar[0]?contains("groupId")>
90 <#assign immagineStrGroupID = imageSingleVar[1]?replace('"', '') />
91 <#elseif imageSingleVar[0]?contains("name")>
92 <#assign
93 immagineStrName = imageSingleVar[1]?replace('"', '')
94 immagineStrName = immagineStrName?replace(' ', '+')
95 />
96 <#elseif imageSingleVar[0]?contains("uuid")>
97 <#assign immagineStrUUID = imageSingleVar[1]?replace('"', '') />
98 </#if>
99 </#list>
100 <#assign immagineUrl = "" />
101 <#if immagineStrGroupID?? && immagineStrName?? && immagineStrUUID??>
102 <#assign immagineUrl = "/documents/" + immagineStrGroupID + "/0/" + immagineStrName + "/" + immagineStrUUID />
103 </#if>
104 <#assign
105 layoutServiceUtil = objectUtil("com.liferay.portal.kernel.service.LayoutServiceUtil")
106 articleLayout = layoutServiceUtil.getLayoutByUuidAndGroupId(assetRenderer.getArticle().getLayoutUuid(), scopeGroupId, false)
107 friendlyUrl = articleLayout.getFriendlyURL(locale)
108 />
109 <#if prefUrl != "">
110 <#assign friendlyUrl = prefUrl + friendlyUrl />
111 </#if>
112 <#if itemCounter == 1>
113 <div class="card-deck">
114 </#if>
115 <#if itemCounter == 1 & currentURL?contains("soluzioni-sostenibili")>
116 <div class="card-deck" style="justify-content: center";>
117 </#if>
118 <div class="card pb-2" style="${classLoaderTwoCard}">
119 <#assign
120 entryCategories = curEntry.getCategories()
121 hasLuce = false
122 hasGas = false
123 />
124 <#list entryCategories as entryCategory>
125 <#if entryCategory.vocabularyId == vocabularyId>
126 <#switch entryCategory.name?lower_case>
127 <#case "luce">
128 <#assign hasLuce = true />
129 <#break />
130 <#case "gas">
131 <#assign hasGas = true />
132 <#break />
133 <#default>
134 <#break />
135 </#switch>
136 </#if>
137 </#list>
138 <#if hasLuce || hasGas>
139 <span class="card-tag darkish-color smaller bolder">
140 <#if hasLuce && hasGas>
141 Luce & Gas
142 <#elseif hasLuce>
143 Luce
144 <#elseif hasGas>
145 Gas
146 </#if>
147 </span>
148 </#if>
149 <a href="${friendlyUrl}">
150 <#if currentURL?contains("soluzioni-sostenibili") || currentURL?contains("mobilita-sostenibile")>
151 <#if curEntry.getTitle(locale) == "Noleggio auto elettrica" >
152 <#assign backgroundSize = "contain" />
153 <#else>
154 <#assign backgroundSize = "cover" />
155 </#if>
156 <div style="background: url('${immagineUrl}') center center no-repeat; background-size: ${backgroundSize}; height: 232px; border-radius: 10px 10px 0px 0px;"></div>
157 <#else>
158 <img width="100" height="100" loading="lazy" class="card-img-top h-auto" src="${immagineUrl}" alt="${curEntry.getTitle(locale)}" />
159 </#if>
160 </a>
161 <div class="card-body">
162 <a href="${friendlyUrl}" class="greyish-brown">
163 <h3 class="h4 card-title mb-0 gradient-text title-big letter-spacing-sm bolder">${curEntry.getTitle(locale)}</h3>
164 <#if sottotitolo?has_content>
165 <h4 class="h6 d-block gradient-text x-bigger letter-spacing-sm mb-4">${sottotitolo}</h4>
166 </#if>
167 </a>
168 <#if curEntry.getSummary(locale)?has_content>
169 <div class="card-text greyish-brown small letter-spacing-sm">${curEntry.getSummary(locale)}</div>
170 </#if>
171 <!--
172 <#if (offertaFlat?? && offertaFlat != "") || (offertaAConsumo?? && offertaAConsumo != "")>
173 <div class="row text-center pt-3">
174 <#if offertaFlat?? && offertaFlat != "">
175 <div class="col-lg-6">
176 <div><span class="icon-ricarica gradient-text title-bigger"></span></div>
177 <div class="text-uppercase darkish-pink smaller bold">Offerta flat</div>
178 <div class="small">${offertaFlat}</div>
179 </div>
180 </#if>
181 <#if offertaAConsumo?? && offertaAConsumo != "">
182 <div class="col-lg-6">
183 <div><span class="icon-ricarica gradient-text title-bigger"></span></div>
184 <div class="text-uppercase darkish-pink smaller bold">Offerta a consumo</div>
185 <div class="small">${offertaAConsumo}</div>
186 </div>
187 </#if>
188 </div>
189 </#if>
190 <#if (primoTestoElenco?? && primoTestoElenco != "") || (secondoTestoElenco?? && secondoTestoElenco != "") || (terzoTestoElenco?? && terzoTestoElenco != "")>
191 <div class="row align-items-center pt-4 text-center text-uppercase">
192 <#if primoTestoElenco?? && primoTestoElenco != "">
193 <div class="col-lg-4">
194 <div>
195 <span class="icon-check-list gradient-text title-bigger"></span>
196 </div>
197 <div class="medium smaller l12">
198 ${primoTestoElenco}
199 </div>
200 </div>
201 </#if>
202 <#if secondoTestoElenco?? && secondoTestoElenco != "">
203 <div class="col-lg-4">
204 <div>
205 <span class="icon-check-list gradient-text title-bigger"></span>
206 </div>
207 <div class="medium smaller l12">
208 ${secondoTestoElenco}
209 </div>
210 </div>
211 </#if>
212 <#if terzoTestoElenco?? && terzoTestoElenco != "">
213 <div class="col-lg-4">
214 <div>
215 <span class="icon-check-list gradient-text title-bigger"></span>
216 </div>
217 <div class="medium smaller l12">
218 ${terzoTestoElenco}
219 </div>
220 </div>
221 </#if>
222 </div>
223 </#if>
224 -->
225 <#if scadenzaOfferta?has_content>
226 <#assign dataScadenzaOfferta = scadenzaOfferta?split("-") />
227 <#if dataScadenzaOfferta?size == 3>
228 <p class="card-text warm-grey small letter-spacing-sm font-italic">
229 Offerta valida fino al ${dataScadenzaOfferta[2]}/${dataScadenzaOfferta[1]}/${dataScadenzaOfferta[0]}
230 </p>
231 </#if>
232 </#if>
233
234 </div>
235 <div class="card-footer pb-4">
236 <a href="${friendlyUrl}" class="btn btn-small gradient white small letter-spacing-sm">Scopri di più</a>
237 </div>
238 </div>
239
240 <#if itemCounter % 3 == 0>
241 </div>
242 <div class="card-deck">
243 </#if>
244
245 <#if itemCounter == totalEntryCounter>
246 ${emptyDiv}
247 </div>
248 </#if>
249 </#list>
250 </#if>
251 </div>
252 </div>
253 </div>
254 </div>
255 </section>
Luce & Gas
Hera NoProblem Business
Scegli le polizze assicurative contro i guasti agli impianti elettrici e gas della tua attività
Hera Contawatt Business
Monitora i consumi elettrici della tua attività da smartphone, tablet, pc e inizia a risparmiare
- Classe energetica A+
- 24 mesi di garanzia
- 20/25 anni di durata media
Hera Contawatt Business
Monitora i consumi elettrici della tua attività da smartphone, tablet, pc e inizia a risparmiare
- Classe energetica A+
- 24 mesi di garanzia
- 20/25 anni di durata media
Hai bisogno di aiuto?
Entra in contatto gratuitamente con i nostri consulenti energetici.