Asset-Herausgeber

Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) [in template "252001#252047#252845" at line 127, column 37]
----
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: dMTJsonObject = FrontendService.media... [in template "252001#252047#252845" at line 127, column 21]
----
1<#-- used @ Veranstaltung-Detailseite Intro 
2 used @ Publikation-Detailseite Intro 
3--> 
4 
5<#-- 
6Web content templates to display teaser on thema detail page 
7 
8Generic template for detail pages Intro / Teaser element 
9--> 
10<#-- 
11Display the current page title 
12--> 
13<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" /> 
14<#include "${fullTemplatesPath}/macros/debugging.ftl" /> 
15 
16<#include "${fullTemplatesPath}/macros/page-modules/PMIntro.ftl" /> 
17<#include "${fullTemplatesPath}/macros/atomic-modules/AMPublicationCarousel.ftl" /> 
18<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadata.ftl" /> 
19<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" /> 
20 
21 
22<#-- 
23 renders the Intro for nearly all Pages 
24 TODO: remove Share? (was in the designs, but not anymore?) 
25 TODO: check if languageSelect/filter are working (js) 
26 
27 - portletId 
28 - data = { 
29 "media": string (src from image), 
30 "category": string, 
31 "title": string, 
32 "author": string, 
33 "subheadline": string, 
34 "copy": string, 
35 "filter": { 
36 "id": string, 
37 "name": string, 
38 "entries": Array<Object> ({key:value}), 
39 }, 
40 "languageSelect": { 
41 "id": string, 
42 "name": string, 
43 "entries": Array<Object> ({key:value}), 
44 }, 
45 "meta": { 
46 "pos"; string (top/bottom) 
47 "date": string, 
48 "hash": string, 
49 "info": string, (url) 
50 }, 
51 "share" : { 
52 "login": string, 
53 "print": string, 
54 "mail": string, 
55 "multishare": string?? (tbd) 
56
57 - AMMetadata: macro 
58 - position: String ("top") -> defines wether the meta-data should be rendered above or below the intro-content 
59
60--> 
61 
62<#assign 
63 JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
64 
65 ServiceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() 
66 DLAPP = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService") 
67 
68 themeDisplay = ServiceContext.getThemeDisplay() 
69 editmode = FrontendService.user.isPrivilegedUser(themeDisplay) 
70 
71 languageId = themeDisplay.getLocale() 
72 groupId = themeDisplay.getScopeGroupId() 
73 currentUrl = themeDisplay.getURLCurrent() 
74 
75 layout = themeDisplay.getLayout() 
76 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id") 
77/> 
78 
79<#setting locale="${languageId}"> 
80 
81<#-- get article from url --> 
82 
83<#assign entry = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)! > 
84 
85 
86<#if entry?has_content> 
87 
88 <#if entry.resourcePrimKey??> 
89 <#assign primaryKey = entry.resourcePrimKey?number > 
90 <#elseif entry.classPK??> 
91 <#assign primaryKey = entry.classPK?number > 
92 </#if> 
93 
94 <#assign 
95 jsonString = FrontendService.article.getWebcontent(primaryKey) 
96 json = FrontendService.json.parseAsJson(jsonString) 
97 
98 title = entry.getTitle(languageId) 
99 data = { 
100 "title": title 
101
102 /> 
103 <@debugJsonString jsonString "ADT_KASDE_DYNAMIC_INTRO" /> 
104 
105 <#if hasContent('untertitel', languageId, json)> 
106 <#assign data = data + { "subheadline": getValueForLanguage('untertitel', languageId, json, "first") } > 
107 </#if> 
108 
109 <#if hasContent('beschreibung', languageId, json)> 
110 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } > 
111 </#if> 
112 
113 <#-- fill meta data --> 
114 <#assign meta = {} /> 
115 
116 <#-- PUBLIKATIONEN DETAIL --> 
117 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")> 
118 
119 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)> 
120 <#assign 
121 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first") 
122 /> 
123 
124 <#if coverBildString?has_content> 
125 <#assign 
126 coverBild = FrontendService.json.parseAsJson(coverBildString) 
127 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) 
128 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid ) 
129 data = data + { "media": linkToDMT, "meta" : dMTJsonObject } 
130 /> 
131 <#if dMTJsonObject.altText?? > 
132 <#assign data = data + {"alt" : dMTJsonObject.altText} /> 
133 </#if> 
134 <#if dMTJsonObject.quelle??> 
135 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } /> 
136 </#if> 
137 </#if> 
138 <#-- uncomment to display pdf cover as Intro Image 
139 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)> 
140 <#assign 
141 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first") 
142 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/> 
143 <#if fileEntry?has_content> 
144 <#assign 
145 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay) 
146 data = data + { "media": linkToThumbnail } 
147 /> 
148 </#if> 
149 --> 
150 </#if> 
151 
152 <#assign 
153 meta = meta + { "orderInfo": "true" } 
154 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!"" 
155 /> 
156 
157 
158 
159 <#if hasContent('erscheinungsdatum', languageId, json)> 
160 <#assign 
161 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
162 /> 
163 <#if erscheinungsdatum?has_content > 
164 <#assign 
165 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId ) 
166 meta = meta + { "date": erscheinungsdatumFormatted } 
167 /> 
168 </#if> 
169 </#if> 
170 
171 <#if verbundJournalArticle?has_content> 
172 <#assign 
173 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey) 
174 verbundJson = FrontendService.json.parseAsJson(verbundJsonString) 
175 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first") 
176 coverImg = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, verbundJson, "first") 
177 /> 
178 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" /> 
179 <#assign meta = meta + { "laufendenummer": laufendenummer } > 
180 
181 <#if coverImg?has_content && coverImg.url?has_content > 
182 <#assign meta = meta + { "coverImg": coverImg.url } > 
183 </#if> 
184 </#if> 
185 
186 
187 <#if meta?has_content> 
188 <#assign data = data + {"meta": meta } > 
189 </#if> 
190 
191 </#if> 
192 <#-- PUBLIKATIONEN DETAIL END --> 
193 
194 
195 <#-- VERANSTALTUNGEN DETAIL --> 
196 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")> 
197 <#assign 
198 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!"" 
199 languages = entry.getAvailableLanguageIds() 
200 links = [] 
201 /> 
202 <#if languages?has_content && friendlyUrl?has_content> 
203 <#if (languages?size > 1) > 
204 <#list languages as language> 
205 <#assign 
206 defaultLanguage = "de_DE" 
207 defaultLocale = FrontendService.language.getLocaleByKey(defaultLanguage) 
208 linkLocale = (FrontendService.language.getLocaleByKey(language))!defaultLocale 
209 langFriendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, linkLocale, groupId) 
210 
211 link = { 
212 "key": language!defaultLanguage, 
213 "value": linkLocale.getDisplayLanguage(languageId), 
214 "url": "/c/portal/update_language?p_l_id=" + 
215 layout.plid + "&redirect=" + langFriendlyUrl + 
216 "&languageId=" + language 
217
218 /> 
219 <#if language == languageId> 
220 <#assign link = link + { "selected": "true" } > 
221 </#if> 
222 <#assign links = links + [link]> 
223 </#list> 
224 <#assign 
225 data = data + { 
226 "languageSelect": { 
227 "id": "languageSelectRedirect", 
228 "name": "languageselectRedirect", 
229 "entries": links, 
230 "label": languageUtil.get(languageId, "diese.veranstaltung.ist.in.weiteren.sprachen.verfuegbar") 
231
232
233 /> 
234 </#if> 
235 </#if> 
236 </#if> 
237 
238 <#if hasContent('erscheinungsdatum', languageId, json)> 
239 <#assign 
240 startdate = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
241 meta = meta + { "start": startdate?date.iso, "end": "" } 
242 /> 
243 </#if> 
244 
245 <#if hasContent('startdatum', languageId, json)> 
246 <#assign 
247 startdate = getValueForLanguage('startdatum', languageId, json, "first") 
248 meta = meta + { "start": startdate?date.iso, "end": "" } 
249 /> 
250 </#if> 
251 
252 <#if hasValue('einfuehrungText', locale, json)> 
253 <#assign data = data + { "einfuehrungText" : getValueForLanguage('einfuehrungText', locale, json, "first") } > 
254 <#elseif hasValue(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first")> 
255 <#assign data = data + { "einfuehrungText" : getValueForLanguage(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first") } > 
256 </#if> 
257 
258 <#if hasContent('endedatum', languageId, json)> 
259 <#assign 
260 enddate = getValueForLanguage('endedatum', languageId, json, "first") 
261 meta = meta + { "end": enddate?date.iso } 
262 /> 
263 </#if> 
264 
265 <#if hasContent('startzeit', languageId, json)> 
266 <#assign 
267 startzeit = getValueForLanguage('startzeit', languageId, json, "first") 
268 /> 
269 <#if startzeit?has_content > 
270 <#assign meta = meta + { "startzeit": startzeit } /> 
271 </#if> 
272 </#if> 
273 
274 <#if hasContent('endezeit', languageId, json)> 
275 <#assign 
276 endezeit = getValueForLanguage('endezeit', languageId, json, "first") 
277 meta = meta + { "endezeit": endezeit } 
278 /> 
279 </#if> 
280 
281 <#if hasContent('ortWCSKASDEORT', languageId, json)> 
282 <#assign 
283 ortWCSKASDEORT = FrontendService.json.parseAsJson(getValueForLanguage('ortWCSKASDEORT', languageId, json, "first")) 
284 ortWCSKASDEORTPrimaryKey = ortWCSKASDEORT.classPK?number 
285 ortWCSKASDEORTWebContent = FrontendService.article.getWebcontentByPk(ortWCSKASDEORTPrimaryKey)!"" 
286 /> 
287 <#if ortWCSKASDEORTWebContent?has_content > 
288 <#assign 
289 ortWCSKASDEORTTitle = ortWCSKASDEORTWebContent.getTitle(languageId)!"" 
290 /> 
291 <#if ortWCSKASDEORTTitle?has_content > 
292 <#assign 
293 meta = meta + { "ortWCSKASDEORT": ortWCSKASDEORTTitle } 
294 /> 
295 </#if> 
296 </#if> 
297 </#if> 
298 
299 
300 <#if hasContent('veranstaltungsnummer', languageId, json)> 
301 <#assign 
302 verauuid = getValueForLanguage('veranstaltungsnummer', languageId, json, "first") 
303 meta = meta + { "verauuid": verauuid } 
304 /> 
305 </#if> 
306 
307 
308 <#if (data.meta)?has_content > 
309 <#assign meta = data.meta /> 
310 </#if> 
311 
312 <#if !(data.media)?has_content && hasContent('mediumDMTKASDEMEDIUM', languageId, json)> 
313 <#assign 
314 medium = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, json, "first") 
315 mediaData = getRelatedMediaObject(medium, themeDisplay, languageId, FrontendService, "hd-resolution") 
316 /> 
317 <#assign data = data + { "media": mediaData.url , "meta" : mediaData.meta} > 
318 
319 
320 <#if mediaData.meta?? && mediaData.meta.quelle??> 
321 <#assign meta = meta + data.meta + { "quelle": mediaData.meta.quelle } /> 
322 </#if> 
323 </#if> 
324 
325 
326 <#if meta?has_content> 
327 <#assign data = data + {"meta": meta } > 
328 </#if> 
329 
330 <#-- END fill meta data --> 
331 
332 <#if hasContentForSequence('autorenWCSKASDEPERSON', languageId, json)> 
333 <#assign 
334 journalArticles = getValueForLanguageAnsprechpartner('autorenWCSKASDEPERSON', languageId, json) 
335 authors = [] 
336 /> 
337 <#list journalArticles as articleString> 
338 <#assign article = FrontendService.json.parseAsJson(articleString) /> 
339 <#if article?has_content && article?is_hash && article.classPK??> 
340 <#assign articleDereferenced = FrontendService.person.resolveContactInstanceToPerson(article, languageId)!"" /> 
341 <#if articleDereferenced?has_content > 
342 <#assign 
343 author = "" 
344 articlePrimaryKey = articleDereferenced.classPK?number 
345 articleJsonString = FrontendService.article.getWebcontent(articlePrimaryKey) 
346 articleJson = FrontendService.json.parseAsJson(articleJsonString) 
347 /> 
348 <@debugJsonString articleJsonString "ADT_KASDE_DYNAMIC_INTRO-autorenWCSKASDEPERSON" /> 
349 <#if hasValue('anredetitel', languageId, articleJson)> 
350 <#assign author = author + getValueForLanguage('anredetitel', languageId, articleJson, " ") + " "> 
351 </#if> 
352 <#if hasValue('vorname', languageId, articleJson)> 
353 <#assign author = author + getValueForLanguage('vorname', languageId, articleJson, " ") + " "> 
354 </#if> 
355 <#if hasValue('nachname', languageId, articleJson)> 
356 <#assign author = author + getValueForLanguage('nachname', languageId, articleJson, " ") + " "> 
357 </#if> 
358 
359 <#attempt> 
360 <#assign href = FrontendService.article.getFriendlyUrl(articlePrimaryKey, languageId, groupId)!"#" > 
361 <#recover> 
362 <#assign href = "#" > 
363 </#attempt> 
364 <#if href?has_content && href != "#" && href != "/_404"> 
365 <#assign author = '<a href="' + href + '">' + author?trim + '</a>'> 
366 </#if> 
367 
368 <#assign authors = authors + [author?trim]> 
369 </#if> 
370 </#if> 
371 </#list> 
372 <#if authors?has_content> 
373 <#assign data = data + { "author": authors?join(", ") } > 
374 </#if> 
375 </#if> 
376 
377 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL") > 
378 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "VERANSTALTUNGSTYP")! > 
379 <#if categories?has_content && categories[0]?has_content > 
380 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
381 </#if> 
382 
383 <#if hasContent('ausgebucht', languageId, json)> 
384 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', languageId, json, "first") }> 
385 </#if> 
386 
387 <#if hasContent('storniert', languageId, json)> 
388 <#assign data = data + { "storniert" : getValueForLanguage('storniert', languageId, json, "first") }> 
389 </#if> 
390 
391 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL") > 
392 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "PUBLIKATIONSREIHE")! > 
393 <#if categories?has_content && categories[0]?has_content > 
394 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
395 </#if> 
396 <#else> 
397 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "THEMA")! > 
398 <#if categories?has_content && categories[0]?has_content > 
399 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
400 </#if> 
401 </#if> 
402 
403 
404 <#assign 
405 languages = [] 
406 /> 
407 
408 <#attempt> 
409 <#if json["document_pdfDMTBASICDOCUMENT"]?? > 
410 <#list json["document_pdfDMTBASICDOCUMENT"]?keys as pdf_language> 
411 <#if pdf_language?has_content > 
412 <#assign 
413 docRefJson = getValueForLanguage('document_pdfDMTBASICDOCUMENT', pdf_language, json, "first") 
414 docRef = FrontendService.json.parseAsJson(docRefJson) 
415 /> 
416 <#if docRef?is_hash && pdf_language != languageId > 
417 <#assign 
418 lang = FrontendService.language.getLocaleByKey(pdf_language)!"" 
419 docGroupId = docRef["groupId"]?number 
420 docUuid = docRef["uuid"] 
421 dMTJsonObject = FrontendService.media.getDMTJsonObject( docGroupId, docUuid, locale ) 
422 dMTLink = FrontendService.media.getLinkToDMT( dMTJsonObject ) 
423 /> 
424 <#if lang?has_content> 
425 <#assign 
426 languages = languages + [ 
427
428 "key": pdf_language, 
429 "value": FrontendService.language.getLocaleByKey(pdf_language).getDisplayLanguage(), 
430 "url": dMTLink 
431 }] 
432 /> 
433 </#if> 
434 </#if> 
435 </#if> 
436 </#list> 
437 </#if> 
438 <#recover> 
439 </#attempt> 
440 
441 <#if (languages?size > 0)> 
442 <#attempt> 
443 <#assign 
444 data = data + { "languageSelect": { 
445 "id": "languageSelect", 
446 "name": "languageselect", 
447 "entries": languages, 
448 "documents": "", 
449 "button": "true" 
450 }} 
451 /> 
452 <#recover> 
453 </#attempt> 
454 </#if> 
455 
456 <@PMIntro "ADT_KASDE_DYNAMIC_INTRO" data AMMetadata AMDatetime "bottom" /> 
457 ${FrontendService.article.getEditArticleHtml(primaryKey, themeDisplay)} 
458 
459 <#if data.meta?has_content> 
460 <#if data.meta.laufendenummer?has_content !isACColorScheme() && !isVLCColorScheme() && !isDPMColorScheme()> 
461 <div>  
462 <div id="publicationVerbundPagination"> 
463 <@AMPublicationCarousel data.meta.laufendenummer data.meta.date data.meta.coverImg /> 
464 </div> 
465 </div> 
466 </#if> 
467 </#if> 
468 
469<#elseif (editmode?? && editmode)> 
470 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_DYNAMIC_INTRO" layouttpl currentUrl /> 
471</#if> 

