Schulen machen mit

Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> httpServletRequest.getCookies()  [in template "20098#20124#ARTIKEL-HEADER" 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#ARTIKEL-HEADER" 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 
63        <h1 class="title">${title}</h1> 
64 
65        <#if Medientyp.getData()=="2" && Video.Vorschaubild.getData()!=""> 
66 
67            <#assign videoId=Video.YoutubeCode.getData()/> 
68 
69            <#if videoId?starts_with("http")> 
70                <#assign videoId = videoId?split("/")[3]> 
71            </#if> 
72 
73            <#if Video.Vorschaubild??> 
74 
75                <#if Video.Vorschaubild?has_content> 
76                    <#if viewMode == "view" || viewMode == "print"> 
77                        <div class="article-video"> 
78                            <#if viewMode == "view"> 
79                                <div class="video-box"> 
80                                <div class="video" style="background-image: url(${Video.Vorschaubild.getData()});background-size: cover;padding-bottom:50%; "> 
81                                    <#if youtubeEnabled> 
82                                        <div class="video-trigger-icon" data-source="${videoId}" 
83                                             title="Video abspielen"> 
84                                            <button style="border:none;" class="no-icon item-icon"> 
85                                                <span class="icon-um icon-um--play" 
86                                                      style="position:absolute; top:0; left:0;"></span> 
87                                            </button> 
88                                        </div> 
89                                    </#if> 
90                                </div> 
91                                <#if youtubeEnabled> 
92                                    <div class="video-trigger"> 
93                                        <p class="text-center video-trigger-overlay-text"> 
94                                            Um das Video zu sehen, müssen Sie es durch einen Klick aktivieren. 
95                                            Dadurch werden Informationen an Youtube übermittelt und unter Umständen dort 
96                                            verarbeitet. Bitte beachten Sie unsere Hinweise und Informationen zum <a 
97                                                    title="Zum Datenschutz" class="arrow-link" 
98                                                    href="<#if Video.Datenschutz.data?has_content>${Video.Datenschutz.getFriendlyUrl()}<#else>/datenschutz</#if>"><span 
99                                                        class="icon-um icon-um--chevron-right"></span><span 
100                                                        class="link-title">Datenschutz</span></a>. 
101                                        </p> 
102                                    </div> 
103                                    <div class="video-layer" style="display: none"> 
104                                        <iframe src="" frameborder="0" allowfullscreen="" width="960" 
105                                                height="480"></iframe> 
106                                    </div> 
107                                    </div> 
108                                </#if> 
109                            <#elseif viewMode == "print"> 
110                                <img src="${Video.Vorschaubild.getData()}" class="img-responsive"/> 
111                            </#if> 
112 
113                            <#if Video.Vorschaubild.BildunterschriftVideo.getData()!=""> 
114                                <div class="summary">${Video.Vorschaubild.BildunterschriftVideo.getData()}</div> 
115                            </#if> 
116                        </div> 
117                    <#elseif viewMode == "export"> 
118                        <@export.createExportImageTag jsonContent="${Video.Vorschaubild.data}" /> 
119                    </#if> 
120                </#if> 
121            </#if> 
122 
123 
124        <#else> 
125        <#--Foto--> 
126            <#if BildMitBildunterschrift??> 
127 
128                <#if BildMitBildunterschrift.getSiblings()?has_content> 
129 
130                    <#if viewMode == "view" || viewMode == "print"> 
131                        <#if (BildMitBildunterschrift.getSiblings()?size>1 && viewMode == "view") > 
132                            <@imageTextSlider/> 
133                        <#else> 
134                            <#list BildMitBildunterschrift.getSiblings() as cur_Bild> 
135                                <#if cur_Bild.Bild.getData()?has_content> 
136                                    <div class="teaser-image no-carousel title-image"> 
137                                        <@common.createImageTag jsonContent="${cur_Bild.Bild.data}"/> 
138 
139                                        <#if cur_Bild.Bild.Bildunterschrift.getData()!=""> 
140                                            <div class="summary">${cur_Bild.Bild.Bildunterschrift.getData()}</div> 
141                                        </#if> 
142                                    </div> 
143                                    <#if viewMode == "print"> 
144                                        <#break /> 
145                                    </#if> 
146                                </#if> 
147                            </#list> 
148                        </#if> 
149                    <#elseif viewMode == "export"> 
150                        <#assign FirstImage = BildMitBildunterschrift.siblings?first /> 
151 
152                        <#if FirstImage.Bild.data?has_content> 
153                            <@export.createExportImageTag jsonContent=FirstImage.Bild.data bildunterschrift=FirstImage.Bild.Bildunterschrift.data /> 
154                        </#if> 
155                    </#if> 
156 
157                </#if> 
158 
159            </#if> 
160 
161        </#if> 
162    </div> 
163</div> 
164 
165<#if viewMode == "print" || viewMode == "export"> 
166    <@includeArticleParts /> 
167</#if> 
168<#if viewMode == "print"> 
169    <style> 
170        @media print { 
171            @page { 
172                margin-bottom: 0; 
173
174
175    </style> 
176 
177    <div class="print-footer"> 
178        ${portal.getCanonicalURL(themeDisplay.getPortalURL() + themeDisplay.getURLCurrent(), themeDisplay, layout, true, false)} 
179    </div> 
180</#if> 
181<#if viewMode == "export"> 
182    <#assign url = portal.getCanonicalURL(themeDisplay.getPortalURL() + themeDisplay.getURLCurrent(), themeDisplay, layout, true, false) /> 
183    <div class="print-footer"> 
184        <hr color="#b2b2b0" size="1"/> 
185 
186        <p> 
187        <center>Originalseite: <a href="${url}">${url}</a></center> 
188        </p> 
189    </div> 
190</#if> 
191 
192<script> 
193    var updateVideoWrapper = function () { 
194        AUI().use('aui-base', function (A) { 
195            A.all('.video-box').each(function (elem) { 
196                elem.all('.video-trigger-icon').each(function (triggerElem) { 
197                    triggerElem.on( 
198                        'click', 
199                        function (event) { 
200                            if (event && event.target && event.target.get('nodeName') === 'A') { 
201                                return; 
202
203 
204                            var youtubeId = triggerElem.getData('source'); 
205                            var videoLayer = elem.one('.video-layer'); 
206                            var iframe = videoLayer.one('iframe'); 
207                            iframe.attr('src', 'https://www.youtube.com/embed/' + youtubeId); 
208                            triggerElem.hide(); 
209                            videoLayer.show(); 
210
211                    ); 
212                }); 
213            }); 
214        }); 
215    }; 
216 
217    Liferay.on('endNavigate', updateVideoWrapper); 
218    $(document).ready(updateVideoWrapper); 
219</script> 
220 
221<#macro imageTextSlider> 
222 
223    <section class="image-slider" id="slider_artikel"> 
224 
225        <div class="slides-list" aria-roledescription="Karusell"> 
226 
227            <#list BildMitBildunterschrift.getSiblings() as cur_images> 
228                <div class="slide" role="group" aria-roledescription="Folie" 
229                     aria-label="Folie ${cur_images?index + 1} von ${ BildMitBildunterschrift.getSiblings()?size}"> 
230                    <div class="image"> 
231                        <@common.createImageTag jsonContent="${cur_images.Bild.data}"/> 
232                    </div> 
233                    <#if cur_images.Bild.Bildunterschrift.getData()!=""> 
234                        <div class="summary"> 
235                            ${cur_images.Bild.Bildunterschrift.getData()} 
236                        </div> 
237                    </#if> 
238                </div> 
239            </#list> 
240 
241 
242        </div> 
243 
244    </section> 
245 
246</#macro> 
247 
248<@common.initializeSlider wrapper="#slider_artikel" container="#slider_artikel .slides-list" loop=false/> 
249 
250<#macro includeArticleParts> 
251    <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
252 
253    <#if article_parts?? && article_parts.article_part??> 
254        <#list article_parts.article_part.siblings as part> 
255            <#if part.data?has_content> 
256                <#assign 
257                contentInfo = part.data?eval 
258                contentArticle = journalArticleLocalService.fetchLatestArticle(getterUtil.getLong(contentInfo.classPK)) 
259                /> 
260 
261                ${journalContent.getContent(contentArticle.groupId, contentArticle.articleId, contentArticle.getDDMTemplateKey(), viewMode, locale.toString(), themeDisplay)} 
262            </#if> 
263        </#list> 
264    </#if> 
265</#macro> 
266 
267<#function getLatestModifiedDate> 
268    <#assign 
269    journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
270    journalArticle = journalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) 
271    modifiedDate = journalArticle.modifiedDate 
272    /> 
273    <#if article_parts?? && article_parts.article_part??> 
274        <#list article_parts.article_part.siblings as part> 
275            <#if part.data?has_content> 
276                <#assign 
277                contentInfo = part.data?eval 
278                contentArticle = journalArticleLocalService.fetchLatestArticle(getterUtil.getLong(contentInfo.classPK)) 
279                /> 
280                <#if contentArticle.modifiedDate?long gt modifiedDate?long> 
281                    <#assign modifiedDate = contentArticle.modifiedDate /> 
282                </#if> 
283            </#if> 
284        </#list> 
285    </#if> 
286 
287    <#return modifiedDate?datetime?string('dd.MM.yyyy') /> 
288</#function> 

Bringen Sie frischen Wind in Ihren Unterricht: Werden Sie mit Ihren Schülerinnen und Schülern Teil der diesjährigen Energiewendetage. Veranstalten Sie in gewisser zeitlicher Nähe zum dritten Septemberwochenende eine Schulstunde oder sogar einen kompletten Aktionstag mit Ihrer Klasse im Zeichen der Energiewende. Machen Sie dieses Generationenprojekt zum Teil Ihres Unterrichts. Hier sind Ihrer Fantasie keine Grenzen gesetzt – Beiträge aus allen Fachrichtungen sind herzlich willkommen.

Sie organisieren Ihr Projekt im Zeichen der Energiewende und wir unterstützen Sie bei organisatorischen Fragen. Des Weiteren statten wir Sie mit passenden Infomaterialien für Ihren Energiewendetag aus. Tragen Sie Ihr Projekt ganz unkompliziert in das Anmeldeformular ein. Das kostenfreie Infomaterial für Ihren Unterricht können Sie nach erfolgter Anmeldung hier bestellen. Ihre Fragen und Anliegen können Sie gerne mit uns abstimmen. Eine E-Mail genügt.

Wir wünschen Ihnen und Ihren Schülerinnen und Schülern schon jetzt viel Freude bei den diesjährigen Energiewendetagen. Schön, dass Sie dabei sind und mit uns gemeinsam die Energiewende vorantreiben!

Kennen Sie schon die Energiewende-Internetseite des Landes? Dort finden Sie zahlreiche Geschichten, Aspekte und Hintergründe über die Energiewende im Land. Vielleicht entdecken Sie beim Stöbern ein spannendes Thema, um Ihren Unterricht zu bereichern.