Fehler bei der Verarbeitung der Vorlage.
Error on line 56, column 23 in 10132#10165#278683314 groupService.getGroup(page.getGroupId()) is undefined. It cannot be assigned to pageGroup
1<#if (!getterUtil.getBoolean((showLoggedIn.getData())!false) || permissionChecker.isSignedIn()) > 2 <#assign hasPages = prPageRoot.getData()?trim?has_content /> 3 <#if hasPages> 4 <#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.service.LayoutLocalService")> 5 <#assign layoutService = serviceLocator.findService("com.liferay.portal.service.LayoutService") /> 6 <#assign groupService = serviceLocator.findService("com.liferay.portal.service.GroupService")> 7 <#assign rootPage = layoutLocalService.getLayout(prPageRoot.getData()?number)! /> 8 <#if rootPage??> 9 <#assign rootLevel = layoutService.getLayouts(rootPage.getGroupId(), rootPage.isPrivateLayout(), rootPage.getLayoutId()) /> 10 <div class="container-fluid"> 11 <div class="row"> 12 <div class="col-3"> 13 <h1> </h1> 14 <style> 15 ul.pr-nav { 16 17 margin-left:0.5em; 18 margin-bottom:0.25em; 19 20 } 21 22 ul.pr-nav-root { 23 24 margin-left: 0; 25 26 } 27 28 li.pr-navitem { 29 30 list-style: none; 31 margin-bottom:0.25em; 32 33 } 34 35 .pr-active { 36 37 font-weight: bold; 38 39 } 40 41 .pr-loading { 42 43 opacity: 0.5; 44 45 } 46 47 </style> 48 <ul class="pr-nav pr-nav-root"> 49 <li class="pr-navitem"><a id="prNavMainItem" href="" class="pr-navitem pr-active"></a></li> 50 <li class="pr-navitem"> 51 <ul class="pr-nav"> 52 <#list rootLevel as page> 53 <#assign targetURL = "" /> 54 <#assign isURL = "url" == page.getType() /> 55 <#assign isLinkToPage = "link_to_layout" == page.getType() /> 56 <#assign pageGroup = groupService.getGroup(page.getGroupId()) /> 57 <#assign pageUrl = "/" /> 58 59 <#if page.isPrivateLayout()> 60 <#assign pageUrl = pageUrl + "group" /> 61 <#else> 62 <#assign pageUrl = pageUrl + "web" /> 63 </#if> 64 <#assign pageUrl = pageUrl + pageGroup.friendlyURL + page.friendlyURL /> 65 66 <li class="pr-navitem pr-navitem-root"><a href="${htmlUtil.escapeAttribute(pageUrl)}" class="pr-navitem">${page.nameCurrentValue}</a></li> 67 </#list> 68 <#if prGalleryFolder.getData()?trim?has_content> 69 <li class="pr-navitem"><a class="pr-gallery" href="#" data-gallery="${prGalleryFolder.getData()?trim}">Bildergalerie</a></li> 70 </#if> 71 <#if prGalleryAdditions.getSiblings()?has_content> 72 <#assign dlFolderService = serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLFolderService") /> 73 <#list prGalleryAdditions.getSiblings() as cur_prGalleryAdditions> 74 <#if cur_prGalleryAdditions.getData()?has_content> 75 <#assign dlFolder = dlFolderService.getFolder(cur_prGalleryAdditions.getData()?number) /> 76 <li class="pr-navitem"><a class="pr-gallery" href="#" data-gallery="${cur_prGalleryAdditions.getData()?trim}">${(cur_prGalleryAdditions.prGalleryAdditionName.getData())!dlFolder.name}</a></li> 77 </#if> 78 </#list> 79 </#if> 80 </ul> 81 </li> 82 </ul> 83 </div> 84 <div class="col-9"> 85 <#else> 86 <#assign hasPages = false /> 87 </#if> 88 </#if> 89 <#if prSelectExistingContent.getData()?trim?has_content> 90 <div class="pr-maincontent"> 91 ${journalContentUtil.getContent(groupId, prSelectExistingContent.getData(), '278683314', 'VIEW', 'de_DE', xmlRequest)!'<script>console.debug("No Content for Article#${prSelectExistingContent.getData()}...");</script>'} 92 </div> 93 <#else> 94 <div class="lr-printable"> 95 <#assign displayDate = .vars['reserved-article-display-date'].data?datetime('EEE, dd MMM yyyy hh:mm:ss zzz') /> 96 <h5>${(prCategory.getData())!"News"} vom ${displayDate?string('dd.MM.yyyy')}</h5> 97 <h1 class="pr-headline">${.vars["reserved-article-title"].getData()}</h1> 98 <div class="pr-maincontent">${prMainContent.getData()}</div> 99 <#if prDownloads.getSiblings()?has_content> 100 <div class="pr-downloads"> 101 <strong>Downloads:</strong> 102 <#assign hasDownloads=false /> 103 <#list prDownloads.getSiblings() as cur_prDownloads> 104 <div class="pr-download-entry"> 105 <#assign downloadUrl=cur_prDownloads.getData() /> 106 <#if downloadUrl?has_content> 107 <#assign hasDownloads=true/> 108 <#assign urlSegments=downloadUrl?split("/") /> 109 <a class="pr-download-link" href="${downloadUrl}"> 110 <i class="fa-solid fa-file"></i> 111 <#attempt> 112 ${urlSegments[4]} 113 <#recover> 114 Download 115 </#attempt> 116 </a> 117 </#if> 118 </div> 119 </#list> 120 </div> 121 <#if !hasDownloads> 122 <style>.pr-downloads { display:none; }</style> 123 </#if> 124 </#if> 125 </div> 126 </#if> 127 <#if hasPages> 128 </div> 129 </div> 130 </div> 131 <script> 132 queueMicrotask(() => { 133 134 const content = jQuery(".pr-maincontent"); 135 let lastLoadedURL = ''; 136 let originalContent = null; 137 138 // ----- check LightBox ----- 139 try { 140 var lightBoxInstance =lightbox; 141 } catch(ex) { 142 jQuery("head").append('<link href="/lightbox/css/lightbox.min.css" type="text/css" rel="stylesheet">'); 143 jQuery.getScript("/lightbox/js/lightbox.min.js"); 144 } 145 146 document.getElementById('prNavMainItem').innerHTML = (document.querySelector('h1.pr-headline') ?? document.querySelector('.pr-maincontent h1')).innerHTML; 147 148 document.querySelectorAll("a.pr-navitem").forEach((l) => { 149 150 l.addEventListener('click', (e) => { 151 152 const _this = jQuery(e.target); 153 154 if (originalContent === null) { 155 156 originalContent = content.html(); 157 158 } 159 160 e.preventDefault(); 161 e.stopPropagation(); 162 163 jQuery("ul.pr-nav-root ul.pr-nav a.pr-navitem").removeClass("pr-active"); 164 165 if (e.target.href !== document.location.href) { 166 167 _this.addClass("pr-active"); 168 169 if (e.target.href !== lastLoadedURL) { 170 171 content.addClass("pr-loading"); 172 173 jQuery.get(e.target.href, function (html) { 174 175 var parsedHtml = jQuery(html); 176 const parseContent = parsedHtml.find(".pr-maincontent"); 177 178 parsedHtml.find("#breadcrumbs").remove(); 179 180 content.html(parseContent.length ? parseContent.html() : parsedHtml.find("#content").html()); 181 182 window.jqLastLoadedPage = html; 183 184 jQuery.each(window.jqLastLoadedPage.match(/<script[\s\S]*?>([\s\S]*?)<\/script>/gi), function (x, script) { 185 186 if (script.indexOf("Liferay.Portlet.addHTML") != -1) { 187 content.append(script); 188 } 189 190 }); 191 192 lastLoadedURL = e.target.href; 193 194 content.removeClass("pr-loading"); 195 196 }).fail(function (e) { 197 198 alert("Seite konnte nicht geladen werden..."); 199 content.removeClass("pr-loading"); 200 201 }); 202 203 } 204 205 } else { 206 207 content.html(originalContent); 208 209 } 210 211 }); 212 213 }); 214 215 document.querySelectorAll("a.pr-gallery").forEach(a => a.addEventListener('click', (e) => { 216 217 const galleryId = e.target.dataset.gallery; 218 219 e.preventDefault(); 220 e.stopPropagation(); 221 222 if (galleryId !== lastLoadedURL) { 223 224 content.addClass("pr-loading"); 225 226 jQuery.getJSON("/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-gallery-" + galleryId + "&p_p_cacheability=cacheLevelPage&p_p_col_id=column-1&p_p_col_count=1", (result) => { 227 228 var lbContainer = jQuery('<div style="width:100%;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;align-content:flex-start;"></div>'); 229 230 jQuery.each(result.gallery, function (i, image) { 231 232 var lbImageBlock = jQuery('<div style="display:flex;margin:5px;flex:0 0 auto;flex-direction:column;"></div>'); 233 var lbImageLink = jQuery('<a data-lightbox="' + result.portletID + '"></a>'); 234 var lbImage = jQuery('<img style="height:85px;cursor:pointer;"/>'); 235 var lbDownload = jQuery('<div style="text-align:right;"><a href="' + image.fullSize + '" target="_download" style="color:black;font-size:0.85em;font-weight:bold;">>Download</a></div>'); 236 237 lbImageLink.attr("href", image.preview); 238 239 lbImage.attr("src", image.thumbnail); 240 lbImage.attr("title", image.title); 241 lbImage.attr("alt", image.title); 242 243 lbImageBlock.append(lbImageLink); 244 lbImageBlock.append(lbDownload); 245 246 lbImageLink.append(lbImage); 247 248 lbContainer.append(lbImageBlock); 249 250 }); 251 252 content.html(""); 253 254 content.append(lbContainer); 255 256 lightbox.option({ 257 'maxHeight': 600, 258 'wrapAround': true 259 }); 260 261 262 lastLoadedURL = galleryId; 263 264 content.removeClass("pr-loading"); 265 266 }).fail((ex) => { 267 268 console.error("Error loading Gallery...", e.target.href, ex); 269 content.removeClass("pr-loading"); 270 271 }); 272 273 } 274 275 })); 276 277 }); 278 279 </script> 280 </#if> 281</#if>