Asset-Herausgeber

Bitte klicken Sie hier, um die Inhalte anzuzeigen.
Oder passen Sie Ihre Cookie-Einstellungen unter Datenschutz an.

Strahlend und ohne Masken standen sie für den Fotografen zusammen – der ehemalige spanische Ministerpräsident José Luis Rodríguez Zapatero, der linksautoritäre Ex-Regierungschef Ecuadors, Rafael Correa, und der amtierende mexikanische Außenminister Marcelo Ebrard. Soeben hatten sie das mit viel Pomp veranstaltete Treffen der „Grupo de Puebla“ (GP) eröffnet, welches nach eigenen Angaben rund 200 „progressive Führungsfiguren“ vom 30. November bis zum 1. Dezember in der mexikanischen Hauptstadt versammelte, wenn auch davon zahlreiche nur virtuell. Nichtsdestotrotz war klar, welches Signal das Treffen unter dem Schlagwort „Wandel jetzt“ setzen sollte – die versammelte Linke ist wieder da, gewinnt wieder an Einfluss und steht zusammen gegen den gemeinsamen Gegner. Daran ließ auch die verabschiedete Schlusserklärung[i] keinen Zweifel. Sie forderte nichts Geringeres als die Ersetzung des „anachronistischen neoliberalen Modells“ durch ein „solidarisches Entwicklungsmodell“.

