An error occurred while processing the template.
The following has evaluated to null or missing: ==> publicationDateFormatted [in template "20101#20129#114403" at line 87, column 104] ---- 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: ${publicationDateFormatted} [in template "20101#20129#114403" at line 87, column 102] ----
1<#assign publicationImage = "">
2<#assign publicationImageDesc = "">
3<#assign publicationDocument = "">
4<#assign publicationAbstract = "">
5<#assign publicationExternalURL = "">
6<#assign publicationDateData = "">
7<#assign publicationAuthor = "">
8<#assign publicationSeries = "">
9
10<#if s3p_publication_image??>
11 <#assign publicationImage = s3p_publication_image.getData()>
12 <#assign publicationImageDesc = s3p_publication_image.getAttribute("alt")!"">
13</#if>
14
15<#if s3p_publication_document??>
16 <#assign publicationDocument = s3p_publication_document.getData()>
17</#if>
18
19<#if s3p_publication_abstract??>
20 <#assign publicationAbstract = s3p_publication_abstract.getData()>
21</#if>
22
23<#if s3p_publication_externalDocumentURL??>
24 <#assign publicationExternalURL = s3p_publication_externalDocumentURL.getData()>
25</#if>
26
27<#if s3p_publication_date??>
28 <#assign publicationDateData = s3p_publication_date.getData()>
29</#if>
30
31<#if s3p_publication_author??>
32 <#assign publicationAuthor = s3p_publication_author.getData()>
33</#if>
34
35<#if s3p_publication_series??>
36 <#assign publicationSeries = s3p_publication_series.getData()>
37</#if>
38
39
40<#assign path_svg = themeDisplay.getPathThemeRoot()+"/component-library/dist/images/icons/sprites/icons.svg" />
41
42
43<#if publicationDocument?has_content >
44 <#assign parts = stringUtil.split(publicationDocument, "/")>
45 <#assign group_id = getterUtil.getLong(parts[2])>
46 <#assign folder_id = getterUtil.getLong(parts[3])>
47 <#assign doc_name = parts[4]>
48 <#assign uuid = stringUtil.split(parts[5], "?")[0]>
49 <#assign docService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryService")>
50 <#assign fileEntry = docService.getFileEntryByUuidAndGroupId(uuid, group_id)>
51</#if>
52
53<#if validator.isNotNull(publicationDateData)>
54 <#assign publicationDateObj = dateUtil.parseDate("yyyy-MM-dd", publicationDateData, locale)>
55 <#assign publicationDateFormatted = dateUtil.getDate(publicationDateObj, "dd MMM yyyy", locale)>
56</#if>
57
58<#if validator.isNull(publicationImage) && fileEntry?? && fileEntry?has_content>
59 <#assign portletFileRepositoryUtil = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"] >
60 <#assign dlUrlHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper") >
61
62 <#assign parts = stringUtil.split(publicationDocument, "/")>
63 <#assign group_id = getterUtil.getLong(parts[2])>
64 <#assign folder_id = getterUtil.getLong(parts[3])>
65 <#assign doc_name = parts[4]>
66 <#assign uuid = stringUtil.split(parts[5], "?")[0]>
67 <#assign fileEntryAux = portletFileRepositoryUtil.getPortletFileEntry(uuid, group_id)>
68 <#assign publicationImage = dlUrlHelper.getImagePreviewURL(fileEntryAux, themeDisplay) >
69</#if>
70
71
72<div class="ecl-page-header-harmonised">
73 <div class="ecl-container ecl-editor">
74
75 <h1 class="ecl-page-header-harmonised__title">
76 <div>${.vars['reserved-article-title'].data}</div>
77 </h1>
78
79 <#if (publicationImage?has_content)>
80 <div class="ecl-row">
81
82 <div class="ecl-col-12 ecl-col-md-6 ecl-u-mt-m ecl-u-mt-md-none">
83 </#if>
84
85 <div class="ecl-u-type-s ecl-u-type-color-grey-75 ecl-u-type-family-alt ecl-u-mv-l">
86 <span class="ecl-u-type-uppercase">Publication article</span>
87 <#if (publicationDateFormatted?has_content)> | </#if><time datetime="${publicationDateFormatted}">${publicationDateFormatted}</time>
88 <#if (publicationAuthor?has_content)> | </#if>${publicationAuthor}
89 </div>
90
91 <p class="ecl-u-type-paragraph ecl-u-type-color-grey-100 ecl-u-mt-xs">
92 ${s3p_publication_summary.getData()}
93 </p>
94
95 <#if (publicationAbstract?has_content)>
96 <p class="ecl-u-type-paragraph-m ecl-u-type-none ecl-u-type-bold">Abstract</p>
97 <p class="ecl-u-type-paragraph ecl-u-type-color-grey-100 ecl-u-mt-xs">
98 ${publicationAbstract}
99 </p>
100 </#if>
101
102 <#if (publicationSeries?has_content)>
103 <p class="ecl-u-type-paragraph ecl-u-type-color-grey-100 ecl-u-mt-xs">
104 <p class="ecl-u-type-paragraph-m ecl-u-type-none ecl-u-type-bold">Series</p>
105 ${publicationSeries}
106 </p>
107 </#if>
108
109 <#if (publicationDocument?has_content && fileEntry?? && fileEntry?has_content)>
110 <div class="ecl-file ecl-u-mb-m" data-ecl-file="true">
111 <div class="ecl-file__container">
112 <svg focusable="false" aria-hidden="true" class="ecl-file__icon ecl-icon ecl-icon--2xl">
113 <use xlink:href="${path_svg}#general--copy"></use>
114 </svg>
115 <div class="ecl-file__info">
116 <div class="ecl-file__title">${fileEntry.fileName}</div>
117 <div class="ecl-file__language"></div>
118 <div class="ecl-file__meta"></div>
119 </div>
120 <a download="" href="${publicationDocument}" class="ecl-file__download ecl-link ecl-link--standalone ecl-link--icon ecl-link--icon-after" aria-label="${fileEntry.fileName}">
121 <span class="ecl-link__label">Download</span> <svg focusable="false" aria-hidden="true" class="ecl-link__icon ecl-icon ecl-icon--fluid">
122 <use xlink:href="${path_svg}#ui--download"></use>
123 </svg></a>
124 </div>
125 </div>
126 </#if>
127
128
129 <#if (publicationExternalURL?has_content)>
130 <!--
131 <p class="ecl-u-type-paragraph ecl-u-type-color-grey-100 ecl-u-mt-l">
132 <p class="ecl-u-type-paragraph-m ecl-u-type-none ecl-u-type-bold">External Link</p>
133 <a href="${publicationExternalURL}" class="ecl-link ecl-link--default" aria-label="External URL">${publicationExternalURL}</a> <svg focusable="false" aria-hidden="true" class="ecl-link__icon ecl-icon ecl-icon--fluid">
134 <use xlink:href="${path_svg}#ui--external"></use>
135 </svg>
136 </p>
137 -->
138
139 <div class="ecl-file ecl-u-mb-m" data-ecl-file="true">
140 <div class="ecl-file__container">
141 <svg focusable="false" aria-hidden="true" class="ecl-file__icon ecl-icon ecl-icon--2xl">
142 <use xlink:href="${path_svg}#general--copy"></use>
143 </svg>
144 <div class="ecl-file__info">
145 <div class="ecl-file__title">External Link</div>
146 <div class="ecl-file__language"></div>
147 <div class="ecl-file__meta"></div>
148 </div>
149 <a download="" href="${publicationExternalURL}" class="ecl-file__download ecl-link ecl-link--standalone ecl-link--icon ecl-link--icon-after" aria-label="External Link">
150 <span class="ecl-link__label">View</span> <svg focusable="false" aria-hidden="true" class="ecl-link__icon ecl-icon ecl-icon--fluid">
151 <use xlink:href="${path_svg}#ui--external"></use>
152 </svg></a>
153 </div>
154 </div>
155
156 </#if>
157
158 <#if (publicationImage?has_content)>
159 </div>
160
161 <div class="ecl-col-12 ecl-col-md-6 ecl-u-order-first ecl-u-order-md-0">
162 <figure class="ecl-u-mt-l ecl-media-container"><img class="ecl-media-container__media" src="${publicationImage}" alt="publication image" />
163 <#if (publicationImageDesc?has_content)> <figcaption class="ecl-media-container__caption">${publicationImageDesc}</figcaption> </#if>
164 </figure>
165
166 </div>
167
168 </div>
169 </#if>
170
171 </div>
172</div>