News
16
Ergebnisse
Ergebnisse pro Seite
null Projekt Klimaplan2030
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing: ==> .vars['reserved-article-display-date'] [in template "20116#20160#4903751" at line 36, column 88] ---- 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: ${dateHelperService.displayShortDate(... [in template "20116#20160#4903751" at line 36, column 13] ----
1<#setting locale = locale />
2<#if !themeDisplay.scopeGroup.publicLayoutSet.virtualHostname?has_content || themeDisplay.scopeGroup.isStagingGroup()>
3 <#assign homeURL = "/web${layout.group.friendlyURL}/" />
4<#else>
5 <#assign homeURL = "/" />
6</#if>
7
8<#-- Récupération de DateHelper pour le format date -->
9<#assign dateHelperService = serviceLocator.findService("eu.strasbourg.utils.api.DateHelperService") />
10
11<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
12<#assign request = serviceContext.getRequest()/>
13
14<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
15
16<#assign imageUrl = ""/>
17<!-- image -->
18<#if thumbnail.getData()?has_content>
19 <#assign imageUrl = themeDisplay.getPortalURL() + thumbnail.getData()?replace('@', "")?replace('cdn_hostroot_path', "") />
20</#if>
21
22<#-- Liste des infos a partager -->
23<#assign openGraph = {
24"og:title":"${title.getData()?html}",
25"og:description":'${chapo.getData()?replace("<[^>]*>", "", "r")?html}',
26"og:image":"${imageUrl}"
27} />
28<#-- partage de la configuration open graph dans la request -->
29${request.setAttribute("LIFERAY_SHARED_OPENGRAPH", openGraph)}
30
31<main class="seu-container" style="margin-bottom: 50px">
32 <div class="detail-line">
33 <div class="filler"></div>
34 <p class="seu-published">
35 <@liferay_ui.message key="eu.published-on" />
36 ${dateHelperService.displayShortDate(dateHelperService.convertStringToDate(.vars['reserved-article-display-date'].getData(), "EEE, dd MMM yyyy hh:mm:ss Z"), locale)}
37 - <@liferay_ui.message key="eu.modified-on" />
38 ${dateHelperService.displayShortDate(dateHelperService.convertStringToDate(.vars['reserved-article-modified-date'].getData(), "EEE, dd MMM yyyy hh:mm:ss Z"), locale)}
39 </p>
40 <a href="#" class="add-favorites"
41 data-type="6"
42 data-title="${title.getData()}"
43 data-url="${currentUrl}"
44 data-group-id=${themeDisplay.scopeGroupId}
45 data-id="${.vars['reserved-article-id'].data}">
46 <span><@liferay_ui.message key="eu.add-to-favorite" /></span>
47 </a>
48 </div>
49 <h1>
50 ${title.getData()}
51 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
52 <#assign journalArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data)>
53 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
54 <#assign asset = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', journalArticle.getResourcePrimKey()) >
55 <#assign assetVocabularyHelper = serviceLocator.findService("eu.strasbourg.utils.api.AssetVocabularyHelperService") />
56 <#assign newsTypes = assetVocabularyHelper.getAssetEntryCategoriesByVocabulary(asset, "type d'actualite") />
57 <#if newsTypes?has_content>
58 <p class="seu-event-categories">
59 <#list newsTypes as type>
60 <a href="${homeURL}${(locale == 'fr_FR')?then('actualite','news')}?_eu_strasbourg_portlet_search_asset_SearchAssetPortlet_categoriesIds=${type.getCategoryId()}&p_p_id=eu_strasbourg_portlet_search_asset_SearchAssetPortlet">
61 ${type.getTitle(locale)}
62 </a>
63 <#sep>, </#sep>
64 </#list>
65 </p>
66 </#if>
67 </h1>
68 <div class="hat">
69 <div>
70 ${chapo.getData()}
71 </div>
72 </div>
73 <div class="rte">
74 ${content.getData()}
75 </div>
76</main>
77<#if image.getData()?has_content>
78 <script>
79 if ($('.region-banner').length == 0) {
80 var bannerHtml = '<div class="region-banner"></div>';
81 $('.region-post-header').addClass('has-banner').prepend(bannerHtml);
82 }
83 </script>
84 <style>
85 .region-banner {
86 background-image: url(${image.getData()}) !important;
87 }
88 </style>
89</#if>
90<style>
91.search-asset-portlet, .page-header {
92 display: none !important;
93}
94</style>