Während das Dokument eher wenig Konkretes beisteuert, wie dieses neue Modell aussehen soll, bekennt es sich allgemein zu einer starken Rolle der Staaten bei Öffentlichen Investitionen, zu einer Sondersitzung der VN-General-versammlung zu globalen Wegen aus der Pandemie, zu einer Dekarbonisierung der Wirtschaft, zum „Multilateralismus“, zu einer globalen Mindeststeuer von mindestens 21 Prozent sowie zu den „Werten des Feminismus.“

Hinsichtlich des Bekenntnisses zur Freiheit und Demokratie zeigt sich das Dokument ambivalent. Zwar fordert man zwei Mal wortgleich eine „Demokratisierung, die neuen Stimmen Raum gibt“, im 2629 Worte umfassenden Text kommt die „Demokratie“ als positives Grundkonzept jedoch lediglich nur ein weiteres Mal vor – acht Mal wird sie in Bezug auf konkrete Staaten und konstatierter Bedrohungen gegenüber linken Regimen und Regierungen aufgeführt. Die Begriffe „Freiheit“ oder „frei“ werden nur zwei Mal in irrelevanten Zusammenhängen erwähnt.

Die „Grupo de Puebla“ besteht seit 2019, als sie vom damals frisch gewählten mexikanischen Staatschef Andrés Manuel López Obrador gegründet wurde. In der öffentlichen Wahrnehmung überlappt sich die GP mit dem „Foro de São Paulo“ (FSP), einem formellen Zusammenschluss von linken Parteien, die 1990 vom damaligen brasilianischen Präsidentschaftskandidaten Lula da Silva auf direktes Anraten des kubanischen Diktators Fidel Castro gegründet wurde.  Laut FSP-Homepage vereint das „Foro de São Paulo“ heute 123 Parteien aus 27 Ländern – von der Kommunistischen Partei Kubas über die Sozialistische Einheitspartei Venezuelas (PSUV) bis hin zu demokratisch arrivierten Mitte-Links-Kräften wie der sozialistischen Partei Chiles, der brasilianischen Arbeiterpartei oder dem Frente Amplio Uruguays. Wichtigster organisatorischer Unterschied zwischen dem FSP und der GP ist, dass ersteres ein formeller Parteienzusammen-schluss ist, während letztere aus einer Gruppe von Individuen besteht. In beiden Organisationen besteht jedoch dieselbe Verschmelzung zwischen autokratischen, populistischen und demokratischen Elementen. Klar ist in beiden Fällen, dass Ideologie wichtiger ist als Demokratie. 

