Asset Publisher

Blog

Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> mediumData["groupId"] [in template "252001#252047#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99]
----
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: #assign linkToDMT = FrontendService.m... [in template "252001#252047#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9]
----
1<#-- bezieht sich auf WCS Blog --> 
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") > 
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
6 
7<#assign articleId = .vars['reserved-article-id'].data /> 
8<#assign articleTitle = .vars['reserved-article-title'].data /> 
9<#assign version = .vars['reserved-article-version'].data?number /> 
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) /> 
11 
12<#if requestMap??>  
13 <#assign 
14 renderUrl = requestMap['render-url'] 
15 control_panel = renderUrl?contains('control_panel')  
16
17</#if> 
18  
19<#if control_panel?? && control_panel> 
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())> 
21 <pre> 
22 articleId = ${.vars['reserved-article-id'].data} 
23 version = ${.vars['reserved-article-version'].data} 
24 groupId = ${articleGroupId} 
25 structurekey = ${article.getDDMStructureKey()} 
26 </pre> 
27 <pre style="white-space: pre-wrap;"> 
28 ${FrontendService.json.transformToJson( article, true )} 
29 </pre> 
30 </#if> 
31<#else>  
32 <#-- includes error message --> 
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" /> 
34  
35 <#-- get link from frontend service --> 
36 <#assign contentUrl = "/404" > 
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) /> 
38 <#if journalArticle?has_content> 
39 <#assign className = "com.liferay.journal.model.JournalArticle"> 
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!""> 
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) /> 
42  
43 <#if assetEntry?has_content> 
44 <#assign assetRenderer = assetEntry.getAssetRenderer() > 
45 <#assign classPK = assetEntry.getClassPK()!"" > 
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) > 
47 </#if> 
48 </#if> 
49  
50 <#function getJournalArticle referenceStructure > 
51 <#local journalArticle = "" > 
52  
53 <#attempt> 
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) > 
55 <#if data?is_hash> 
56 <#local classPK = data['classPK'] > 
57 <#local className = data['className'] > 
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! > 
59 <#if entry??> 
60 <#local assetRenderer = entry.getAssetRenderer() /> 
61 <#local journalArticle = (assetRenderer.getArticle())! /> 
62 </#if> 
63 </#if> 
64 <#recover> 
65 <#-- catch block --> 
66 </#attempt> 
67  
68 <#return journalArticle > 
69  
70 </#function> 
71  
72 <#function getSaxReaderDocument dataObj > 
73 <#local document = "" > 
74  
75 <#local journalArticle = getJournalArticle(dataObj) > 
76 <#if journalArticle?has_content> 
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" /> 
78 </#if> 
79  
80 <#return document > 
81  
82 </#function> 
83  
84 <#function getCategoriesForVocabuary assetEntry vocabularyName > 
85 <#local categories = [] > 
86 <#local assetCategories = (assetEntry.getCategories())![] > 
87  
88 <#list assetCategories as assetCategory> 
89 <#local vocabularyId = assetCategory.getVocabularyId() > 
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" > 
91  
92 <#if vocabulary?has_content> 
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName > 
94 <#local categories = categories + [assetCategory] > 
95 </#if> 
96 </#if> 
97 </#list> 
98  
99 <#return categories > 
100  
101 </#function> 
102  
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) > 
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) > 
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") > 
106  
107  
108 <#-- PERSON macro 
109 ------------------------------------------------------------------------------------------------------------------------> 
110 <#macro personName document > 
111 <#if document?has_content> 
112 <#local anredetitel = ""> 
113 <#local vorname = ""> 
114 <#local nachname = ""> 
115  
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??> 
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") /> 
118 <#local anredetitel = node.getText() /> 
119 </#if> 
120  
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??> 
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") /> 
123 <#local vorname = node.getText() /> 
124 </#if> 
125  
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??> 
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") /> 
128 <#local nachname = node.getText() /> 
129 </#if> 
130  
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content > 
132 <span class="o-metadata o-metadata--author"> 
133 ${anredetitel} ${vorname} ${nachname}  
134 </span> 
135 </#if> 
136  
137 </#if> 
138 </#macro> 
139  
140 <#-- Quelle macro 
141 ------------------------------------------------------------------------------------------------------------------------> 
142 <#macro mediaReference groupId uuid> 
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" > 
144  
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content > 
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))> 
147 <span class="o-imagesource">${source}</span> 
148 </#if> 
149 </#macro> 
150  
151  
152 <#-- Cover --> 
153 <#assign mediumData = coverDMTKASDEMEDIUM.data?eval /> 
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />  
155 <div class="o-tile__media o-tile__media--medium"> 
156 <#if linkToDMT?has_content> 
157 <div class="o-tile__media-content"> 
158 <#if isDPMColorScheme() > 
159 <img src="${linkToDMT}"> 
160 </#if> 
161 <#if mediumData?has_content> 
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] /> 
163 </#if> 
164 </div> 
165 </#if> 
166 </div> 
167  
168 <div class="o-tile__content"> 
169  
170 <#-- Titel --> 
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left"> 
172 ${articleTitle!""} 
173 </h2> 
174  
175 <#-- Untertitel --> 
176 <h3 class="o-tile__subheadline"> 
177 ${untertitel.getData()} 
178 </h3> 
179  
180 <#-- Kurzbeschreibung --> 
181 <p class="o-tile__text"> 
182 ${beschreibung.getData()} 
183 </p> 
184  
185 <div class="o-metadata"> 
186 <#-- Autoren --> 
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content> 
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON> 
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) > 
190 <@personName document /> 
191 </#list> 
192 </#if> 
193  
194 <#-- Erscheinungsdatum --> 
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())> 
196  
197 <#if validator.isNotNull(erscheinungsdatum_Data)> 
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)> 
199 <span class="o-metadata o-metadata--date"> 
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)} 
201 </span> 
202 </#if> 
203  
204 <#if categories?has_content> 
205 <span class="o-metadata o-metadata--thema"> 
206 <#list categories as category> 
207 <span>${category.getName()}</span> 
208 </#list> 
209 </span> 
210 </#if> 
211 </div> 
212 
213 <#if isDPMColorSchemeNEW()> 
214 <div class="o-tile__button"> 
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button> 
216 </div> 
217 </#if> 
218 </div> 
219</#if> 
picture alliance / Michael Kappeler / dpa

