Asset Publisher

An error occurred while processing the template.
Failed to "?eval" string with this error:
---begin-message---
Syntax error in ?eval-ed string in line 1, column 2:
Encountered ")", but was expecting one of these patterns:
<STRING_LITERAL>
<RAW_STRING>
"false"
"true"
<INTEGER>
<DECIMAL>
"."
"+"
"-"
"!"
"["
"("
"{"
<ID>
---end-message---
The failing expression:
==> coverDMTKASDEMEDIUM.data?eval [in template "252001#252047#WCD_DEBATTENBLOG_ARTIKELDETAIL_INTRO" at line 65, column 23]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign mediumData = coverDMTKASDEMED... [in template "252001#252047#WCD_DEBATTENBLOG_ARTIKELDETAIL_INTRO" at line 65, column 1]
----
1<#-- bezieht sich auf WCS Publikation --> 
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
4<#assign version = .vars['reserved-article-version'].data?number /> 
5<#assign articleId = .vars['reserved-article-id'].data /> 
6<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) /> 
7<#assign articleTitle = .vars['reserved-article-title'].data/> 
8 
9<#if requestMap??>  
10 <#assign 
11 renderUrl = requestMap['render-url'] 
12 control_panel = renderUrl?contains('control_panel')  
13
14</#if> 
15  
16<#if control_panel?? && control_panel> 
17 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())> 
18 <pre> 
19 articleId = ${.vars['reserved-article-id'].data} 
20 version = ${.vars['reserved-article-version'].data} 
21 groupId = ${articleGroupId} 
22 structurekey = ${article.getDDMStructureKey()} 
23 </pre> 
24 <pre> 
25 ${FrontendService.json.transformToJson( article, true )} 
26 </pre> 
27 </#if> 
28<#else>  
29 <#include "${fullTemplatesPath}/macros/page-modules/PMShare.ftl" /> 
30  
31 <#-- Function for related Content for PERSON --> 
32 <#function getSaxReaderDocument dataObj > 
33 <#local document = "" > 
34  
35 <#attempt> 
36 <#local data = dataObj.getData()?eval > 
37 <#local classPK = data.classPK > 
38 <#local className = data.className > 
39 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! > 
40  
41 <#if entry??> 
42 <#local assetRenderer = entry.getAssetRenderer() /> 
43 <#local journalArticle = (assetRenderer.getArticle())! /> 
44 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" /> 
45 </#if> 
46 <#recover> 
47 <#-- catch block --> 
48 </#attempt> 
49  
50 <#return document > 
51  
52 </#function> 
53  
54<#macro mediaReference groupId uuid > 
55 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" > 
56 
57 <#if mediaObj?has_content && (mediaObj.quelle)?has_content > 
58 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))> 
59 <#if source?has_content> 
60 <span>${source}</span> 
61 </#if> 
62 </#if> 
63</#macro> 
64 
65<#assign mediumData = coverDMTKASDEMEDIUM.data?eval /> 
66<#if mediumData?has_content> 
67 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) /> 
68</#if> 
69 
70<#if !isDPMColorSchemeNEW()> 
71 <div class="c-page-intro c-page-intro--article"> 
72 <div class="o-page-module"> 
73 <div class="c-page-intro__wrapper"> 
74  
75 <#if coverDMTKASDEMEDIUM.getData()?has_content> 
76 <#if linkToDMT?has_content> 
77 <div class="c-page-intro__image" style="background-image:url('${linkToDMT}');"> 
78 <span class="o-imagesource"><@mediaReference mediumData["groupId"]?number mediumData["uuid"] /></span> 
79 </div> 
80 </#if> 
81 </#if> 
82  
83 <div class="c-page-intro__meta"> 
84  
85 <#-- Erscheinungsdatum --> 
86 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())> 
87  
88 <#if validator.isNotNull(erscheinungsdatum_Data)> 
89 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)> 
90 <span class="o-metadata o-metadata--date"> 
91 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)} 
92 </span> 
93 </#if> 
94  
95 <#-- laufende nummer --> 
96 <#assign article = JournalArticleLocalService.getArticle(groupId, articleId) /> 
97 <#assign verbundJournalArticle = FrontendService.publication.getVerbundToPublikation(article)!"" > 
98  
99 <#if verbundJournalArticle?has_content> 
100 <#assign document = (saxReaderUtil.read(verbundJournalArticle.getContentByLocale(locale.toString())))!"" /> 
101 <#if document?has_content> 
102  
103 <#if document.selectSingleNode("/root/dynamic-element[@name='laufendenummer']/dynamic-content")??> 
104 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='laufendenummer']/dynamic-content") /> 
105 <#assign laufendenummer = node.getText() /> 
106 <#if laufendenummer?has_content > 
107 <span class="o-metadata o-metadata--hash"><@liferay.language key="ausgabe" /> ${laufendenummer}</span> 
108 </#if> 
109 </#if> 
110 </#if> 
111 </#if> 
112  
113 </div> 
114  
115 <#-- Titel --> 
116 <div class="o-page-headline__wrapper"> 
117  
118 <div class="c-share"> 
119 <div class="c-share__wrapper--aside"> 
120 <div class="c-share c-share--aside c-share--aside-new"> 
121 <ul class="c-share__list"> 
122 <@ShareLink "print" /> 
123 <@ShareLink "mail" /> 
124 <@ShareLink "share" /> 
125 </ul> 
126 </div> 
127 </div> 
128 <@ShareOverlay /> 
129 </div> 
130  
131 <h2 class="o-page-headline"> 
132 ${articleTitle} 
133 </h2> 
134 </div> 
135  
136 <#-- Autoren --> 
137 <#if autorenWCSKASDEPERSON.getSiblings()?has_content> 
138 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON> 
139 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) > 
140  
141 <#if document?has_content> 
142  
143 <div class="c-page-intro__author"> 
144 <@liferay.language key="von" /> 
145  
146 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??> 
147 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") /> 
148 <#assign vorname = node.getText() /> 
149 <#if vorname?has_content > 
150 ${vorname} 
151 </#if> 
152 </#if> 
153  
154 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??> 
155 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") /> 
156 <#assign nachname = node.getText() /> 
157 <#if nachname?has_content > 
158 ${nachname} 
159 </#if> 
160 </#if> 
161 </div> 
162 </#if> 
163  
164 </#list> 
165 </#if> 
166  
167 <#-- Untertitel --> 
168 <h2 class="c-page-intro__subheadline"> 
169 ${untertitel.getData()} 
170 </h2> 
171  
172 <#-- Kurzbeschreibung --> 
173 <p class="c-page-intro__copy"> 
174 ${beschreibung.getData()} 
175 </p> 
176  
177 </div> 
178  
179 </div> 
180  
181 </div> 
182<#elseif isDPMColorSchemeNEW()> 
183 <div class="c-page-intro c-page-intro--article"> 
184 <div class="o-page-module"> 
185 <div class="c-page-intro__wrapper"> 
186 
187 <#-- Titel --> 
188 <div class="o-page-headline__wrapper"> 
189  
190 <div class="c-share"> 
191 <div class="c-share__wrapper--aside"> 
192 <div class="c-share c-share--aside c-share--aside-new"> 
193 <ul class="c-share__list"> 
194 <@ShareLink "print" /> 
195 <@ShareLink "mail" /> 
196 <@ShareLink "share" /> 
197 </ul> 
198 </div> 
199 </div> 
200 <@ShareOverlay /> 
201 </div> 
202  
203 <h1 class="o-page-headline"> 
204 ${articleTitle} 
205 </h1> 
206 </div> 
207  
208 <div class="c-page-subheadline__wrapper"> 
209 <div class="c-page-intro__meta"> 
210 
211 <#-- Autoren --> 
212 <#if autorenWCSKASDEPERSON.getSiblings()?has_content> 
213 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON> 
214 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) > 
215  
216 <#if document?has_content> 
217  
218 <div class="o-metadata o-metadata--author"> 
219  
220 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??> 
221 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") /> 
222 <#assign vorname = node.getText() /> 
223 <#if vorname?has_content > 
224 ${vorname} 
225 </#if> 
226 </#if> 
227  
228 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??> 
229 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") /> 
230 <#assign nachname = node.getText() /> 
231 <#if nachname?has_content > 
232 ${nachname} 
233 </#if> 
234 </#if> 
235 </div> 
236 </#if> 
237  
238 </#list> 
239 </#if> 
240  
241 <#-- Erscheinungsdatum --> 
242 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())> 
243  
244 <#if validator.isNotNull(erscheinungsdatum_Data)> 
245 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)> 
246 <span class="o-metadata o-metadata--date"> 
247 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)} 
248 </span> 
249 </#if> 
250  
251 </div> 
252 <#-- Untertitel --> 
253 <h2 class="c-page-intro__subheadline"> 
254 ${untertitel.getData()} 
255 </h2> 
256 </div> 
257  
258 <#-- Kurzbeschreibung --> 
259 <p class="c-page-intro__copy"> 
260 ${beschreibung.getData()} 
261 </p> 
262  
263 </div> 
264  
265 </div> 
266  
267 </div> 
268 </#if> 
269</#if> 