Lob für Mexiko, Kuba und Venezuela

Gewissermaßen als Gastgeschenk, feiert die GP die „Vertiefung der Demokratie“ ausgerechnet durch die linkspopulistische Regierung des mexikanischen Staatschefs Andrés Manuel López Obrador, der nur wenige Tage zuvor ein Dekret erlassen hatte, dass es ihm erlaubt, wichtige Infrastrukturvorhaben in der Praxis per Fingerzeig an jedem gesetzlichen Ausschreibungsprozess vorbei und ohne jegliche Transparenz zu vergeben.[ii] Die ehemalige brasilianische Präsidentin Dilma Rousseff feierte die mexikanische Regierung dennoch als „Licht“ für die „lateinamerikanische Integration.“

Die Schlusserklärung der GP übernimmt zudem ohne Einschränkung die Rhetorik der kubanischen Diktatur, wenn sie sich mit „dem kubanischen Volk“ solidarisiert und die US-Sanktionen als Urheber des „sozialen Unwohlseins“ und der jüngsten Proteste benennt, welche von „Netzwerken und Feinden der kubanischen Revolution aus den USA finanziert und gefördert“ würden. Die GP erklärt zudem die „Unterstützung der venezolanischen Demokratie“ und weist jegliche „ausländische Einmischungen“ zurück.

