Fehler bei der Verarbeitung der Vorlage.
Expression pr?chunk(pageSize)[page] is undefined on line 178, column 28 in 10132#10165#272016600.
1<#assign params     = request.attributes.CURRENT_URL?split('?')?last /> 
2<#assign page       = 0 /> 
3<#assign year       = 0 /> 
4<#assign article    = '' /> 
5<#assign pageSize   = 15 /> 
6<#list params?split('&') as pair> 
7    <#assign temp = pair?split('=') /> 
8    <#if temp[0] == 'page'> 
9        <#assign page   = temp[1]?number /> 
10    <#elseif temp[0] == 'year'> 
11        <#assign year   = temp[1]?number /> 
12    <#elseif temp[0] == 'article'> 
13        <#assign article  = temp[1] /> 
14    </#if> 
15</#list> 
16<#assign journalSvc         = serviceLocator.findService('com.liferay.portlet.journal.service.JournalArticleService') /> 
17<#assign displayArticles    = [] /> 
18<#assign articlesPerYear    = {} /> 
19<link rel="stylesheet" href="/custom-css/bootstrap-dgzmk.min.css" media="all" /> 
20<style> 
21 
22.dgzmk-bootstrap .card h2, .dgzmk-bootstrap .card h5, .dgzmk-bootstrap .card i { 
23 
24    color: #009ae5; 
25     
26
27 
28.dgzmk-bootstrap .card h5.card-title { 
29 
30    font-size:16px; 
31    font-weight:bold; 
32    line-height:24px; 
33    color:#24426f; 
34    display: -webkit-box; 
35    -webkit-line-clamp: 2; 
36    -webkit-box-orient: vertical; 
37    overflow: hidden; 
38    text-overflow: ellipsis; 
39 
40
41 
42.card-img-fallback, .dgzmk-bootstrap .card-img-date { 
43    height: 15.5em; 
44
45 
46.card-img-fallback { 
47 
48    background-image: none; 
49    background-position: center center; 
50    background-size: cover; 
51    background-repeat: no-repeat; 
52 
53
54 
55.dgzmk-bootstrap .card .card-body { 
56 
57    position: relative; 
58 
59
60 
61.card-category { 
62 
63    position: absolute; 
64    right:1em; 
65    top:0.5em; 
66 
67
68 
69.dgzmk-bootstrap .card-img-date { 
70    background-color: rgb(239, 239, 239); 
71    padding: 1.25rem; 
72    box-sizing: border-box; 
73    filter: saturate(2); 
74
75 
76.dgzmk-bootstrap .card { 
77    border-top-left-radius:0; 
78    border-top-right-radius:0; 
79    border-bottom-left-radius:0; 
80    border-bottom-right-radius: 1em; 
81    height: 24em; 
82    margin-bottom: 1.5em; 
83
84 
85.dgzmk-bootstrap .card small.dgzmk-pr-published { 
86    position: absolute; 
87    left: 1.25rem; 
88    bottom: 1.25rem; 
89    margin-left: -2px; 
90
91 
92.dgzmk-bootstrap .card i.dgzmk-pr-showmore { 
93font-size: 1.75em; 
94    position: absolute; 
95    right: 0.5em; 
96    bottom: 0.5em; 
97
98</style> 
99<script> 
100 
101document.querySelectorAll('.nav-collapse').forEach(n => n.classList.add('show')); 
102 
103</script> 
104 
105<div class="<#if !article?has_content>dgzmk-bootstrap</#if>"> 
106    <div class="container"> 
107        <#if article?has_content> 
108          <#assign journalArticle = journalSvc.getArticleByUrlTitle(3450171, article)! /> 
109          <#if !journalArticle?has_content> 
110            <script>console.debug("No Article for URL '${article}'...");</script> 
111          </#if> 
112        </#if> 
113 
114        <#if journalArticle?has_content> 
115         
116          ${journalContentUtil.getContent(journalArticle.groupId, journalArticle.articleId, '278683314', 'VIEW', 'de_DE', xmlRequest)!'<script>console.debug("No Content for Article#${p.articleId}...");</script>'} 
117 
118          <div class="pull-right pr-back-button"> 
119            <br/> 
120            <a href="javascript:history.back();"><button type="button" class="btn btn-primary">Zurück</button></a> 
121          </div> 
122 
123          <script> 
124           
125          	(() => { 
126          	 
127          		const	backButtonContainer	= document.querySelector(".pr-back-button"); 
128          		const	prHeadline			= document.querySelector("h1.pr-headline"); 
129          	 
130          		document.title  = "${htmlUtil.escapeJS(journalArticle.titleCurrentValue)}"; 
131          		 
132          		if (!!prHeadline) { 
133          		 
134          			prHeadline.insertAdjacentHTML('afterEnd', "<div class='clearfix'>" + backButtonContainer.outerHTML + "</div><br/>"); 
135          		 
136
137          		 
138          	 
139          	})(); 
140          	 
141          	 
142          </script> 
143 
144        <#else> 
145            <div class="row row-cols-1 gx-5 gy-4 row-cols-md-2 row-cols-lg-3"> 
146                <#if journalSvc?has_content> 
147                    <#assign pr=[] /> 
148                    <#assign currentYear   = '0' /> 
149                    <#assign yearOfArticles= [] /> 
150                    <#list journalSvc.getArticles(3450171, 0)?sort_by('displayDate')?reverse as p> 
151                        <#if  p.structureId == '3573084' || p.structureId == '3573085'> 
152                            <#assign pr = pr + [p] /> 
153 
154                            <#if p.displayDate?string('yyyy') != currentYear> 
155 
156                                <#if currentYear != '0'> 
157                                    <#assign articlesPerYear   = articlesPerYear + { currentYear: yearOfArticles} /> 
158                                </#if> 
159 
160                                <#assign yearOfArticles = [] /> 
161                                <#assign currentYear    = p.displayDate?string('yyyy') /> 
162 
163                            </#if> 
164 
165                            <#assign yearOfArticles = yearOfArticles + [p] /> 
166 
167                        </#if> 
168                    </#list> 
169                    <#if currentYear != '0'> 
170                        <#assign articlesPerYear   = articlesPerYear + { currentYear: yearOfArticles} /> 
171                    </#if> 
172                    <#if year == 0> 
173 
174                        <#assign year = articlesPerYear?keys?sort?reverse[0]?number /> 
175 
176                    </#if> 
177                    <#assign pr=articlesPerYear[year?string] /> 
178                    <#list pr?chunk(pageSize)[page] as p> 
179                        <#assign displayArticles    = displayArticles + [p] /> 
180                        ${journalContentUtil.getContent(p.groupId, p.articleId, '272042483', 'VIEW', 'de_DE', xmlRequest)!'<script>console.debug("No Content for Article#${p.articleId}...");</script>'} 
181                    </#list> 
182                 
183                </#if> 
184            </div> 
185            <div id="pressFooter" class="row mb-4"> 
186                <div class="col-9"> 
187                    <select name="year" class="my-0 mx-1" onChange="document.location.href='?year=' + this.value"> 
188                        <#list articlesPerYear?keys?sort?reverse as y> 
189                            <option value="${y}" <#if y?number == year> selected</#if>>Aus dem Jahr ${y}</option> 
190                        </#list> 
191                    </select> 
192                </div> 
193                <#if ((pr?size) > pageSize)> 
194                    <div class="col-3 d-flex justify-content-center align-items-center"> 
195                        <#if page gt 0> 
196                            <div class="text-center"><a href="?page=${page - 1}&year=${year}" title="vorherige Seite"><i style="font-size:2em;" class="dgzmk-pr-showmore fa-solid fa-circle-chevron-left"></i></a></div> 
197                        </#if> 
198                        <div> 
199                            <#assign lastPage   = (pr?size / pageSize)?ceiling /> 
200                                 
201                            <select name="page" class="my-0 mx-1" onChange="document.location.href='?page=' + this.value + '&year=${year}'"> 
202                            <#list 1..lastPage as p> 
203                                <option value="${p - 1}" <#if p == (page + 1)> selected</#if>>Seite ${p} von ${lastPage}</option> 
204                            </#list> 
205                            </select> 
206                        </div> 
207                        <#if page lt (lastPage - 1)> 
208                            <div class="text-center"><a href="?page=${page + 1}&year=${year}" title="nächste Seite"><i style="font-size:2em;" class="dgzmk-pr-showmore fa-solid fa-circle-chevron-right"></i></a></div> 
209                        </#if> 
210                    </div> 
211                </#if> 
212            </div> 
213        </#if> 
214    </div> 
215</div> 
216<script> 
217    (() => { 
218 
219        const   resourcePKs = []; 
220        const   idMapping   = new Map(); 
221         
222        <#list displayArticles as a> 
223        resourcePKs.push(${a.resourcePrimKey}); 
224        idMapping.set('${a.resourcePrimKey}', '${a.articleId}'); 
225        </#list> 
226         
227        if (Liferay.Browser.isMobile()) { 
228         
229            const   footerNav   = document.getElementById('pressFooter'); 
230         
231            footerNav.parentElement.insertBefore(footerNav, footerNav.previousElementSibling); 
232         
233
234 
235        window.setTimeout(() => { 
236             
237            fetch('/web/suite-dgzmk/aktuelles?p_p_id=dgzmkpressrelease_WAR_dgzmkpressreleaseportlet&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_resource_id=get-categories&p_p_cacheability=cacheLevelPage&p_p_col_id=column-1&p_p_col_count=1&_dgzmkpressrelease_WAR_dgzmkpressreleaseportlet_articleID=123845044&_dgzmkpressrelease_WAR_dgzmkpressreleaseportlet_groupID=3450171&articles=' + resourcePKs.join(',')).then(r => r.json()).then((c) => { 
238 
239                Object.keys(c).forEach((rpk) => { 
240 
241                    try { 
242 
243                        const   categories  = c[rpk]; 
244                        const   card        = document.getElementById('pr-article-' + idMappublishping.get(rpk)); 
245                        const   typeLabel   = card.querySelector('small.card-category'); 
246     
247                        typeLabel.innerText = (categories.length ? categories[0] : '') || 'Aktuelles'; 
248 
249                    } catch (ex) { 
250 
251                        console.error('Error checking ' + rpk + '...', ex); 
252 
253
254 
255                }); 
256 
257            }); 
258 
259        }, 0); 
260 
261    })(); 
262</script>