Asset Publisher

Microbiome: from benchtop to bedside

An error occurred while processing the template.
The following has evaluated to null or missing:
==> tmpArticles  [in template "31942#31983#EVENT TEMPLATE" at line 22, column 12]

----
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: #list tmpArticles as item  [in template "31942#31983#EVENT TEMPLATE" at line 22, column 5]
----
1<#assign assetDisplay = liferay_asset["asset-display"] /> 
2<#setting time_zone = timeZone.ID> 
3<#setting locale = "nl_BE"> 
4<#setting datetime_format = "EEE, d MMM yyyy HH:mm:ss Z"> 
5<#assign modifiedDate = .vars['reserved-article-modified-date'].data?datetime?string["yyyy-MM-dd"] /> 
6<#assign langId = themeDisplay.getLocale() /> 
7 
8<#assign dateFormat = "dd MMM" /> 
9 
10<#assign articleId = .vars['reserved-article-id'].data /> 
11<#assign articleTitle = .vars['reserved-article-title'].data /> 
12 
13<#assign articleKeywords = restClient.get('/headless-delivery/v1.0/sites/${groupId}/structured-contents/by-key/${articleId}?fields=keywords').keywords![]> 
14<#assign group = restClient.get("/headless-admin-user/v1.0/sites/${groupId?number}") /> 
15 
16<#assign portletName = portletDisplay.portletName /> 
17<#assign assetPublisherPortletName = "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet" /> 
18<#assign baseURL = themeDisplay.getSiteGroup().getDisplayURL(themeDisplay) + themeDisplay.getLayoutFriendlyURL(themeDisplay.getLayout()) /> 
19 
20<#-- Do this only when in the AssetPublisher Portlet --> 
21<#if portletName == assetPublisherPortletName > 
22    <#list tmpArticles as item > 
23        <#if item.getArticleId() != articleId > 
24            <#assign _date = "" /> 
25            <#assign _location = "" /> 
26            <#assign _title = item.getTitle(locale) /> 
27            <#assign _urlTitle = item.getUrlTitle() /> 
28 
29            <#assign elements = item.getDocument().getRootElement().elements("dynamic-element") /> 
30            <#list elements as element > 
31                <#if element.attribute("name").getValue() == "date" > 
32                    <#assign _date = element.getStringValue() /> 
33                <#elseif element.attribute("name").getValue() == "location" > 
34                    <#assign nameElements = element.elements("dynamic-content") /> 
35                    <#if nameElements?? > 
36                        <#list nameElements as nameElement > 
37                            <#if nameElement.attribute("language-id").getValue() == locale> 
38                                <#assign _location = nameElement.getStringValue() > 
39                            </#if> 
40 
41                        </#list> 
42                    </#if> 
43                </#if> 
44            </#list> 
45 
46            <#assign assetTagList2 = [] /> 
47            <#assign asset2Keywords = restClient.get('/headless-delivery/v1.0/structured-contents/${item.resourcePrimKey}?fields=keywords').keywords![] /> 
48            <#assign assetTagList2 = asset2Keywords /> 
49 
50 
51            <#assign date_Data = getterUtil.getString(_date) + " 23:59:59"> 
52            <#if validator.isNotNull(date_Data)> 
53                <#assign _date = dateUtil.parseDate("yyyy-MM-dd hh:mm:ss", date_Data, locale)> 
54 
55                <#if (.now <= _date?datetime) > 
56                    <#assign articles = articles + [ {"date": _date, "title": _title, "location": _location, "urlTitle": _urlTitle, "tags": assetTagList2} ] /> 
57                </#if> 
58            </#if> 
59 
60        </#if> 
61    </#list> 
62</#if> 
63<#-- Do this only when in the AssetPublisher Portlet --> 
64 
65<#assign hiddenClass = "" /> 
66<#list articleKeywords as tag> 
67    <#if ( 
68    (tag?string?starts_with("positie_nl") == true && langId?starts_with("fr")) 
69    || (tag?string?starts_with("positie_fr") == true && langId?starts_with("nl")) )> 
70        <#assign hiddenClass = "hidden" /> 
71    </#if> 
72</#list> 
73 
74<section class="news-events uzb-event-detail" data-date="${modifiedDate}"> 
75    <article> 
76        <#if hiddenClass !='hidden'> 
77            <h1 style="margin-bottom: 10px">${articleTitle}</h1> 
78            <label class="event"><@liferay.language key="event-label" /></label> 
79 
80            <#list articleKeywords as tag> 
81                <!-- tags: ${tag} --> 
82                <#if tag?string?starts_with("positie_") != true > 
83                    <span class="tag"> 
84                                <i class="fa fa-tag" aria-hidden="true"></i> 
85                                <#if tag?index == 0 > 
86                                    ${tag} 
87                                <#else> 
88                                    - ${tag} 
89                                </#if> 
90                                </span> 
91                </#if> 
92            </#list> 
93 
94 
95            <div style="margin: 10px 0 20px 0" class="event-info"> 
96                <#if textDate?? && textDate.getData()?? && textDate.getData() != ""> 
97                    <div> 
98                        <i class="fa fa-calendar" aria-hidden="true"></i> 
99                        ${textDate.getData()} 
100                    </div> 
101                </#if> 
102 
103                <#if textTime?? && textTime.getData()?? && textTime.getData() != ""> 
104                    <div> 
105                        <i class="fa fa-clock-o" aria-hidden="true"></i> 
106                        ${textTime.getData()} 
107                    </div> 
108                </#if> 
109 
110                <#if location?? && location.getData()?? && location.getData() != ""> 
111                    <div> 
112                        <i class="fa fa-map-marker" aria-hidden="true"></i> 
113                        ${location.getData()} 
114                    </div> 
115                </#if> 
116            </div> 
117            <div class="content-text"> 
118                <p> 
119                    ${content.getData()} 
120                </p> 
121            </div> 
122 
123            <#if langId?starts_with("nl") && extra?? && extra.block?? && extra.block.data?? && extra.block.data?has_content && extra.block.data?eval_json.assetEntryId??> 
124                <#list extra.block.getSiblings() as entry> 
125                    <#if entry.getType() == "journal-article" && entry.getData() != "" && entry.getData()?eval_json.assetEntryId??> 
126                        <#assign article = entry.getData()?eval /> 
127 
128                        <@assetDisplay className=article.className classPK=getterUtil.getLong(article.classPK, 0) /> 
129                    </#if> 
130                </#list> 
131            </#if> 
132 
133            <#if langId?starts_with("fr") && extra_fr?? && extra_fr.block_fr?? && extra_fr.block_fr.data?? && extra_fr.block_fr.data?has_content && extra_fr.block_fr.data?eval_json.assetEntryId??> 
134                <#list extra_fr.block_fr.getSiblings() as entry> 
135                    <#if entry.getType() == "journal-article" && entry.getData() != "" && entry.getData()?eval_json.assetEntryId??> 
136                        <#assign article = entry.getData()?eval /> 
137 
138                        <@assetDisplay className=article.className classPK=getterUtil.getLong(article.classPK, 0) /> 
139                    </#if> 
140                </#list> 
141            </#if> 
142 
143            <div class="actions"> 
144                <div class="uzb-share gray" data-value="${articleTitle}"></div> 
145                <#if (langId?starts_with("nl")) > 
146                    <a href="<@liferay.language key="newsletter-dialog-link-url" />" target="_blank" 
147                       class="uzb-button green subscribe-link"> 
148                        <span> 
149                            <@liferay.language key="subscribe-newsletter" /> 
150                        </span> 
151                        <svg class="icon icon-tabler icon-tabler-arrow-right" fill="none" height="24" stroke="currentColor" 
152                             stroke-linecap="round" stroke-linejoin="round" stroke-width="1" viewbox="0 0 24 24" width="24" 
153                             xmlns="http://www.w3.org/2000/svg"> 
154                            <path d="M0 0h24v24H0z" fill="none" stroke="none"></path> 
155                            <line x1="5" x2="19" y1="12" y2="12"></line> 
156                            <line x1="13" x2="19" y1="18" y2="12"></line> 
157                            <line x1="13" x2="19" y1="6" y2="12"></line> 
158                        </svg> 
159                    </a> 
160                </#if> 
161            </div> 
162        <#else> 
163            <@liferay.language key="event-not-available" /> 
164            <div> 
165                <a href="/web${group.friendlyUrlPath}/events" class="uzb-button green text-center" 
166                   style="display: inline-block; margin-top: 20px;"> 
167                    <span> 
168                        <@liferay.language key="event-other" /> 
169                    </span> 
170                    <svg class="icon icon-tabler icon-tabler-arrow-right" fill="none" height="24" stroke="currentColor" 
171                         stroke-linecap="round" stroke-linejoin="round" stroke-width="1" viewbox="0 0 24 24" width="24" 
172                         xmlns="http://www.w3.org/2000/svg"> 
173                        <path d="M0 0h24v24H0z" fill="none" stroke="none"></path> 
174                        <line x1="5" x2="19" y1="12" y2="12"></line> 
175                        <line x1="13" x2="19" y1="18" y2="12"></line> 
176                        <line x1="13" x2="19" y1="6" y2="12"></line> 
177                    </svg> 
178                </a> 
179            </div> 
180        </#if> 
181 
182        <div class="newsletter-dialog"> 
183            <div class="newsletter-dialog__container"> 
184                <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-mail-opened" width="80" 
185                     height="80" viewBox="0 0 40 40" stroke-width="1.5" stroke="currentColor" fill="none" 
186                     stroke-linecap="round" stroke-linejoin="round"> 
187                    <g stroke="none" stroke-width="1.5" fill="none" fill-rule="evenodd"> 
188                        <g id="Group"> 
189                            <polygon id="Path" points="0 0 40 0 40 40 0 40"></polygon> 
190                            <path d="M20,30 L8.33333333,30 C6.49238417,30 5,28.5076158 5,26.6666667 L5,10 C5,8.15905083 6.49238417,6.66666667 8.33333333,6.66666667 L31.6666667,6.66666667 C33.5076158,6.66666667 35,8.15905083 35,10 L35,22.5" 
191                                  id="Path" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"></path> 
192                            <polyline id="Path" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" 
193                                      points="5 10 20 20 35 10"></polyline> 
194                        </g> 
195                        <g id="Group" transform="translate(22.000000, 22.000000)"> 
196                            <polygon id="Path" points="0 0 14 0 14 14 0 14"></polygon> 
197                            <circle id="Oval" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" cx="7" 
198                                    cy="7" r="2.33333333"></circle> 
199                            <path d="M9.33333333,7 L9.33333333,7.875 C9.33333333,8.68041526 9.98625141,9.33333333 10.7916667,9.33333333 C11.5970819,9.33333333 12.2500044,8.68041526 12.2500044,7.875 L12.2500044,7 C12.2529766,4.68362667 10.7375084,2.63904217 8.52039354,1.96822466 C6.30327872,1.29740716 3.90853655,2.15890562 2.62687112,4.08839467 C1.34520569,6.01788371 1.47954104,8.55932497 2.95747389,10.3429473 C4.43540674,12.1265697 6.90762487,12.7308107 9.04166667,11.83" 
200                                  id="Path" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"></path> 
201                        </g> 
202                    </g> 
203                </svg> 
204                <button class="newsletter-dialog__close"> 
205                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> 
206                        <path fill="none" d="M0 0h24v24H0z"/> 
207                        <path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/> 
208                    </svg> 
209                </button> 
210                <h2><@liferay.language key="newsletter-dialog-title" /></h2> 
211                <p><@liferay.language key="newsletter-dialog-description" /></p> 
212                <a href="<@liferay.language key="newsletter-dialog-link-url" />" target="_blank" 
213                   class="uzb-button green-full"> 
214                    <span> 
215                        <@liferay.language key="newsletter-dialog-link-label" /> 
216                    </span> 
217                    <svg class="icon icon-tabler icon-tabler-arrow-right" fill="none" height="24" stroke="currentColor" 
218                         stroke-linecap="round" stroke-linejoin="round" stroke-width="1" viewbox="0 0 24 24" width="24" 
219                         xmlns="http://www.w3.org/2000/svg"> 
220                        <path d="M0 0h24v24H0z" fill="none" stroke="none"></path> 
221                        <line x1="5" x2="19" y1="12" y2="12"></line> 
222                        <line x1="13" x2="19" y1="18" y2="12"></line> 
223                        <line x1="13" x2="19" y1="6" y2="12"></line> 
224                    </svg> 
225                </a> 
226            </div> 
227        </div> 
228    </article> 
229</section> 
230<script> 
231    hideCookieContent(); 
232</script>