Auch Nicaragua kommt weitgehend ungeschoren davon. Hier bringt die „Grupo de Puebla“ zwar ihre Hoffnung auf eine „Versöhnung“ und die „Wahrung der Freiheiten und Menschenrechten“ zum Ausdruck, um dann jedoch einmal mehr hinterherzuschieben, dass es die USA mit ihren Sanktionen seien, die in Nicaragua „die Demokratie stören und ein Klima der Polarisierung schaffen.“

Neben weiteren fragwürdigen Aussagen zu Bolivien, Chile, El Salvador oder Peru sticht die Forderung ins Auge, die eigene „digitale Souveränität“ zu fördern und „allmählich den Status von Wissenskonsumenten und Datenlieferanten von Staaten und Unternehmen, die Informationen konzentrieren und monopolisieren“, hinter sich zu lassen. Der gemeinsame Gegner heißt in diesem Zusammenhang eindeutig USA, während China nicht erwähnt wird.

Einheit der demokratischen und autokratischen Linken

Klar ist, dass die internationale Linke Lateinamerikas Morgenluft wittert. Nach den politischen Richtungswechseln in Mexiko (2018) und Argentinien (2019) verschob sich die politische Achse durch Wahlen in Bolivien (Oktober 2020) über Chile (Wahl zur verfassungsgebenden Versammlung im Mai 2021), Peru (Juni 2021) und zuletzt Honduras (November 2021) weiter nach links. Große Hoffnung setzte man in Mexiko-Stadt nach Ausdruck des ehemaligen kolumbianischen Präsidenten Ernesto Samper auf einen andauernden „progressiven Wind“ in der Region und damit auf einen Wahlsieg von Gabriel Boric am 19. Dezember in Chile, von Linkspopulist Gustavo Petro in Kolumbien im Mai 2022 und insbesondere von Ex-Präsident Lula da Silva im Oktober 2022 in Brasilien. All dies erscheint nach derzeitigen Umfragen möglich bis wahrscheinlich.

