Gruppo Hera Luce e GasBusinessSoluzioni sostenibili

Soluzioni sostenibili

Soluzioni sostenibili

Prodotti e servizi efficienti, affidabili e convenienti

Gruppo Hera Luce e GasBusinessSoluzioni sostenibili

Soluzioni sostenibili

Prodotti e servizi efficienti, affidabili e convenienti

Per riscaldare i tuoi ambienti di lavoro

Per riscaldare i tuoi ambienti di lavoro

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> 

Per la sicurezza dei tuoi impianti

Per la sicurezza dei tuoi impianti

Luce & Gas

Hera NoProblem Business

Scegli le polizze assicurative contro i guasti agli impianti elettrici e gas della tua attività

Per risparmiare e tenere tutto sotto controllo

Per risparmiare e tenere tutto sotto controllo

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