Kluge Führung in krisenreichen Jahren.

Mein Glückwunsch an Angela Merkel

Angela Merkel feiert am 17. Juli 2024 ihren 70. Geburtstag und wird von der Präsidentin der Europäischen Kommission Ursula von der Leyen für ihre kluge Führung während ihrer Kanzlerschaft gewürdigt.

IMAGO / Rolf Zöllner

Räume der Angst

Antisemitismus an Berliner Hochschulen

An deutschen Hochschulen nehmen die antisemitischen Vorfälle zu. Besonders eindrücklich war die Besetzung des Sozialwissenschaftlichen Instituts der Humboldt-Universität. Jüdische Studenten fühlen sich nicht mehr sicher. Sie werden bedroht, das Vertrauen in die Hochschulleitung ist erschüttert.

Sven Serkis, Berlin

„Gefährdete Anwälte in Afghanistan und Iran: Was nichts bringt, ist keine Menschenrechtsarbeit!“

Über die weltweit gefährdete Rechtsstaatlichkeit, die Rolle des Deutschen Anwaltvereins und die Bedeutung der Europäischen Menschenrechtskonvention.

Menschenrechte: nachgefragt - Der Podcast rund ums Thema Menschenrechte mit Stefan von Raumer, Vizepräsident des Deutschen Anwaltvereins (DAV), Vorsitzender des Menschenrechtsausschusses des DAV und des Rates der europäischen Anwaltschaften (CCBE)

Konrad-Adenauer-Stiftung

Demokratie unter Druck - was tun?

Reflexionen zur Rule of Law Academy 2024

Das Konzept der "wehrhaften Demokratie" versucht den Spagat zwischen Schutzmechanismen und der Bewahrung demokratischer Freiheiten. Beispiele aus verschiedenen Ländern verdeutlichen, wie sie mit Bedrohungen ihrer demokratischen Systeme umgehen. Die Wirksamkeit der wehrhaften Demokratie hängt von ihrer Anpassungsfähigkeit und Verhältnismäßigkeit ab.

picture alliance / AA | Augustin Wamenya

Krieg im Ostkongo

Ein Pulverfass im Herzen Afrikas

Im Ostkongo herrscht seit Jahrzehnten Krieg – ein komplexer Konflikt mit vielen Beteiligten. Die wiedererstarkte Rebellengruppe M23 hat ihn neu angeheizt. Die Bevölkerung leidet, und die Welt schaut weg. Eine Eskalation hätte verheerende Folgen, und die Zeit für diplomatische Lösungen läuft ab.