Asset Publisher

An error occurred while processing the template.
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> 

Asset Publisher

Familie und Ausbildung

Norbert Lammert wird am 16. November 1948 als Sohn des katholischen Bäckermeisters und Kommunalpolitikers Ferdinand Lammert und dessen Frau Hildegard in Bochum geboren. Dort wächst er als ältestes von sieben Kindern auf. 1967 absolvierte er sein Abitur an einem altsprachlich-humanistischen Gymnasium. Nach dem Wehrdienst beginnt er 1969 ein Studium der Politikwissenschaft, Soziologie, Neueren Geschichte und Sozialökonomie in Bochum und Oxford, das er 1972 mit einem Diplom abschließt. 1975 folgt die Promotion zum Doktor der Sozialwissenschaften. In den Jahren darauf ist er als freiberuflicher Dozent in der Erwachsenen- und Weiterbildung bei verschiedenen Akademien, Stiftungen, Verbänden und Firmen tätig. An den Fachhochschulen Bochum und Hagen lehrt er als Dozent für Politikwissenschaft.

Politischer Aufstieg

Bereits als Schüler tritt Lammert 1964 der Jungen Union bei, von 1978 bis 1984 ist er stellvertretender Landesvorsitzender der Jungen Union Westfalen-Lippe. 1966 erfolgt sein Beitritt zur CDU. Von 1975 bis 1980 vertritt er die CDU im Rat seiner Heimatstadt Bochum. Über die Landesliste Nordrhein-Westfalen gelingt ihm 1980 erstmals der Einzug in den Deutschen Bundestag. Dort wird er stellvertretender Vorsitzender des Wahlprüfungsausschusses, Mitglied im Wirtschaftsausschuss sowie im Ältestenrat. Von 1984 bis 1991 leitet er die Deutsch-Brasilianische Parlamentariergruppe. In dieser Zeit zählt Lammert zum sogenannten linkskatholischen Reformflügel der CDU. Früh zeichnet ihn die Fähigkeit aus, seine politischen Überzeugungen auch gegen den Widerstand der eigenen Parteiführung offensiv zu vertreten.

Lammerts weiterem politischen Werdegang schadet dies jedoch nicht, da er zugleich in Partei und Fraktion den Ruf eines seriösen Arbeiters genießt. 1986 rückt er an die Spitze des CDU-Bezirksverbandes Ruhrgebiet. Mit seiner Wahl zum stellvertretenden Vorsitzenden der Landespartei erfolgt 1991 der nächste innerparteiliche Karriereschritt.

1989 wird er zum Parlamentarischen Staatssekretär im Bildungs- und Wissenschaftsministerium ernannt. In diesem Amt setzt sich Lammert für ein größeres Mitspracherecht der Hochschulen bei der Auswahl ihrer Studenten ein. 1994 wechselt er als Parlamentarischer Staatssekretär ins Bundeswirtschaftsministerium, von 1997 bis 1998 ist er in dieser Funktion im Verkehrsministerium tätig. 1995 übernimmt er zusätzlich das Amt des Koordinators der Bundesregierung für die deutsche Luft- und Raumfahrt.

1994 bewirbt sich Lammert in der CDU Nordrhein-Westfalen um die Spitzenkandidatur für die Landtagswahl 1995. In einer Urwahl unter den Parteimitgliedern setzt sich jedoch der CDU-Fraktionschef im Landtag und späteren NRW-Finanzminister Helmut Linssen deutlich durch. Erfolgreicher verläuft Lammerts Aufstieg innerhalb der CDU/CSU-Bundestagsfraktion. 1996 wird er zum Vorsitzenden der großen CDU-Landesgruppe Nordrhein-Westfalen im Bundestag gewählt.

Strippenzieher und Kulturpolitiker