Auffällig ist dabei die zur Schau getragene Einigkeit von zweifelsohne demokratisch legitimierten Akteuren wie dem argentinischen Präsidenten Alberto Fernández, dem mexikanischen Staatschef Andrés Manuel López Obrador, der ehemaligen brasilianischen Präsidentin Dilma Rousseff oder dem chilenischen Ex-Präsidentschaftskandidaten und GP-Koordinator Marco Enríquez-Ominami über viele Graustufen bis hin zu Vertretern von linksautoritären Regimen, insbesondere die der autoritären ecuadorianischen Ex-Regierung von Rafael Correa, der man jede nur denkbare Bühne und Solidaritätserklärungen zur Verfügung stellt. Während die bolivianische MAS-Regierung mit einer Videobotschaft von Präsident Luis Arce prominent vertreten war, genießt insbesondere Ex-Präsident und GP-Mitbegründer Evo Morales in diesem Kreis weiterhin Heldenstatus. Gänzlich unglaubwürdig wird jedes Bekenntnis zu demokratischen Werten, wenn autoritäre und diktatoriale Regime wie Kuba, Venezuela und Nicaragua von der GP vorbehaltlose Unterstützung erhalten. Eine besondere Rolle in dem Kreis spielt der ehemalige spanische Ministerpräsident José Luis Rodríguez Zapatero. Vielen in Spanien gilt er als internationaler Lobbyist des „Sozialismus des 21. Jahrhunderts“ und als internationaler Türöffner für linksautoritäre Staatschefs.

