NUOVE STRATEGIE PER ORTOPEDIA E TRAUMATOLOGIA IN LOMBARDIA
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing: ==> descrizione.flAccordionDescrizione [in template "600528#600562#141950" at line 128, column 60] ---- 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 be 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 getterUtil.getBoolean(descrizione... [in template "600528#600562#141950" at line 128, column 33] ----
1<#assign groupService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")>
2<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
3<#assign themeDisplay = serviceContext.getThemeDisplay() />
4
5<#-- Data format -->
6<#setting time_zone = languageUtil.get(locale, "template-timezone") />
7<#assign originalLocale = locale />
8<#setting locale = localeUtil.getDefault() />
9<#assign displayDate = .vars['reserved-article-modified-date'].data />
10<#assign displayDate = displayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z") />
11<#setting locale = originalLocale />
12<#assign displayDateDay = displayDate?string("dd") />
13<#assign displayDateMonth = displayDate?string("MM") />
14<#assign displayDateYear = displayDate?string("YYYY") />
15
16<#-- Get info File -->
17<#assign dLFileLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
18<#assign textFormatter = staticUtil["com.liferay.portal.kernel.util.TextFormatter"]>
19
20<#-- Get Category -->
21<#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
22<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
23<#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
24<#assign catpropertyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService") />
25<#assign vocabularyArticle = vocabularyService.getGroupVocabulary(groupId, "Tipo Articolo") />
26<#assign vocabularyHoncode = vocabularyService.getGroupVocabulary(groupId, "Honcode") />
27<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
28 <#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() />
29<#assign categoryList=categoryService.getCategories("com.liferay.journal.model.JournalArticle",currentArticleResourcePrimKey) >
30
31<#-- Get Tag -->
32<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
33<#assign assetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")>
34
35<#-- Get Related Asset -->
36<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") />
37<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
38<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
39<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() />
40<#assign tagList=assetTagLocalService.getTags("com.liferay.journal.model.JournalArticle",currentArticleResourcePrimKey) >
41<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
42<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
43<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) />
44
45<#assign countNota = 0 />
46<#assign countDocumento = 0 />
47<#assign countMedia = 0 />
48<#list currentArticleRelatedLinks as related_entry>
49 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(related_entry.getEntryId2()) />
50 <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntry.getClassPK()) />
51 <#assign relatedArticleStructureName = relatedArticle.getDDMStructure().getName(locale) />
52 <#if relatedArticleStructureName == 'Asset Nota'>
53 <#assign countNota = countNota + 1 />
54 </#if>
55 <#if relatedArticleStructureName == 'Asset Documento'>
56 <#assign countDocumento = countDocumento + 1 />
57 </#if>
58 <#if relatedArticleStructureName == 'Asset Media'>
59 <#assign countMedia = countMedia + 1 />
60 </#if>
61</#list>
62
63<#assign arcaLocalService = serviceLocator.findService("it.arca.service.service.ArcaLocalService") />
64<#assign classeColore = arcaLocalService.getSelettoreCss(.vars['reserved-article-id'].data,'0') />
65<#assign arcaSezioniBackgroundcolorCss = 'arca-sezioni-backgroundcolor-' + classeColore />
66<#assign arcaSezioniColorCss = 'arca-sezioni-color-' + classeColore />
67<#assign arcaSezioniBorderColorCss = 'arca-sezioni-bordercolor-' + classeColore />
68<#assign arcaSezioniHrcolor = 'arca-sezioni-hrcolor-' + classeColore />
69
70<div class="detail">
71 <div class="row">
72 <div class="col-md-10 col-md-offset-1">
73 <div class="row">
74 <div class="col-md-6 col-md-offset-3">
75 <#if titolo.getData() !=''>
76 <h1 class="hr text-center ${arcaSezioniColorCss} ${arcaSezioniHrcolor}">
77 ${titolo.getData()}
78 </h1>
79 </#if>
80 <h4 class="date text-center">
81 <#assign dataArticolo_Data = getterUtil.getString(dataArticolo.getData())>
82 <#if validator.isNotNull(dataArticolo_Data)>
83 <#assign dataArticolo_DateObj = dateUtil.parseDate("yyyy-MM-dd", dataArticolo_Data, locale)>
84
85 ${dateUtil.getDate(dataArticolo_DateObj, "dd MMMM yyyy", locale)}
86 </#if>
87 </h4>
88 <#list categoryList as categoryList>
89 <#if categoryList.vocabularyId == vocabularyArticle.vocabularyId>
90 <h4 class="type small text-center">${categoryList.getName()}</h4>
91 </#if>
92 </#list>
93 <#if immagine.getData() !=''>
94 <figure class="text-center">
95 <img src="${immagine.getData()}" alt="${titolo.getData()}" />
96 <#assign file=getDlFileEntry(immagine.getData()) />
97 <#if file != ''>
98 <figcaption>${file.getDescription()}</figcaption>
99 </#if>
100 </figure>
101 </#if>
102 </div>
103 </div>
104
105 <#if countNota > 0 >
106 <div class="related-info">
107 <#list currentArticleRelatedLinks as related_entry>
108 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(related_entry.getEntryId2()) />
109 <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntry.getClassPK()) />
110 <#assign relatedArticleStructureName = relatedArticle.getDDMStructure().getName(locale) />
111 <#assign doc = saxReaderUtil.read(relatedArticle.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault()))) />
112 <#assign rootElement = doc.getRootElement() />
113 <#if relatedArticleStructureName == 'Asset Nota'>
114 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='titolo']") />
115 <#assign titoloNota = xPathSelector.selectSingleNode(rootElement).getStringValue() />
116 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='descrizione']/dynamic-content") />
117 <#assign testoNota = xPathSelector.selectSingleNode(rootElement).getStringValue() />
118
119 <p><strong>${titoloNota}:</strong></p>
120 <p>${testoNota}</p>
121 </#if>
122 </#list>
123 </div>
124 </#if>
125
126
127 <#if descrizione.getData() !=''>
128 <#if getterUtil.getBoolean(descrizione.flAccordionDescrizione.getData() == "true") >
129 <#assign descrLength = descrizione.getData()?length />
130
131
132 <div class="eus-read-more module">
133 <div role="heading" class="collapse" id="${themeDisplay.getPortletDisplay().getId()}_collapseExample" aria-expanded="false">
134 <div id="${themeDisplay.getPortletDisplay().getId()}_id-arca-shadow" class="arca-shadow"></div>
135 <p>${descrizione.getData()}</p>
136 </div>
137 <a role="button" class="${arcaSezioniColorCss} collapsed ${themeDisplay.getPortletDisplay().getId()}_lastLink lastLink" data-toggle="collapse" href="#${themeDisplay.getPortletDisplay().getId()}_collapseExample" aria-expanded="false" aria-controls="${themeDisplay.getPortletDisplay().getId()}_collapseExample"></a>
138 </div>
139
140
141 <#else>
142 <div class="eus-read-more">
143 <p>${descrizione.getData()}</p>
144 </div>
145 </#if>
146 </#if>
147
148 <#if tagList??>
149 <div class="tags">
150 <#list tagList as tagList>
151 <span class="tag">${tagList.getName()}</span>
152 </#list>
153 </div>
154 </#if>
155 </div>
156 </div>
157 <#if countMedia > 0 >
158 <div class="row" style="margin-top:50px;">
159 <#list currentArticleRelatedLinks as related_entry>
160 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(related_entry.getEntryId2()) />
161 <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntry.getClassPK()) />
162 <#assign relatedArticleStructureName = relatedArticle.getDDMStructure().getName(locale) />
163 <#assign doc = saxReaderUtil.read(relatedArticle.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault()))) />
164 <#assign rootElement = doc.getRootElement() />
165 <#if relatedArticleStructureName == 'Asset Media'>
166 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='media']") />
167 <#assign image = xPathSelector.selectNodes(rootElement) />
168 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='VideoMedia']") />
169 <#assign video = xPathSelector.selectNodes(rootElement) />
170 <div class="col-md-10 col-md-offset-1 media">
171 <article class="owl-carousel owl-theme" id="${themeDisplay.getPortletDisplay().getId()}_owl-carousel">
172 <#list image as node>
173 <#assign file=getDlFileEntry(node.getStringValue()) />
174 <#if file != ''>
175 <div class="content-slide">
176 <div class="slide" style="background-image:url(${node.getStringValue()})"></div>
177 <#if file.getDescription() !=''>
178 <div class="title">
179 <p>${file.getDescription()}</p>
180 </div>
181 </#if>
182 </div>
183 </#if>
184 </#list>
185 <#list video as nodeVideo>
186 <div class="item-video">
187 <a class="slide owl-video" href="${nodeVideo.getStringValue()}"></a>
188 </div>
189 </#list>
190 </article>
191 </div>
192 </#if>
193 </#list>
194 </div>
195 </#if>
196 <div class="row">
197 <div class="col-md-10 col-md-offset-1">
198 <#if Separatore16yp.collegamentoInterno.getData() !='' || Separatore16yp.urlCollegamentoEsternoPaginaStandard.getData() !='' || countDocumento > 0 || (documentoAllegato?has_content && documentoAllegato.getData() !='')>
199 <div id="${themeDisplay.getPortletDisplay().getId()}_infoToggler" class="infoToggler">
200 <#if Separatore16yp.collegamentoInterno.getData() !='' || Separatore16yp.urlCollegamentoEsternoPaginaStandard.getData() !=''>
201 <div class="header toggler-header-collapsed">Collegamenti</div>
202 <div class="content toggler-content-collapsed">
203 <ul class="link">
204 <#if Separatore16yp.collegamentoInterno.getData() !=''>
205 <#list Separatore16yp.collegamentoInterno.getSiblings() as node>
206 <li>
207 <a href="${node.getFriendlyUrl()}">
208 <#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
209 <#assign layout = layoutService.getLayout(themeDisplay.getScopeGroupId(),false,node.getData()?number) />
210 <#assign pageTitle = layout.getName(locale) />
211 ${pageTitle}
212 </a>
213 </li>
214 </#list>
215 </#if>
216 <#if Separatore16yp.urlCollegamentoEsternoPaginaStandard.getData() !=''>
217 <#list Separatore16yp.urlCollegamentoEsternoPaginaStandard.getSiblings() as nodeext>
218 <li>
219 <#if nodeext.getData()?contains("http") || nodeext.getData()?contains("https") >
220 <a href="${nodeext.getData()}"
221 <#else>
222 <a href="http://${nodeext.getData()}"
223 </#if>
224
225 <#if getterUtil.getBoolean(nodeext.checkAperturaNuovaPaginaCollegamentoEsternoPaginaStandard.getData() == "true")>
226 target="_blank"
227 </#if>
228 >
229 <#if nodeext.campoLiberoCollegamentoEsternoPaginaStandard.getData() !=''>
230 ${nodeext.campoLiberoCollegamentoEsternoPaginaStandard.getData()}
231 <#else>
232 Vai al link
233 </#if>
234 </a>
235 </li>
236 </#list>
237 </#if>
238 </ul>
239 </div>
240 </#if>
241
242 <#if countDocumento > 0 || documentoAllegato.getData() !=''>
243 <div class="header toggler-header-collapsed">Allegati</div>
244 <div class="content toggler-content-collapsed">
245 <ul class="download">
246 <#list documentoAllegato.getSiblings() as node>
247 <#assign doc=getDlFileEntry(node.getData()) />
248 <#if doc != ''>
249 <li>
250
251 <a href="${node.getData()}">${doc.getTitle()}</a>
252 <span> - ${doc.getExtension()} ${textFormatter.formatStorageSize(doc.size, locale)}</span>
253
254 </li>
255 </#if>
256 </#list>
257
258 <#list currentArticleRelatedLinks as related_entry>
259 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(related_entry.getEntryId2()) />
260 <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntry.getClassPK()) />
261 <#assign relatedArticleStructureName = relatedArticle.getDDMStructure().getName(locale) />
262 <#assign doc = saxReaderUtil.read(relatedArticle.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault()))) />
263 <#assign rootElement = doc.getRootElement() />
264 <#if relatedArticleStructureName == 'Asset Documento'>
265 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='documentoAllegato']") />
266 <#assign allegatoDocumento = xPathSelector.selectNodes(rootElement) />
267 <#list allegatoDocumento as nodeDoc>
268 <#assign file=getDlFileEntry(nodeDoc.getStringValue()) />
269 <#if validator.isNotNull(file)>
270 <li>
271 <a href="${nodeDoc.getStringValue()}">
272
273 ${file.getTitle()}
274 </a>
275
276 <span> - ${file.getExtension()} ${textFormatter.formatStorageSize(file.size, locale)}</span>
277 </li>
278 </#if>
279 </#list>
280 </#if>
281 </#list>
282 </ul>
283 </div>
284 </#if>
285
286 </div>
287 <script>
288 //$(document).ready(function() {
289 //try
290 //{
291 AUI().use(
292 'aui-toggler',
293 function(A) {
294 new A.TogglerDelegate(
295 {
296 animated: true,
297 closeAllOnExpand: true,
298 container: '#${themeDisplay.getPortletDisplay().getId()}_infoToggler',
299 content: '.content',
300 header: '.header',
301 transition: {
302 duration: .5,
303 easing: 'cubic-bezier'
304 }
305 }
306 )
307 }
308 );
309 //}catch (e)
310 //{
311 // console.log(e);
312 //}
313 //});
314 </script>
315 </#if>
316 </div>
317 </div>
318 <div class="row">
319 <div class="honcode col-md-10 col-md-offset-1">
320 <div class="row">
321 <div class="col-md-7">
322 <#list categoryList as categoryList>
323 <#if categoryList.vocabularyId == vocabularyHoncode.vocabularyId>
324 Responsabile della pubblicazione: ${categoryList.getName()}
325 </#if>
326 </#list>
327 </div>
328 <div class="col-md-5 text-right">
329 Ultimo aggiornamento: ${displayDateDay}/${displayDateMonth}/${displayDateYear}
330 </div>
331 </div>
332 <#if Separatorefvnw?has_content && Separatorefvnw.noteHONcode?has_content && Separatorefvnw.noteHONcode.getData() !=''>
333 <div class="row note">
334 <div class="col-md-12">
335 <p><strong>NOTE: </strong>${Separatorefvnw.noteHONcode.getData()}</p>
336 </div>
337 </div>
338 </#if>
339 </div>
340 </div>
341</div>
342<script type="text/javascript">
343 AUI().use('aui-base', function(A) {
344 if(A.one('.text .accordion')){
345
346 var allps = A.one('.text .accordion').all('p');
347 var pHeight = 0;
348
349 if(allps){
350
351 allps.each(function(p){
352 pHeight = pHeight + p.height();
353 });
354
355 if(pHeight > 170){
356 A.one(".text .icon-angle-down").show();
357 }else{
358 A.one(".text .icon-angle-down").hide();
359 }
360 }
361
362 A.one(".text .icon-angle-down").on('click', function(event) {
363 A.one(".accordion").setStyle('height', 'auto');
364 A.one(".text .icon-angle-down").hide();
365 A.one(".text .icon-angle-up").show();
366 A.one(".text .gradient").hide();
367 });
368 A.one(".text .icon-angle-up").on('click', function(event) {
369 A.one(".accordion").setStyle('height', '190px');
370 A.one(".text .icon-angle-down").show();
371 A.one(".text .icon-angle-up").hide();
372 A.one(".text .gradient").show();
373 });
374 }
375 });
376</script>
377
378<script>
379 $(document).ready(function() {
380 var owl = $('#${themeDisplay.getPortletDisplay().getId()}_owl-carousel');
381 owl.owlCarousel({
382 items:1,
383 loop:true,
384 dots:true,
385 autoplay:false,
386 autoplayTimeout:4000,
387 autoplayHoverPause:true,
388 video:true
389 });
390
391 var idCollapseExample = '#${themeDisplay.getPortletDisplay().getId()}_collapseExample';
392 var idArcaShadow = '#${themeDisplay.getPortletDisplay().getId()}_id-arca-shadow';
393 var lastLink = '.${themeDisplay.getPortletDisplay().getId()}_lastLink';
394
395
396 if ($(idCollapseExample) && $(idCollapseExample)[0] && $(idCollapseExample)[0].scrollHeight && $(idCollapseExample).innerHeight() )
397 {
398 if ($(idCollapseExample)[0].scrollHeight > $(idCollapseExample).innerHeight()) {
399 //$('#id-arca-shadow').show();
400 //$('#lastLink').show();
401 }
402 else
403 {
404 $(idArcaShadow).hide();
405 $(lastLink).hide();
406 $(idCollapseExample).removeClass("collapse");
407 }
408 }
409
410
411 })
412</script>
413
414<#function getDlFileEntry url>
415 <#assign parts=url?string?split("/") />
416
417 <#assign groupId=0 />
418 <#assign uuid='' />
419 <#assign dlFileEntry='' />
420
421 <#list parts as curPart>
422
423 <#if curPart_index == 2>
424 <#assign groupId=parts[2]?number />
425 </#if>
426
427 <#if curPart_index == 5>
428 <#assign uuid=parts[5]?string?split("?")[0] />
429 </#if>
430 </#list>
431
432 <#if groupId != 0 && uuid != ''>
433 <#assign dlFileEntry=dLFileLocalService.fetchDLFileEntryByUuidAndGroupId(uuid, groupId)! />
434 </#if>
435
436 <#return dlFileEntry />
437
438</#function>
439
440<#function getRelatedAsset related>
441 <#assign parts=url?string?split("/") />
442 <#assign groupId=parts[2]?number />
443 <#assign uuid=parts[5]?string?split("?")[0] />
444 <#assign dlFileEntry=dLFileLocalService.fetchDLFileEntryByUuidAndGroupId(uuid, groupId)! />
445 <#return dlFileEntry />
446</#function>