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>