2017 ist ein „europäisches Schicksalswahljahr“. Die Weichen werden am 23. April und 7. Mai gestellt, wenn die Franzosen einen neuen Staatspräsidenten wählen. Noch ist der Ausgang offen und die populistische Herausforderung nicht gebannt. Klar ist nur, dass sich die bequeme Selbstverständlichkeit der deutsch-französischen und europäischen Partnerschaft verbraucht hat. Ein Sieg eines europafreundlichen Kandidaten wäre nur ein Etappensieg. Die deutsch-französische und europäische Zusammenarbeit braucht über den Wahltag hinaus einen neuen Energieschub.
Inhalt
Fehler bei der Verarbeitung der Vorlage.
Java method "com.sun.proxy.$Proxy148.getEntry(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy148 object "com.liferay.asset.internal.service.AssetEntryLocalServiceWrapper@496ce1a2"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #local entry = AssetEntryLocalService... [in template "252001#252047#WCD_DEBATTENBLOG_AUSGABEDETAIL_TOC" in function "getJournalArticle" at line 17, column 5] - Reached through: @personName nodes [in template "252001#252047#WCD_DEBATTENBLOG_AUSGABEDETAIL_TOC" in macro "referencedPublication" at line 128, column 36] - Reached through: @referencedPublication document [in template "252001#252047#WCD_DEBATTENBLOG_AUSGABEDETAIL_TOC" at line 159, column 21] ----
1<#-- bezieht sich auf WCS Publikationsverbund -->
2<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
3<#assign articleId = .vars['reserved-article-id'].data />
4<#assign articleTitle = .vars['reserved-article-title'].data />
5
6<#-- functions -->
7<#function getJournalArticle dataObj >
8 <#local journalArticle = "" >
9 <#if dataObj?is_string>
10 <#local data = jsonFactoryUtil.createJSONObject(dataObj)!"" />
11 <#else>
12 <#local data = jsonFactoryUtil.createJSONObject(dataObj.getData())!"" />
13 </#if>
14 <#if data?has_content>
15 <#local classPK = data.classPK >
16 <#local className = data.className >
17 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
18
19 <#if entry??>
20 <#local assetRenderer = entry.getAssetRenderer() />
21 <#local journalArticle = (assetRenderer.getArticle())! />
22 </#if>
23 </#if>
24
25 <#return journalArticle >
26
27</#function>
28
29<#function getSaxReaderDocument dataObj >
30 <#local document = "" >
31
32 <#local journalArticle = getJournalArticle(dataObj) >
33 <#if journalArticle?has_content>
34 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
35 </#if>
36
37 <#return document >
38
39</#function>
40
41
42<#-- macros -->
43<#macro referenceTitle dataObj >
44 <#if dataObj?is_string>
45 <#local data = jsonFactoryUtil.createJSONObject(dataObj)!"" />
46 <#else>
47 <#local data = jsonFactoryUtil.createJSONObject(dataObj.getData())!"" />
48 </#if>
49 <#if data?has_content>
50 <#local classPK = data.classPK!"" />
51 <#local title = data.title!"" />
52 </#if>
53
54 <#if classPK?has_content && title?has_content>
55 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK?number, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
56 <h5 class="c-toc__title">
57 <a href="${contentUrl}">${title}</a>
58 </h5>
59 </#if>
60</#macro>
61
62<#macro personName nodes >
63 <#list nodes as personNode>
64 <#local autorenWCSKASDEPERSON = personNode.getText() />
65 <#if autorenWCSKASDEPERSON?has_content >
66 <#-- the refrenece at this point is string so we don't use getData() -->
67 <#assign personContent = getSaxReaderDocument(autorenWCSKASDEPERSON) >
68 <#if personContent?has_content>
69 <#local anredetitel = "">
70 <#local vorname = "">
71 <#local nachname = "">
72
73 <#if personContent.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
74 <#local node = personContent.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
75 <#local nodeText = node.getText() />
76 <#if nodeText?has_content >
77 <#local anredetitel = nodeText >
78 </#if>
79 </#if>
80
81 <#if personContent.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
82 <#local node = personContent.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
83 <#local nodeText = node.getText() />
84 <#if nodeText?has_content >
85 <#local vorname = nodeText >
86 </#if>
87 </#if>
88
89 <#if personContent.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
90 <#local node = personContent.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
91 <#local nodeText = node.getText() />
92 <#if nodeText?has_content >
93 <#local nachname = nodeText >
94 </#if>
95 </#if>
96
97 </#if>
98
99 <#if anredetitel?has_content || vorname?has_content || nachname?has_content>
100 <#if personNode?is_first && personNode?is_last>
101 <span><@liferay.language key="von" /></span> ${anredetitel} ${vorname} ${nachname}
102 <#elseif personNode?is_first>
103 <span><@liferay.language key="von" /></span> ${anredetitel} ${vorname} ${nachname},
104 <#elseif personNode?is_last>
105 ${anredetitel} ${vorname} ${nachname}
106 <#else>
107 ${anredetitel} ${vorname} ${nachname},
108 </#if>
109 </#if>
110 </#if>
111 </#list>
112</#macro>
113
114<#macro referencedPublication document >
115 <#if document?has_content>
116
117 <#if document.selectSingleNode("/root/dynamic-element[@name='untertitel']/dynamic-content")??>
118 <#local node = document.selectSingleNode("/root/dynamic-element[@name='untertitel']/dynamic-content") />
119 <#local untertitel = node.getText() />
120 <#if untertitel?has_content >
121 <p class="c-toc__copy">${untertitel}</p>
122 </#if>
123 </#if>
124
125 <#if document.selectSingleNode("/root/dynamic-element[@name='autorenWCSKASDEPERSON']/dynamic-content")??>
126 <#local nodes = document.selectNodes("/root/dynamic-element[@name='autorenWCSKASDEPERSON']/dynamic-content") />
127 <#if nodes?has_content>
128 <p class="c-toc__author"><@personName nodes /></p>
129 </#if>
130 </#if>
131
132 </#if>
133</#macro>
134
135<#if rubriklabel.getSiblings()?has_content>
136 <#list rubriklabel.getSiblings() as cur_rubriklabel>
137 <#if cur_rubriklabel?has_content>
138
139 <#if (cur_rubriklabel.getData())?has_content >
140 <div class="o-accordion__element-wrapper">
141 <#-- Rubriklabel -->
142 <h3 class="o-accordion__trigger c-toc__headline c-toc__headline--sub" >
143 ${cur_rubriklabel.getData()}
144 <span class="o-accordion__arrow">
145 <svg class="o-icon--small o-icon__arrow-down" viewBox="0 0 18 18">
146 <use xlink:href="${themeDisplay.getPathThemeImages()}/svg_sprite.svg#icon-bottom-chevron"></use>
147 </svg>
148 </span>
149 </h3>
150
151 <#-- Rubrikconent -->
152 <ul class="o-accordion__element c-toc__list">
153 <#if cur_rubriklabel.rubrikarticleWCSKASDEPUBLIKATION.getSiblings()?has_content>
154 <#list cur_rubriklabel.rubrikarticleWCSKASDEPUBLIKATION.getSiblings() as cur_rubrikarticleWCSKASDEPUBLIKATION >
155 <#assign document = getSaxReaderDocument(cur_rubrikarticleWCSKASDEPUBLIKATION) >
156 <#if document?has_content>
157 <li class="c-toc__list-item">
158 <@referenceTitle cur_rubrikarticleWCSKASDEPUBLIKATION />
159 <@referencedPublication document />
160 </li>
161 </#if>
162 </#list>
163 </#if>
164 </ul>
165 </div>
166 <#else>
167 <ul class="c-toc__list">
168 <#if cur_rubriklabel.rubrikarticleWCSKASDEPUBLIKATION.getSiblings()?has_content>
169 <#list cur_rubriklabel.rubrikarticleWCSKASDEPUBLIKATION.getSiblings() as cur_rubrikarticleWCSKASDEPUBLIKATION >
170 <#assign document = getSaxReaderDocument(cur_rubrikarticleWCSKASDEPUBLIKATION) >
171 <#if document?has_content>
172 <li class="c-toc__list-item">
173 <@referenceTitle cur_rubrikarticleWCSKASDEPUBLIKATION />
174 <@referencedPublication document />
175 </li>
176 </#if>
177 </#list>
178 </#if>
179 </ul>
180 </#if>
181
182 </#if>
183 </#list>
184</#if>