Asset Publisher

An error occurred while processing the template.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> mediumData [in template "252001#252047#WCD_DEBATTENBLOG_ARTIKELDETAIL_INTRO" at line 67, column 93]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign linkToDMT = FrontendService.m... [in template "252001#252047#WCD_DEBATTENBLOG_ARTIKELDETAIL_INTRO" at line 67, column 3]
----
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

Im euro-asiatischen Raum hat im letzten Vierteljahrhundert kein Gewaltkonflikt die Beziehungen zwischen Russland und den übrigen 56 Teilnehmerstaaten der Organisation für Sicherheit und Zusammenarbeit in Europa (OSZE) mehr beschädigt als die Auseinandersetzung und der Krieg um die Ukraine. Dieser Konflikt beherrscht auch die Nachbarländer, die NATO und die Europäische Union (EU), und er war seit 2014 nie eingefroren, gerade weil sich in ihm eine fundamentale Auseinandersetzung politischer Interessen und Kulturen äußert. Immer wieder gab es Alarmsignale, die aber gern wie ein lästiger Wecker ignoriert wurden. Und so ist auch Wladimir Putins zweiter Krieg gegen die Ukraine, der im Februar 2022 begann, allein von den USA vorhergesagt worden; andere hielten den Truppenaufmarsch für einen Bluff oder für einen Vorwand, um die Anerkennung des ohnehin schon kontrollierten Donbass durchzusetzen. Fast alle haben sich von Putin täuschen lassen, obschon sein Modus Operandi sich durch die gesamte Amtszeit zieht.

Was bedeutet der Ukrainekonflikt für die Früherkennung und das Krisenverhalten? Diesen Fragen widmete sich eine internationale Tagung bereits im September 2020 in Wien, an der Experten, Diplomaten und (ehemalige) Politiker aus Deutschland, Frankreich, Großbritannien, Litauen, Österreich, Polen, Russland, der Schweiz und der Ukraine im Rahmen des „Multilateralen Dialogs“ der Konrad-Adenauer-Stiftung teilnahmen. Daraus ist ein von Claudia Crawford, Tim B. Peters und dem Autor dieses Beitrags herausgegebener Band hervorgegangen. Der Band kommt zu spät – der zweite Krieg, dieses Mal gegen die ganze Ukraine, ist aktuell in vollem Gange. Doch die in dem Band aufgeworfenen Fragen enthalten dennoch wichtige Einsichten. Der Ukrainekonflikt muss – gerade, weil wir nun sehen, was er an Leid und Zerstörung anrichtet – auch ein Lehrmeister sein.

Erstens: Putin setzt sich absolute, nicht verhandelbare Ziele. Er möchte die Jahre seit Auflösung der Sowjetunion rückabwickeln. Putin hat sich in ein Märchen von der russischen und panslawischen Hegemonie und gleichzeitig der Verfolgung der Russen hineingesteigert, das manische und autistische Züge trägt. Seine innenpolitisch absolutistische Macht ist ihm offenbar außenpolitisch zu Kopf gestiegen, weil er den Westen für schwach, zerstritten, scheinheilig, ängstlich und letztlich nur von geschäftlichen Interessen geleitet hält. Putin verfolgt nicht mehr rational das Ziel von Machtausgleich, von Status- oder Wirtschaftsinteressen. Es geht ihm nicht um die NATO, es geht ihm um die Auslöschung der Ukraine als souveräner Staat. Die Erkenntnis, dass es nicht nur geostrategische Rivalitäten in den internationalen Beziehungen mit Russland gibt, sondern eine Systemauseinandersetzung zwischen offenen und autokratischen Regimen, wurde so lange verdrängt, bis sie nicht mehr weggeredet werden konnte.

Zweitens: Putins Regime kann nur durch russische Militärs gestoppt werden, die, wenn auch erst nach geraumer Zeit, keine verlustreichen Kriege mehr werden führen wollen. Putins Regime dürfte am ehesten an Zermürbungskriegen zugrunde gehen, die zu einer Elitenspaltung führen, wie etwa im Frühjahr 1917. Die NATO schützt sich währenddessen nur selbst, sie „beobachtet“ die Lage in der Ukraine nur. Die Europäische Union und Deutschland haben mit Sicht auf das Überleben der Ukraine nicht genügend Einfluss und Machtmittel, weshalb erneut die USA, wie in den 1990er-Jahren, Europas Probleme lösen müssen.