Nach seinem Ausscheiden aus der Bundesregierung in Folge der Wahlniederlage der CDU bei der Bundestagwahl 1998 wird Lammert, der in seiner Jugend gerne Berufsmusiker geworden wäre, kultur- und medienpolitischen Sprecher der CDU/CSU-Bundestagsfraktion. Damit übernimmt er in der Opposition den Gegenpart zum Kulturstaatsminister der rot-grünen Bundesregierung. 1999 wird ihm auch die Leitung des Gesprächskreises Kultur der Bundes-CDU übertragen. Zu den inhaltlichen Schwerpunkten seiner Arbeit zählen die Kulturaufgaben des Bundes wie die Auswärtige Kulturpolitik, die Filmwirtschaft und Fragen der Hauptstadtkultur.

Die personelle Neuaufstellung der CDU in Folge der Parteispendenaffäre 2000 unterstützt Lammert nachdrücklich. In seiner Funktion als Vorsitzender der Landesgruppe Nordrhein-Westfalen legt er dem Partei- und Fraktionsvorsitzenden Wolfgang Schäuble den Verzicht auf seine Ämter nahe. Damit unterstützt er den Aufstieg der bisherigen Generalsekretärin Angela Merkel zur neuen Parteivorsitzenden. 2002 setzt sich Lammert für Angela Merkel als Kanzlerkandidatin der Unionsparteien ein.

Lammert selbst ist als erfolgreicher „Strippenzieher“ (DIE WELT) wiederholt für höhere Ämter im Gespräch, so etwa als CDU-Generalsekretär oder als 1. Parlamentarischer Geschäftsführer der CDU/CSU-Bundestagsfraktion. Im Vorfeld der Bundestagswahl 2002 gilt er für den Fall eines Wahlsieges der Unionsparteien als aussichtsreicher Kandidat für das Amt des Kulturstaatsministers.

Nach der für die CDU verlorenen Wahl wird Lammert bei der konstituierenden Sitzung des Deutschen Bundestages am 17. Oktober 2002 zum Vizepräsidenten des Parlaments gewählt. Bei der Bundestagswahl 2005 ist er als Mitglied des Kompetenzteams von Angela Merkel zuständig für Kulturpolitik.

Wahl zum Bundestagspräsidenten

In der neuen schwarz-roten Regierung übernimmt er jedoch nicht das Amt des Kulturstaatsministers. Auf Vorschlag von Angela Merkel wählt der Deutsche Bundestag den „leidenschaftlichen Parlamentarier“ (Frankfurter Rundschau) am 18. Oktober 2005 mit 93,1% der Stimmen zum neuen Bundestagspräsidenten und damit zum Nachfolger von Wolfgang Thierse. Neben seiner Tätigkeit als Bundestagspräsident übt er seit 2005 auch eine Lehrtätigkeit an der Fakultät für Sozialwissenschaft an der Ruhr-Universität Bochum aus.

Vorbild Eugen Gerstenmeier

Seinem politischen Vorbild Eugen Gerstenmeier nacheifernd, wirkt Lammert als ein aktiv an der Politikgestaltung beteiligter Bundestagspräsident, der sich nicht nur als Moderator versteht, sondern konkrete Initiativen ergreift. Seine Aufgabe sieht er insbesondere darin, durch sein Handeln das Ansehen von Politikern und dem Parlament innerhalb der Gesellschaft zu verbessern. So kritisierte er zum Beispiel wiederholt die öffentlich-rechtlichen Fernsehanstalten, wenn sie seiner Ansicht nach nicht ausreichend von den Plenarsitzungen des Bundestages berichteten.

Auch setzt er sich für die Stärkung des Parlamentes und der Parlamentarier im Verhältnis zur Regierung ein. Im Oktober 2010 formuliert er: „Nicht die Regierung hält sich ein Parlament, sondern das Parlament bestimmt und kontrolliert die Regierung“. Als Bundestagspräsident behält Lammert seine Unabhängigkeit und lehnt mehrere Initiativen der von der CDU geführten Bundesregierung ab, sofern er durch diese die Rechte des Parlamentes beeinträchtigt sieht oder er sie generell für falsch erachtet.

Zur „Kultur einer parlamentarischen Demokratie“ gehört für ihn auch die Achtung der Rechte von Minderheiten. In Debatten um die Euro-Rettung erteilt er Abweichlern aus Union und FDP das Wort, obwohl sie von ihren Fraktionen nicht als Redner nominiert worden waren.

