Grußwort des Ministerpräsidenten

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> 

Die Energiewende ist eine generationenübergreifende Aufgabe, die großes Engagement erfordert und zugleich auch viele Chancen bietet, insbesondere für Baden-Württemberg. Wir können diese Herausforderung nur bewältigen, wenn wir bereit sind, in unserem persönlichen Wirkungsumfeld Änderungen vorzunehmen und die Energiewende auch im Kleinen, ganz konkret vor Ort umzusetzen. Ausschlaggebend sind dabei die Kompetenz, das Engagement und die Beteiligung von Bürgerinnen und Bürgern, Verbänden, Unternehmen und Kommunen. Wir setzen auf Ihre Bereitschaft, die Energiewende gemeinsam zu gestalten.

Bei den nun schon traditionell am dritten Septemberwochenende in ganz Baden-Württemberg stattfindenden „Energiewendetagen“ haben die Menschen im Land die Gelegenheit, mehr zu den Themenkomplexen Strom- und Wärmeversorgung, Erneuerbare Energien, Energieeinsparung und Energieeffizienz zu erfahren. Sie sind herzlich eingeladen, eine der zahlreichen Veranstaltungen in Ihrer Nähe zu besuchen und dort die vielfältigen Facetten der Energiewende zu entdecken und zu erleben.

Ich freue mich, dass die vielen Akteure der Energiewende vor Ort auch in diesem Jahr wieder eine breite Palette an attraktiven Veranstaltungen anbieten, die über die Energiewende informieren und zum Mitmachen motivieren.

Mein ausdrücklicher Dank gilt den Organisatorinnen und Organisatoren dieser landesweiten Veranstaltungen. Ihrem herausragenden Engagement ist es zu verdanken, dass wir in Baden-Württemberg mit den Energiewendetagen Jahr für Jahr eine Erfolgsgeschichte schreiben können und so dem erklärten Ziel des Landes, einer der Schrittmacher der Energiewende zu sein, Stück um Stück näher kommen.

Winfried Kretschmann
Ministerpräsident des Landes Baden-Württemberg