Antwort von rechts

Als Antagonist der beiden Linksbündnisse versucht sich insbesondere seit Beginn der Pandemie gezielt die spanische Rechtspartei Vox in Stellung zu bringen. Deren Vorsitzender, der spanische Abgeordnete Santiago Abascal, propagiert intensiv das „Foro Madrid“, eine „internationale Allianz, um dem Kommunismus in der Iberosphäre (!)[iii] zu begegnen.“ Ziel ist es, eine „Antwort auf das Foro de São Paulo und die Grupo de Puebla“[iv] zu sein. Als Hauptinstrument dient dabei die „Carta de Madrid“[v], eine von 9640 (Stand: 8.12.2021) Personen unterschriebene Erklärung, die einen Teil Lateinamerikas von „totalitären Regimen kommunistischer Prägung“ und unter kubanischer Führung überzogen sieht, gegenüber derer sich verschiedene politische und soziale Führungsfiguren unterschiedlicher politischer Einstellungen in wesentlichen Aussagen zusammenschließen müssten: der Anerkennung des „kommunistischen Vormarschs“ als Bedrohung für Recht und Freiheit, das Bekenntnis zum Rechtsstaat, Gewaltenteilung, Meinungsfreiheit und Privateigentum, die „Verteidigung“ der politischen und gesellschaftlichen Freiheiten, sowie das Versprechen der Unterzeichnenden, für Demokratie, Menschenrechte, Pluralismus und Gerechtigkeit zu arbeiten. Von der Pandemie weitgehend unbeeindruckt, reisten im Jahr 2021 VOX-Delegationen, insbesondere Abascal selbst, sein Abgeordnetenkollege Víctor González Coello de Portugal sowie der spanische Europaabgeordnete Hermann Tertsch in verschiedene lateinamerikanische Länder wie Kolumbien, Mexiko, Peru und Ecuador sowie die USA. Dabei gelang es ihnen, zahlreiche Vertreterinnen und Vertreter aus Politik und Zivilgesellschaft zur Unterzeichnung der „Carta de Madrid“ zu bewegen. Unter den Unterzeichnenden befinden sich Politikerinnen und Politiker rechtspopulistischer Parteien in trauter Eintracht mit solchen der politischen Mitte. Ergänzt wird dieser Aktivismus durch die von Abascal ebenfalls geleitete „Fundación Disenso“, einer VOX nahestehenden Stiftung, die u.a. lateinamerikanische Nachwuchspolitiker zu Studienprogrammen nach Spanien einlädt. So versammelt VOX demokratisch zweifelhafte Akteure mit fest etablierten Parteivertretern der Mitte in einem gemeinsamen Ansinnen. Hier ansatzweise einen Vergleich zur anderen politischen Seite zu ziehen, scheint zumindest nicht ganz abwegig. Fast schon nebenbei verschafft sich die spanische Rechtspartei als selbsternannte Speerspitze gegen den lateinamerikanischen „Totalitarismus“ und „Kommunismus“ nebenbei noch eine internationale Legitimität, die sie sonst wohl kaum hätte erreichen können. Es überrascht daher kaum, dass sich Abascal für die Zukunft mehr wünscht – eine permanente Struktur und einen jährlichen Aktionsplan.[vi]