Immer wieder nimmt Lammert zu aktuellen politischen und gesellschaftlichen Themen Stellung. Um den Gestaltungsspielraum der Politik vor und nach Wahlkämpfen zu erweitern, fordert er 2009 die Verlängerung der Legislaturperiode des Deutschen Bundestages von vier auf fünf Jahre. Außerdem setzt er sich dafür ein, Deutsch als Amtssprache der Bundesrepublik im Grundgesetz zu verankern. Als bekennender Katholik initiiert er 2012 einen Aufruf für die Ökumene und die Überwindung der Kirchenspaltung. Intensiv beteiligt er sich an Debatten um die Fragestellung, welche Werte die deutsche Gesellschaft zusammen halten.

Hohes Ansehen im Amt

Als Bundestagspräsident gewinnt Lammert schnell an Profil und Anerkennung. Seinen Hang zu Humor und Selbstironie werden genauso geschätzt wie seine unparteiische Amtsführung. So würdigt ihn Günter Bannas 2010 in der FAZ als jemanden, der „Abstand zu den Mehrheiten und auch zu seiner eigenen Partei und Fraktion hält. Er lässt sich nicht instrumentalisieren und nicht die eigene Meinung verbieten“. Thomas Schmid bezeichnet ihn 2011 in der WELT als einen „Glücksfall“ und „Wächter der Demokratie“, der „als ein schöngeistiges, als ein intellektuell anspruchsvolles Oberhaupt des immer noch recht jungen deutschen Parlamentarismus zu glänzen“ versteht.

Zählt er bei seinem Amtsantritt als zu den „leise, im Hintergrund wirkenden Politikern in Berlin“ (FAZ 2005), bescheinigt ihm Marc Hujer bereits ein Jahr später im SPIEGEL die Qualität eines „politischen Unterhaltungskünstlers“. Für Wolfgang Bosbach ist Lammert „derjenige bei uns, der die schönsten Reden halten kann“.

Dass seine Amtsführung über die Parteigrenzen hinweg anerkannt wird, zeigt sich auch in den Wahlergebnissen bei seiner Wiederwahl. So bestätigen ihn die Abgeordneten des Deutschen Bundestags nach der Bundestagswahl 2009 mit 84,6% und nach der Bundestagswahl 2013 mit 94,6% in seinem Amt.

Lammert ist mit Gertrud Lammert verheiratet und Vater von vier Kindern. Er ist Honorarprofessor der Ruhr-Universität Bochum und Träger hoher nationaler wie internationaler Auszeichnungen. Seit 2001 ist Lammert stellvertretender Vorsitzender der Konrad-Adenauer-Stiftung (KAS) sowie Vorsitzender der 2002 von ihm gegründeten und mit der KAS verbundenen gemeinnützigen Norbert-Lammert-Stiftung. Seit Januar 2018 ist Prof. Dr. Norbert Lammert Vorsitzender der Konrad-Adenauer-Stiftung.

Zu seinen Hobbies zählen Literatur, Musik und Fußball.

David Maaß

Literaturhinweise (Auswahl):

  • Lammert, Norbert: Lokale Organisationsstrukturen innerparteilicher Willensbildung ; Fallstudie am Beispiel eines CDU-Kreisverbandes im Ruhrgebiet, Eichholz 1976.
  • Lammert, Norbert (Hg.): Verfassung, Patriotismus, Leitkultur : was unsere Gesellschaft zusammenhält, Bonn 2006.
  • Lammert, Norbert: Zwischenrufe : politische Reden über Geschichte und Kultur, Demokratie und Religion, Berlin 2008.
  • Lammert, Norbert: Einigkeit. Und Recht. Und Freiheit. : 20 Blicke auf unser Land, Freiburg 2010.

Asset Publisher

Kontakt

David Maaß

David Maaß bild

Referent Medienanalyse und -archiv

David.Maass@kas.de +49 30 26996-2493