Schule demokratisch gestalten: Fachtag für Pädagoginnen und Pädagogen in Kooperation mit SenBJF
Demokratie und Gesellschaft stehen zunehmend unter Druck. Angesichts sichtbarer politischer Extremismen, lauter werdender Empörungskultur, gezielt eingesetzter Fake News, multipler Krisen und spürbarem Vertrauensverlust in Institutionen gewinnt die Vermittlung von demokratischen Grundprinzipien an Bedeutung. Wie demokratisch ist Schule heute tatsächlich? Welche demokratischen Entscheidungsprozesse werden in Schulen aktuell gelebt und praktiziert? Und wie groß ist der Einfluss von Pädagoginnen und Pädagogen auf politische Bildung und Demokratieverständnis angesichts zunehmender Informationsüberflutung im digitalen Zeitalter?
Fehler bei der Verarbeitung der Vorlage.
When calling macro "PMShare", required parameter "content" (parameter #1) was specified, but had null/missing value. ---- Tip: If the parameter value expression on the caller side is known to be legally null/missing, you may want to specify a default value for it with the "!" operator, like paramValue!defaultValue. ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #macro PMShare content registerLink="" [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/page-modules/PMShare.ftl" in macro "PMShare" at line 33, column 1] - Reached through: @PMShare registerLink [in template "20082418#20082464#28221946" at line 443, column 9] ----
1<#-- used @ Veranstaltungen-Detailseite, Main Content -->
2<#-- used @ Themen-Detailseite, Main Content -->
3<#-- used @ Publikationen-Detailseite, Main Content -->
4<#-- used @ Personen-Detailseite, Main Content -->
5
6<#include "${fullTemplatesPath}/functions/liferayServicesUtil.ftl" />
7<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
8<#include "${fullTemplatesPath}/macros/debugging.ftl" />
9
10<#include "${fullTemplatesPath}/macros/page-modules/PMPageContent.ftl" />
11
12<#-- additional intro+special content for personen-detailpage -->
13<#include "${fullTemplatesPath}/macros/page-modules/PMShare.ftl" />
14<#include "${fullTemplatesPath}/macros/page-modules/PMIntro.ftl" />
15<#include "${fullTemplatesPath}/macros/page-modules/PMIntroBanner.ftl" />
16<#include "${fullTemplatesPath}/macros/page-modules/PMPersonContent.ftl" />
17<#include "${fullTemplatesPath}/macros/page-modules/PMPersonDocuments.ftl" />
18<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadata.ftl" />
19<#include "${fullTemplatesPath}/macros/atomic-modules/AMAddress.ftl" />
20<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" />
21<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadataContact.ftl" />
22<#include "${fullTemplatesPath}/functions/content-functions/CFRelatedMediaObject.ftl" />
23
24<#assign
25
26 DLFileEntryLocalService = getDLFileEntryLocalService()
27 JournalArticleService = getJournalArticleService()
28 layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")
29
30 themeDisplay = getThemeDisplay()
31
32 locale = themeDisplay.getLocale()
33 default_locale = FrontendService.language.defaultLocale()
34
35 currentUrl = themeDisplay.getURLCurrent()
36 editmode = FrontendService.user.isPrivilegedUser(themeDisplay)
37
38 layout = themeDisplay.getLayout()
39 layoutUrl = layout.getFriendlyURL(locale)
40 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id")
41/>
42
43<#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
44 <#assign
45 classModifier = "c-page-main--veranstaltungedetail"
46 portletId = "ADT_KASDE_VERANSTALTUNGEN_CONTENT"
47 />
48<#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")>
49 <#assign
50 classModifier = "c-page-main--publikationendetail"
51 portletId = "ADT_KASDE_PUBLIKATIONEN_CONTENT"
52 />
53<#elseif layouttpl?contains("LAYOUT_KASDE_THEMEN_DETAIL")>
54 <#assign
55 classModifier = "c-page-main--themadetail"
56 portletId = "ADT_KASDE_THEMA_CONTENT"
57 />
58<#elseif layouttpl?contains("LAYOUT_KASDE_PERSONEN_DETAIL")>
59 <#assign
60 classModifier = "c-page-main--themadetail"
61 portletId = "ADT_KASDE_PERSONEN_CONTENT"
62 />
63<#else>
64 <#assign
65 classModifier = "c-page-main"
66 portletId = "ADT_KASDE_CONTENT"
67 />
68</#if>
69
70<#assign content = [] >
71
72<#-- check if on detail page -->
73<#-- Publikationen, Veranstaltungen -->
74<#-- check if it is a hidden detail page - get article from url -->
75<#if currentUrl?contains("/-/content") >
76
77 <#attempt>
78 <#assign journalArticle = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)!"" >
79 <#recover>
80 <#if (editmode?? && editmode)>
81 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_CONTENT" layouttpl currentUrl />
82 </#if>
83 </#attempt>
84
85 <#if journalArticle?has_content>
86
87 <#if journalArticle.resourcePrimKey??>
88 <#assign primaryKey = journalArticle.resourcePrimKey?number >
89 <#elseif journalArticle.classPK??>
90 <#assign primaryKey = journalArticle.classPK?number >
91 </#if>
92
93 <#assign
94 jsonString = FrontendService.article.getWebcontent(primaryKey)
95 json = FrontendService.json.parseAsJson(jsonString)
96
97 data = {}
98 registerLink = ""
99
100 />
101 <@debugJsonString jsonString "ADT_KASDE_CONTENT" />
102
103 <#-- Personen Detailpage Content renders also the intro -->
104 <#if layouttpl?contains("LAYOUT_KASDE_PERSONEN_DETAIL")>
105 <#-- get general data for PERSON-->
106 <#assign
107 data_person = getRelatedPerson(json, locale, primaryKey, FrontendService, themeDisplay)
108 data_intro = {}
109 data_abteilung = []
110 />
111
112 <#-- get Projekte (Auslandsbüros) for PERSON -->
113 <#assign data_auslandsbuero = getRelatedProjekte(locale, primaryKey, FrontendService, themeDisplay) />
114 <#if data_auslandsbuero?has_content>
115 <#assign data_person = data_person + {"auslandsbuero": data_auslandsbuero} />
116 </#if>
117
118 <#-- get Abteilungen for PERSON -->
119 <#assign abbteilungen = FrontendService.category.getCategoriesToArticle(primaryKey, "ABTEILUNG") />
120 <#if abbteilungen?? >
121 <#list abbteilungen as abteilung >
122 <#assign
123 data_abteilung = data_abteilung + [{
124 "title": abteilung.getTitle(locale),
125 "href": FrontendService.category.getAnzeigeseiteToCategory(abteilung, locale, themeDisplay.getScopeGroupId())!"/_404"
126 }]
127 />
128 </#list>
129 </#if>
130 <#if data_abteilung?has_content>
131 <#assign data_person = data_person + {"abteilung": data_abteilung} />
132 </#if>
133
134 <#-- assign Data for Intro -->
135 <#if data_person.name?? && data_person.lastname?? >
136 <#assign name = data_person.name + " " + data_person.lastname >
137
138 <#if data_person.anredetitel??>
139 <#assign name = data_person.anredetitel + " " + name />
140 </#if>
141 <#assign data_intro = data_intro + { "title" : name } />
142 </#if>
143
144 <#if data_person.subheadline??>
145 <#assign data_intro = data_intro + {"subheadline" : data_person.subheadline} />
146 </#if>
147
148 <#-- render title + function -->
149 <div class="o-page-module o-page-module--full">
150 <@PMIntro "ADT_KASDE_PERSON_INTRO" data_intro AMMetadata AMDatetime/>
151 <#-- render blue box -->
152 <@PMIntroBanner "ADT_KASDE_PERSON_INTRO_BANNER" data_person "" />
153 <#-- render contact data, auslandsbüros, abteilungen -->
154 <@PMPersonContent "ADT_KASDE_PERSON_INFO" data_person "" AMMetadataContact AMAddress />
155 <#-- render persons document -->
156 <#if data_person.documents??>
157 <@PMPersonDocuments "ADT_KASDE_PERSON_DOCUMENT" data_person.documents "" />
158 </#if>
159 </div>
160
161 </#if>
162
163 <#-- Veranstaltungs-Detail only -->
164 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
165 <#if isVLCColorScheme()>
166 <#-- Headline "Im Detail" for Veranstaltungs-Detail für VLC -->
167 <#assign data = data + { "headline" : languageUtil.get(locale, "details_vlc") }>
168 <#else>
169 <#-- Headline "Im Detail" for Veranstaltungs-Detail -->
170 <#assign data = data + { "headline" : languageUtil.get(locale, "details") }>
171 </#if>
172
173 <#-- ausgebucht -->
174 <#if hasContent('ausgebucht', locale, json)>
175 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', locale, json, "first") }>
176 </#if>
177
178 <#-- storniert -->
179 <#if hasContent('storniert', locale, json)>
180 <#assign data = data + { "storniert" : getValueForLanguage('storniert', locale, json, "first") }>
181 </#if>
182 <#-- Programm Data -->
183 <#assign program = getProgramm(json) >
184 <#if program?has_content>
185 <#assign data = data + { "program" : program } >
186 </#if>
187
188 <#assign registerLink = FrontendService.event.getEventSignupLink(themeDisplay)!"" />
189 </#if>
190
191 <#-- Beschreibung -->
192 <#if hasContent('beschreibung', locale, json)>
193 <#assign data = data + { "description" : getValueForLanguage('beschreibung', locale, json, "first") }>
194 </#if>
195
196 <#-- Contenttext -->
197 <#if (json["contenttext"][locale])?? >
198 <#assign data = data + { "text": json["contenttext"][locale] } >
199 <#elseif (json["contenttext"][default_locale])??>
200 <#assign data = data + { "text": json["contenttext"][default_locale] } >
201 </#if>
202
203 <#if (json["contentbildunterschrift"][locale])?? >
204 <#assign data = data + { "caption": json["contentbildunterschrift"][locale] } >
205 <#elseif (json["contentbildunterschrift"][default_locale])??>
206 <#assign data = data + { "caption": json["contentbildunterschrift"][default_locale] } >
207 </#if>
208
209 <#-- Bilderstrecke -->
210 <#assign series = getContentBilderstrecke(json) >
211 <#if series?has_content>
212 <#assign data = data + { "series" : series } />
213 </#if>
214
215 <#-- Media -->
216 <#if (json["contentmediumDMTKASDEMEDIUM"][locale])?? >
217 <#assign data = data + { "media": json["contentmediumDMTKASDEMEDIUM"][locale] } >
218 <#elseif (json["contentmediumDMTKASDEMEDIUM"][default_locale])??>
219 <#assign data = data + { "media": json["contentmediumDMTKASDEMEDIUM"][default_locale] } >
220 </#if>
221
222 <#if isACColorScheme() && data.media?? >
223 <#if (json["mediumDMTKASDEMEDIUM"][locale])?? >
224 <#assign data = data + { "media": json["mediumDMTKASDEMEDIUM"][locale] } >
225 <#elseif (json["mediumDMTKASDEMEDIUM"][default_locale])?? >
226 <#assign data = data + { "media": json["mediumDMTKASDEMEDIUM"][default_locale] } >
227 </#if>
228 </#if>
229
230 <#-- Programm Download -->
231 <#if hasContent('documentDMTBASICDOCUMENT', locale, json)>
232 <#assign
233 documentDMTBASICDOCUMENTString = getValueForLanguage('documentDMTBASICDOCUMENT', locale, json, "first")
234 documentDMTBASICDOCUMENT = FrontendService.json.parseAsJson(documentDMTBASICDOCUMENTString)
235 dmtJson_doc = FrontendService.media.getDMTJsonObject( documentDMTBASICDOCUMENT.groupId?number, documentDMTBASICDOCUMENT.uuid, locale )!""
236 />
237
238 <#if dmtJson_doc?has_content>
239 <#assign url = FrontendService.media.getLinkToDMT(dmtJson_doc)/>
240 <#if url?has_content>
241 <#assign
242 data = data + {
243 "documentDMTBASICDOCUMENT": {
244 "title": documentDMTBASICDOCUMENT.title,
245 "url": url
246 }
247 }
248 />
249 </#if>
250 </#if>
251 </#if>
252
253 <#-- Biogramm Special Data lebenslauf, veroeffentlichungen, literatur -->
254 <#if hasContent('lebenslauf', locale, json)>
255 <#assign data = data + { "lebenslauf" : getValueForLanguage('lebenslauf', locale, json, "first") }>
256 </#if>
257
258 <#if hasContent('veroeffentlichungen', locale, json)>
259 <#assign data = data + { "veroeffentlichungen" : getValueForLanguage('veroeffentlichungen', locale, json, "first") }>
260 </#if>
261
262 <#if hasContent('literatur', locale, json)>
263 <#assign data = data + { "literatur" : getValueForLanguage('literatur', locale, json, "first") }>
264 </#if>
265
266 <#-- iFrame Content -->
267 <#if (json["contentiframeueberschrift"][locale])?? >
268 <#assign data = data + { "iframeueberschrift": json["contentiframeueberschrift"][locale] } >
269 <#elseif (json["contentiframeueberschrift"][default_locale])??>
270 <#assign data = data + { "iframeueberschrift": json["contentiframeueberschrift"][default_locale] } >
271 </#if>
272
273 <#if (json["einfuehrungText"][locale])?? >
274 <#assign data = data + { "introductoryText": json["einfuehrungText"][locale] } >
275 <#elseif (json["einfuehrungText"][default_locale])?? >
276 <#assign data = data + { "introductoryText": json["einfuehrungText"][default_locale] } >
277 <#elseif (json[FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText')][locale])?? >
278 <#assign data = data + { "introductoryText": json[FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText')][locale] } >
279 <#elseif (json[FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText')][default_locale])?? >
280 <#assign data = data + { "introductoryText": json[FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText')][default_locale] } >
281 </#if>
282
283 <#assign themenId = FrontendService.verbund.getThemenverbundByThema(themeDisplay, primaryKey) >
284
285 <#--prevArticle and nextArticle thema links-->
286 <#if isACColorScheme()>
287 <#if themenId?? && themenId?has_content >
288 <#assign data = data + { "nextArticle" : FrontendService.verbund.getThemenverbundNextLink(primaryKey, themenId, layoutUrl, locale, 'modulesKasThema', 'labelmodul', 'modulThemaKasTHEMENKASDESTRUCTURE') } >
289 <#assign data = data + { "prevArticle" : FrontendService.verbund.getThemenverbundPreviousLink(primaryKey, themenId, layoutUrl, locale, 'modulesKasThema', 'labelmodul', 'modulThemaKasTHEMENKASDESTRUCTURE') } >
290 </#if>
291 </#if>
292
293 <#if (json["contentiframeeinbindung"][locale])?? >
294 <#assign data = data + { "iframeeinbindung": json["contentiframeeinbindung"][locale] } >
295 <#elseif (json["contentiframeeinbindung"][default_locale])??>
296 <#assign data = data + { "iframeeinbindung": json["contentiframeeinbindung"][default_locale] } >
297 </#if>
298
299 <#if (json["contentiframeuntertitel"][locale])?? >
300 <#assign data = data + { "iframeuntertitel": json["contentiframeuntertitel"][locale] } >
301 <#elseif (json["contentiframeuntertitel"][default_locale])??>
302 <#assign data = data + { "iframeuntertitel": json["contentiframeuntertitel"][default_locale] } >
303 </#if>
304
305 <#if (json["contentiframequelle"][locale])?? >
306 <#assign data = data + { "iframequelle": json["contentiframequelle"][locale] } >
307 <#elseif (json["contentiframequelle"][default_locale])??>
308 <#assign data = data + { "iframequelle": json["contentiframequelle"][default_locale] } >
309 </#if>
310
311 <#if layouttpl?contains("LAYOUT_KASDE_THEMEN_DETAIL") || layouttpl?contains("LAYOUT_KASDE_STATIC") || layouttpl?contains("LAYOUT_KASDE_STATIC_HIDDEN") >
312 <#-- DropDownMenue Data -->
313 <#assign dropdownmenue = getDropDownMenue(json) >
314 <#if dropdownmenue?has_content>
315 <#assign data = data + { "dropdownmenue" : dropdownmenue } >
316 <#if (json["dropdownheader"][locale])?? >
317 <#assign data = data + { "dropdownheader" : getValueForLanguage('dropdownheader', locale, json, "first") } >
318 <#elseif (json["dropdownheader"][default_locale])??>
319 <#assign data = data + { "dropdownheader": getValueForLanguage('dropdownheader', default_locale, json, "first") } >
320 </#if>
321 </#if>
322 </#if>
323
324 <#if data?has_content>
325 <#assign content = content + [data]>
326 </#if>
327
328 </#if>
329
330<#else>
331 <#list entries as entry>
332 <#assign
333 primaryKey = entry.classPK?number
334 jsonString = FrontendService.article.getWebcontent(primaryKey)
335 json = FrontendService.json.parseAsJson(jsonString)
336 />
337 <@debugJsonString jsonString "ADT_KASDE_CONTENT" />
338
339 <#assign data = {} >
340
341 <#if (json["contenttext"][locale])?? >
342 <#assign data = data + { "text": json["contenttext"][locale] } >
343 <#elseif (json["contenttext"][default_locale])??>
344 <#assign data = data + { "text": json["contenttext"][default_locale] } >
345 </#if>
346
347 <#-- Bilderstrecke -->
348 <#assign series = getContentBilderstrecke(json) >
349 <#if series?has_content>
350 <#assign data = data + { "series" : series } />
351 </#if>
352
353 <#-- Media -->
354 <#if (json["contentmediumDMTKASDEMEDIUM"][locale])?? >
355 <#assign data = data + { "media": json["contentmediumDMTKASDEMEDIUM"][locale] } >
356 <#elseif (json["contentmediumDMTKASDEMEDIUM"][default_locale])??>
357 <#assign data = data + { "media": json["contentmediumDMTKASDEMEDIUM"][default_locale] } >
358 </#if>
359
360 <#if isACColorScheme() && data.media?? >
361 <#if (json["mediumDMTKASDEMEDIUM"][locale])?? >
362 <#assign data = data + { "media": json["mediumDMTKASDEMEDIUM"][locale] } >
363 <#elseif (json["mediumDMTKASDEMEDIUM"][default_locale])?? >
364 <#assign data = data + { "media": json["mediumDMTKASDEMEDIUM"][default_locale] } >
365 </#if>
366 </#if>
367
368 <#if (json["contentbildunterschrift"][locale])?? >
369 <#assign data = data + { "caption": json["contentbildunterschrift"][locale] } >
370 <#elseif (json["contentbildunterschrift"][default_locale])??>
371 <#assign data = data + { "caption": json["contentbildunterschrift"][default_locale] } >
372 </#if>
373
374 <#-- iFrame Content -->
375 <#if (json["contentiframeueberschrift"][locale])?? >
376 <#assign data = data + { "iframeueberschrift": json["contentiframeueberschrift"][locale] } >
377 <#elseif (json["contentiframeueberschrift"][default_locale])??>
378 <#assign data = data + { "iframeueberschrift": json["contentiframeueberschrift"][default_locale] } >
379 </#if>
380
381 <#if (json["einfuehrungText"][locale])?? >
382 <#assign data = data + { "introductoryText": json["einfuehrungText"][locale] } >
383 <#elseif (json["einfuehrungText"][default_locale])?? >
384 <#assign data = data + { "introductoryText": json["einfuehrungText"][default_locale] } >
385 <#elseif (json[FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText')][locale])?? >
386 <#assign data = data + { "introductoryText": json[FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText')][locale] } >
387 <#elseif (json[FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText')][default_locale])?? >
388 <#assign data = data + { "introductoryText": json[FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText')][default_locale] } >
389 </#if>
390
391 <#assign themenId = FrontendService.verbund.getThemenverbundByThema(themeDisplay,primaryKey) >
392
393 <#--prevArticle and nextArticle thema links-->
394 <#if isACColorScheme()>
395 <#if themenId?? && themenId?has_content >
396 <#assign data = data + { "nextArticle" : FrontendService.verbund.getThemenverbundNextLink(primaryKey, themenId, layoutUrl, locale, 'modulesKasThema', 'labelmodul', 'modulThemaKasTHEMENKASDESTRUCTURE') } >
397 <#assign data = data + { "prevArticle" : FrontendService.verbund.getThemenverbundPreviousLink(primaryKey, themenId, layoutUrl, locale, 'modulesKasThema', 'labelmodul', 'modulThemaKasTHEMENKASDESTRUCTURE') } >
398 </#if>
399 </#if>
400
401 <#if (json["contentiframeeinbindung"][locale])?? >
402 <#assign data = data + { "iframeeinbindung": json["contentiframeeinbindung"][locale] } >
403 <#elseif (json["contentiframeeinbindung"][default_locale])??>
404 <#assign data = data + { "iframeeinbindung": json["contentiframeeinbindung"][default_locale] } >
405 </#if>
406
407 <#if (json["contentiframeuntertitel"][locale])?? >
408 <#assign data = data + { "iframeuntertitel": json["contentiframeuntertitel"][locale] } >
409 <#elseif (json["contentiframeuntertitel"][default_locale])??>
410 <#assign data = data + { "iframeuntertitel": json["contentiframeuntertitel"][default_locale] } >
411 </#if>
412
413 <#if (json["contentiframequelle"][locale])?? >
414 <#assign data = data + { "iframequelle": json["contentiframequelle"][locale] } >
415 <#elseif (json["contentiframequelle"][default_locale])??>
416 <#assign data = data + { "iframequelle": json["contentiframequelle"][default_locale] } >
417 </#if>
418
419 <#if layouttpl?contains("LAYOUT_KASDE_THEMEN_DETAIL") || layouttpl?contains("LAYOUT_KASDE_STATIC") || layouttpl?contains("LAYOUT_KASDE_STATIC_HIDDEN") || layouttpl?contains("LAYOUT_KASDE_MICROSITE_HOME") >
420 <#-- DropDownMenue Data -->
421 <#assign dropdownmenue = getDropDownMenue(json) >
422 <#if dropdownmenue?has_content>
423 <#assign data = data + { "dropdownmenue" : dropdownmenue } >
424 <#if (json["dropdownheader"][locale])?? >
425 <#assign data = data + { "dropdownheader" : getValueForLanguage('dropdownheader', locale, json, "first") } >
426 <#elseif (json["dropdownheader"][default_locale])??>
427 <#assign data = data + { "dropdownheader": getValueForLanguage('dropdownheader', default_locale, json, "first") } >
428 </#if>
429 </#if>
430 </#if>
431
432 <#if data?has_content>
433 <#assign content = content + [data]>
434 </#if>
435
436 </#list>
437
438</#if>
439
440<#if content?has_content >
441 <#if !layouttpl?contains("LAYOUT_KASDE_PERSONEN_DETAIL")>
442 <@PMPageContent portletId content classModifier />
443 <@PMShare registerLink />
444 </#if>
445<#elseif (editmode?? && editmode)>
446 <@errorMessage languageUtil.get(locale, "keine.inhalte.vorhanden") "ADT_KASDE_CONTENT" layouttpl currentUrl />
447</#if>