PSR per me
An error occurred while processing the template.
The following has evaluated to null or missing: ==> sottomisura [in template "33101#33137#262705" at line 73, column 123] ---- 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: ${sottomisura} [in template "33101#33137#262705" at line 73, column 121] ----
1<#assign imagesPath = themeDisplay.getPathThemeImages() />
2
3<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
4
5<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
6<#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
7<#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
8
9<div class="container px-4 modello-3">
10 <div class="row">
11 <div class="col">
12 <h2 class="adt-title pt-1">${themeDisplay.getPortletDisplay().getTitle()}</h2>
13 </div>
14 </div>
15 <#if entries?has_content>
16 <#list entries as entry>
17 <div class="row pb-3">
18 <#assign
19 entry = entry
20 assetRenderer = entry.getAssetRenderer()
21 entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))
22 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))
23 journalArticle = assetRenderer.getAssetObject()
24 >
25 <div class="col-4">
26 <div class="immagine">
27 <#if assetRenderer.getThumbnailPath(renderRequest)??>
28 <a href="${viewURL}">
29 <div title="${entryTitle}" class="img" style="background: url('${assetRenderer.getThumbnailPath(renderRequest)}') 50%/cover no-repeat;"></div>
30 </a>
31 </#if>
32 </div>
33 </div>
34 <div class="col-8 d-flex flex-column justify-content-around justify-content-md-center">
35 <#attempt>
36 <#assign article = journalArticleLocalService.getLatestArticle(entry.getClassPK())>
37 <#assign expandoValueData = article.getExpandoBridge().getAttribute("icona-multimedia")?first>
38 <#recover>
39 <#assign expandoValueData = "Nessuna" >
40 </#attempt>
41
42<#assign categories = categoryService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
43
44<#list categories as category>
45 <#if category.name?contains("Sottomisura")>
46 <#assign sottomisura = category.name?keep_after("Sottomisura")>
47 </#if>
48</#list>
49 <#if expandoValueData != "Nessuna">
50 <#assign categories = entry.getCategories()>
51 <#if categories?has_content>
52 <div class="row d-none d-md-block metadata">
53 <div class="col-md-12 mb-3">
54 <div class="row">
55 <div class="col-md-1">
56 <img alt="${expandoValueData}" src="${imagesPath}/categorie/${expandoValueData?lower_case}.svg" />
57 </div>
58 <div class="col-md-auto d-flex align-items-end">
59 <span class="categoria">${categories?last.name}</span>
60 </div>
61 </div>
62 </div>
63 </div>
64 </#if>
65 </#if>
66 <div class="row titolo">
67 <div class="col">
68 <h3><a href="${viewURL}">${entryTitle}</a></h3>
69 </div>
70 </div>
71 <div class="row summary">
72 <div class="col">
73 <span><@liferay.language key="psr.sottomisura.title" /> ${sottomisura}</span>
74 </div>
75 </div>
76 <div class="row continua-a-leggere">
77 <div class="col">
78 <a class="read-more" href="${viewURL}">
79 <@liferay.language key="psr.keep-reading" />
80 <span class="hide-accessible"><@liferay.language key="about" />${entryTitle}</span>
81 </a>
82 </div>
83 </div>
84
85
86 <!--<div class="row abstract">
87 <div class="col mb-1">
88 <span>${entry.getPublishDate()?string["dd/MM/yyyy"]}</span>
89 </div>
90 <div class="row titolo">
91 <div class="col">
92 <h3><a href="${viewURL}">${entryTitle}</a></h3>
93 </div>
94 </div>
95 </div>
96 <#assign summary = htmlUtil.escape(assetRenderer.getSummary(renderRequest, renderResponse))>
97 <div class="row d-none d-md-block ">
98 <div class="col mb-1">
99 <span>${htmlUtil.unescape(stringUtil.shorten(summary, 120))}</span>
100 </div>
101 </div> -->
102
103 </div>
104 </div>
105 <#assign articleId = journalArticle.getArticleId() />
106 <#assign languageId = localeUtil.toLanguageId(locale) />
107 <#assign articleDisplay = journalArticleLocalService.getArticleDisplay(groupId, articleId?string, "normal", languageId?string, themeDisplay) />
108 </#list>
109 <#else>
110 <#assign adtTitle = themeDisplay.getPortletDisplay().getTitle() />
111 <#if adtTitle == "Bandi chiusi" || adtTitle == "Bandi aperti" >
112 <div class="alert alert-info" role="alert">
113 <@liferay.language key="psr.no-results-calls" />
114 </div>
115 <#elseif adtTitle == "Notizie del bando" >
116 <div class="alert alert-info" role="alert">
117 <@liferay.language key="psr.no-results-news" />
118 </div>
119 <#else>
120 <div class="alert alert-info" role="alert">
121 <@liferay.language key="psr.no-results" />
122 </div>
123 </#if>
124 </#if>
125</div>