Asset-Herausgeber
Egal, Hauptsache Digital
Egal, Hauptsache Digital
Egal, Hauptsache Digital? – so einfach ist es natürlich nicht, wenn es um das digitale Lernen geht. Obwohl das Thema nicht neu ist, stellen sich noch immer sehr viele Fragen. Einige Fragen haben wir während der Corona-Zeit 2020/2021 aufgegriffen und diskutiert. Wir haben mit Menschen gesprochen, die sich mit den vielfältigen Aspekten der digitalen Bildung und den dazugehörigen Technologien beschäftigen. Bildung wurde dabei von uns weit gefasst, denn Bildung findet einfach überall statt – nicht nur in der Schule oder an der Universität. Und spätestens seit der Corona Krise ist klar, dass das Digitale Bildung kein Thema für übermorgen ist, sondern für jetzt.
Asset-Herausgeber
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>
Fehler bei der Verarbeitung der Vorlage.
For "...[...]" left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> mediumData [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGUEBERSICHT_LISTE" at line 154, column 9] ----
1<#-- bezieht sich auf WCS Blog -->
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6
7<#assign articleId = .vars['reserved-article-id'].data />
8<#assign articleTitle = .vars['reserved-article-title'].data />
9<#assign version = .vars['reserved-article-version'].data?number />
10<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) />
11
12<#if requestMap??>
13 <#assign
14 renderUrl = requestMap['render-url']
15 control_panel = renderUrl?contains('control_panel')
16 >
17</#if>
18
19<#if control_panel?? && control_panel>
20 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())>
21 <pre>
22 articleId = ${.vars['reserved-article-id'].data}
23 version = ${.vars['reserved-article-version'].data}
24 groupId = ${articleGroupId}
25 structurekey = ${article.getDDMStructureKey()}
26 </pre>
27 <pre style="white-space: pre-wrap;">
28 ${FrontendService.json.transformToJson( article, true )}
29 </pre>
30 </#if>
31<#else>
32 <#-- includes error message -->
33 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
34
35 <#-- get link from frontend service -->
36 <#assign contentUrl = "/404" >
37 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
38 <#if journalArticle?has_content>
39 <#assign className = "com.liferay.journal.model.JournalArticle">
40 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()!"">
41 <#assign assetEntry = AssetEntryLocalService.getEntry(className, resourcePrimKey) />
42
43 <#if assetEntry?has_content>
44 <#assign assetRenderer = assetEntry.getAssetRenderer() >
45 <#assign classPK = assetEntry.getClassPK()!"" >
46 <#assign contentUrl = FrontendService.article.getFriendlyUrl(classPK, themeDisplay.getLocale(), themeDisplay.getScopeGroupId()) >
47 </#if>
48 </#if>
49
50 <#function getJournalArticle referenceStructure >
51 <#local journalArticle = "" >
52
53 <#attempt>
54 <#local data = FrontendService.json.parseAsJson(referenceStructure.getData()) >
55 <#if data?is_hash>
56 <#local classPK = data['classPK'] >
57 <#local className = data['className'] >
58 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! >
59 <#if entry??>
60 <#local assetRenderer = entry.getAssetRenderer() />
61 <#local journalArticle = (assetRenderer.getArticle())! />
62 </#if>
63 </#if>
64 <#recover>
65 <#-- catch block -->
66 </#attempt>
67
68 <#return journalArticle >
69
70 </#function>
71
72 <#function getSaxReaderDocument dataObj >
73 <#local document = "" >
74
75 <#local journalArticle = getJournalArticle(dataObj) >
76 <#if journalArticle?has_content>
77 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" />
78 </#if>
79
80 <#return document >
81
82 </#function>
83
84 <#function getCategoriesForVocabuary assetEntry vocabularyName >
85 <#local categories = [] >
86 <#local assetCategories = (assetEntry.getCategories())![] >
87
88 <#list assetCategories as assetCategory>
89 <#local vocabularyId = assetCategory.getVocabularyId() >
90 <#local vocabulary = AssetVocabularyLocalService.getVocabulary(vocabularyId)!"" >
91
92 <#if vocabulary?has_content>
93 <#if vocabulary.getName() == vocabularyName || vocabulary.getTitle("de_DE") == vocabularyName >
94 <#local categories = categories + [assetCategory] >
95 </#if>
96 </#if>
97 </#list>
98
99 <#return categories >
100
101 </#function>
102
103 <#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) >
104 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) >
105 <#assign categories = getCategoriesForVocabuary(assetEntry, "Thema") >
106
107
108 <#-- PERSON macro
109 ------------------------------------------------------------------------------------------------------------------------>
110 <#macro personName document >
111 <#if document?has_content>
112 <#local anredetitel = "">
113 <#local vorname = "">
114 <#local nachname = "">
115
116 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??>
117 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") />
118 <#local anredetitel = node.getText() />
119 </#if>
120
121 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??>
122 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") />
123 <#local vorname = node.getText() />
124 </#if>
125
126 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??>
127 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") />
128 <#local nachname = node.getText() />
129 </#if>
130
131 <#if anredetitel?has_content || vorname?has_content || nachname?has_content >
132 <span class="o-metadata o-metadata--author">
133 ${anredetitel} ${vorname} ${nachname}
134 </span>
135 </#if>
136
137 </#if>
138 </#macro>
139
140 <#-- Quelle macro
141 ------------------------------------------------------------------------------------------------------------------------>
142 <#macro mediaReference groupId uuid>
143 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" >
144
145 <#if mediaObj?has_content && (mediaObj.quelle)?has_content >
146 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))>
147 <span class="o-imagesource">${source}</span>
148 </#if>
149 </#macro>
150
151
152 <#-- Cover -->
153 <#assign mediumData = coverDMTKASDEMEDIUM.data!""?eval />
154 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />
155 <div class="o-tile__media o-tile__media--medium">
156 <#if linkToDMT?has_content>
157 <div class="o-tile__media-content">
158 <#if isDPMColorScheme() >
159 <img src="${linkToDMT}">
160 </#if>
161 <#if mediumData?has_content>
162 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] />
163 </#if>
164 </div>
165 </#if>
166 </div>
167
168 <div class="o-tile__content">
169
170 <#-- Titel -->
171 <h2 class="o-tile__headline o-page-headline o-page-headline--left">
172 ${articleTitle!""}
173 </h2>
174
175 <#-- Untertitel -->
176 <h3 class="o-tile__subheadline">
177 ${untertitel.getData()}
178 </h3>
179
180 <#-- Kurzbeschreibung -->
181 <p class="o-tile__text">
182 ${beschreibung.getData()}
183 </p>
184
185 <div class="o-metadata">
186 <#-- Autoren -->
187 <#if autorenWCSKASDEPERSON.getSiblings()?has_content>
188 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON>
189 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) >
190 <@personName document />
191 </#list>
192 </#if>
193
194 <#-- Erscheinungsdatum -->
195 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())>
196
197 <#if validator.isNotNull(erscheinungsdatum_Data)>
198 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)>
199 <span class="o-metadata o-metadata--date">
200 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)}
201 </span>
202 </#if>
203
204 <#if categories?has_content>
205 <span class="o-metadata o-metadata--thema">
206 <#list categories as category>
207 <span>${category.getName()}</span>
208 </#list>
209 </span>
210 </#if>
211 </div>
212
213 <#if isDPMColorSchemeNEW()>
214 <div class="o-tile__button">
215 <button class="o-cta o-cta--secondary o-tile__cta"><@liferay.language key="artikel.lesen" /></button>
216 </div>
217 </#if>
218 </div>
219</#if>