Si è verificato un errore nell'elaborarazione del modello.
Can't convert this string to number: "142080?uageId=en_US" The blamed expression: ==> request.getParameter("p_r_p_categoryId")?number [in template "74789#74824#117965" at line 51, column 61] ---- FTL stack trace ("~" means nesting-related): - Failed at: ${catsService.fetchCategory(request.g... [in template "74789#74824#117965" at line 51, column 33] ----
1<#-- CDN Host -->
2<#assign cdnUrl = themeDisplay.getCDNDynamicResourcesHost()>
3
4<#assign
5 vocabolarioBlog = 118019
6 vocabolarioDate = 118123
7 tagsService = utilLocator.findUtil("com.liferay.asset.kernel.service.AssetTagLocalService")
8 catsService = utilLocator.findUtil("com.liferay.asset.kernel.service.AssetCategoryLocalService")
9 DLAppLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"]
10 mkspAPI = serviceLocator.findService("eu.suggesto.suggestogui.service.SuggestoGuiLocalService")
11
12 leggi_tutto = mkspAPI.msg(companyId, groupId, "leggi_tutto", locale, "it", locale)
13 categorie = mkspAPI.msg(companyId, groupId, "categorie", locale, "it", locale)
14 archivi = mkspAPI.msg(companyId, groupId, "archivi", locale, "it", locale)
15 post_popolari = mkspAPI.msg(companyId, groupId, "post_popolari", locale, "it", locale)
16 contenuti_tag = mkspAPI.msg(companyId, groupId, "contenuti_tag", locale, "it", locale)
17 contenuti_cat = mkspAPI.msg(companyId, groupId, "contenuti_cat", locale, "it", locale)
18 nessun_contenuto = mkspAPI.msg(companyId, groupId, "nessun_contenuto", locale, "it", locale)
19
20 currentPageUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()?keep_before("?")
21
22 tags = "/o/d40/img"
23 size = "/w_1000/"
24 sideSize = "/w_500/"
25 siteUrl = themeDisplay.getPortalURL()?replace("://", ".")
26 prefix = cdnUrl + tags + size + siteUrl
27 sidePrefix = cdnUrl + tags + sideSize + siteUrl
28/>
29
30<div class="container-fluid-big bg-body pt-5">
31 <div class="row">
32 <div class="col-12 col-lg-8 col-xl-7"> <#-- order-2 order-lg-1 -->
33 <div class="row">
34 <#if request.getParameter("p_r_p_tag")?has_content>
35 <div class="col-12 mb-5">
36 <h5 class="text-uppercase font-weight-bold text-dark">
37 ${contenuti_tag}:
38 <a href="${currentPageUrl}" class="btn btn-outline-primary py-0 mb-1 ml-1">
39 ${request.getParameter("p_r_p_tag")}
40 <i class="fa fa-times text-danger ml-2"></i>
41 </a>
42 </h5>
43 </div>
44 </#if>
45
46 <#if request.getParameter("p_r_p_categoryId")?has_content>
47 <div class="col-12 mb-5">
48 <h5 class="text-uppercase font-weight-bold text-dark">
49 ${contenuti_cat}:
50 <a href="${currentPageUrl}" class="btn btn-outline-primary py-0 mb-1 ml-1">
51 ${catsService.fetchCategory(request.getParameter("p_r_p_categoryId")?number).getName()}
52 <i class="fa fa-times text-danger ml-2"></i>
53 </a>
54 </h5>
55 </div>
56 </#if>
57
58 <#if entries?has_content>
59 <#list entries as entry>
60 <#assign
61 entry = entry
62 assetRenderer = entry.getAssetRenderer()
63 className = assetRenderer.getClassName()
64 entryTitle = htmlUtil.escape(assetRenderer.getTitle(themeDisplay.getLocale()))
65 />
66
67 <#if className == "com.liferay.journal.model.JournalArticle">
68 <#assign
69 journalArticle = assetRenderer.getArticle()
70 document = saxReaderUtil.read(journalArticle.getContent())
71 rootElement = document.getRootElement()
72 />
73
74 <@getDate entry=entry />
75
76 <#assign stringSelector = "dynamic-element[@name='copertina']">
77 <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>
78 <#if xPathSelector.selectSingleNode(rootElement)??>
79 <#assign immagine = xPathSelector.selectSingleNode(rootElement).getStringValue()>
80
81 <#assign fileEntryId = assetRenderer.getClassPK()>
82 <#assign jsonField = jsonFactoryUtil.createJSONObject(immagine)>
83 <#assign fileEntry = DLAppLocalServiceUtil.getFileEntryByUuidAndGroupId(jsonField.uuid, groupId)>
84 <#assign immagine = "/documents/" + jsonField.groupId + "/" + fileEntry.folderId + "/" + jsonField.title + "/" + jsonField.uuid>
85
86 </#if>
87
88 <#assign stringSelector = "dynamic-element[@name='sottotitolo']/dynamic-content[@language-id = '" + themeDisplay.getLocale() + "']">
89 <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>
90 <#if xPathSelector.selectSingleNode(rootElement)??>
91 <#assign sottotitolo = xPathSelector.selectSingleNode(rootElement).getStringValue()>
92 <#else>
93 <#assign sottotitolo = "">
94 </#if>
95
96 <#assign stringSelector = "dynamic-element[@name='sottotitolo']/dynamic-element[@name='paragrafo']/dynamic-content[@language-id = '" + themeDisplay.getLocale() + "']">
97 <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>
98 <#if xPathSelector.selectSingleNode(rootElement)??>
99 <#assign paragrafo = xPathSelector.selectSingleNode(rootElement).getStringValue()>
100 <#else>
101 <#assign paragrafo = "">
102 </#if>
103
104 <#assign viewUrl = mkspAPI.getArticleUrl(groupId, serverName, journalArticle.articleId, localeUtil.fromLanguageId(themeDisplay.getLocale()), localeUtil.fromLanguageId(themeDisplay.getLocale()), "/dettaglio-blog")>
105
106 <div class="col-12 h-100">
107 <a href="${viewUrl}" class="h5 font-weight-bold text-dark text-uppercase pointer">${entryTitle} <span class="d-inline-block"><@getEditIcon /></span></a>
108 <div class="d-flex flex-row mt-3">
109 <div class="d-inline-flex mr-2 mr-lg-5">
110 <i class="fa fa-calendar-alt ico-detail text-muted"></i>
111 <p class="ml-2 ml-lg-3 mb-0">${pubDate}</p>
112 </div>
113 <#if tagsService.getEntryTags(entry.entryId)?has_content>
114 <div class="d-inline-flex mr-2 mr-lg-5">
115 <i class="fa fa-tag ico-detail text-muted"></i>
116 <div class="ml-2 ml-lg-3">
117 <#list tagsService.getEntryTags(entry.entryId) as tag>
118 <#assign tagUrl = renderResponse.createRenderURL()>
119 ${tagUrl.setParameter("tag", tag.getName())}
120
121 <a class="text-colored text-capitalize" href="${tagUrl}">${tag.getName()?trim}</a>
122 <#if !tag?is_last>
123 ,
124 </#if>
125 </#list>
126 </div>
127 </div>
128 </#if>
129 <#--div class="d-inline-flex mr-2 mr-lg-5">
130 <i class="fa fa-eye ico-detail text-muted"></i>
131 <p class="ml-2 ml-lg-3 mb-0">${entry.viewCount}</p>
132 </div-->
133 </div>
134 <a href="${viewUrl}" title="${entryTitle}">
135 <img data-src="${prefix}${immagine}" loading="lazy" draggable="false" class="custom-round-top-left blog-cover fit-cover lazyload w-100 h-100 my-4" alt="${entryTitle}">
136 </a>
137 <p>${stringUtil.shorten(htmlUtil.stripHtml(paragrafo), 200)}</p>
138 <a href="${viewUrl}" class="text-dark d-flex my-4">
139 <i class="fa fa-3x fa-arrow-right slim-body mr-3"></i>
140 <h5 class="text-uppercase font-weight-bold my-auto">${leggi_tutto}</h5>
141 </a>
142 <#if !entry?is_last>
143 <hr class="my-5">
144 </#if>
145 </div>
146 </#if>
147 </#list>
148 <#else>
149 <h4 class="slim px-3">${nessun_contenuto}</h4>
150 </#if>
151 </div>
152 </div>
153 <div class="col-12 col-lg-4 offset-xl-1"> <#-- order-1 order-lg-2 -->
154 <div class="bg-white p-3">
155 <h5 class="font-weight-bold text-center text-uppercase">${categorie}</h5>
156 <hr class="my-4">
157 <ul class="list-unstyled d-flex flex-column mb-5">
158 <#list catsService.getVocabularyCategories(vocabolarioBlog, -1, -1, null) as cat>
159 <#assign catUrl = renderResponse.createRenderURL()>
160 ${catUrl.setParameter("categoryId", cat.categoryId?string)}
161 <li class="text-center py-2">
162 <a href="${catUrl}" class="category">
163 ${cat.getName()}
164 </a>
165 </li>
166 </#list>
167 </ul>
168
169 <#if entries?has_content>
170 <h5 class="font-weight-bold text-center text-uppercase">${post_popolari}</h5>
171 <hr class="my-4">
172 <div class="mb-5">
173 <#list entries as entry>
174 <#if (entry?counter < 3)>
175 <#assign
176 entry = entry
177 assetRenderer = entry.getAssetRenderer()
178 className = assetRenderer.getClassName()
179 entryTitle = htmlUtil.escape(assetRenderer.getTitle(themeDisplay.getLocale()))
180 />
181
182 <#if className == "com.liferay.journal.model.JournalArticle">
183 <#assign
184 journalArticle = assetRenderer.getArticle()
185 document = saxReaderUtil.read(journalArticle.getContent())
186 rootElement = document.getRootElement()
187 />
188
189 <@getDate entry=entry />
190
191 <#assign stringSelector = "dynamic-element[@name='copertina']">
192 <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>
193 <#if xPathSelector.selectSingleNode(rootElement)??>
194 <#assign immagine = xPathSelector.selectSingleNode(rootElement).getStringValue()>
195 <#assign fileEntryId = assetRenderer.getClassPK()>
196 <#assign jsonField = jsonFactoryUtil.createJSONObject(immagine)>
197 <#assign fileEntry = DLAppLocalServiceUtil.getFileEntryByUuidAndGroupId(jsonField.uuid, groupId)>
198 <#assign immagine = "/documents/" + jsonField.groupId + "/" + fileEntry.folderId + "/" + jsonField.title + "/" + jsonField.uuid>
199 </#if>
200
201 <#assign viewUrl = mkspAPI.getArticleUrl(groupId, serverName, journalArticle.articleId, localeUtil.fromLanguageId(themeDisplay.getLocale()), localeUtil.fromLanguageId(themeDisplay.getLocale()), "/dettaglio-blog")>
202
203 <a href="${viewUrl}" class="card border-0 rounded-0">
204 <img data-src="${sidePrefix}${immagine}" loading="lazy" draggable="false" class="card-img-top fit-cover asset-cover rounded-0 lazyload" alt="${entryTitle}">
205 <div class="card-body text-center">
206 <h6 class="font-weight-bold text-dark">${entryTitle}</h6>
207 <p class="text-muted">${pubDate}</p>
208 </div>
209 </a>
210 </#if>
211 </#if>
212 </#list>
213 </div>
214 </#if>
215
216 <#-- Non utilizzato attualmente
217 <h5 class="font-weight-bold text-center text-uppercase">${archivi}</h5>
218 <hr class="my-4">
219 <ul class="list-unstyled d-flex flex-column mb-5">
220 <#list catsService.getVocabularyCategories(vocabolarioDate, -1, -1, null) as cat>
221 <#assign catUrl = renderResponse.createRenderURL()>
222 ${catUrl.setParameter("categoryId", cat.categoryId?string)}
223 <li class="text-center py-2">
224 <a href="${catUrl}" class="category">
225 ${cat.getName()}
226 <span class="text-dark">(${catsService.getAssetEntryAssetCategoriesCount(entry.entryId)})</span>
227 </a>
228 </li>
229 </#list>
230 </ul>
231 -->
232
233 <h5 class="font-weight-bold text-center text-uppercase">Tag</h5>
234 <hr class="my-4">
235 <div class="row">
236 <#list tagsService.getGroupTags(groupId) as tag>
237 <#assign tagUrl = renderResponse.createRenderURL()>
238 ${tagUrl.setParameter("tag", tag.getName())}
239 <div class="col-12 col-md-6 mb-3">
240 <a class="btn bg-light btn-block text-dark text-uppercase p-2" href="${tagUrl}">${tag.getName()?trim}</a>
241 </div>
242 </#list>
243 </div>
244 </div>
245 </div>
246 </div>
247</div>
248
249<#macro getDate entry>
250 <#setting locale = themeDisplay.getLocale()>
251 <#assign pubDate = entry.publishDate?string["dd MMMM, yyyy"]>
252</#macro>
253
254<#macro getEditIcon>
255 <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
256 <#assign redirectURL = renderResponse.createRenderURL() />
257
258 ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")}
259 ${redirectURL.setWindowState("pop_up")}
260
261 <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" />
262
263 <#if validator.isNotNull(editPortletURL)>
264 <#assign title = languageUtil.format(themeDisplay.getLocale(), "edit-x", entryTitle, false) />
265
266 <@liferay_ui["icon"]
267 cssClass="icon-monospaced visible-interaction"
268 icon="pencil"
269 markupView="lexicon"
270 message=title
271 url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});"
272 />
273 </#if>
274 </#if>
275</#macro>