Drittens: Bei der aufziehenden humanitären Krise kann Europa nicht Zaungast sein. Es wird zu massiver Binnenmigration in Richtung Westen kommen. Schon 2014/15 war die erste Anlaufstation Polen. Fluchtbewegungen werden infolge des Krieges zunehmen.

Viertens: Russland hat auf der Krim und im Donbass bereits autokratische Vasallenregime errichtet. Journalisten, Wissenschaftler und Politiker, die sich Putin nicht unterwerfen, werden zu Extremisten oder Terroristen erklärt, und das wird sich wiederholen. Putin muss vom Genozid gegen die Russen faseln, von Nazis und Drogenabhängigen, die Kiew regieren, von der Atommacht Ukraine, um krampfhaft eine Rechtfertigung für die Auslöschung der Ukraine als eigenständiger Nation zu finden. Einen russischen Hurrapatriotismus, vergleichbar mit der Popularität der Krim-Annexion im Jahr 2014, gibt es allerdings nicht.

Fünftens: Russland hat keine Kontrolle über das Baltikum, die Ukraine, über Georgien, Moldawien und Aserbaidschan. Die Regime in Belarus, Kasachstan, Kirgisien, Tadschikistan und Armenien überleben, weil sie von Russland gestützt oder in Abhängigkeit gehalten werden. Putin möchte die Entwicklungen seit dem Zerfall der Sowjetunion revidieren. Wo das Ende seines Revisionismus ist, wissen wir nicht.

Deutschland war nach 2014 entscheidend für die europäische „Sanktionsfront“ nach der Annexion der Krim. Die mitregierende SPD und früher auch die CDU verstanden sich allerdings gegenüber Russland immer als Mittler in Europa und als Fürsprecher deutscher Wirtschaftsinteressen. Die Vorstellung, dass Zugeständnisse Putins Krieg gegen die Ukraine stoppen, erweist sich jetzt als kostspielige Illusion. Auch nur punktuelle Sanktionen haben Russland schon früher nicht abgeschreckt. Gerade in Deutschland hat man sich lange die Möglichkeiten, auf Putin Einfluss zu nehmen, schöngeredet.

„Wir“ wollten die Entspannungspolitiker sein, Vermittler, die Psychotherapeuten an der gekränkten Seele Russlands. Die Erwartungshaltung war immer: Wenn die Ukraine sich ruhigstellt, ihre NATO-Beitrittsforderungen erst mal wieder begräbt, dann wird Putin ihr schon nichts tun.

Diese Logik – je weniger Anlass wir bieten, desto friedlicher wird sich Russland benehmen – war immer schon eine Illusion; das haben wir 2008 und 2014/15 gesehen, das sehen wir jetzt erneut. Die Logik des Krieges lautet: Ich will die Niederlage meines Gegners herbeiführen. Insofern ist die Frage: Was trägt dazu bei, dass Russland in der Ukraine zumindest nicht vollständig militärisch siegt? Wir müssen mit Putin in der Sprache sprechen, die er versteht. Den Ukrainern fehlen Waffen, Munition, sichere Kommunikationsmittel, gepanzerte Fahrzeuge und Panzerabwehrwaffen. Der nötige Paradigmenwechsel geht ans Eingemachte. Der Luxus, nicht lernen zu wollen, kommt alle teuer zu stehen.

 

Andreas Heinemann-Grüder, geboren 1957 in Potsdam, Professor für Politische Wissenschaften, Rheinische Friedrich-Wilhelms-Universität Bonn, Senior Researcher am Bonn International Centre for Conflict Studies.

 

Redaktionsschluss für diesen Beitrag war der 24. Februar 2022.

 

Literatur

Lehren aus dem Ukrainekonflikt. Krisen vorbeugen, Gewalt verhindern, hrsg. von Andreas Heinemann-Grüder, Claudia Crawford, Tim B. Peters, Verlag Barbara Budrich, Opladen/Berlin/ Toronto 2022.

comment-portlet