We are Innovation

Innovation is our strength

"The best way to predict the future is to create it"

Peter Ducker

PUBLICATIONS

An error occurred while processing the template.
When calling function "getField", required parameter "defaultLanguageId" (parameter #3) was specified, but had null/missing value.

----
Tip: If the parameter value expression on the caller side is known to be legally null/missing, you may want to specify a default value for it with the "!" operator, like paramValue!defaultValue.
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #function getField(field, languageId,...  [in template "20099#20135#1726635" in function "getField" at line 124, column 1]
----
1<style> 
2	.publications-list .row { 
3		display: flex !important; 
4    	padding-right: 1.5rem; 
5
6	.publications-list-item.featured { 
7		grid-column: 1/12 !important; 
8
9</style> 
10<#if entries?has_content> 
11<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
12	<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
13	<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")> 
14	<#assign classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService")> 
15	<#assign ddmStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService")> 
16	<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
17	<#assign assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService")> 
18	<#assign journalArticleExtLocalService = serviceLocator.findService("com.izertis.internet.journal.ext.service.service.JournalArticleExtLocalService")> 
19    <#assign currentUrl = themeDisplay.getURLCurrent() + "/" /> 
20 
21<div class="pr-xl-3"> 
22<#list entries as curEntry>  
23                        <#assign renderer = curEntry.getAssetRenderer()> 
24                        <#assign className = renderer.getClassName()> 
25 
26                         
27                            <#assign journalArticle = renderer.getArticle()> 
28                             
29                            <#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) /> 
30                            <#assign relatedAssets = assetLinkLocalService.getDirectLinks(assetEntry.getEntryId())/> 
31                            <#assign journalArticleClassNameId = classNameLocalService.getClassNameId("com.liferay.journal.model.JournalArticle")/> 
32							 
33							 
34							<#assign description = journalArticle.getDescription(locale) /> 
35							<#assign descriptionEllipsisClass = "" /> 
36							<#if description == ""> 
37								<#assign description = htmlUtil.extractText(getField("content", locale, defaultLanguageId, rootElement)!) /> 
38								<#assign descriptionEllipsisClass = "five-lines" /> 
39							</#if> 
40                             
41                            <#assign author = 0 /> 
42                            <#list relatedAssets as relatedAssetLink> 
43                                <#assign relatedAsset = assetEntryLocalService.getAssetEntry(relatedAssetLink.getEntryId2()) /> 
44                                <#if journalArticleClassNameId == relatedAsset.getClassNameId()> 
45                                    <#assign relatedJournalArticle = journalArticleLocalService.getLatestArticle(relatedAsset.getClassPK()) /> 
46                                    <#assign relatedJournalArticleStructure = ddmStructureLocalService.getStructure(groupId, journalArticleClassNameId, relatedJournalArticle.getDDMStructureKey()) /> 
47                                    <#if relatedJournalArticleStructure.getName("es_ES") == "Autor"> 
48                                        <#assign author = relatedJournalArticle /> 
49                                    </#if> 
50                                </#if> 
51                            </#list> 
52                             
53                            <#assign link = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry)> 
54                            <#if ((assetLinkBehavior!"") != "showFullContent")> 
55                                <#assign link = renderer.getURLViewInContext(renderRequest, renderResponse, link) /> 
56                            </#if> 
57                             
58                            <#attempt> 
59                                <#assign link = "/-/" + journalArticleExtLocalService.getFriendlyUrl(journalArticle, themeDisplay.getLocale()) /> 
60                            <#recover> 
61                            </#attempt> 
62 
63                            <#if !currentUrl?contains(link + "/") > 
64                             
65                                <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
66                                <#assign rootElement = document.getRootElement()> 
67                                <#assign defaultLanguageId = parseXml ("@default-locale", rootElement)> 
68                                 
69                                <#attempt> 
70                                    <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='image']")> 
71                                    <#assign imagePost = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
72                                    <#if isJson(imagePost)> 
73                                        <#assign imgJson = jsonFactoryUtil.createJSONObject(imagePost)> 
74                                        <#if imgJson.get("alt")??> 
75                                            <#assign imgAlt = imgJson.alt /> 
76                                        <#else> 
77                                            <#assign imgAlt = "" /> 
78                                        </#if> 
79                                        <#assign urlimgmain = "/documents/" + imgJson.groupId + "/" + imgJson.uuid > 
80                                    <#else> 
81                                        <#assign imgAlt = "" /> 
82                                        <#assign urlimgmain = "/o/portal-izertis-theme/images/publications/" + journalArticle.getArticleId()[journalArticle.getArticleId()?length-1] + "_miniature.jpg"> 
83                                    </#if> 
84                                <#recover> 
85                                    <#assign imgAlt = "" /> 
86                                    <#assign urlimgmain = "/o/portal-izertis-theme/images/publications/" + journalArticle.getArticleId()[journalArticle.getArticleId()?length-1] + "_miniature.jpg"> 
87                                </#attempt> 
88                                 
89                                <#attempt> 
90                                    <#assign title = getField("title", locale, defaultLanguageId, rootElement)!> 
91                                <#recover> 
92                                    <#assign title = ""> 
93                                </#attempt> 
94 
95                                 
96                                            <div class="publications-list-item featured"> 
97                                                <a href="${link}"> 
98                                                    <div class="img"> 
99													<picture> 
100														<img data-src="${urlimgmain}" data-srcset="${urlimgmain}" class="lazyload" alt="${imgAlt}" title="${title}"> 
101													</picture> 
102                                                    </div> 
103                                                    <div class="title"> 
104                                                    <span>${title}</span> 
105                                                    </div> 
106                                                    <div class="author"> 
107                                                    <#if !author?is_number> 
108                                                    <#assign model = objectUtil("com.liferay.portal.kernel.portlet.PortletRequestModel", renderRequest, renderResponse) /> 
109                                                        ${journalArticleLocalService.getArticleContent(author, author.getDDMTemplateKey(), "VIEW", locale,model, themeDisplay)} 
110                                                    </#if> 
111                                                    </div> 
112                                                    </a>           
113													<#if description != "">													 
114														<div class="info ${descriptionEllipsisClass}" style="color:#1F1F1F;"> 
115															<p>${description}</p> 
116														</div> 
117													</#if> 
118                                     
119                                </div> 
120                            </#if> 
121</#list>  
122</div> 
123</#if> 
124<#function getField field languageId defaultLanguageId xml> 
125    <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]"> 
126    <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]"> 
127 
128    <#local selector = saxReaderUtil.createXPath(localeSelector)> 
129    <#local value = selector.selectSingleNode(xml)!> 
130 
131    <#if value?has_content && value.getText()?has_content> 
132        <#return value.getText()> 
133    </#if> 
134 
135    <#local selector = saxReaderUtil.createXPath(defaultSelector)> 
136    <#local value = selector.selectSingleNode(xml)!> 
137 
138    <#if value?has_content && value.getText()?has_content> 
139        <#return value.getText()> 
140    </#if> 
141 
142    <#return ""> 
143</#function> 
144 
145<#function parseXml xpath xml> 
146    <#local selector = saxReaderUtil.createXPath(xpath)> 
147    <#local result = selector.selectSingleNode(xml)!> 
148 
149    <#if result?has_content> 
150        <#return result.getStringValue()> 
151    </#if> 
152 
153    <#return ""> 
154</#function> 
155 
156<#function isJson json> 
157    <#local value = json?trim> 
158    <#return value?has_content && value?starts_with("{") && value?ends_with("}")> 
159</#function> 

Recent posts