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>