Führungskräfteschule ADI Budi im Bereich Kommunalpolitik in Temuco
The following has evaluated to null or missing: ==> FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) [in template "252001#252047#252845" at line 126, 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 126, 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/AMMetadata.ftl" />
18<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" />
19
20
21<#--
22 renders the Intro for nearly all Pages
23 TODO: remove Share? (was in the designs, but not anymore?)
24 TODO: check if languageSelect/filter are working (js)
25
26 - portletId
27 - data = {
28 "media": string (src from image),
29 "category": string,
30 "title": string,
31 "author": string,
32 "subheadline": string,
33 "copy": string,
34 "filter": {
35 "id": string,
36 "name": string,
37 "entries": Array<Object> ({key:value}),
38 },
39 "languageSelect": {
40 "id": string,
41 "name": string,
42 "entries": Array<Object> ({key:value}),
43 },
44 "meta": {
45 "pos"; string (top/bottom)
46 "date": string,
47 "hash": string,
48 "info": string, (url)
49 },
50 "share" : {
51 "login": string,
52 "print": string,
53 "mail": string,
54 "multishare": string?? (tbd)
55 }
56 - AMMetadata: macro
57 - position: String ("top") -> defines wether the meta-data should be rendered above or below the intro-content
58 }
59-->
60
61<#assign
62 JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
63
64 ServiceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()
65 DLAPP = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")
66
67 themeDisplay = ServiceContext.getThemeDisplay()
68 editmode = FrontendService.user.isPrivilegedUser(themeDisplay)
69
70 languageId = themeDisplay.getLocale()
71 groupId = themeDisplay.getScopeGroupId()
72 currentUrl = themeDisplay.getURLCurrent()
73
74 layout = themeDisplay.getLayout()
75 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id")
76/>
77
78<#setting locale="${languageId}">
79
80<#-- get article from url -->
81
82<#assign entry = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)! >
83
84
85<#if entry?has_content>
86
87 <#if entry.resourcePrimKey??>
88 <#assign primaryKey = entry.resourcePrimKey?number >
89 <#elseif entry.classPK??>
90 <#assign primaryKey = entry.classPK?number >
91 </#if>
92
93 <#assign
94 jsonString = FrontendService.article.getWebcontent(primaryKey)
95 json = FrontendService.json.parseAsJson(jsonString)
96
97 title = entry.getTitle(languageId)
98 data = {
99 "title": title
100 }
101 />
102 <@debugJsonString jsonString "ADT_KASDE_DYNAMIC_INTRO" />
103
104 <#if hasContent('untertitel', languageId, json)>
105 <#assign data = data + { "subheadline": getValueForLanguage('untertitel', languageId, json, "first") } >
106 </#if>
107
108 <#if hasContent('beschreibung', languageId, json)>
109 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } >
110 </#if>
111
112 <#-- fill meta data -->
113 <#assign meta = {} />
114
115 <#-- PUBLIKATIONEN DETAIL -->
116 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")>
117
118 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)>
119 <#assign
120 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first")
121 />
122
123 <#if coverBildString?has_content>
124 <#assign
125 coverBild = FrontendService.json.parseAsJson(coverBildString)
126 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale )
127 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid )
128 data = data + { "media": linkToDMT, "meta" : dMTJsonObject }
129 />
130 <#if dMTJsonObject.altText?? >
131 <#assign data = data + {"alt" : dMTJsonObject.altText} />
132 </#if>
133 <#if dMTJsonObject.quelle??>
134 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } />
135 </#if>
136 </#if>
137 <#-- uncomment to display pdf cover as Intro Image
138 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)>
139 <#assign
140 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first")
141 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/>
142 <#if fileEntry?has_content>
143 <#assign
144 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay)
145 data = data + { "media": linkToThumbnail }
146 />
147 </#if>
148 -->
149 </#if>
150
151 <#assign
152 meta = meta + { "orderInfo": "true" }
153 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!""
154 />
155
156
157
158 <#if hasContent('erscheinungsdatum', languageId, json)>
159 <#assign
160 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first")
161 />
162 <#if erscheinungsdatum?has_content >
163 <#assign
164 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId )
165 meta = meta + { "date": erscheinungsdatumFormatted }
166 />
167 </#if>
168 </#if>
169
170 <#if verbundJournalArticle?has_content>
171 <#assign
172 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey)
173 verbundJson = FrontendService.json.parseAsJson(verbundJsonString)
174 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first")
175 />
176 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" />
177 <#assign meta = meta + { "laufendenummer": laufendenummer } >
178 </#if>
179
180
181 <#if meta?has_content>
182 <#assign data = data + {"meta": meta } >
183 </#if>
184
185 </#if>
186 <#-- PUBLIKATIONEN DETAIL END -->
187
188
189 <#-- VERANSTALTUNGEN DETAIL -->
190 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
191 <#assign
192 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!""
193 languages = entry.getAvailableLanguageIds()
194 links = []
195 />
196 <#if languages?has_content && friendlyUrl?has_content>
197 <#if (languages?size > 1) >
198 <#list languages as language>
199 <#assign
200 defaultLanguage = "de_DE"
201 defaultLocale = FrontendService.language.getLocaleByKey(defaultLanguage)
202 linkLocale = (FrontendService.language.getLocaleByKey(language))!defaultLocale
203 langFriendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, linkLocale, groupId)
204
205 link = {
206 "key": language!defaultLanguage,
207 "value": linkLocale.getDisplayLanguage(languageId),
208 "url": "/c/portal/update_language?p_l_id=" +
209 layout.plid + "&redirect=" + langFriendlyUrl +
210 "&languageId=" + language
211 }
212 />
213 <#if language == languageId>
214 <#assign link = link + { "selected": "true" } >
215 </#if>
216 <#assign links = links + [link]>
217 </#list>
218 <#assign
219 data = data + {
220 "languageSelect": {
221 "id": "languageSelectRedirect",
222 "name": "languageselectRedirect",
223 "entries": links,
224 "label": languageUtil.get(languageId, "diese.veranstaltung.ist.in.weiteren.sprachen.verfuegbar")
225 }
226 }
227 />
228 </#if>
229 </#if>
230 </#if>
231
232 <#if hasContent('erscheinungsdatum', languageId, json)>
233 <#assign
234 startdate = getValueForLanguage('erscheinungsdatum', languageId, json, "first")
235 meta = meta + { "start": startdate?date.iso, "end": "" }
236 />
237 </#if>
238
239 <#if hasContent('startdatum', languageId, json)>
240 <#assign
241 startdate = getValueForLanguage('startdatum', languageId, json, "first")
242 meta = meta + { "start": startdate?date.iso, "end": "" }
243 />
244 </#if>
245
246 <#if hasValue('einfuehrungText', locale, json)>
247 <#assign data = data + { "einfuehrungText" : getValueForLanguage('einfuehrungText', locale, json, "first") } >
248 <#elseif hasValue(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first")>
249 <#assign data = data + { "einfuehrungText" : getValueForLanguage(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first") } >
250 </#if>
251
252 <#if hasContent('endedatum', languageId, json)>
253 <#assign
254 enddate = getValueForLanguage('endedatum', languageId, json, "first")
255 meta = meta + { "end": enddate?date.iso }
256 />
257 </#if>
258
259 <#if hasContent('startzeit', languageId, json)>
260 <#assign
261 startzeit = getValueForLanguage('startzeit', languageId, json, "first")
262 />
263 <#if startzeit?has_content >
264 <#assign meta = meta + { "startzeit": startzeit } />
265 </#if>
266 </#if>
267
268 <#if hasContent('endezeit', languageId, json)>
269 <#assign
270 endezeit = getValueForLanguage('endezeit', languageId, json, "first")
271 meta = meta + { "endezeit": endezeit }
272 />
273 </#if>
274
275 <#if hasContent('ortWCSKASDEORT', languageId, json)>
276 <#assign
277 ortWCSKASDEORT = FrontendService.json.parseAsJson(getValueForLanguage('ortWCSKASDEORT', languageId, json, "first"))
278 ortWCSKASDEORTPrimaryKey = ortWCSKASDEORT.classPK?number
279 ortWCSKASDEORTWebContent = FrontendService.article.getWebcontentByPk(ortWCSKASDEORTPrimaryKey)!""
280 />
281 <#if ortWCSKASDEORTWebContent?has_content >
282 <#assign
283 ortWCSKASDEORTTitle = ortWCSKASDEORTWebContent.getTitle(languageId)!""
284 />
285 <#if ortWCSKASDEORTTitle?has_content >
286 <#assign
287 meta = meta + { "ortWCSKASDEORT": ortWCSKASDEORTTitle }
288 />
289 </#if>
290 </#if>
291 </#if>
292
293
294 <#if hasContent('veranstaltungsnummer', languageId, json)>
295 <#assign
296 verauuid = getValueForLanguage('veranstaltungsnummer', languageId, json, "first")
297 meta = meta + { "verauuid": verauuid }
298 />
299 </#if>
300
301
302 <#if (data.meta)?has_content >
303 <#assign meta = data.meta />
304 </#if>
305
306 <#if !(data.media)?has_content && hasContent('mediumDMTKASDEMEDIUM', languageId, json)>
307 <#assign
308 medium = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, json, "first")
309 mediaData = getRelatedMediaObject(medium, themeDisplay, languageId, FrontendService, "hd-resolution")
310 />
311 <#assign data = data + { "media": mediaData.url , "meta" : mediaData.meta} >
312
313
314 <#if mediaData.meta?? && mediaData.meta.quelle??>
315 <#assign meta = meta + data.meta + { "quelle": mediaData.meta.quelle } />
316 </#if>
317 </#if>
318
319
320 <#if meta?has_content>
321 <#assign data = data + {"meta": meta } >
322 </#if>
323
324 <#-- END fill meta data -->
325
326 <#if hasContentForSequence('autorenWCSKASDEPERSON', languageId, json)>
327 <#assign
328 journalArticles = getValueForLanguageAnsprechpartner('autorenWCSKASDEPERSON', languageId, json)
329 authors = []
330 />
331 <#list journalArticles as articleString>
332 <#assign article = FrontendService.json.parseAsJson(articleString) />
333 <#if article?has_content && article?is_hash && article.classPK??>
334 <#assign articleDereferenced = FrontendService.person.resolveContactInstanceToPerson(article, languageId)!"" />
335 <#if articleDereferenced?has_content >
336 <#assign
337 author = ""
338 articlePrimaryKey = articleDereferenced.classPK?number
339 articleJsonString = FrontendService.article.getWebcontent(articlePrimaryKey)
340 articleJson = FrontendService.json.parseAsJson(articleJsonString)
341 />
342 <@debugJsonString articleJsonString "ADT_KASDE_DYNAMIC_INTRO-autorenWCSKASDEPERSON" />
343 <#if hasValue('anredetitel', languageId, articleJson)>
344 <#assign author = author + getValueForLanguage('anredetitel', languageId, articleJson, " ") + " ">
345 </#if>
346 <#if hasValue('vorname', languageId, articleJson)>
347 <#assign author = author + getValueForLanguage('vorname', languageId, articleJson, " ") + " ">
348 </#if>
349 <#if hasValue('nachname', languageId, articleJson)>
350 <#assign author = author + getValueForLanguage('nachname', languageId, articleJson, " ") + " ">
351 </#if>
352
353 <#attempt>
354 <#assign href = FrontendService.article.getFriendlyUrl(articlePrimaryKey, languageId, groupId)!"#" >
355 <#recover>
356 <#assign href = "#" >
357 </#attempt>
358 <#if href?has_content && href != "#" && href != "/_404">
359 <#assign author = '<a href="' + href + '">' + author?trim + '</a>'>
360 </#if>
361
362 <#assign authors = authors + [author?trim]>
363 </#if>
364 </#if>
365 </#list>
366 <#if authors?has_content>
367 <#assign data = data + { "author": authors?join(", ") } >
368 </#if>
369 </#if>
370
371 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL") >
372 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "VERANSTALTUNGSTYP")! >
373 <#if categories?has_content && categories[0]?has_content >
374 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
375 </#if>
376
377 <#if hasContent('ausgebucht', languageId, json)>
378 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', languageId, json, "first") }>
379 </#if>
380
381 <#if hasContent('storniert', languageId, json)>
382 <#assign data = data + { "storniert" : getValueForLanguage('storniert', languageId, json, "first") }>
383 </#if>
384
385 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL") >
386 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "PUBLIKATIONSREIHE")! >
387 <#if categories?has_content && categories[0]?has_content >
388 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
389 </#if>
390 <#else>
391 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "THEMA")! >
392 <#if categories?has_content && categories[0]?has_content >
393 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
394 </#if>
395 </#if>
396
397
398 <#assign
399 languages = []
400 />
401
402 <#attempt>
403 <#if json["document_pdfDMTBASICDOCUMENT"]?? >
404 <#list json["document_pdfDMTBASICDOCUMENT"]?keys as pdf_language>
405 <#if pdf_language?has_content >
406 <#assign
407 docRefJson = getValueForLanguage('document_pdfDMTBASICDOCUMENT', pdf_language, json, "first")
408 docRef = FrontendService.json.parseAsJson(docRefJson)
409 />
410 <#if docRef?is_hash && pdf_language != languageId >
411 <#assign
412 lang = FrontendService.language.getLocaleByKey(pdf_language)!""
413 docGroupId = docRef["groupId"]?number
414 docUuid = docRef["uuid"]
415 dMTJsonObject = FrontendService.media.getDMTJsonObject( docGroupId, docUuid, locale )
416 dMTLink = FrontendService.media.getLinkToDMT( dMTJsonObject )
417 />
418 <#if lang?has_content>
419 <#assign
420 languages = languages + [
421 {
422 "key": pdf_language,
423 "value": FrontendService.language.getLocaleByKey(pdf_language).getDisplayLanguage(),
424 "url": dMTLink
425 }]
426 />
427 </#if>
428 </#if>
429 </#if>
430 </#list>
431 </#if>
432 <#recover>
433 </#attempt>
434
435 <#if (languages?size > 0)>
436 <#attempt>
437 <#assign
438 data = data + { "languageSelect": {
439 "id": "languageSelect",
440 "name": "languageselect",
441 "entries": languages,
442 "documents": "",
443 "button": "true"
444 }}
445 />
446 <#recover>
447 </#attempt>
448 </#if>
449
450 <@PMIntro "ADT_KASDE_DYNAMIC_INTRO" data AMMetadata AMDatetime "bottom" />
451 ${FrontendService.article.getEditArticleHtml(primaryKey, themeDisplay)}
452
453<#elseif (editmode?? && editmode)>
454 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_DYNAMIC_INTRO" layouttpl currentUrl />
455</#if>
Am 27 Oktober 2018, ging der erste Zyklus der Seminarreihe Führungskräfteschule ADI Budi im Bereich Kommunalpolitik in Temuco, organisiert von der Konrad-Adenauer-Stiftung in Zusammenarbeit mit der der Stiftung REIS, zu Ende. Das zweitägige Programm enthielt Begrüßungen von Mónica Tejos, Gründerin der Stiftung Reis und Annika Hermann, wissenschaftliche Mitarbeiterin bei der Konrad-Adenauer-Stiftung. Unter anderem boten die Organisatoren einen Workshop über „Territoriale Governance“ an, bei dem territorialen Verwaltungs- und Managementfähigkeiten erarbeitet wurden, um die autonome, integrale und lokale Entwicklung der Teilnehmer und deren Kommunen zu stärken. Der zweite Workshop „Nachhaltige Entwicklung“ befasste sich mit der Problemidentifizierung und betonte die Wiedergewinnung traditioneller Produktionsmethoden und Lebensweisen. Am 16 und 17 November folgte der zweite Zyklus der Seminarreihe mit Workshops über Stärkung der sozialen Führung, Assoziativität und die Schaffung von Netzwerken für die Entwicklung, sowie Finanzielle Bildung und Micro Finanzierung.
Ziel der Seminarreihe der Führungskräfteschule ADI Budi ist es, mögliche Mechanismen für die Verwaltung und den Schutz des Lafquenche-Gebiets am Budi-See, zu erarbeiten, die es der umgebenden Gemeinden ermöglichen soll, ihr territoriales Gebiet und Kommunen autonom und effektiv zu verwalten. Darüber hinaus geht es um den Austausch von Erfahrungen und angelerntem Wissen unter den Teilnehmern.
Im Dezember folgt der letzte Zyklus der Seminarreihe.
Über diese Reihe
Die Konrad-Adenauer-Stiftung, ihre Bildungsforen und Auslandsbüros bieten jährlich mehrere tausend Veranstaltungen zu wechselnden Themen an. Über ausgewählte Konferenzen, Events, Symposien etc. berichten wir aktuell und exklusiv für Sie unter www.kas.de. Hier finden Sie neben einer inhaltlichen Zusammenfassung auch Zusatzmaterialien wie Bilder, Redemanuskripte, Videos oder Audiomitschnitte.