Menu Display

Press releases

Press releases

Lastest Press releases 2026

Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> httpUtil.decodeURL  [in template "10154#10194#825588" at line 42, column 67]

----
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 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: ${httpUtil.decodeURL(sappo?substring(...  [in template "10154#10194#825588" at line 42, column 65]
----
1<#-- 
2Application display templates can be used to modify the look of a 
3specific application. 
4 
5Please use the left panel to quickly add commonly used variables. 
6Autocomplete is also available and can be invoked by typing "${". 
7--> 
8<div class="sfondo-pers-pers divContent"> 
9 
10 
11	<#list entries as entry> 
12 
13		<#assign assetRenderer = entry.getAssetRenderer() /> 
14		<#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
15		<#assign viewUrlTitle = assetRenderer.getUrlTitle()/> 
16		<#assign groupId = assetRenderer.getGroupId()/> 
17 
18		<#if assetLinkBehavior != "showFullContent"> 
19			<#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
20		</#if> 
21 
22		<#assign docXml = saxReaderUtil.read(entry.getAssetRenderer().getArticle().getContent()) /> 
23 
24		<#assign fieldData = docXml.valueOf("//dynamic-element[@name='data']/dynamic-content/text()") /> 
25		<#assign fieldDataPubb = docXml.valueOf("//dynamic-element[@name='dataPubblicazione']/dynamic-content/text()") /> 
26		<#assign fieldContenuto = docXml.valueOf("//dynamic-element[@name='contenutoHtml']/dynamic-content/text()") /> 
27		<#assign fieldNumero = docXml.valueOf("//dynamic-element[@name='numero']/dynamic-content/text()") /> 
28		<#assign listaAllegati = docXml.selectNodes("//dynamic-element[@name='allegato']") /> 
29		 
30		<nav><ul> 
31			<li style="text-align: justify"><div><@getEditIcon />	  ${fieldContenuto}</div> 
32 
33				<#list listaAllegati as  cur_allegato> 
34					<#assign allegato = cur_allegato.valueOf("./dynamic-content/text()")> 
35					<#if !journalArticleUtil.isJSONObjectWithKeys(allegato)> 
36						<#continue> 
37					</#if> 
38					<p> 
39						<a class="cambioimmagine" href="${allegato}" target="_blank"> 
40							<strong class="infoStoricheVedi"> 
41								<#assign sappo= allegato?substring(0, allegato?last_index_of("/"))> 
42								${httpUtil.decodeURL(sappo?substring(sappo?last_index_of("/")+1))} 
43							</strong> 
44 
45						</a> 
46					</p> 
47				</#list> 
48			</li> 
49 
50			<div class="clearer" ></div> 
51		</ul></nav> 
52		<br><hr style="height:20px;background: #fff url(/documents/11981/0/blog_item_bluette.png/94a2aaf8-3815-461f-8f9b-8adb6742d8e6?t=1462627275651) no-repeat scroll center;border:none;" /> 
53 
54	</#list> 
55 
56</div> 
57 
58 
59<#macro getEditIcon> 
60	<#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
61		<#assign redirectURL = renderResponse.createRenderURL() /> 
62 
63		${redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")} 
64		${redirectURL.setWindowState("pop_up")} 
65 
66		<#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL) /> 
67 
68		<#if validator.isNotNull(editPortletURL)> 
69			<#assign title = languageUtil.format(locale, "edit-x", htmlUtil.escape(assetRenderer.getTitle(locale))) /> 
70 
71			<@liferay_ui["icon"] 
72				image="edit" 
73				message=title 
74				url="javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});" 
75			/> 
76		</#if> 
77	</#if> 
78</#macro> 
79 
80 
81<#macro getPrintIcon> 
82	<#if enablePrint == "true" > 
83		<#assign printURL = renderResponse.createRenderURL() /> 
84 
85		${printURL.setParameter("struts_action", "/asset_publisher/view_content")} 
86		${printURL.setParameter("assetEntryId", entry.getEntryId()?string)} 
87		${printURL.setParameter("viewMode", "print")} 
88		${printURL.setParameter("type", entry.getAssetRendererFactory().getType())} 
89 
90		<#if (validator.isNotNull(assetRenderer.getUrlTitle()))> 
91			<#if (assetRenderer.getGroupId() != themeDisplay.getScopeGroupId())> 
92				${printURL.setParameter("groupId", assetRenderer.getGroupId()?string)} 
93			</#if> 
94 
95			${printURL.setParameter("urlTitle", assetRenderer.getUrlTitle())} 
96		</#if> 
97 
98		${printURL.setWindowState("pop_up")} 
99 
100		<@liferay_ui["icon"] 
101			image="print" 
102			message="print" 
103			url="javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'" + renderResponse.getNamespace() + "printAsset', title: '" + languageUtil.format(locale, "print-x-x", ["aui-helper-hidden-accessible", htmlUtil.escape(assetRenderer.getTitle(locale))]) + "', uri: '" + htmlUtil.escapeURL(printURL.toString()) + "'});" 
104		/> 
105	</#if> 
106</#macro> 
107 
108 
109 
110<#macro getRelatedAssets> 
111	<#if enableRelatedAssets == "true"> 
112		<@liferay_ui["asset-links"] 
113			assetEntryId=entry.getEntryId() 
114		/> 
115	</#if> 
116</#macro>