Asset Publisher

„Wäre, wäre – Fahrradkette!“ lautet das jüngste Bonmot von Lothar Matthäus, dem das deutsche Fußballvolk neben dem Weltmeisterschaftstitel 1990 auch eine beachtliche Sammlung denkwürdiger Fußballersprüche verdankt. Seit Sepp Herberger – „Das Runde muss ins Eckige“ – dringt dieses verkannte Genre bisweilen zu ungeahnt tiefen Einsichten vor. Was, wenn nicht die kreative Abwandlung des bekannten Kanzlerkandidatenzitats, brächte besser zum Ausdruck, dass sich in der Fußballwelt nichts wie selbstverständlich zusammenreimt? „Hätte, hätte – Fahrradkette“ würde bedeuten, alle Bedenken trotz offenkundiger Zweifel beiseite zu wischen. Aber das kann es doch nicht sein.

Wohl oder übel findet die Fußballweltmeisterschaft 2018 in Russland statt, und im Countdown zum ersten Anstoß verschlechtert sich das Verhältnis des Landes zum Westen beinahe täglich. Zu Gast bei Freunden? Es war einmal! Im Putin’schen Sommermärchen treffen Macht und Moral hart aufeinander. Party machen und inoffizielle Kriege führen – wie soll das auch zusammengehen? Vielleicht verschafft die Weltmeisterschaft der russischen Zivilgesellschaft mehr Spielraum und Aufmerksamkeit. Kicken, jubeln, wegschauen kann schon deshalb nicht die passende Maxime sein.

