Indietro SOS ENATTOS

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> cur_linkToInternalPageDataJson.title  [in template "20098#20124#40920" at line 192, column 47]

----
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: ${cur_linkToInternalPageDataJson.title}  [in template "20098#20124#40920" at line 192, column 45]
----
1<#-- instanceId --> 
2<#assign instanceId = themeDisplay.getPortletDisplay().getId()?keep_after("INSTANCE_") /> 
3 
4<#-- labels --> 
5<#assign label_news = languageUtil.get(locale, "label_news") /> 
6<#assign label_date_of_publication = languageUtil.get(locale, "label_date_of_publication") /> 
7<#assign label_author = languageUtil.get(locale, "label_author") /> 
8<#assign label_attachments = languageUtil.get(locale, "label_attachments") /> 
9<#assign label_see_image = languageUtil.get(locale, "label_see_image") /> 
10<#assign label_go_to_the_page = languageUtil.get(locale, "label_go_to_the_page") /> 
11<#assign label_download_attachment = languageUtil.get(locale, "label_download_attachment") /> 
12<#assign label_go_back=languageUtil.get(locale, "label_go_back")/> 
13 
14  
15<#-- Service for taking Journal Article Data --> 
16<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
17<#-- Service for taking object layout --> 
18<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
19<#-- Service for taking category --> 
20<#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
21 
22<#assign dlFileEntryService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') /> 
23<#assign dlAppService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLAppService') /> 
24  
25<#-- Function for escaping extra character  --> 
26<#function escapeExtraChar text> 
27    <#return text?replace("\"","&quot;", "r")?replace("'","&rsquo;", "r")> 
28</#function> 
29  
30<#-- Check if list have at least on element --> 
31<#function atLeastOneElement list> 
32     <#assign isNotEmpty = false /> 
33     <#if list?? && list?has_content && list.getSiblings()?has_content> 
34        <#list list.getSiblings() as cur_elem> 
35            <#if validator.isNotNull(cur_elem) && validator.isNotNull(cur_elem.getData()) && cur_elem.getData() != "{}"> 
36                <#assign isNotEmpty = true /> 
37                <#break> 
38            </#if> 
39        </#list> 
40    </#if> 
41    <#return isNotEmpty> 
42</#function> 
43  
44<#-- Taking the label of radio button--> 
45<#function getOptionLabel ddmStructure fieldSelectName optionValue> 
46    <#assign optionLabel = "" /> 
47    <#if ddmStructure.getDDMFormField(fieldSelectName).getDDMFormFieldOptions().getOptionLabels(optionValue)??> 
48        <#assign optionLabel = ddmStructure.getDDMFormField(fieldSelectName).getDDMFormFieldOptions().getOptionLabels(optionValue).getString(locale) /> 
49    </#if> 
50    <#return optionLabel /> 
51</#function> 
52<#-- Taking the label of checkbox --> 
53<#function getCheckboxLabel ddmStructure fieldCheckboxName> 
54    <#return ddmStructure.getDDMFormField(fieldCheckboxName).getLabel().getString(locale)/> 
55</#function> 
56<#-- Taking the label of field --> 
57<#function getFieldLabel ddmStructure fieldName> 
58    <#return ddmStructure.getDDMFormField(fieldName).getLabel().getString(locale)/> 
59</#function> 
60  
61<#-- Taking metadata's on all article --> 
62<#-- Taking article id --> 
63<#assign articleId = .vars['reserved-article-id'].data /> 
64<#-- Taking the title --> 
65<#assign titolo = .vars['reserved-article-title'].data /> 
66  
67<#-- Other data associated with the item that I obtain via API --> 
68<#assign article = journalArticleLocalService.getArticle( groupId,  articleId ) /> 
69  
70<#-- Article last modification date --> 
71<#assign articleModifiedDateObj = article.getModifiedDate() /> 
72<#-- Format last modification date --> 
73<#if validator.isNotNull(articleModifiedDateObj)> 
74    <#assign articleModifiedDate = dateUtil.getDate(articleModifiedDateObj, "dd/MM/yyyy, hh:mm", locale) /> 
75</#if> 
76<#-- Url Title journal article --> 
77<#assign articleUrlTitle = article.getUrlTitle() /> 
78<#-- Primary key journal article --> 
79<#assign articlePrimKey = article.resourcePrimKey/> 
80<#-- Structure journal article --> 
81<#assign articleStructure = article.getDDMStructure() /> 
82  
83<#-- Functions to obtain a list of categories --> 
84<#-- If the indicated character is the category prefix, it indicates that the category must not be shown on the screen, but is only used for functional purposes --> 
85<#assign PREFIX_SERVICE_CATEGORY = "_" /> 
86<#-- I get all the categories associated with an article except those that have a prefix "_" --> 
87<#function getCategoryByArticlePrimKey articlePrimKey> 
88    <#assign tmp = "" />  
89    <#assign articleCatNames = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey)) /> 
90    <#if (articleCatNames?size > 0)> 
91        <#list articleCatNames as category>   
92            <#if category.name?substring(0,1) != PREFIX_SERVICE_CATEGORY > 
93                <#assign tmp = tmp + category.name + ", " />  
94            </#if> 
95        </#list> 
96        <#assign tmp = tmp?keep_before_last(",") />               
97    </#if> 
98    <#return tmp> 
99</#function> 
100<#-- Variant: Returns only the list of category objects --> 
101<#function getListCategoryByArticlePrimKey articlePrimKey> 
102    <#assign listCategories = [] />   
103    <#assign articleCat = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey)) /> 
104    <#if (articleCat?size > 0)> 
105        <#list articleCat as category>    
106            <#if category.name?substring(0,1) != PREFIX_SERVICE_CATEGORY > 
107                <#assign listCategories = listCategories + [category] />  
108            </#if> 
109        </#list> 
110    </#if> 
111    <#return listCategories> 
112</#function> 
113  
114  
115  
116<#-- html --> 
117<section class="news-detail" vocab="https://schema.org/" typeof="NewsArticle"> 
118    <div class="container mb-5"> 
119        <div class="col-12"> 
120            <div class="row justify-content-between align-items-center"> 
121                <#if (title.getData())??> 
122                    <h1 property="name" class="mb-4 mt-3">${title.getData()}</h1> 
123                </#if> 
124                <#--  <a class="btn btn-primary h-50 text-decoration-none" href="javascript:history.back(1)">${label_go_back}</a>  --> 
125            </div> 
126            <div class="row"> 
127                <#assign publicationDate_Data = getterUtil.getString(publicationDate.getData())> 
128                <#if validator.isNotNull(publicationDate_Data) || validator.isNotNull(author.getData())> 
129                    <p> 
130                        <#if validator.isNotNull(publicationDate_Data)> 
131                            <#assign publicationDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", publicationDate_Data, locale)> 
132                            <span property="datePublished" content="${dateUtil.getDate(publicationDate_DateObj, 'dd MMM yyyy - HH:mm:ss', locale)}}">${label_date_of_publication} ${dateUtil.getDate(publicationDate_DateObj, "dd/MM/yyyy", locale)}</span> 
133                        </#if> 
134                        <#if validator.isNotNull(publicationDate_Data) && validator.isNotNull(author.getData())> 
135                        -  
136                        </#if> 
137                        <#if validator.isNotNull(author.getData())> 
138                        <span property="author">${label_author} ${author.getData()}</span> 
139                        </#if> 
140                    </p> 
141                </#if> 
142            </div> 
143            <div class="row mb-4"> 
144                <span class="news-events-badge news-badge-color"> 
145                    ${label_news}  
146                </span> 
147            </div> 
148            <div class="row d-block min-height-350"> 
149                <#if (image.getData())?? && image.getData() != ""> 
150                    <div class="article-image"> 
151                        <a href="${image.getData()}" data-toggle="lightbox" data-type="image" title="${label_see_image}" aria-label="${label_see_image}"> 
152                            <img property="image" alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute("fileEntryId")}" src="${image.getData()}" class="object-fit-cover w-100 h-100"> 
153                        </a> 
154                        <p>${image.getAttribute("alt")}</p> 
155                    </div> 
156                </#if> 
157                <#if (description.getData())??> 
158                    <div property="description" class="text-justify">${description.getData()}</div> 
159                </#if> 
160            </div> 
161            <#if atLeastOneElement(attachment)> 
162                <div class="row"> 
163                    <h3 class="font-weight-bold mb-4 mt-3">${label_attachments}</h3> 
164                    <div class="col-12 ml-4"> 
165                        <#list attachment.getSiblings() as cur_attachment> 
166                            <#if validator.isNotNull(cur_attachment) && validator.isNotNull(cur_attachment.getData())> 
167                                <div class="row mb-3"> 
168                                    <a href="${cur_attachment.getData()}" class="text-body" title="${label_download_attachment}" aria-label="${label_download_attachment}"> 
169                                        <i class="icon-file-alt text-body mr-1 text-decoration-none"></i> 
170                                        <#assign cur_attachmentJson = jsonFactoryUtil.createJSONObject(cur_attachment) /> 
171                                        <#assign cur_attachmentDataJson = jsonFactoryUtil.createJSONObject(cur_attachmentJson.data) /> 
172                                        ${cur_attachmentDataJson.title?keep_before("." + cur_attachmentDataJson.extension?string)} 
173                                    </a> 
174                                </div> 
175                            </#if> 
176                        </#list> 
177                    </div> 
178                </div> 
179            </#if> 
180            <#if atLeastOneElement(linkToInternalPage) || atLeastOneElement(linkToExternalPage)> 
181                <div class="row"> 
182                    <h3 class="font-weight-bold mb-4 mt-3">Link</h3> 
183                    <div class="col-12 ml-4"> 
184                        <#if atLeastOneElement(linkToInternalPage)> 
185                            <#list linkToInternalPage.getSiblings() as cur_linkToInternalPage> 
186                                <#if validator.isNotNull(cur_linkToInternalPage) && validator.isNotNull(cur_linkToInternalPage.getData()) && cur_linkToInternalPage.getData() != "{}"> 
187                                    <div class="row mb-3"> 
188                                        <#assign cur_linkToInternalPageJson = jsonFactoryUtil.createJSONObject(cur_linkToInternalPage) /> 
189                                        <#assign cur_linkToInternalPageDataJson = jsonFactoryUtil.createJSONObject(cur_linkToInternalPageJson.data) /> 
190                                        <a data-senna-off="true" href="${cur_linkToInternalPage.getFriendlyUrl()}" class="text-body" title="${label_go_to_the_page}" aria-label="${label_go_to_the_page}"> 
191                                            <i class="icon-link text-body mr-1 text-decoration-none"></i> 
192                                            ${cur_linkToInternalPageDataJson.title} 
193                                        </a> 
194                                    </div> 
195                                </#if> 
196                            </#list> 
197                        </#if> 
198                        <#if atLeastOneElement(linkToExternalPage)> 
199                            <#list linkToExternalPage.getSiblings() as cur_linkToExternalPage> 
200                                <#if (cur_linkToExternalPage.getData())??> 
201                                    <div class="row mb-3 text-body"> 
202                                        <i class="icon-link text-body mr-2 text-decoration-none"></i> 
203                                        ${cur_linkToExternalPage.getData()} 
204                                    </div> 
205                                </#if> 
206                            </#list> 
207                        </#if> 
208                    </div> 
209                </div> 
210            </#if> 
211        </div> 
212    </div> 
213</section> 
214 
215<script type="text/javascript"> 
216    $(document).off("click", '[data-toggle="lightbox"]').on("click", '[data-toggle="lightbox"]', function(event) { 
217        event.preventDefault(); 
218        $(this).ekkoLightbox(); 
219    }); 
220</script>