Gebärdensprache

Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> httpServletRequest.getCookies()  [in template "20098#20124#VIDEOS" at line 17, column 24]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign cookies = httpServletRequest...  [in template "20098#20124#VIDEOS" at line 17, column 5]
----
1<#import "/um-lr73-base-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" as common> 
2<#import "/um-lr73-base-portal.web-resources_SERVLET_CONTEXT_/export.ftl" as export> 
3 
4<@export.includeExportStyles /> 
5 
6<#assign domainHost = export.getDomainHost() /> 
7 
8<#assign youtubeEnabled = false /> 
9 
10<#if viewMode == "view"> 
11    <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
12    <#assign httpServletRequest = serviceContext.getRequest()> 
13    <#assign VOID = httpServletRequest.setAttribute("LIFERAY_SHARED_ARTICLE_HEADER_ID", .vars['reserved-article-id'].data) /> 
14    <#assign VOID = httpServletRequest.setAttribute("LIFERAY_SHARED_ARTICLE_HEADER_TITLE", .vars['reserved-article-title'].data) /> 
15    <#assign VOID = httpServletRequest.setAttribute("LIFERAY_SHARED_ARTICLE_HEADER_NAMESPACE", renderResponse.getNamespace()) /> 
16 
17    <#assign cookies = httpServletRequest.getCookies() /> 
18    <#if validator.isNotNull(cookies)> 
19        <#list cookies as cookie> 
20            <#if (cookie.name == "ACCEPTED_COOKIE_YOUTUBE_ENABLED")> 
21                <#if cookie.getValue() == "true"> 
22                    <#assign youtubeEnabled = true /> 
23                    <#break /> 
24                </#if> 
25            </#if> 
26        </#list> 
27    </#if> 
28</#if> 
29 
30<#assign title = .vars['reserved-article-title'].data /> 
31 
32<div class="article"> 
33    <div class="main-content"> 
34        <#if Spitzmarke?? && Spitzmarke.data?has_content> 
35            <#if viewMode == "view" || viewMode == "print"> 
36                <p class="spitzmarke"> 
37                    ${Spitzmarke.data} 
38                    <#if show_modified_date?? && getterUtil.getBoolean(show_modified_date.data)> 
39                        <span class="info pull-right">${getLatestModifiedDate()}</span> 
40                    </#if> 
41                </p> 
42            <#elseif viewMode == "export"> 
43                <div class="spitzmarke"> 
44                    <br/> 
45                    <table border="0" cellspacing="0" cellpadding="0" width="100%"> 
46                        <tr> 
47                            <td align="left" style="text-transform: uppercase"> 
48                                <b>${Spitzmarke.data}</b> 
49                            </td> 
50                            <#if show_modified_date?? && getterUtil.getBoolean(show_modified_date.data)> 
51                                <td align="right"> 
52                                    <b>${getLatestModifiedDate()}</b> 
53                                </td> 
54                            </#if> 
55                        </tr> 
56                    </table> 
57 
58                    <hr color="#b2b2b0" size="1"/> 
59                </div> 
60            </#if> 
61        </#if> 
62        <#if  hideTitle?? && hideTitle.data != "true"> 
63            <h1 class="title">${title}</h1> 
64        </#if> 
65 
66        <#if Video.getSiblings()?has_content> 
67            <#list Video.getSiblings() as cur_video> 
68                <#assign videoId=cur_video.YoutubeCode.getData()/> 
69                <#if videoId?starts_with("http")> 
70                    <#assign videoId = videoId?split("/")[3]> 
71                </#if> 
72                <#if cur_video.Vorschaubild??> 
73 
74                    <#if cur_video.Vorschaubild?has_content> 
75                        <#if viewMode == "view" || viewMode == "print"> 
76                            <div class="article-video"> 
77                                <#if cur_video.VideoTitle?has_content > 
78                                    <h2 class="video-title">${cur_video.VideoTitle.getData()}</h2> 
79                                </#if> 
80                                <#if viewMode == "view"> 
81                                    <div class="video-box"> 
82 
83                                        <div class="video" 
84                                             style="background-image: url(${cur_video.Vorschaubild.getData()}); background-size:cover; padding-bottom:50%;"> 
85 
86                                            <#if youtubeEnabled> 
87                                                <div class="video-trigger-icon" data-source="${videoId}" 
88                                                     title="Video abspielen"> 
89                                                    <button style="border:none;" class="no-icon item-icon"> 
90                                                        <span class="icon-um icon-um--play" 
91                                                              style="position:absolute; top:0; left:0;"></span> 
92                                                    </button> 
93                                                </div> 
94                                            </#if> 
95 
96                                        </div> 
97                                        <#if youtubeEnabled> 
98                                            <div class="video-trigger"> 
99 
100                                                <p class="text-center video-trigger-overlay-text"> 
101                                                    Um das Video zu sehen, müssen Sie es durch einen Klick aktivieren. 
102                                                    Dadurch werden Informationen an Youtube übermittelt und unter 
103                                                    Umständen dort verarbeitet. Bitte beachten Sie unsere Hinweise und Informationen 
104                                                    zum <a 
105                                                            title="Zum Datenschutz" class="arrow-link" 
106                                                            href="<#if cur_video.Datenschutz.data?has_content>${cur_video.Datenschutz.getFriendlyUrl()}<#else>/datenschutz</#if>"><span 
107                                                                class="icon-um icon-um--chevron-right"></span><span 
108                                                                class="link-title">Datenschutz</span></a>. 
109                                                </p> 
110                                            </div> 
111                                            <div class="video-layer" style="display: none"> 
112                                                <iframe src="" frameborder="0" allowfullscreen="" width="960" 
113                                                        height="480"></iframe> 
114                                            </div> 
115                                        </#if> 
116                                    </div> 
117                                <#elseif viewMode == "print"> 
118                                    <img src="${cur_video.Vorschaubild.getData()}" class="img-responsive"/> 
119                                </#if> 
120 
121                                <#if cur_video.Vorschaubild.BildunterschriftVideo.getData()!=""> 
122                                    <div class="summary">${cur_video.Vorschaubild.BildunterschriftVideo.getData()}</div> 
123                                </#if> 
124                            </div> 
125                        <#elseif viewMode == "export"> 
126                            <@export.createExportImageTag jsonContent="${cur_video.Vorschaubild.data}" /> 
127                        </#if> 
128                    </#if> 
129                </#if> 
130            </#list> 
131        </#if> 
132 
133    </div> 
134</div> 
135 
136<#if viewMode == "print" || viewMode == "export"> 
137    <@includeArticleParts /> 
138</#if> 
139<#if viewMode == "print"> 
140    <style> 
141        @media print { 
142            @page { 
143                margin-bottom: 0; 
144
145
146    </style> 
147 
148    <div class="print-footer"> 
149        ${portal.getCanonicalURL(themeDisplay.getPortalURL() + themeDisplay.getURLCurrent(), themeDisplay, layout, true, false)} 
150    </div> 
151</#if> 
152<#if viewMode == "export"> 
153    <#assign url = portal.getCanonicalURL(themeDisplay.getPortalURL() + themeDisplay.getURLCurrent(), themeDisplay, layout, true, false) /> 
154    <div class="print-footer"> 
155        <hr color="#b2b2b0" size="1"/> 
156 
157        <p> 
158        <center>Originalseite: <a href="${url}">${url}</a></center> 
159        </p> 
160    </div> 
161</#if> 
162 
163<script> 
164    var updateVideoWrapper = function () { 
165        AUI().use('aui-base', function (A) { 
166            A.all('.video-box').each(function (elem) { 
167                elem.all('.video-trigger-icon').each(function (triggerElem) { 
168                    triggerElem.on( 
169                        'click', 
170                        function (event) { 
171                            if (event && event.target && event.target.get('nodeName') === 'A') { 
172                                return; 
173
174 
175                            var youtubeId = triggerElem.getData('source'); 
176                            var videoLayer = elem.one('.video-layer'); 
177                            var iframe = videoLayer.one('iframe'); 
178                            iframe.attr('src', 'https://www.youtube.com/embed/' + youtubeId); 
179                            triggerElem.hide(); 
180                            videoLayer.show(); 
181
182                    ); 
183                }); 
184            }); 
185        }); 
186    }; 
187 
188    Liferay.on('endNavigate', updateVideoWrapper); 
189    $(document).ready(updateVideoWrapper); 
190</script> 
191 
192<#macro includeArticleParts> 
193    <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
194 
195    <#if article_parts?? && article_parts.article_part??> 
196        <#list article_parts.article_part.siblings as part> 
197            <#if part.data?has_content> 
198                <#assign 
199                contentInfo = part.data?eval 
200                contentArticle = journalArticleLocalService.fetchLatestArticle(getterUtil.getLong(contentInfo.classPK)) 
201                /> 
202 
203                ${journalContent.getContent(contentArticle.groupId, contentArticle.articleId, contentArticle.getDDMTemplateKey(), viewMode, locale.toString(), themeDisplay)} 
204            </#if> 
205        </#list> 
206    </#if> 
207</#macro> 
208<#function getLatestModifiedDate> 
209    <#assign 
210    journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
211    journalArticle = journalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) 
212    modifiedDate = journalArticle.modifiedDate 
213    /> 
214    <#if article_parts?? && article_parts.article_part??> 
215        <#list article_parts.article_part.siblings as part> 
216            <#if part.data?has_content> 
217                <#assign 
218                contentInfo = part.data?eval 
219                contentArticle = journalArticleLocalService.fetchLatestArticle(getterUtil.getLong(contentInfo.classPK)) 
220                /> 
221                <#if contentArticle.modifiedDate?long gt modifiedDate?long> 
222                    <#assign modifiedDate = contentArticle.modifiedDate /> 
223                </#if> 
224            </#if> 
225        </#list> 
226    </#if> 
227 
228    <#return modifiedDate?datetime?string('dd.MM.yyyy') /> 
229</#function>