Die Fußball-WM in Russland ist fraglos ein präzise durchgeplanter und medial gesteuerter Prestige-Event. Dennoch muss nicht jedes politische Kalkül aufgehen. Den Eigensinn von 265 Millionen aktiven Fußballerinnen und Fußballern weltweit und der ungezählten Fans sollte niemand unterschätzen. Gut möglich, dass am Ende auch in Russland diejenigen die größten Sympathien gewinnen, die auf dem Rasen und um das Stadionrund sportlich erfolgreich und gut gelaunt Weltoffenheit und Freude an Vielfalt verbreiten. Verquält zur WM zu fahren, hilft jedenfalls auch nicht – im Gegenteil.

Angesichts aller Schwierigkeiten wäre zu wünschen, dass der Weltfußballverband FIFA sein „Premiumprodukt“ WM demnächst über die offensichtlich dominierende Sponsorenorientierung hinaus bedachtsamer vergibt. 2018 und 2022 bewegt sich das schillernde Unternehmen schon bedenklich nah entlang von Abgründen.

Die bevorstehende Fußballweltmeisterschaft wirft kritische Fragen nach der Verflechtung von Sport, Politik und Kommerz auf – international wie auch in Deutschland selbst. Perfekte Antworten wird es angesichts der riesigen Diskrepanzen so schnell kaum geben. Wer ein echter Fußballanhänger ist, wird darüber nicht verzagen, sondern nach Art von Lothar Matthäus gerade zum Eröffnungsspiel ein Hermann-Hesse-Zitat variieren: „Jedem Anpfiff wohnt ein Zauber inne.“

-----

Bernd Löhmann, Chefredakteur

comment-portlet