Worum geht es?

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> 

Alljährlich können sich Bürgerinnen und Bürger ein ganzes Wochenende lang über die Themen erneuerbare Energien, Energiesparen, Energieeffizienz sowie Klimaschutz und die Reduzierung von Treibhausgasen informieren. Überall in Baden-Württemberg engagieren sich zahlreiche Akteure mit ihren Veranstaltungen, Projekten und Aktionen dafür, Energiethemen vor Ort lebendig zu machen, das Nachdenken über den Umgang mit Energie anzuregen und das Umdenken zu fördern.

Ihr Engagement zählt

Die Energiewendetage leben vom Engagement jedes Einzelnen: Mitgestalten ist nicht nur ausdrücklich erwünscht, sondern entscheidend für das Gemeinschaftsprojekt. Von Bürgerinitiativen über Verbände, von Stadtwerken über Unternehmen, von Kommunen bis zu Anlagenbetreibern – jeder kann mitmachen und seine Ideen in Aktionen und Veranstaltungen einer breiten Öffentlichkeit präsentieren.

Gemeinschaftsprojekt Energiewende vorantreiben

Mit den Energiewendetagen am 18. und 19. September 2021 zeigt das Ländle bereits zum 15. Mal, dass die Energiewende hier bereits in vollem Gang ist. In den vergangenen Jahren wurde in Baden-Württemberg vieles angestoßen und erste Etappen auf dem Weg zur Energiewende sind gemeistert.

Die Energiewende bleibt eines der großen und wichtigen Generationenprojekte unserer Zeit. Das Klimaschutzgesetz sieht vor, dass der Südwesten die Treibhausgasemissionen bis 2020 mindestens um ein Viertel im Vergleich zum Basisjahr 1990 verringert, bis 2030 um mindestens 42 Prozent, und bis 2050 um 90 Prozent. Dies kann nur mithilfe einer erheblichen Reduktion des Energieverbrauchs und einem raschen Ausbau der erneuerbaren Energien geschehen.

Sie möchten die Energiewendetage 2021 mitgestalten?

In diesem Sinne sind alle eingeladen, auch 2021 mit Ihrer Veranstaltung und Ihrer Aktion einen wertvollen Beitrag zu leisten, um am Gemeinschaftsprojekt Energiewende dranzubleiben und dieses noch weiter voranzutreiben.

Melden Sie gleich Ihre Aktion oder Veranstaltung bei uns an und machen Sie die Energiewendetage noch vielfältiger. Wir unterstützen Sie gerne mit vielen Serviceangeboten bei der Vorbereitung Ihrer Veranstaltung. Durch die frühzeitige Anmeldung zu den Energiewendetagen bewerben Sie Ihre Veranstaltung auch längerfristig auf der Internetseite der Energiewendetage Baden-Württemberg.

Auch in diesem Jahr ist vorgesehen, dass die Amtsspitze des Umweltministeriums an beiden Tagen einige Akteure vor Ort besuchen und sich über deren Aktivitäten informieren wird.

Sie möchten die Energiewendetage 2021 besuchen?

Sie möchten mehr zur Energiewende in Baden-Württemberg erfahren und wollen wissen, was in Ihrer Region vorangetrieben wird? Dann besuchen Sie doch Ihre lokalen Akteure vor Ort, zum Beispiel an einem Tag der offenen Tür, einer Anlagenführung oder einer Gewerbeschau. Auf unserer Karte können Sie sehen, wer in Ihrer Nähe an den Energiewendetagen Aktionen, Projekte und Veranstaltungen anbietet.