Terug Februari 2020 - De uitbraak van COVID-19 breidt verder uit

Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> filePathArray[2]  [in template "20101#20127#IDEWE.TEMPLATE.WEB2.ARTICLE" at line 240, column 141]

----
Tip: It's the final [] step 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: fileEntry = fileEntryService.getFileE...  [in template "20101#20127#IDEWE.TEMPLATE.WEB2.ARTICLE" at line 240, column 65]
----
1<#setting url_escaping_charset='UTF-8'> 
2<#assign 
3newsArticleService = serviceLocator.findService("be.idewe.portal.website.articles.api.NewsArticleService") 
4articleLanguageService = serviceLocator.findService("be.idewe.portal.website.article.language.api.ArticleLanguageService") 
5fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") 
6journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
7pagesService = serviceLocator.findService("be.idewe.portal.website.pages.api.PagesService") 
8parsingService = serviceLocator.findService("be.idewe.portal.website.articles.api.ParsingService") 
9journalArticleId = .vars['reserved-article-id'].getData() 
10 
11article = journalArticleLocalService.getArticle(groupId, journalArticleId) 
12 
13themaList = newsArticleService.getThemas(journalArticleId, groupId) 
14relatedNewsList = newsArticleService.getRelatedNews(journalArticleId, 5, 9, groupId, themeDisplay.getLocale()) 
15overviewUrl = pagesService.getNieuwsOverzichtUrl(themeDisplay) 
16 
17theme_tooltip_label = languageUtil.get(themeDisplay.getLocale(), 'idewe.news.theme.tooltip') 
18 
19themeHashKey = "theme" 
20 
21thisLayout = themeDisplay.getLayout() 
22sourceUrl = themeDisplay.getURLCurrent()?keep_before("?") 
23siteUrl = themeDisplay.getPathFriendlyURLPublic() + thisLayout.getGroup().getFriendlyURL() 
24
25<#if !sourceUrl?starts_with(siteUrl)> 
26	<#assign siteUrl = ''> 
27</#if> 
28<#assign 
29ancestorLayouts = thisLayout.getAncestors() 
30parentLayout = ancestorLayouts[0] 
31parentUrl = siteUrl + parentLayout.getFriendlyURL() 
32 
33breadcrumbsSeparatorClass = 'fas fa-angle-right' 
34
35 
36<#macro languageWithArguments key arguments><#compress> 
37	<#assign label><@liferay.language key="${key}" /></#assign> 
38	<#if arguments?is_sequence> 
39		<#list arguments as argument> 
40			<#assign label = label?replace("{" + argument?index + "}", argument)> 
41		</#list> 
42	<#else> 
43		<#assign label = label?replace("{0}", arguments)> 
44	</#if> 
45	${label} 
46</#compress></#macro> 
47<#macro prettyPrintFileSize bytes><#compress> 
48	<#assign kib = bytes?number / 1024> 
49	<#if kib &gt; 1 > 
50		<#assign mib = kib / 1024> 
51		<#if mib &gt; 1 > 
52			<#assign gib = mib / 1024> 
53			<#if gib &gt; 1 > 
54				${gib?string["0.#"]?replace(".", ",")} <@liferay.language key="idewe.file.size.gib" /> 
55			<#else> 
56				${mib?string["0.#"]?replace(".", ",")} <@liferay.language key="idewe.file.size.mib" /> 
57			</#if> 
58		<#else> 
59			${kib?string["0.#"]?replace(".", ",")} <@liferay.language key="idewe.file.size.kib" /> 
60		</#if> 
61	<#else> 
62		${bytes} <@liferay.language key="idewe.file.size.b" /> 
63	</#if> 
64</#compress></#macro> 
65<div class="news-article-breadcrumbs centered-content"> 
66	<nav id="breadcrumbs"> 
67		<ul class="breadcrumbs"> 
68			<#list ancestorLayouts?reverse as ancestorLayout> 
69				<#assign nodeUrl = siteUrl + ancestorLayout.getFriendlyURL()> 
70				<li> 
71					<#if ancestorLayout?index != 0> 
72						<i class="${breadcrumbsSeparatorClass}"></i> 
73					</#if> 
74					<a href="${nodeUrl}">${htmlUtil.escape(ancestorLayout.getName(themeDisplay.getLocale()))}</a> 
75				</li> 
76			</#list> 
77			<li> 
78				<i class="${breadcrumbsSeparatorClass}"></i> 
79				${.vars['reserved-article-title'].getData()} 
80			</li> 
81		</ul> 
82	</nav> 
83</div> 
84 
85<#if articleLanguageService.hasLocale(article, themeDisplay.getLocale())> 
86	<#assign 
87		displayDate_data = displayDate.getData() 
88		displayDate_object = dateUtil.parseDate("yyyy-MM-dd", displayDate_data, themeDisplay.getLocale()) 
89		displayDate_formatted = dateUtil.getDate(displayDate_object, "d MMMM yyyy", themeDisplay.getLocale()) 
90		titleText = request.setAttribute("TITLE_TEXT", .vars['reserved-article-title'].getData()) 
91
92 
93	<#if ogData?? && ogData.ogTitle?? && ogData.ogTitle?? && ogData.ogTitle.getData()?has_content> 
94		<#assign ogTitleOverride = request.setAttribute("OG_TITLE_OVERRIDE", ogData.ogTitle.getData())> 
95	<#else> 
96		<#assign ogTitleOverride = request.setAttribute("OG_TITLE_OVERRIDE", .vars['reserved-article-title'].getData())> 
97	</#if> 
98	<#if ogData?? && ogData.ogDescription?? && ogData.ogDescription.getData()?has_content> 
99		<#assign ogDescriptionOverride = request.setAttribute("OG_DESCRIPTION_OVERRIDE", ogData.ogDescription.getData())> 
100	<#else> 
101		<#if .vars['reserved-article-description'].getData()?has_content> 
102			<#assign ogDescriptionOverride = request.setAttribute("OG_DESCRIPTION_OVERRIDE", .vars['reserved-article-description'].getData())> 
103		</#if> 
104	</#if> 
105	<#if ogData?? && ogData.ogImage?? && ogData.ogImage.getData()?has_content> 
106		<#attempt> 
107			<#assign 
108			ogImageUrlOverride = request.setAttribute("OG_IMAGE_URL_OVERRIDE", ogData.ogImage.getData()) 
109			imageMetadata = parsingService.getImageMetadata(ogData.ogImage.getAttribute("fileEntryId")?number) 
110
111			<#if imageMetadata?? && imageMetadata.height?has_content> 
112				<#assign ogImageHeightOverride = request.setAttribute("OG_IMAGE_HEIGHT_OVERRIDE", imageMetadata['height'])> 
113			</#if> 
114			<#if imageMetadata?? && imageMetadata.width?has_content> 
115				<#assign ogImageWidthOverride = request.setAttribute("OG_IMAGE_WIDTH_OVERRIDE", imageMetadata['width'])> 
116			</#if> 
117		<#recover> 
118			<!-- ERROR: failed to parse image ${ogData.ogImage.getData()} --> 
119		</#attempt> 
120	<#else> 
121		<#attempt> 
122			<#assign 
123			ogImageUrlOverride = request.setAttribute("OG_IMAGE_URL_OVERRIDE", image.getData()) 
124			imageMetadata = parsingService.getImageMetadata(image.getAttribute("fileEntryId")?number) 
125
126			<#if imageMetadata?? && imageMetadata.height?has_content> 
127				<#assign ogImageHeightOverride = request.setAttribute("OG_IMAGE_HEIGHT_OVERRIDE", imageMetadata['height'])> 
128			</#if> 
129			<#if imageMetadata?? && imageMetadata.width?has_content> 
130				<#assign ogImageWidthOverride = request.setAttribute("OG_IMAGE_WIDTH_OVERRIDE", imageMetadata['width'])> 
131			</#if> 
132		<#recover> 
133			<!-- ERROR: failed to parse image ${image.getData()} --> 
134		</#attempt> 
135	</#if> 
136 
137	<div class="news-article"> 
138		<@articlelib.edit /> 
139		<div class="news-article-top-wrapper centered-content"> 
140			<h1 id="${companyId}_Top">${.vars['reserved-article-title'].getData()}</h1> 
141			<div class="news-article-header"> 
142				<#if !showDisplayDate?has_content || showDisplayDate.getData() == "true"> 
143					<span class="news-article-date">${displayDate_formatted}</span> 
144					<span class="header-separator">-</span> 
145				</#if> 
146				<span class="news-article-themes"> 
147					<#list themaList as thema> 
148						<#if thema?index != 0><span class="theme-separator">|</span></#if> 
149						<a class="theme-link" 
150						   title="<@languageWithArguments key="idewe.news.theme.tooltip" arguments="${thema.getTitle(themeDisplay.getLocale())}" />" 
151						   href="${parentUrl}#${themeHashKey}=${thema.getTitle(themeDisplay.getLocale())?url('UTF-8')}">${thema.getTitle(themeDisplay.getLocale())}</a> 
152					</#list> 
153				</span> 
154			</div> 
155 
156			<#if expert.getSiblings()?has_content> 
157				<div class="news-article-expert-list row"> 
158					<#list expert.getSiblings() as cur_Expert> 
159						<#attempt> 
160							<#assign 
161							expertData = newsArticleService.getExpertData(cur_Expert.getData(), groupId, themeDisplay.getLocale(), themeDisplay) 
162
163							<#if expertData?? && expertData.name?has_content> 
164								<div class="news-article-expert col-lg-6 col-md-6 col-sm-12"> 
165									<div class="news-article-expert-image"> 
166										<div class="news-article-expert-image-crop"> 
167											<img alt="${expertData.photoAlt}" src="${expertData.photoSrc}"/> 
168										</div> 
169									</div> 
170									<div class="news-article-expert-details"> 
171										<p class="news-article-expert-details-name"><@liferay.language key="idewe.news.expert" /> ${expertData.prefix} ${expertData.name}</p> 
172										<p>${expertData.function}</p> 
173									</div> 
174								</div> 
175							</#if> 
176						<#recover> 
177							<!-- ERROR: failed to parse expert ${cur_Expert.getData()} --> 
178						</#attempt> 
179					</#list> 
180				</div> 
181			</#if> 
182 
183			<#if subTitle.getData()?has_content> 
184				<h2>${subTitle.getData()}</h2> 
185			</#if> 
186			<p class="news-article-summary">${summary.getData()?replace('<p>','','r')?replace('</p>','','r')}</p> 
187			<#if paragraph?has_content> 
188				<#list paragraph.getSiblings() as paragraphItem> 
189					<div id="par-${paragraphItem?index}" class="web-content-paragraph clearfix"> 
190						<h2 class="web-content-paragraph-title">${paragraphItem.paragraphTitle.getData()}</h2> 
191						<#if paragraphItem.paragraphImage?? && paragraphItem.paragraphImage.paragraphImageAlignment?? && paragraphItem.paragraphImage.paragraphImageAlignment.getData() != ""> 
192							<#assign imageAlignment = paragraphItem.paragraphImage.paragraphImageAlignment.getData()> 
193						<#else> 
194							<#assign imageAlignment = "left"> 
195						</#if> 
196						<#if paragraphItem.paragraphImage.paragraphImageFile?? && paragraphItem.paragraphImage.paragraphImageFile.getData() != ""> 
197							<#if paragraphItem.paragraphImage.paragraphImageWidth?? && paragraphItem.paragraphImage.paragraphImageWidth.getData() != ""> 
198								<#assign imageWidth = paragraphItem.paragraphImage.paragraphImageWidth.getData()> 
199							<#else> 
200								<#assign imageWidth = "full"> 
201							</#if> 
202							<div class="web-content-paragraph-image alignment-${imageAlignment} width-${imageWidth} wow fadeIn"> 
203								<#if paragraphItem.paragraphImage.paragraphImageDownload?has_content && paragraphItem.paragraphImage.paragraphImageDownload.getData()?has_content> 
204									<#assign 
205									filePathArray = paragraphItem.paragraphImage.paragraphImageDownload.getData()?keep_before("?")?split("/") 
206									fileEntry = fileEntryService.getFileEntryByUuidAndGroupId(filePathArray[5], filePathArray[2]?number) 
207									fileExtension = fileEntry.getExtension() 
208									fileSize = fileEntry.getSize() 
209
210 
211									<div class="dl-wrapper"> 
212										<a class="dl-link" 
213										   href="${paragraphItem.paragraphImage.paragraphImageDownload.getData()}" 
214										   target="_blank"> 
215											<span class="dl-overlay fa-stack fa-2x"> 
216												<i class="fas fa-circle fa-stack-2x dl-background"></i> 
217												<i class="fas fa-download fa-stack-1x dl-icon"></i> 
218											</span> 
219											<span class="dl-text">(${fileExtension} - <@prettyPrintFileSize bytes="${fileSize?number}" />)</span> 
220										</a> 
221									</div> 
222								</#if> 
223 
224								<img alt="${paragraphItem.paragraphImage.paragraphImageFile.getAttribute("alt")}" 
225									 src="${paragraphItem.paragraphImage.paragraphImageFile.getData()}"/> 
226							</div> 
227						</#if> 
228						<div class="web-content-paragraph-content alignment-${imageAlignment}">${paragraphItem.paragraphContent.getData()}</div> 
229					</div> 
230				</#list> 
231			</#if> 
232			<#if download?has_content && download.getSiblings()?first.downloadFile.getData()?has_content> 
233				<div class="news-article-downloads"> 
234					<h2 id="${companyId}_Downloads"><@liferay.language key="idewe.news.downloads" /></h2> 
235					<ul class="news-article-downloads"> 
236						<#list download.getSiblings() as downloadItem> 
237							<#if downloadItem.downloadTitle.getData()?has_content> 
238								<#assign 
239								filePathArray = downloadItem.downloadFile.getData()?keep_before("?")?split("/") 
240								fileEntry = fileEntryService.getFileEntryByUuidAndGroupId(filePathArray[5], filePathArray[2]?number) 
241								fileExtension = fileEntry.getExtension() 
242								fileSize = fileEntry.getSize() 
243
244								<li class="news-article-download ext-${fileExtension}"> 
245									<a href="${downloadItem.downloadFile.getData()}">${downloadItem.downloadTitle.getData()}</a> 
246									<span class="news-article-download-details">(${fileExtension} - <@prettyPrintFileSize bytes="${fileSize?number}" />)</span> 
247								</li> 
248							</#if> 
249						</#list> 
250					</ul> 
251				</div> 
252			</#if> 
253		</div> 
254 
255		<#assign 
256		listSize = relatedNewsList?size 
257		aantalCol1 = (listSize / 3)?ceiling 
258		aantalCol2 = (listSize / 3)?round 
259		aantalCol3 = (listSize / 3)?floor 
260
261		<#if relatedNewsList?? && (listSize > 0)> 
262			<div class="centered-content"> 
263				<div class="related-news row"> 
264					<div class="col-md-12"><h2><@liferay.language key="idewe.news.related" /></h2></div> 
265					<#list relatedNewsList as relatedNewsArticle> 
266						<#if relatedNewsArticle?index = 0 
267						|| relatedNewsArticle?index = aantalCol1 
268						|| relatedNewsArticle?index = aantalCol1 + aantalCol2> 
269							<div class="col-md-4"> 
270							<ul> 
271						</#if> 
272						<li> 
273							<i class="fa fa-angle-right"></i> 
274							<a href="/-/${relatedNewsArticle.getArticleUrl()}">${relatedNewsArticle.getTitle()}</a> 
275						</li> 
276						<#if relatedNewsArticle?index = aantalCol1 - 1 
277						|| relatedNewsArticle?index = aantalCol1 + aantalCol2 - 1 
278						|| relatedNewsArticle?index = listSize - 1> 
279							</ul> 
280							</div> 
281						</#if> 
282					</#list> 
283				</div> 
284			</div> 
285		</#if> 
286	</div> 
287<#else> 
288	<div class="content-language-error centered-content"> 
289		<!--<@liferay.language key="idewe.article.not.available.in.current.language" />--> 
290	</div> 
291	<script type="text/javascript"> 
292		jQuery(document).ready(function () { 
293			window.location.replace("${overviewUrl}"); 
294		}); 
295	</script> 
296</#if> 
297<script type="text/javascript"> 
298	jQuery(document).ready(function () { 
299		function fadeBox() { 
300			jQuery('.fadeIn').each(function (i) { 
301				var top_of_object = jQuery(this).position().top; 
302				var bottom_of_window = jQuery(window).scrollTop() + jQuery(window).height(); 
303				if (top_of_object < bottom_of_window) { 
304					jQuery(this).animate({'opacity': '1'}, 1500); 
305
306			}); 
307
308 
309		function scrollToTop() { 
310			jQuery('html,body').scrollTop(0); 
311
312 
313		scrollToTop(); 
314		setTimeout(function () { 
315			scrollToTop(); 
316			window.addEventListener("scroll", fadeBox); 
317			fadeBox(); 
318		}, 200); 
319	}); 
320</script> 

Blijf altijd op de hoogte: schrijf je in op de IDEWE-nieuwsbrief

 

Met duiding van autonome experts, én in heldere taal!

Blijf mee met alle ontwikkelingen in welzijn & preventie

Ontvang als eerste updates rond wetswijzigingen