Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> categs[topic]  [in template "20101#20127#40211" at line 62, column 31]

----
Tip: It's the final [] step 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: #assign topicentry = categs[topic]  [in template "20101#20127#40211" at line 62, column 9]
----
1<#assign imageurl = ''> 
2<#if coverImage.getData()?? && coverImage.getData() != ""> 
3	<#assign imageurl = coverImage.getData()> 
4</#if> 
5 
6<section class="wow fadeIn cover-background background-position-top top-space" 
7	style="background-image:url('${imageurl}');"> 
8	<div class="opacity-medium bg-extra-dark-gray"></div> 
9	<div class="container"> 
10		<div class="row align-items-center"> 
11			<div class="col-12 d-flex justify-content-center flex-column text-center page-title-large padding-30px-tb"> 
12				<!-- start sub title --> 
13				<span class="text-white-2 opacity6 alt-font margin-10px-bottom d-block text-uppercase text-small"><a href="" class="text-white-2"></a></span> 
14				<!-- end sub title --> 
15				<!-- start page title --> 
16				<h1 class="text-white-2 alt-font font-weight-600 margin-20px-bottom">${title.getData()}</h1> 
17				<h5 class="text-white-2 alt-font font-weight-600 margin-10px-bottom">${subTitle.getData()}</h5> 
18				<!-- end page title --> 
19			</div> 
20		</div> 
21	</div> 
22</section> 
23<div class="text-right mr-2">${coverImage.getAttribute("alt")}</div> 
24 
25<#assign categs = request.getAttribute("categ_entries_map")!''> 
26<#assign categsurl = request.getAttribute("categ_imgsurl_map")!''> 
27<#assign selectedperspective = request.getParameter('prs_sel')!''> 
28<#assign selectedtopic = request.getParameter('tpc_sel')!''> 
29 
30<#if categs?has_content> 
31    <#assign persp = ''> 
32    <#assign topic = ''> 
33    <#assign tags = .vars['reserved-article-asset-tag-names'].data> 
34    <#if tags?has_content> 
35        <#list tags?split(",") as tag> 
36            <#if tag?starts_with("p_")> 
37                <#assign persp = tag> 
38            </#if> 
39            <#if tag?starts_with("t_")> 
40                <#assign topic = tag> 
41            </#if> 
42        </#list> 
43    </#if> 
44    <#-- Se trova la selezione prospettiva o topic  
45            sovrascrive gli assegnamenti delle righe sopra 
46      --> 
47    <#if selectedperspective?has_content> 
48        <#if categs[selectedperspective]?has_content> 
49            <#assign persp = selectedperspective> 
50        </#if> 
51    </#if> 
52    <#if selectedtopic?has_content> 
53        <#if categs[selectedtopic]?has_content> 
54            <#assign topic = selectedtopic> 
55        </#if> 
56    </#if> 
57 
58    <#if persp?has_content && topic?has_content> 
59        <#assign perspentry = categs[persp]> 
60	    <#assign pfldm = perspentry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap()/> 
61	    <#assign ppredicate = pfldm['predicate1'][0].getValue().getString(local)!''> 
62        <#assign topicentry = categs[topic]> 
63	    <#assign tfldm = topicentry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap()/> 
64	    <#assign tpredicate = tfldm['predicate2'][0].getValue().getString(local)!''> 
65 
66        <#if tags?has_content> 
67            <section class="wow fadeIn padding-20px-tb border-bottom border-color-extra-light-gray"> 
68                <div class="container"> 
69                    <div class="row"> 
70                    </div> 
71                </div> 
72            </section> 
73            <section class="wow fadeIn padding-20px-tb border-bottom border-color-extra-light-gray"> 
74            <div class="container"> 
75            <div class="row"> 
76            	<div class="col-12 col-lg-10 d-flex flex-wrap mx-auto p-0"> 
77            		<div class="col-12 col-lg-8 col-md-6 text-center text-md-left"> 
78            			<div class=""> 
79            				<div class="text-large alt-font text-extra-dark-gray font-weight-600"> 
80            				    <#assign middleurl = "perspective?p_r_p_tags=${persp}"> 
81            					<a href="${middleurl}"><img style="width: 50px;" src="${categsurl[persp]}" alt=""></a> 
82            					${ppredicate} <a href="${middleurl}" class="text-orange">${perspentry.getTitle(locale)}</a> 
83            				</div> 
84            			</div> 
85            		</div> 
86            	</div> 
87            </div> 
88            <div class="row"> 
89            	<div class="col-12 col-lg-10 d-flex flex-wrap mx-auto p-0"> 
90            		<div class="col-12 col-lg-8 col-md-6 text-center text-md-left"> 
91            			<div class=""> 
92            				<div class="margin-10px-top text-large alt-font text-extra-dark-gray font-weight-600"> 
93            				    <#assign middleurl = "topic?p_r_p_tags=${topic}"> 
94            					<a href="${middleurl}"><img style="width: 50px;" src="${categsurl[topic]}" alt=""></a> 
95            					${tpredicate} <a href="${middleurl}" class="text-orange">${topicentry.getTitle(locale)}</a> 
96            				</div> 
97            			</div> 
98            		</div> 
99            	</div> 
100            </div> 
101            </div> 
102            </section> 
103        </#if> 
104    </#if> 
105</#if> 
106 
107 
108<#-- ASSIGNMENTS. Usato dalla sezione Author e per il link di Edit --> 
109<#assign rpk = request.getParameter('rpk')!''> 
110<#if !rpk?has_content> 
111    <#assign artid = .vars['reserved-article-id'].data> 
112    <#assign artgrpid = .vars['articleGroupId']> 
113    <#assign jals = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
114    <#assign rpk = jals.getArticle(artgrpid, artid).getResourcePrimKey()?string> 
115</#if> 
116<#if rpk?has_content> 
117 
118    <#-- BUILD SEQUENCES OF RELATED --> 
119    <#assign alls = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
120    <#assign aels = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
121    <#assign articleEntry = aels.getEntry("com.liferay.journal.model.JournalArticle", rpk?number) /> 
122 
123    <#assign rlinks = alls.getDirectLinks(articleEntry.getEntryId()) /> 
124    <#assign authorsseq = []> 
125    <#assign relsseq = []> 
126    <#list rlinks as related_entry> 
127    	<#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
128    	<#assign relatedAssetEntry = aels.getEntry(relatedAssetEntryId) /> 
129    	<#--  
130    	<#assign isauthor = false> 
131    	<#list relatedAssetEntry.getCategories() as cat> 
132    		<#assign isauthor = isauthor || (cat.getName() = 'Author')> 
133    	</#list> 
134     	<#if isauthor> 
135    	--> 
136    	<#if relatedAssetEntry.getClassTypeId() == 216501><#-- if is Author Structure --> 
137    		<#assign authorsseq = authorsseq + [relatedAssetEntry]> 
138    	<#else> 
139    		<#assign relsseq = relsseq + [relatedAssetEntry]> 
140    	</#if> 
141    </#list> 
142 
143    <#-- EDIT URL --> 
144    <#assign assetRenderer = articleEntry.getAssetRenderer() /> 
145    <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
146        <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse)!"" /> 
147    </#if> 
148</#if> 
149 
150 
151<#-- ARTICLE --> 
152<#assign article = articleEntry.getAssetRenderer().getArticle()> 
153<#assign summary = .vars['reserved-article-description'].data> 
154<section class="wow fadeIn"> 
155    <div class="container"> 
156        <div class="row"> 
157            <#-- OLD EDIT URL (when user is logged in) 
158        	<#if themeDisplay.isSignedIn()> 
159                <#assign articleid = request.getAttribute("article_id_x_editlink")!''> 
160                <div class="col-12"> 
161                    <a href="/group/guest/~/control_panel/manage?p_p_id=com_liferay_journal_web_portlet_JournalPortlet&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&_com_liferay_journal_web_portlet_JournalPortlet_mvcPath=%2Fedit_article.jsp&_com_liferay_journal_web_portlet_JournalPortlet_redirect=https%3A%2F%2Fwww.open-science.it%3A443%2Fgroup%2Fguest%2F%7E%2Fcontrol_panel%2Fmanage%3Fp_p_id%3Dcom_liferay_journal_web_portlet_JournalPortlet%26p_p_lifecycle%3D0%26p_p_state%3Dmaximized%26p_p_mode%3Dview%26_com_liferay_journal_web_portlet_JournalPortlet_cur%3D2%26_com_liferay_journal_web_portlet_JournalPortlet_displayStyle%3Ddescriptive%26_com_liferay_journal_web_portlet_JournalPortlet_orderByCol%3Dmodified-date%26_com_liferay_journal_web_portlet_JournalPortlet_orderByType%3Dasc%26_com_liferay_journal_web_portlet_JournalPortlet_delta%3D20%26_com_liferay_journal_web_portlet_JournalPortlet_resetCur%3Dfalse%26_com_liferay_journal_web_portlet_JournalPortlet_folderId%3D38486%26p_p_auth%3DGWRihZ2Y&_com_liferay_journal_web_portlet_JournalPortlet_referringPortletResource=&_com_liferay_journal_web_portlet_JournalPortlet_groupId=20123&_com_liferay_journal_web_portlet_JournalPortlet_folderId=38486&_com_liferay_journal_web_portlet_JournalPortlet_articleId=${articleid}&_com_liferay_journal_web_portlet_JournalPortlet_version=1.2&p_p_auth=GWRihZ2Y"><strong>Edit</strong></a> 
162                </div> 
163            </#if> 
164            --> 
165            <#if editPortletURL?has_content> 
166                <div class="col-12"> 
167                    <a href="${editPortletURL}"><strong>EDIT</strong></a> 
168                </div> 
169            </#if> 
170 
171            <div class="col-12 col-lg-10 mx-auto last-paragraph-no-margin os-article-body"> 
172                ${summary} 
173                ${content.getData()} 
174                <p class="os-article-date">${dateUtil.getDate(article.getDisplayDate(), "dd MMMM yyyy", locale)}</p> 
175            </div> 
176<#-- Saranno chiusi in Parametric Article Template 
177        </div> 
178    </div> 
179</section> 
180--> 
181 
182<#-- 
183<#if tags?has_content> 
184  <#list tags?split(",") as tag> 
185    <#if !tag?starts_with("p_") && !tag?starts_with("t_") > 
186      <span style="border: 1px solid black;">${tag}</span> 
187    </#if> 
188  </#list> 
189</#if> 
190--> 
191 
192<#-- RENDER RELATED AUTHORS --> 
193<#if authorsseq?has_content> 
194    <#-- Riordina gli autori nel caso particolare articolo Riflessioni giuridiche --> 
195    <#if rpk == "220966"> 
196        <#assign authorsseq = authorsseq?reverse> 
197    </#if> 
198    <#-- Riordina gli autori nel caso particolare articolo Una comunita aperta per promuovere l'Open Science a Torino --> 
199    <#if rpk == "344058"> 
200        <#assign authorsseq = [authorsseq[1], authorsseq[2], authorsseq[0], authorsseq[3]]> 
201    </#if> 
202	<#list authorsseq as entry> 
203	<div class="col-12 col-lg-10 mx-auto margin-50px-bottom md-margin-30px-bottom wow fadeInUp" style="visibility: visible; animation-name: fadeInUp;"> 
204		<#assign thumburl = entry.getAssetRenderer().getThumbnailPath(renderRequest)!''> 
205		<#assign authorurl = '/-/' + entry.getAssetRenderer().getArticle().getUrlTitle(locale)!'#'> 
206		<#assign fldmA = entry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap()/> 
207		<div class="d-block d-md-flex width-100 align-items-center align-items-md-start border border-color-extra-light-gray padding-50px-all md-padding-30px-all sm-padding-20px-all"> 
208			<div class="width-150px text-center sm-margin-15px-bottom"> 
209				<img src="${thumburl}" class="rounded-circle width-100px" alt="" data-no-retina=""> 
210			</div> 
211			<div class="width-100 padding-40px-left last-paragraph-no-margin sm-no-padding-left text-center text-md-left"> 
212			    <span class="text-extra-dark-gray text-uppercase alt-font font-weight-600 margin-10px-bottom d-inline-block text-small"><a href="${authorurl}" style="text-decoration: underline;">${entry.getTitle(locale)}</a></span> 
213			    <#assign osrole = fldmA['osRole'][0].getValue().getString(locale)!''> 
214			    <#-- Caso particolare articolo "Redazione" --> 
215			    <#if osrole?has_content && rpk == "208806"> 
216			        <span class="text-light-gray2 text-extra-small text-uppercase text-medium-gray" style="letter-spacing: 1px">&nbsp;&nbsp;(${osrole})</span> 
217			    </#if> 
218			    <!-- 
219				<a href="#" class="text-extra-dark-gray text-uppercase alt-font font-weight-600 margin-10px-bottom d-inline-block text-small">${entry.getTitle(locale)}</a> 
220				<p>${entry.getSummary(locale)}</p> 
221				--> 
222	            <#assign contentA = fldmA['htmlContent'][0].getValue().getString(locale) /> 
223				<span class="no-first-child-bold link-underline">${contentA}</span> 
224				<a href="${authorurl}" class="btn btn-very-small btn-black margin-20px-top">Tutti i contenuti dell'autore</a> 
225			</div> 
226		</div> 
227	</div> 
228	</#list> 
229</#if> 
230 
231 
232<#-- CUSTOM RELATED ARTICLE SECTION --> 
233<#if customRelated?has_content> 
234  <#if customRelated.getSiblings()?has_content> 
235    <#assign aelService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
236 
237    <#assign foundAlmost1Rel = false> 
238    <#list customRelated.getSiblings() as cur_customRelated> 
239      <#assign cur_custRelData = cur_customRelated.getData()> 
240      <#if cur_custRelData?has_content> 
241        <#assign foundAlmost1Rel = foundAlmost1Rel || true> 
242      </#if> 
243    </#list> 
244    <#if foundAlmost1Rel> 
245      <div class="col-12 col-lg-10 mx-auto text-center margin-80px-bottom sm-margin-40px-bottom mt-3"> 
246        <div class="position-relative overflow-hidden width-100"> 
247          <span class="text-small text-outside-line-full alt-font font-weight-600 text-uppercase text-extra-dark-gray">Potrebbe interessarti anche</span> 
248        </div> 
249      </div> 
250    </#if> 
251   
252    <div class="col-12 col-lg-10 d-flex flex-wrap mx-auto"> 
253      <#list customRelated.getSiblings() as cur_customRelated> 
254        <#assign cur_custRelData = cur_customRelated.getData()> 
255        <#if cur_custRelData?has_content> 
256          <#assign curcrJson = jsonFactoryUtil.createJSONObject(cur_custRelData)> 
257          <#assign className = curcrJson['className']> 
258          <#assign classPK = curcrJson['classPK']?number> 
259          <#assign relArticleEntry = aelService.fetchEntry(className, classPK)> 
260          <#assign relAssetRend = relArticleEntry.getAssetRenderer()> 
261          <#assign fldm = relAssetRend.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap()/> 
262          <#assign thumburl = relAssetRend.getThumbnailPath(renderRequest)!''> 
263          <#if !thumburl?has_content> 
264            <#attempt> 
265                <#if fldm['coverImage']?has_content> 
266                    <#assign coverval = fldm['coverImage'][0].getValue()!''> 
267                    <#if coverval?has_content> 
268                        <#assign json = jsonFactoryUtil.createJSONObject(coverval.getString(locale))> 
269                        <#assign groupId = json['groupId']?number> 
270                        <#assign classUuid = json['uuid']> 
271                        <#assign coverentry = aelService.getEntry(groupId, classUuid)> 
272                        <#assign thumburl = coverentry.getAssetRenderer().getURLDownload(themeDisplay)!''> 
273                    </#if> 
274                </#if> 
275            <#recover> 
276                <!-- missing cover of ${classPK} --> 
277            </#attempt> 
278          </#if> 
279           
280          <#if relArticleEntry.getClassTypeId() == 200447><#-- News structure ID --> 
281            <#assign viewurl = "/-/" + relAssetRend.getArticle().getUrlTitle(locale)/> 
282            <#assign htmlContent = fldm['htmlContent'][0].getValue().getString(locale) /> 
283            <#assign summary = stringUtil.shorten(htmlUtil.stripHtml(htmlContent), 500)/> 
284            <#if !thumburl?has_content> 
285			  <#assign image = fldm['image']!''> 
286			  <#if image?has_content> 
287			    <#assign imageval = fldm['image'][0].getValue()!''> 
288			    <#if imageval?has_content> 
289			        <#assign imagevaljst = imageval.getString(locale)> 
290			        <#if imagevaljst?has_content> 
291			            <#assign json = jsonFactoryUtil.createJSONObject(imagevaljst)> 
292					    <#assign groupId = json['groupId']?number> 
293					    <#assign classUuid = json['uuid']> 
294					    <#assign imageentry = aelService.getEntry(groupId, classUuid)> 
295					    <#assign thumburl = imageentry.getAssetRenderer().getURLDownload(themeDisplay)!''> 
296					<#else> 
297					    <#assign thumburl = "/documents/20123/0/blank-picture-1.png/be57bd7d-5248-d2a5-dbdf-88affd75267d?t=1662563236171"> 
298			        </#if> 
299                </#if> 
300              </#if> 
301            </#if> 
302          <#else><#-- else Article structure --> 
303            <#assign viewurl = "article?rpk=${relAssetRend.getArticle().getResourcePrimKey()}"> 
304            <#assign summary = relArticleEntry.getSummary(locale)/> 
305          </#if> 
306     
307          <div class="col-12 col-lg-6 pl-0 md-no-padding-lr last-paragraph-no-margin"> 
308            <div class="bg-light-gray padding-50px-all md-padding-25px-all"> 
309              <a href="${viewurl}"><span class="text-medium font-weight-600 text-extra-dark-gray alt-font">${curcrJson.title}</span></a> 
310              <a href="${viewurl}"><img src="${thumburl}" alt="" class="width-100 margin-30px-tb"></a> 
311              <p>${summary}</p> 
312            </div> 
313          </div> 
314        </#if> 
315      </#list> 
316    </div> 
317  </#if> 
318</#if>