Retour Février 2020 - L’épidémie de COVID-19 continue de se propager
Une erreur s'est produite lors du traitement du gabarit.
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 > 1 >
50 <#assign mib = kib / 1024>
51 <#if mib > 1 >
52 <#assign gib = mib / 1024>
53 <#if gib > 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>
Ne manquez aucune information, abonnez-vous au bulletin d’information d’IDEWE
Des explications par des experts autonomes, dans un langage clair
Les dernières évolutions dans le domaine du bien-être et de la prévention
Toutes les modifications de la législation