Und die politische Mitte?

Eingespannt in Regierungsverantwortung im Corona-Kontext oder mit inneren Problemen beschäftigt, wurden viele moderate Parteien von derartigem Aktivismus durchaus überrascht. Die Ansprache an Einzelpersonen statt an gesamte Parteistrukturen ermöglicht es sowohl der „Grupo de Puebla“ als auch dem „Foro Madrid“, sich über letztere hinwegzusetzen. Gerade für Vertreter der oft schwerfälligen Mitte-Rechts-Parteien ist es nicht einfach, auf diese Taktik angemessen zu reagieren. Die Versuchung, mit VOX in das gemeinsame Boot gegen die immer stärker werdende organisierte Linke zu springen, ist groß. Dabei fehlt es vielmals an Bewusstsein, dass ein wirklich glaubhaftes Vorgehen gegen den organisierten Linksautoritarismus der Region nur mit Partnern möglich ist, deren freiheitlich-demokratische Identität über jeden Zweifel erhaben ist. Es bleibt zu hoffen, dass internationale lateinamerikanische Parteienzusammenschlüsse wie die christdemokratische ODCA oder der Mitte-Rechts-Zusammenschluss UPLA hierauf Antworten finden. Die Lockrufe teilweise aus extremen Ecken beider Seiten des politischen Spektrums sollten jedenfalls moderate Kräfte davon überzeugen, wie wichtig eine enge Vernetzung, Abstimmung und Zusammenarbeit ist.

 

 

[i] https://www.grupodepuebla.org/declaracion-del-septimo-encuentro-del-grupo-de-puebla/. Zugriff am 6.12.2021

[ii] https://dialogopolitico.org/agenda/mexico-y-el-decretazo/. Zugriff am 6.12.2021

[iii] Dieser Ausdruck ist im Spanischen eigentlich nicht gebräuchlich, wird aber von VOX konsequent für die Länder der iberischen Halbinsel sowie Lateinamerika benutzt.

[iv] https://fundaciondisenso.org/carta-de-madrid. Zugriff am 6.12.2021

[v] https://www.voxespana.es/actualidad/santiago-abascal-presenta-en-el-senado-de-mexico-el-foro-madrid-la-alianza-internacional-para-hacer-frente-al-avance-del-comunismo-en-la-iberosfera-20210903. Zugriff am 6.12.2021.

[vi] https://elpais.com/internacional/2021-10-18/vox-teje-una-alianza-anticomunista-en-america-latina.html?event_log=fa. Zugriff am 6.12.2021.

Asset-Herausgeber

Kontakt

Sebastian Grundberger

Sebastian Grundberger

Direktor Regionalprogramm Parteiendialog und Demokratie /Länderprogramm Uruguay

sebastian.grundberger@kas.de +598 2902 0943

comment-portlet

Kommentare

Bitte melden Sie sich an, um kommentieren zu können

Asset-Herausgeber