Materialien zum 05. Mai 1990 - Geschichte der CDU
The following has evaluated to null or missing: ==> data.meta [in template "252001#252047#252845" at line 459, column 10] ---- Tip: It's the step after the last dot 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: #if data.meta.laufendenummer?has_cont... [in template "252001#252047#252845" at line 459, column 5] ----
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.laufendenummer?has_content !isACColorScheme() && !isVLCColorScheme() && !isDPMColorScheme()>
460 <div>
461 <div id="publicationVerbundPagination">
462 <@AMPublicationCarousel data.meta.laufendenummer data.meta.date data.meta.coverImg />
463 </div>
464 </div>
465 </#if>
466
467<#elseif (editmode?? && editmode)>
468 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_DYNAMIC_INTRO" layouttpl currentUrl />
469</#if>
Das Stichwort: Beginn der 2+4-Verhandlungen
Die angestrebte deutsche Einheit hatte nicht nur europäische, sondern auch weltpolitische Aspekte. Die ehemaligen Alliierten gegen Hitler-Deutschland mußten in diesen Prozess mit eingebunden werden. Sehr schnell wurde von ihnen das Recht der Deutschen auf Wiederver- einigung anerkannt. Für die Nachkriegsentwicklung bedeutete dies einen wichtigen Meilenstein. Allerdings mußten intensive Verhandlungen darüber geführt werden, ob der deutsche Einigungsprozess, also der innere Aspekt, von dem völkerrechtlichen, dem äußeren Aspekt, abzukoppeln sei. Trotz der Intervention seitens des sowjetischen Außenministeriums, das sich gegen die Wiedervereinigung nach Artikel 23 GG aussprach, wurde vereinbart, daß beide Aspekte zusammen und gleichzeitig erörtert werden. Die 2+4-Verhandlungen wurden von den damaligen Außenministern der Bundesrepublik und der DDR sowie denen der ehemaligen alliierten Siegermächte USA, Großbritannien, Frankreich und Sowjetunion geführt. Auch diese Verhandlungen wurden von zahlreichen vertrauensbildenden Gesprächen zwischen allen Partnern auf Minister- und Beamtenebene begleitet.
TS
- Auszug aus dem politischen Tagebuch von Horst Teltschik-
- Auszug aus dem politischen Tagebuch von Helmut Kohl -
- Die Presse zum Tag - Headlines:
- Auftakt in Bonn
(Die Zeit, 4. Mai 1990)
- Deutsche und vier Mächte beraten über die Einheit
(Die Welt, 5. Mai 1990)
- Die Außenminister bereiten in Bonn "Zwei-plus-vier-Gespräche" vor
(FAZ, 5. Mai 1990)
- Moskau will deutsche Vereinigung jetzt beschleunigen
(Welt am Sonntag, 6. Mai 1990)
- Erstes 2+4-Gespräch in Bonn öffnet den Weg zur Vereinigung Deutschlands
(SZ, 7. Mai 1990)
- Moskau will die deutsche Einheit bald
(FAZ, 7. Mai 1990)
- Historische Wende
(Frankfurter Rundschau, 7. Mai 1990)
- Eine Schicksalsgemeinschaft in wärmer werdender Sonne
(Die Welt, 7. Mai 1990)
- Jetzt ist Deutschland nicht mehr zu stoppen
(Bild, 7. Mai 1990)
- Kohl: Ende der Nachkriegszeit. Moskau gibt Deutschen freie Hand
(Die Welt, 7. Mai 1990)
- Schneller Weg zur Einheit
(Stuttgarter Zeitung, 7. Mai 1990)
- Am Ende der Nachkriegszeit
(General-Anzeiger, Bonn, 7. Mai 1990)
- Literatur zum Tag