Asset Headline News

FUSSBALL IM NETZ

Asset Publisher

Fehler bei der Verarbeitung der Vorlage.
Java method "com.sun.proxy.$Proxy132.getFileEntryByUuidAndGroupId(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy132 object "com.liferay.portlet.documentlibrary.service.impl.DLAppServiceImpl@416b646d"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign Datei = DLAppServiceUtil.getF...  [in template "digital-bw.web-resources_SERVLET_CONTEXT_/common_macros.ftl" in macro "showCopyright" at line 189, column 9]
	- Reached through: @common.showCopyright imageUrl=src al...  [in template "20115#20151#NEWS" in macro "showSlide" at line 687, column 13]
	- Reached through: @showSlide image=curMedium counter=cu...  [in template "20115#20151#NEWS" at line 288, column 64]
----
1<#-- @ftlvariable name="journalArticleLocalService" type="com.liferay.journal.service.JournalArticleLocalService" --> 
2<#-- @ftlvariable name="assetEntryLocalService" type="com.liferay.asset.kernel.service.AssetEntryLocalService" --> 
3<#-- @ftlvariable name="assetCategoryLocalService" type="com.liferay.asset.kernel.service.AssetCategoryLocalService" --> 
4<#-- @ftlvariable name="journalArticle" type="com.liferay.journal.model.JournalArticle" --> 
5<#-- @ftlvariable name="assetEntry" type="com.liferay.asset.kernel.model.AssetEntry" --> 
6<#-- @ftlvariable name="assetCategories" type="java.util.List<liferay.asset.kernel.model.AssetCategory>" --> 
7<#-- @ftlvariable name="companyLocalService" type="com.liferay.portal.kernel.service.CompanyLocalService" --> 
8<#-- @ftlvariable name="groupLocalService" type="com.liferay.portal.kernel.service.GroupLocalService" --> 
9<#-- @ftlvariable name="dlAppServiceUtil" type="com.liferay.document.library.kernel.service.DLAppService" --> 
10 
11<#import "/digital-bw.web-resources_SERVLET_CONTEXT_/common_macros.ftl" as common> 
12 
13<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
14<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
15<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
16 
17<#assign companyLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.CompanyLocalService") /> 
18<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") /> 
19<#assign layoutSetLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutSetLocalService") /> 
20 
21<#assign dlAppServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")> 
22 
23<#assign journalArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
24<#assign resourcePrimKey = journalArticle.resourcePrimKey /> 
25<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourcePrimKey) /> 
26<#assign assetCategories = assetCategoryLocalService.getAssetEntryAssetCategories(assetEntry.entryId) /> 
27 
28<#assign serviceContextThreadLocal = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"] /> 
29<#assign serviceContext = serviceContextThreadLocal.getServiceContext() /> 
30<#assign httpServletRequest = serviceContext.getRequest() /> 
31 
32<#assign namespace = randomNamespace /> 
33<#assign title = .vars['reserved-article-title'].data /> 
34 
35<#assign company = companyLocalService.getCompany(portal.defaultCompanyId) /> 
36<#assign companyGroup = company.group /> 
37<#assign logoFolder = dlAppServiceUtil.getFolder(companyGroup.groupId, 0, "logo") /> 
38 
39<#switch portal.getPortalURL(themeDisplay)> 
40    <#case "https://digital-bw.web.bwl.de"> 
41    <#case "https://digital-bw.landbw.de"> 
42    <#case "https://www.digital-bw.de"> 
43        <#assign domainHost = "http://web-digital-bw-liferay:8080" /> 
44        <#break> 
45    <#default> 
46        <#assign 
47            domainHost = portal.getPortalURL(themeDisplay) 
48        /> 
49</#switch> 
50 
51<#assign currentURL = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
52<#assign 
53    layoutSet = layoutSetLocalService.getLayoutSet(groupId, layout.isPrivateLayout()) 
54    groupFriendlyURL = portal.getGroupFriendlyURL(layoutSet, themeDisplay) 
55    viewURL = "" 
56/> 
57<#if journalArticle.layoutUuid?has_content> 
58    <#assign 
59    viewURL = groupFriendlyURL + "/-/" + journalArticle.urlTitle 
60    /> 
61</#if> 
62 
63<#assign 
64    exportPdfURLObj = portletURLFactory.create(httpServletRequest, "com_liferay_journal_web_portlet_JournalPortlet", "2") 
65    void = exportPdfURLObj.setCopyCurrentRenderParameters(false) 
66    void = exportPdfURLObj.setResourceID("exportArticle") 
67    void = exportPdfURLObj.setParameter("groupId", scopeGroupId?c) 
68    void = exportPdfURLObj.setParameter("articleId", .vars['reserved-article-id'].data) 
69    void = exportPdfURLObj.setParameter("plid", themeDisplay.plid?c) 
70    void = exportPdfURLObj.setParameter("targetExtension", "pdf") 
71    void = exportPdfURLObj.setParameter("portletResource", themeDisplay.getPortletDisplay().getId()) 
72    exportPdfURL = exportPdfURLObj.toString() 
73    exportPdfURL = httpUtil.setParameter(exportPdfURL, "p_p_lifecycle", "2") 
74/> 
75 
76 
77<#if viewMode == "export"> 
78    <style type="text/css"> 
79        /* roboto-regular - latin */ 
80        @font-face { 
81            font-family: 'Roboto'; 
82            font-style: normal; 
83            font-weight: 400; 
84            src: url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.eot'); /* IE9 Compat Modes */ 
85            src: local('Roboto'), local('Roboto-Regular'), 
86            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 
87            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ 
88            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.woff') format('woff'), /* Modern Browsers */ 
89            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ 
90            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.svg#Roboto') format('svg'); /* Legacy iOS */ 
91
92        /* roboto-700 - latin */ 
93        @font-face { 
94            font-family: 'Roboto'; 
95            font-style: normal; 
96            font-weight: 700; 
97            src: url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.eot'); /* IE9 Compat Modes */ 
98            src: local('Roboto Bold'), local('Roboto-Bold'), 
99            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 
100            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ 
101            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.woff') format('woff'), /* Modern Browsers */ 
102            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ 
103            url('${domainHost}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.svg#Roboto') format('svg'); /* Legacy iOS */ 
104
105 
106        /* montserrat-300 - latin */ 
107        @font-face { 
108            font-family: 'Montserrat'; 
109            font-style: normal; 
110            font-weight: 300; 
111            src: url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.eot'); /* IE9 Compat Modes */ 
112            src: local('Montserrat Light'), local('Montserrat-Light'), 
113            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 
114            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.woff2') format('woff2'), /* Super Modern Browsers */ 
115            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.woff') format('woff'), /* Modern Browsers */ 
116            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */ 
117            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.svg#Montserrat') format('svg'), /* Legacy iOS */ 
118
119        /* montserrat-regular - latin */ 
120        @font-face { 
121            font-family: 'Montserrat'; 
122            font-style: normal; 
123            font-weight: 400; 
124            src: url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.eot'); /* IE9 Compat Modes */ 
125            src: local('Montserrat Regular'), local('Montserrat-Regular'), 
126            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 
127            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ 
128            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.woff') format('woff'), /* Modern Browsers */ 
129            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ 
130            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.svg#Montserrat') format('svg'); /* Legacy iOS */ 
131
132        /* montserrat-700 - latin */ 
133        @font-face { 
134            font-family: 'Montserrat'; 
135            font-style: normal; 
136            font-weight: 700; 
137            src: url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.eot'); /* IE9 Compat Modes */ 
138            src: local('Montserrat Bold'), local('Montserrat-Bold'), 
139            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 
140            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ 
141            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.woff') format('woff'), /* Modern Browsers */ 
142            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ 
143            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.svg#Montserrat') format('svg'); /* Legacy iOS */ 
144
145        /* montserrat-700italic - latin */ 
146        @font-face { 
147            font-family: 'Montserrat'; 
148            font-style: italic; 
149            font-weight: 700; 
150            src: url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin-700italic.eot'); /* IE9 Compat Modes */ 
151            src: local('Montserrat Bold Italic'), local('Montserrat-BoldItalic'), 
152            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 
153            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.woff2') format('woff2'), /* Super Modern Browsers */ 
154            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.woff') format('woff'), /* Modern Browsers */ 
155            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.ttf') format('truetype'), /* Safari, Android, iOS */ 
156            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.svg#Montserrat') format('svg'); /* Legacy iOS */ 
157
158 
159        /* montserrat-italic - latin */ 
160        @font-face { 
161            font-family: 'Montserrat'; 
162            font-style: italic; 
163            font-weight: 400; 
164            src: url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin-italic.eot'); /* IE9 Compat Modes */ 
165            src: local('Montserrat Italic'), local('Montserrat-Italic'), 
166            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 
167            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */ 
168            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.woff') format('woff'), /* Modern Browsers */ 
169            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */ 
170            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.svg#Montserrat') format('svg'); /* Legacy iOS */ 
171
172 
173        /* montserrat-300italic - latin */ 
174        @font-face { 
175            font-family: 'Montserrat'; 
176            font-style: italic; 
177            font-weight: 300; 
178            src: url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.eot'); /* IE9 Compat Modes */ 
179            src: local('Montserrat Light Italic'), local('Montserrat-LightItalic'), 
180            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 
181            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.woff2') format('woff2'), /* Super Modern Browsers */ 
182            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.woff') format('woff'), /* Modern Browsers */ 
183            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.ttf') format('truetype'), /* Safari, Android, iOS */ 
184            url('${domainHost}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.svg#Montserrat') format('svg'); /* Legacy iOS */ 
185
186 
187 
188        h1, h2, h3, h4, h5, h6{ 
189            font-family: 'Montserrat', Helvetica, Arial, sans-serif; 
190
191        body { 
192            margin:0; 
193            padding:0; 
194            -webkit-text-size-adjust:none; 
195            -ms-text-size-adjust:none; 
196 
197            font-family: 'Roboto', Helvetica, Arial, sans-serif; 
198
199 
200        a, a:hover, a:focus, a:active { 
201            color: #202240; 
202
203 
204        .summary { 
205            font-size: 1.4em; 
206            font-weight: bold; 
207
208    </style> 
209    <title>${title}</title> 
210</#if> 
211 
212<div class="news news-details" id="${namespace}" itemscope itemtype="http://schema.org/NewsArticle"> 
213    <#assign articleDisplayDate = .vars['reserved-article-display-date'].data /> 
214    <#assign originalLocale = .locale> 
215    <#setting locale = localeUtil.getDefault()> 
216    <#assign articleDisplayDate = articleDisplayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
217    <#setting locale = originalLocale> 
218    <#assign isoDateFormat = dateFormatFactory.getSimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ") /> 
219 
220    <#if viewMode == "export"> 
221        <div class="asset-headline"> 
222            <b>${articleDisplayDate?string("dd.MM.yyyy")}</b> 
223            <h1>${title}</h1> 
224        </div> 
225    </#if> 
226 
227    <#if viewMode == "view"> 
228        <@liferay_util["html-top"] outputKey="opengraph"> 
229            <meta property="og:title" content="${title?trim}" /> 
230            <meta property="og:description" content="${.vars['reserved-article-description'].data}" /> 
231            <meta property="og:url" content="${viewURL}" /> 
232            <meta property="og:type" content="article" /> 
233            <meta property="article:published_time" content="${isoDateFormat.format(articleDisplayDate)}" /> 
234 
235            <#if showFlexDelimiter??> 
236                <#if showFlexDelimiter.showBigPicture.imageBigpicture??> 
237                    <#assign 
238                    image = showFlexDelimiter.showBigPicture.imageBigpicture.siblings[0] 
239                    imageUrl = image.data 
240                    alt = image.getAttribute("alt")!"DigitalBW News Artikel" 
241                    /> 
242                    <meta property="og:image" content="${portal.getPortalURL(themeDisplay)}${imageUrl}" /> 
243                    <meta property="og:image:alt" content="${alt}" /> 
244                </#if> 
245            </#if> 
246        </@> 
247    </#if> 
248 
249    <span itemprop="name" content="${title?trim}"></span> 
250    <span itemprop="description" content="${.vars['reserved-article-description'].data}"></span> 
251    <span itemprop="datePublished" content="${isoDateFormat.format(articleDisplayDate)}"></span> 
252 
253    <span itemprop="headline" content="${title}"></span> 
254    <#if source?? && source.data?has_content> 
255        <span itemprop="author" content="${source.data}"></span> 
256        <span itemprop="publisher" itemscope itemtype="http://schema.org/Organization"> 
257            <span itemprop="name" content="${source.data}"></span> 
258            <#if srcLogo?? && srcLogo.data?has_content> 
259                <span itemprop="logo" content="${portal.getPortalURL(themeDisplay)}${srcLogo.data}"></span> 
260            <#elseif srcLogoSelect?? && srcLogoSelect?has_content> 
261                <span itemprop="logo" content="${portal.getPortalURL(themeDisplay)}/documents/${companyGroup.groupId}/${logoFolder.folderId}/${srcLogoSelect.data}.jpg"></span> 
262            </#if> 
263        </span> 
264    </#if> 
265 
266    <div class="row"> 
267        <div class="col-md-12"> 
268            <header> 
269                <div class="summary"> 
270                    ${.vars['reserved-article-description'].getData()} 
271                </div> 
272            </header> 
273        </div> 
274    </div> 
275    <div class="row"> 
276        <div class="col-md-12"> 
277            <article class="news-desktop"> 
278                <#if showFlexDelimiter??> 
279                    <#if showFlexDelimiter.showBigPicture.imageBigpicture??> 
280                        <#if viewMode == "view"> 
281                                <div class="image-gallery"> 
282                                    <div class="row"> 
283                                        <div id="${namespace}carousel"> 
284                                            <div class="carousel"> 
285                                                <div class="carousel-inner"> 
286                                                    <#list showFlexDelimiter.showBigPicture.imageBigpicture.siblings as curMedium> 
287                                                        <#if (curMedium?? && curMedium.data?has_content) || (curMedium.youtubeurlBigpicture?? && curMedium.youtubeurlBigpicture.data?has_content)> 
288                                                               <@showSlide image=curMedium counter=curMedium?counter youtubeurl=curMedium.youtubeurlBigpicture externalvideo=curMedium.externalvideo/> 
289                                                        </#if> 
290                                                    </#list> 
291                                                </div> 
292                                            </div> 
293                                        </div> 
294                                    </div> 
295 
296                                   <#if (showFlexDelimiter.showBigPicture.imageBigpicture.siblings?size >1)> 
297                                        <div class="row"> 
298                                            <ul class="list-unstyled"> 
299 
300                                                <#list showFlexDelimiter.showBigPicture.imageBigpicture.siblings as curMedium> 
301                                                    <#if (curMedium?counter <5)> 
302                                                    <#if (curMedium??  && curMedium.data?has_content) || (curMedium.youtubeurlBigpicture?? && curMedium.youtubeurlBigpicture.data?has_content)> 
303                                                        <@showGallery image=curMedium counter=curMedium?counter youtubeurl=curMedium.youtubeurlBigpicture /> 
304                                                    </#if> 
305                                                    </#if> 
306                                                </#list> 
307                                            </ul> 
308                                        </div> 
309                                   </#if> 
310                                </div> 
311                        <#elseif viewMode == "export"> 
312                            <div class="image-gallery"> 
313                                <br/> 
314                                <#list showFlexDelimiter.showBigPicture.imageBigpicture.siblings as curMedium> 
315                                    <#if (curMedium?? && curMedium.data?has_content)> 
316                                        <@createExportImageTag image=curMedium /> 
317                                    </#if> 
318                                </#list> 
319                            </div> 
320                        </#if> 
321                    </#if> 
322                </#if> 
323                <section class="article-body"> 
324                    <div itemprop="articleBody"> 
325                        <#if showFlexDelimiter??> 
326                            <#if showFlexDelimiter.showBigPicture.txtBigpicture?? && showFlexDelimiter.showBigPicture.txtBigpicture.data?has_content> 
327                                ${showFlexDelimiter.showBigPicture.txtBigpicture.data} 
328                            </#if> 
329                        </#if> 
330                    </div> 
331                    <#if viewMode == "view"> 
332                    <br style="clear:both"> 
333                    <p class="source"> 
334                        <a style="text-decoration:none;" href="${exportPdfURL}" target="_blank"><i class="mdi mdi-download"></i>&nbsp;<@liferay["language"] key="save-as-pdf" /></a> 
335                    </p> 
336                    </#if> 
337                </section> 
338 
339 
340            </article> 
341 
342            <#if viewMode == "view"> 
343                <article class="news-mobile"> 
344                    <#if showFlexDelimiter??> 
345                        <#if showFlexDelimiter.showBigPicture.imageBigpicture??> 
346                            <div class="image-gallery"> 
347                                <div class="row"> 
348                                    <div class="col-md-12"> 
349                                        <#if (showFlexDelimiter.showBigPicture.imageBigpicture.siblings?size >1)> 
350                                        <div class="swiper-container news-swiper"> 
351                                            <div class="swiper-wrapper"> 
352                                                <#list showFlexDelimiter.showBigPicture.imageBigpicture.siblings as curMedium> 
353                                                    <#if (curMedium?? && curMedium.data?has_content) || (curMedium.youtubeurlBigpicture?? && curMedium.youtubeurlBigpicture.data?has_content)> 
354                                                        <@showSlide image=curMedium counter=curMedium?counter youtubeurl=curMedium.youtubeurlBigpicture externalvideo=curMedium.externalvideo/> 
355                                                    </#if> 
356                                                </#list> 
357                                            </div> 
358                                            <div class="swiper-pagination"></div> 
359                                        </div> 
360                                        <#else> 
361                                            <#list showFlexDelimiter.showBigPicture.imageBigpicture.siblings as curMedium> 
362                                                <#if (curMedium?? && curMedium.data?has_content) || (curMedium.youtubeurlBigpicture?? && curMedium.youtubeurlBigpicture.data?has_content)> 
363                                                    <@showSlide image=curMedium counter=curMedium?counter youtubeurl=curMedium.youtubeurlBigpicture externalvideo=curMedium.externalvideo/> 
364                                                </#if> 
365                                            </#list> 
366                                        </#if> 
367                                    </div> 
368                                </div> 
369                            </div> 
370                        </#if> 
371                    </#if> 
372 
373                    <section class="article-body"> 
374                        <#if showFlexDelimiter??> 
375                            <#if showFlexDelimiter.showBigPicture.txtBigpicture?? && showFlexDelimiter.showBigPicture.txtBigpicture.data?has_content> 
376                                ${showFlexDelimiter.showBigPicture.txtBigpicture.data} 
377                            </#if> 
378                        </#if> 
379                         <#if viewMode == "view"> 
380                         <br> 
381                             <p class="source"> 
382                        <a href="${exportPdfURL}" target="_blank"><i class="mdi mdi-download"></i>&nbsp;<@liferay["language"] key="save-as-pdf" /></a> 
383                    </p> 
384                         </#if> 
385                    </section> 
386                </article> 
387            </#if> 
388            <footer> 
389                <div class="row"> 
390                    <div class="col-xs-3 col-md-2"> 
391                        <#if srcLogo?? && srcLogo.data?has_content> 
392                            <#if viewMode == "view"> 
393                                <img 
394                                        src="${portal.getPortalURL(themeDisplay)}${srcLogo.data}" 
395                                        class="img-responsive pull-left logo-image" 
396                                        alt="" 
397                                /> 
398                            <#elseif viewMode == "export"> 
399                                <@createExportImageTag image=srcLogo /> 
400                            </#if> 
401                        <#elseif srcLogoSelect?? && srcLogoSelect.data?has_content> 
402                            <#assign filename = "${srcLogoSelect.data}.jpg" /> 
403                            <#if srcLogoSelect.data == "cat"> 
404                                <#assign filename = "Cat_handy.svg" /> 
405                            </#if> 
406 
407                            <img 
408                                    src="${portal.getPortalURL(themeDisplay)}/documents/${companyGroup.groupId}/${logoFolder.folderId}/${filename}" 
409                                    class="img-responsive pull-left" 
410                                    alt="" 
411                            /> 
412                        </#if> 
413                            </div> 
414                            <div class="col-xs-9 col-md-6"> 
415                        <#if source?? && source.data?has_content> 
416                            <p class="source"> 
417                                <@liferay["language_format"] arguments="${source.data}" key="more-at-x" /> 
418                            </p> 
419                        </#if> 
420                        <#if timetoread?? && timetoread.data?has_content> 
421                            <p class="time-to-read"> 
422                                <@liferay["language_format"] arguments="${timetoread.data}" key="time-to-read-x" /> 
423                            </p> 
424                        </#if> 
425                    </div> 
426                    <#if viewMode == "view"> 
427                        <div class="col-xs-9 col-xs-offset-3 col-md-4 col-md-offset-0"> 
428                            <#if srcUrl?? && srcUrl.data?has_content> 
429                                <#assign linkText><@liferay.language key="go-to-article" /></#assign> 
430                                <#if srcUrlLinkText?? && srcUrlLinkText.data?has_content> 
431                                    <#assign linkText = srcUrlLinkText.data /> 
432                                </#if> 
433                                <a href="${srcUrl.data}" target="_blank" class="btn btn-outline" title="${linkText}"> 
434                                    ${linkText} 
435 
436                                    <i class="svg-icon open-in-new blue-button icomoon-button_link_external"></i> 
437                                </a> 
438                            </#if> 
439                        </div> 
440                    <#elseif viewMode == "export"> 
441                        <p align="center"> 
442                            <a href="${viewURL}">${viewURL}</a> 
443                        </p> 
444                    </#if> 
445                </div> 
446            </footer> 
447        </div> 
448    </div> 
449</div> 
450 
451<#if viewMode == "view"> 
452    <div class="share-buttons-section"> 
453        <div class="max-width"> 
454            <div class="share-buttons"> 
455                <span class="text"><@liferay["language"] key="share" /></span> 
456                <@liferay_ui["social-bookmarks"] 
457                displayStyle="simple" 
458                target="_blank" 
459                title="${title}" 
460                url="${portal.getCanonicalURL(currentURL, themeDisplay, layout)}" 
461                /> 
462 
463            </div> 
464        </div> 
465    </div> 
466</#if> 
467 
468<#if viewMode == "view"> 
469    <script> 
470        initSwiper('news-swiper', '${namespace}'); 
471    </script> 
472 
473    <script type="text/javascript"> 
474        var initializeCarousel = function() { 
475            $('#${namespace}carousel').carousel( 
476
477                        interval: 5000 
478
479            ); 
480 
481            $('[id^=${namespace}carousel-selector-]').click( 
482                    function() { 
483                        var selector = $(this).attr('id'); 
484                        try { 
485                            var slideNumber = /-(\d+)$/.exec(selector)[1]; 
486                            $('#${namespace}carousel').carousel(parseInt(slideNumber)); 
487                        } catch (e) { 
488                            console.log(e); 
489
490
491
492        }; 
493 
494        $(document).ready(initializeCarousel); 
495        Liferay.on('endNavigate', initializeCarousel); 
496 
497        var initializeVideoPopup = function () { 
498            AUI().use('aui-base', 'aui-io-plugin-deprecated', 'liferay-util-window', 'aui-dialog-iframe-deprecated', function (A) { 
499                A.all('.video-link-popup').each(function (elem) { 
500                    elem.on( 
501                            'click', 
502                            function (e) { 
503                                e.preventDefault(); 
504                                var modal; 
505 
506                                var isMobile = Liferay.Browser.isMobile(); 
507 
508                                var externalvideo = e.currentTarget.getAttribute('data-externalvideo'); 
509                                var youtubeId = e.currentTarget.getAttribute('data-youtube-id'); 
510                                var youtubeUrl = 'https://www.youtube-nocookie.com/embed/'+ youtubeId +'?autoplay=1&rel=0&amp;controls=2&amp;showinfo=0&modestbranding=1'; 
511 
512                                var width = (window.innerWidth > 0) ? window.innerWidth : screen.width; 
513                                var height = width * 0.5625; 
514 
515                                var content = ""; 
516 
517                                if (isMobile) { 
518 
519                                    if (externalvideo) { 
520                                        content = '<div class="embed-container">' + externalvideo + '</div>'; 
521                                    } else { 
522                                        content = '<iframe ' + 
523                                        'src="' + youtubeUrl + '" ' + 
524                                        'frameborder="0" ' + 
525                                        'width="' + width + '" ' + 
526                                        'height="' + height + '" ' + 
527                                        'allow="autoplay; encrypted-media" ' + 
528                                        'allowfullscreen' + 
529                                        '></iframe>'; 
530
531 
532                                    modal = new A.Modal( 
533
534                                            bodyContent: '<div class="mobile-video-container">' + 
535                                                content + 
536                                                '</div>', 
537                                            destroyOnHide: true, 
538                                            centered: true, 
539                                            modal: true, 
540                                            render: '#mobile-videos-modal', 
541                                            width: '100%', 
542                                            height: '100%', 
543                                            on: { 
544                                                render: function () { 
545                                                    var docStyle = document.documentElement.style; 
546                                                    var _this = this; 
547                                                    docStyle.setProperty('pointer-events', 'none'); 
548                                                    docStyle.setProperty('touch-action', 'none'); 
549                                                    docStyle.setProperty('overflow-y', 'hidden'); 
550 
551                                                    window.history.pushState(null, 'Video Popup', 'video-popup'); 
552                                                    window.onpopstate = function () { 
553                                                        _this.destroy(); 
554                                                    }; 
555                                                }, 
556                                                destroy: function () { 
557                                                    var docStyle = document.documentElement.style; 
558                                                    docStyle.removeProperty('pointer-events'); 
559                                                    docStyle.removeProperty('touch-action'); 
560                                                    docStyle.removeProperty('overflow-y'); 
561 
562                                                    window.onpopstate = null; 
563 
564                                                    var pathName = location.pathname; 
565                                                    if (pathName.indexOf('video-popup') > -1) { 
566                                                        history.back(); 
567
568
569
570
571                                    ).render(); 
572                                } else { 
573                                    if (externalvideo) { 
574                                        content = '<div class="embed-container">' + externalvideo + '</div>'; 
575                                    } else { 
576                                        content = ' <iframe src="https://www.youtube-nocookie.com/embed/' + youtubeId + '?autoplay=1&rel=0&amp;controls=2&amp;showinfo=0&modestbranding=1"' + 
577                                            '         frameborder="0"' + 
578                                            '         allow="autoplay; encrypted-media"' + 
579                                            '         allowfullscreen' + 
580                                            '         width="720"' + 
581                                            '         height="560"' + 
582                                            ' >' + 
583                                            ' </iframe>'; 
584
585 
586                                    modal = Liferay.Util.openWindow( 
587
588                                            dialog: { 
589                                                width: width * 0.5, 
590                                                height: height * 0.5, 
591                                                centered: true, 
592                                                constrain2view: true, 
593                                                modal: true, 
594                                                resizable: false, 
595                                                moveable: false, 
596                                                destroyOnHide: true, 
597                                                close: true, 
598                                                cssClass: 'dialog-iframe-popup', 
599                                                bodyContent: '<div class="asset-full-content videos youtube-video"><div class="video-player">' + 
600                                                    content + 
601                                                    '            <button type="button"\n' + 
602                                                    '                    class="btn-toolbar-button close close-content yui3-widget aui-button yui3-aui-button yui3-aui-button-content"\n' + 
603                                                    '                    id="video-close-btn" role="button" onclick="closePopup(\'videoplayer\');">\n' + 
604                                                    '                <svg class="lexicon-icon" focusable="false" viewBox="0 0 512 512">\n' + 
605                                                    '                    <title>Schließen</title>\n' + 
606                                                    '                    <path class="lexicon-icon-outline"\n' + 
607                                                    '                          d="M295.781 256l205.205-205.205c10.998-10.998 10.998-28.814 0-39.781-10.998-10.998-28.815-10.998-39.781 0l-205.205 205.205-205.205-205.238c-10.966-10.998-28.814-10.998-39.781 0-10.998 10.998-10.998 28.814 0 39.781l205.205 205.238-205.205 205.205c-10.998 10.998-10.998 28.815 0 39.781 5.467 5.531 12.671 8.265 19.874 8.265s14.407-2.734 19.907-8.233l205.205-205.238 205.205 205.205c5.5 5.5 12.703 8.233 19.906 8.233s14.407-2.734 19.906-8.233c10.998-10.998 10.998-28.815 0-39.781l-205.238-205.205z"></path>\n' + 
608                                                    '                </svg>\n' + 
609                                                    '            </button>\n' + 
610                                                    '</div></div>' 
611                                            }, 
612                                            dialogIframe: { 
613                                                scrolling: "no", 
614                                                verticalscrolling: "no", 
615                                                gutter: { 
616                                                    bottom: "0", 
617                                                    left: "0", 
618                                                    right: "0", 
619                                                    top: "0" 
620                                                }, 
621                                                on: { 
622                                                    load: function (e) { 
623                                                        document.getElementById(e.windowName).setAttribute("scrolling", "no"); 
624                                                        $('#videoplayer').find('.modal-content').find('.modal-header').css('display', 'none'); 
625                                                        $("#" + e.windowName).contents().find("html").css("overflow", "hidden"); 
626                                                        this._host._fillHeight(); 
627
628
629                                            }, 
630                                            id: 'videoplayer' 
631
632                                    ); 
633
634                                return false; 
635
636                    ); 
637                }); 
638 
639                Liferay.provide(window, 'closePopup', function (dialogId) { 
640                            var dialog = Liferay.Util.Window.getById(dialogId); 
641                            dialog.destroy(); 
642                        }, 
643                        [ 'liferay-util-window' ] 
644                ); 
645            }); 
646        }; 
647 
648        $(document).ready(initializeVideoPopup); 
649        Liferay.on('endNavigate', initializeVideoPopup); 
650    </script> 
651 
652 
653</#if> 
654 
655<#macro showSlide image counter youtubeurl externalvideo=""> 
656    <#assign alt = "" /> 
657    <#assign href = "" /> 
658    <#assign src = "" /> 
659    <#assign target = "" /> 
660    <#assign isvideo = false /> 
661 
662    <#if youtubeurl?? && youtubeurl.data?has_content> 
663        <#assign youtubeId = getYoutubeId(youtubeurl.data) /> 
664        <#assign href = "https://www.youtube.com/watch?v=${youtubeId}" /> 
665        <#assign target = "_blank" /> 
666        <#assign src = "//i.ytimg.com/vi/${youtubeId}/maxresdefault.jpg" /> 
667        <#assign isvideo = true /> 
668    </#if> 
669    <#if image?? && image.data?has_content> 
670        <#assign src = portal.getPortalURL(themeDisplay) + image.data /> 
671        <#assign alt = image.getAttribute("alt")!"DigitalBW News Artikel" /> 
672    </#if> 
673    <#if externalvideo?? && externalvideo?has_content && externalvideo.data?has_content> 
674        <#assign isvideo = true /> 
675        <#assign href = "javascript:void(0);" /> 
676    </#if> 
677    <div class="swiper-slide item ${(counter==1)?then('active', '')}" data-slide-number="${counter - 1}"> 
678        <#if href?has_content> 
679            <a href="${href}" target="${target}" <#if isvideo>class="video-link-popup"</#if> <#if youtubeurl?? && youtubeurl.data?has_content>data-youtube-id="${youtubeId}"</#if> <#if externalvideo?? && externalvideo?has_content && externalvideo.data?has_content>data-externalvideo="${htmlUtil.escapeAttribute(externalvideo.data)}"</#if>> 
680                <@common.showCopyright imageUrl=src alt=alt/> 
681                <span itemprop="image" content="${src}"></span> 
682                <#if isvideo> 
683                    <div class="svg-icon play-icon"></div> 
684                </#if> 
685            </a> 
686        <#else> 
687            <@common.showCopyright imageUrl=src alt=alt/> 
688            <span itemprop="image" content="${src}"></span> 
689            <#if isvideo> 
690                <div class="svg-icon play-icon"></div> 
691            </#if> 
692        </#if> 
693    </div> 
694</#macro> 
695 
696<#macro showGallery image counter youtubeurl> 
697    <#assign alt = "" /> 
698    <#assign src = "" /> 
699    <#assign target = "" /> 
700 
701    <#if youtubeurl?? && youtubeurl.data?has_content> 
702        <#assign youtubeId = getYoutubeId(youtubeurl.data) /> 
703        <#assign target = "_blank" /> 
704        <#assign src = "//i.ytimg.com/vi/${youtubeId}/hqdefault.jpg" /> 
705    </#if> 
706    <#if image?? && image.data?has_content> 
707        <#assign src = httpUtil.addParameter(image.data, "imageThumbnail", 1) /> 
708        <#assign alt = image.getAttribute("alt")!"DigitalBW News Artikel" /> 
709    </#if> 
710 
711    <li class="col-md-3"> 
712        <a class="thumbnail" id="${namespace}carousel-selector-${counter-1}" href="javascript:void(0);"> 
713            <@common.showCopyright imageUrl=src alt=alt/> 
714        </a> 
715    </li> 
716</#macro> 
717 
718<#macro createExportImageTag image> 
719    <#assign 
720        imageUrl = image.data 
721        alt = image.getAttribute("alt")!"DigitalBW News Artikel" 
722        imageFileUid = stringUtil.extractLast(imageUrl, "/") 
723    /> 
724    <#if (stringUtil.extractFirst(imageFileUid, "t")??)> 
725        <#assign imageFileUid = stringUtil.extractFirst(imageFileUid, "t")/> 
726        <#assign imageFileUid= imageFileUid?substring(0,imageFileUid?length-1)/> 
727    </#if> 
728    <#assign 
729        dlAppService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") 
730        fileEntry = dlAppService.getFileEntryByUuidAndGroupId(imageFileUid,groupId) 
731        inputStream = fileEntry.getContentStream() 
732        imageModel = imageToolUtil.getImage(inputStream) 
733    /> 
734    <#assign 
735        width = imageModel.getWidth() 
736        height = imageModel.getHeight() 
737        aspectRatio = width / height 
738    /> 
739    <#if width gt 650> 
740        <#assign 
741            height = 650 / aspectRatio 
742            width = 650 
743        /> 
744    </#if> 
745    <#switch portal.getPortalURL(themeDisplay)> 
746        <#case "https://digital-bw.web.bwl.de"> 
747        <#case "https://digital-bw.landbw.de"> 
748        <#case "https://www.digital-bw.de"> 
749            <#assign domainHost = "http://web-digital-bw-liferay:8080" /> 
750            <#break> 
751        <#default> 
752            <#assign 
753                domainHost = portal.getPortalURL(themeDisplay) 
754            /> 
755    </#switch> 
756    <img src="${domainHost}${imageUrl}" alt="${htmlUtil.escapeAttribute(alt)}" title="${htmlUtil.escapeAttribute(alt)}" width="${width}" height="${height}"/> 
757</#macro> 
758 
759<#function getYoutubeId youtubeUrl> 
760    <#assign url = httpUtil.getPath(youtubeUrl) /> 
761    <#assign url = stringUtil.extractLast(url, '/') /> 
762    <#return url /> 
763</#function> 

Eventempfehlungen

Eventempfehlungen

Asset Publisher