Mit diesen Projekten können wir uns sehen lassen

Wie machen wir Gewässer besser? Wie erreichen wir eine gute Wasserqualität? Diese beiden Projekte geben Ihnen weitere Einblicke.

 
An error occurred while processing the template.
The following has evaluated to null or missing:
==> formField.getValue().getString(locale)  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" at line 56, column 49]

----
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 Bildnachweis = formField.getV...  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" in function "getCopyrightText" at line 56, column 25]
----
1<#import "/blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" as common> 
2 
3<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
4<#assign namespace = randomNamespace /> 
5 
6<section class="slider-hero ${(SliderTyp??)?then(SliderTyp.getData(), "")}" id="slider_${namespace}"> 
7    <div class="slides-list" aria-roledescription="Karusell"> 
8 
9        <#list Slide.getSiblings() as curSlide> 
10 
11            <#assign hasLink = false /> 
12            <#assign linkTarget = "" /> 
13            <#assign linkHref= "" /> 
14            <#assign linkText = "weiterlesen" /> 
15            <#assign linkTitle = "Artikel weiterlesen" /> 
16            <#assign slideUniqueId = namespace + '_' + curSlide?index /> 
17 
18 
19            <#if curSlide.Headline?? && curSlide.Headline.getData()?has_content> 
20                <#assign AltText = curSlide.Headline.getData() /> 
21            </#if> 
22 
23            <#assign Copyright = "" /> 
24            <#if (common.getCopyrightText(curSlide.Image.data)!"") != ""> 
25                <#assign Copyright = common.getCopyrightTag("",curSlide.Image.data) /> 
26            </#if> 
27 
28            <div class="slide" role="group" aria-roledescription="Folie" aria-label="Folie ${curSlide?index + 1} von ${Slide.siblings?size}"> 
29                <div class="slide-content"> 
30                    <#if (curSlide.Youtube?? && curSlide.Youtube.getData()?has_content) && (curSlide.Image?? && curSlide.Image?has_content)> 
31                            <#assign videoId = curSlide.Youtube.getData()/> 
32 
33                            <#if videoId?starts_with("http")> 
34                                <#assign videoId = videoId?split("/")[3]> 
35                            </#if> 
36 
37                            <div class="slide-content-video video" id="video_${slideUniqueId}"> 
38                                <img src="${common.getScaledImageURL(curSlide.Image.getData())}" data-src="${common.getScaledImageURL(curSlide.Image.getData())}" class="slide__image video-preview-image" id="video-preview-image_${slideUniqueId}" alt="${common.getAltText(curSlide.Image.data, AltText)}" /> 
39                                <div class="video-trigger-overlay video-trigger " id="video-trigger_${slideUniqueId}" data-tns-slide="tns1-item${curSlide?index}" data-videoid="${slideUniqueId}" data-source="${videoId}" title="Video abspielen"> 
40                                    <p class="text-center video-trigger-overlay-text video-trigger" data-videoid="${slideUniqueId}" > 
41                                        Um das Video zu sehen, müssen Sie dieses Feld durch einen Klick aktivieren. Dadurch werden 
42                                        Informationen an Youtube übermittelt und unter Umständen dort verarbeitet. Bitte beachten Sie unsere 
43                                        Hinweise und Informationen zum <a href="/datenschutz" target="_blank" 
44                                                                          class="no-icon">Datenschutz</a>. 
45                                    </p> 
46                                    <span class="icon-bg icon-bg--play video-trigger" data-videoid="${slideUniqueId}" ></span> 
47                                </div> 
48                                <div class="video-layer" style="display: none" id="video-layer_${slideUniqueId}"> 
49                                    <iframe class="video-frame" src="about:blank" allowfullscreen="" height="530" id="iframe_${slideUniqueId}"></iframe> 
50                                </div> 
51                            </div> 
52                        <#else> 
53                            <div class="slide-content-image image-with-caption"> 
54                                <img src="${common.getScaledImageURL(curSlide.Image.getData())}" data-src="${common.getScaledImageURL(curSlide.Image.getData())}" class="slide__image" alt="${common.getAltText(curSlide.Image.data, AltText)}"/> 
55                                ${Copyright} 
56                            </div> 
57                    </#if> 
58                </div> 
59            </div> 
60 
61        </#list> 
62    </div> 
63</section> 
64 
65<script> 
66 
67    var updateIframeHeight = function() { 
68        var dwidth = window.innerWidth; 
69        var videoHeight = dwidth*0.5625; 
70 
71        /* 
72        if (dwidth > 1600) { 
73            videoHeight = dwidth*0.40; 
74
75         */ 
76 
77        var videoFrames = document.getElementsByClassName('video-frame'); 
78        for (var i=0; i < videoFrames.length;i++) { 
79            videoFrames[i].setAttribute('height',videoHeight); 
80            videoFrames[i].style.height = videoHeight+'px'; 
81
82
83 
84    var updateVideoWrapper = function () { 
85 
86        var triggers = document.getElementsByClassName('video-trigger'); 
87 
88        for (var i=0; i < triggers.length;i++) { 
89            triggers[i].addEventListener('click',function(e) { 
90 
91                var triggersTarget = this.getAttribute('data-videoid'); 
92                var tnsSlide = this.getAttribute('data-tns-slide'); 
93 
94                var youtubeId = document.querySelector("#" + tnsSlide + ' #video-trigger_'+triggersTarget).getAttribute('data-source'); 
95                var videoLayer = document.querySelector("#" + tnsSlide + ' #video-layer_'+triggersTarget); 
96                var iframe = document.querySelector("#" + tnsSlide + ' #iframe_'+triggersTarget); 
97                iframe.setAttribute('src', 'https://www.youtube-nocookie.com/embed/' + youtubeId + '?autoplay=1&rel=0&cc_load_policy=1&modestbranding=0&enablejsapi=1'); 
98 
99                document.querySelector("#" + tnsSlide + ' #video-preview-image_'+triggersTarget).style.display='none'; 
100                document.querySelector("#" + tnsSlide + ' #video-trigger_'+triggersTarget).style.display='none'; 
101                videoLayer.style.display='block'; 
102            }); 
103
104    }; 
105 
106    window.addEventListener("load", function () { 
107        updateVideoWrapper(); 
108        updateIframeHeight(); 
109    }); 
110 
111    window.addEventListener("resize", function () { 
112        updateIframeHeight(); 
113    }); 
114 
115    // Liferay.on('endNavigate', updateVideoWrapper); 
116    // $(document).ready(updateVideoWrapper); 
117 
118    window.addEventListener("load", function () { 
119        function ${namespace}_updateInfo(info) { 
120            for (var i = 0; i < info.navItems.length; i++) { 
121                info.navItems[i].setAttribute('aria-label','Folie ' + (i+1)); 
122
123 
124            info.navItems[info.navCurrentIndex].setAttribute('aria-label','Folie ' + (info.navCurrentIndex + 1) + ' (aktuell)'); 
125 
126            info.controlsContainer.setAttribute('aria-label', 'Navigationselemente'); 
127            info.prevButton.setAttribute('aria-label','zur vorhergehenden Folie springen'); 
128            info.nextButton.setAttribute('aria-label','zur nächsten Folie springen'); 
129            info.navContainer.setAttribute('aria-label','Auswahl der Folien') 
130
131 
132        const imgStyle = document.querySelector('.image-slider-style'); 
133 
134        var slider = tns({ 
135            container: '#slider_${namespace} .slides-list', 
136            items: 1, 
137            slideBy: 'page', 
138            center: true, 
139            controlsPosition: 'bottom', 
140            navPosition: 'bottom', 
141            touch: true, 
142            mouseDrag: true, 
143            freezable: true, 
144            speed: 600, 
145            loop: false, 
146            arrowKeys: true, 
147            lazyload: true, 
148            autoHeight: true, 
149            lazyloadSelector: '.slide__image', 
150            autoplay: !!imgStyle, 
151            autoplayHoverPause: true, 
152            autoplayTimeout: 3500, 
153            autoplayText: [ 
154                "▶", 
155                "❚❚" 
156            ], 
157            controlsText: ['<span class="icon-bg icon-bg--arrow2-left"></span>','<span class="icon-bg icon-bg--arrow2-right"></span>'], 
158            onInit: function (info) { 
159                ${namespace}_updateInfo(info); 
160
161        }); 
162 
163        slider.events.on('indexChanged', function(info) { 
164            ${namespace}_updateInfo(info); 
165        }); 
166 
167        slider.events.on('transitionStart', function(info, eventName) { 
168            var currentSlideId = '#tns1-item' + info.navCurrentIndex; 
169 
170            var otherSlides = info.container.querySelectorAll('.tns-item:not(' + currentSlideId + ')') 
171 
172            otherSlides.forEach(function(slide) { 
173                var iframe = slide.querySelector( 'iframe'); 
174 
175                if (iframe != null) { 
176                    var src = iframe.getAttribute('src'); 
177                    if (src) { 
178                        if ((src.indexOf('youtube.com/embed') != -1) || (src.indexOf('youtube-nocookie.com/embed') != -1)) { 
179                            iframe.contentWindow.postMessage(JSON.stringify({ 
180                                'event': 'command', 
181                                'func': 'pauseVideo', 
182                                'args': [] 
183                            }), "*"); 
184
185
186
187            }); 
188        }); 
189        const mediaQuery = window.matchMedia('(max-width: 767px)') 
190        if (mediaQuery.matches) { 
191            const bulletList = document.querySelectorAll('.slider-hero .tns-nav'); 
192 
193            bulletList.forEach(bullet => { 
194                const slider = bullet.previousElementSibling.getBoundingClientRect(); 
195                const bulletNav = bullet.getBoundingClientRect(); 
196 
197                const bulletNavTop = bulletNav.top; 
198                const sliderTop = slider.top; 
199 
200                const arrowsPos = bulletNavTop - sliderTop - 5; 
201 
202                const prev = bullet.nextElementSibling.children[0]; 
203                const prevBtnWidth = prev.clientWidth; 
204                const next = bullet.nextElementSibling.children[1]; 
205 
206                const sliderControls = bullet.nextElementSibling; 
207                const firstBulletLeftSpace = bullet.firstElementChild.offsetLeft; 
208                const firstBulletWidth = bullet.firstElementChild.clientWidth; 
209                const lastBulletLeftSpace = bullet.lastElementChild.offsetLeft; 
210 
211                const nextBtnPos = lastBulletLeftSpace + 59; 
212                const prevBtnPos = firstBulletLeftSpace - prevBtnWidth - firstBulletWidth - 87; 
213 
214                const playPauseBtn = bullet.parentElement.firstElementChild; 
215                const playPauseBtnLeftPos = lastBulletLeftSpace + 15; 
216 
217                sliderControls.style.top = arrowsPos + 'px'; 
218 
219                next.style.left = nextBtnPos + 'px'; 
220 
221                prev.style.left = prevBtnPos + 'px'; 
222 
223                playPauseBtn.style.left = playPauseBtnLeftPos + 'px'; 
224 
225                console.log(sliderControls.style.top); 
226            }); 
227
228    }); 
229</script> 
 
 

Die revita­lisierte Rems überzeugt mit Wasser­qualität und Gewässer­ökologie

Vitale Gewässer sind vor allem für die dort lebenden Tiere und Pflanzen wichtig. Sie sorgen für den Erhalt der biologischen Vielfalt. Naturnahe Flüsse und Bäche sind aber auch für die Menschen von großem Nutzen – was uns oft gar nicht direkt bewusst ist. Wir unterschätzen häufig, welch hohen Naherholungswert vitale Gewässer für uns haben. Offensichtlicher ist dagegen der Nutzen bei Hochwasser. Denn vitale Gewässer schützen uns mit ihren natürlichen Überschwemmungsflächen vor einer Überflutung.

Die Rems lebt auf

Die Rems bei Winterbach zeigt sehr gut, welch großen Mehrwert dynamische Gewässer mit vielfältigen Strukturen für die Menschen vor Ort haben. Auf mehr als einem Kilometer Länge haben wir dem Fluss ein neues, naturnahes Bett gegeben. Zudem wurden Flachwasserbereiche und Kiesinseln angelegt und an steilen Ufern ein Lebensraum für die faszinierenden Eisvögel geschaffen. Die Rems hat hier ein neues Gesicht bekommen – und bietet nun eine neue Heimat für Tiere, Pflanzen und auch für die Menschen aus der Umgebung.

 
An error occurred while processing the template.
The following has evaluated to null or missing:
==> formField.getValue().getString(locale)  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" at line 56, column 49]

----
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 Bildnachweis = formField.getV...  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" in function "getCopyrightText" at line 56, column 25]
----
1<#import "/blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" as common> 
2 
3<#assign    namespace = randomNamespace 
4            align = "" 
5            AltText = "" 
6/> 
7 
8<#assign Copyright = "" /> 
9<#assign CopyrightMobile = "" /> 
10<#if (common.getCopyrightText(Image.data)!"") != ""> 
11    <#assign Copyright = common.getCopyrightTag("",Image.data) /> 
12</#if> 
13 
14<#if Fullwidth?? && getterUtil.getBoolean(Fullwidth.getData())> 
15    <#assign align = "image-large--fullwidth"/> 
16        <@imageInner align/> 
17    <#else> 
18        <#assign align = "image-large--centered"/> 
19        <div class="container"> 
20            <div class="row justify-content-center"> 
21                <div class="col-md-8"> 
22                    <@imageInner align/> 
23                </div> 
24            </div> 
25        </div> 
26</#if> 
27 
28 
29<#macro imageInner css> 
30    <#assign isSVG = false /> 
31    <#if SVG?? && SVG.getData()?has_content> 
32        <#assign isSVG = true> 
33    <#elseif Image?? && Image.data?has_content> 
34        <#if Image.data?contains(".svg")> 
35            <#assign isSVG = true> 
36        </#if> 
37    </#if> 
38 
39    <#assign hasMobileImageClass= "" /> 
40    <#if ImageMobile?? && ImageMobile.getData()?has_content> 
41        <#assign hasMobileImageClass= "image-with-mobile-alternative" /> 
42        <#if (common.getCopyrightText(ImageMobile.data)!"") != ""> 
43            <#assign CopyrightMobile = common.getCopyrightTag("",ImageMobile.data,"","mobile") /> 
44        </#if> 
45    </#if> 
46 
47 
48 
49    <section class="image-large image-with-caption ${css} <#if isSVG>no-border</#if>" id="image-large_${namespace}"> 
50        <div class="image-inner ${hasMobileImageClass}"> 
51            <#if SVG?? && SVG.getData()?has_content> 
52                <div class="slide-content-image no-border svg-image"> 
53                    ${SVG.getData()} 
54                </div> 
55            <#else> 
56                <#if Image?? && Image.getData()?has_content> 
57                    <#if Fullwidth?? && getterUtil.getBoolean(Fullwidth.getData())> 
58                        <#assign adaptiveImageFormat = "bg-image-large" /> 
59                    <#else> 
60                        <#assign adaptiveImageFormat = "bg-image-medium" /> 
61                    </#if> 
62                    <img src="${common.getScaledImageURL(Image.getData(), adaptiveImageFormat)}" 
63                         alt="${common.getAltText(Image.data)}" 
64                         class="image image--desktop" 
65                    /> 
66                    ${Copyright} 
67 
68                    <#if ImageMobile?? && ImageMobile.getData()?has_content> 
69                        <img src="${common.getScaledImageURL(ImageMobile.getData(), adaptiveImageFormat)}" 
70                             data-src="${common.getScaledImageURL(ImageMobile.getData(), adaptiveImageFormat)}" 
71                             class="image image--mobile" 
72                             alt="${AltText}" 
73                        /> 
74                        ${CopyrightMobile} 
75                    </#if> 
76 
77                </#if> 
78            </#if> 
79        </div> 
80    </section> 
81</#macro> 
„Ich bin mir sicher, dass Winterbach und das gesamte Remstal langfristig davon profitieren werden.“
Sven Müller, Bürgermeister Gemeinde Winterbach
 

„Vor allem der neu geschaffene, naturbelassene Lebensraum für Flora und Fauna hat unsere Rems ökologisch enorm aufgewertet. Die Natur ist hier am Fluss zum besonderen Highlight geworden. Einwohnerinnen und Einwohner sowie zahlreiche Gäste aus nah und fern können die Rems nun intensiver erleben – vor allem auch deshalb, weil der Fluss an diesem Abschnitt kaum einsehbar war.

Ob beim Spaziergang, beim Joggen oder auf der Radtour, die Menschen haben die Möglichkeit, sich am Wasser zu erholen und dabei die Natur zu genießen. Winterbach und das gesamte Remstal werden langfristig davon profitieren.“

 
 
Platzhalter 1
Platzhalter 2
Platzhalter Alt Text
Platzhalter Alt Text
 
 

Vorbild Kläranlage Karlsruhe: Bessere Wasserqualität durch neue Filtrationsanlage

Wenn wir die Phosphorbelastungen im Gewässer reduzieren, verbessern wir die Lebensbedingungen für eine Vielzahl der dort lebenden Tiere und Pflanzen und bewirken eine größere Artenvielfalt. Am Beispiel der Kläranlage Karlsruhe zeigen wir, wie eine gute Phosphorelimination mit einer Flockungsfiltration umgesetzt wurde.

Zukunftsfähige Kläranlage für Karlsruhe

Die Flockungsfiltration ist ein chemisch/mechanisches Verfahren, um gezielt möglichst viel Phosphor und weitere Feststoffe aus dem Wasser zu entfernen. Durch die geregelte Zugabe von Eisensalzen werden im Abwasser Flocken gebildet (sogenannte Metall-Hydroxid-Flocken). Kommen diese Flocken mit dem Phosphor im Abwasser in Kontakt, verbinden sie sich zu Metall-Phosphorverbindungen, die dann zum Beispiel in einem Sandfilter entfernt werden können.

Dr. Frank Mentrup, Oberbürgermeister von Karlsruhe, meint: „Gerade mit diesem Baustein wird ein zukunftsgerichteter fortschrittlicher Weg mit Vorbildfunktion für den Gewässerschutz eingeschlagen. Mit diesem Verfahren gelingt es, Stoffe zu entfernen, die die Ökosysteme in den Gewässern beeinflussen und verändern. Die Entnahme von Spurenstoffen im Prozess der Abwasserreinigung ist ein erklärtes umweltpolitisches Ziel der Landesregierung. Die Ausbaumaßnahmen in der Karlsruher Kläranlage entsprechen diesen Zielvorgaben.“

 
 
An error occurred while processing the template.
The following has evaluated to null or missing:
==> formField.getValue().getString(locale)  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" at line 22, column 43]

----
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 altTag = formField.getValue()...  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" in function "getAltText" at line 22, column 25]
----
1<#import "/blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" as common> 
2 
3<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
4<#assign namespace = randomNamespace /> 
5<#assign AltText = "" /> 
6<#assign Copyright = "" /> 
7 
8<#if AltTextImage?? && AltTextImage.getData()?has_content> 
9    <#assign AltText = AltTextImage.data /> 
10</#if> 
11 
12<#assign AltText = common.getAltText(ImageLarge.data, AltText) /> 
13<#if (Button.ButtonStyle?? && Button.ButtonStyle.getData()?has_content)> 
14    <#assign ButtonMarkup = common.getButtonMarkup(Button.ButtonInternalLink, Button.ButtonExternalLink, Button.ButtonText, Button.ButtonStyle.getData()) /> 
15    <#else> 
16    <#assign ButtonMarkup = common.getButtonMarkup(Button.ButtonInternalLink, Button.ButtonExternalLink, Button.ButtonText) /> 
17</#if> 
18 
19<#if ImageLarge?? && ImageLarge.data?has_content && (common.getCopyrightText(ImageLarge.data)!"") != ""> 
20    <#assign Copyright = common.getCopyrightTag("",ImageLarge.data) /> 
21</#if> 
22 
23 
24<section class="teaser"> 
25    <div class="colorable-bg"> 
26        <div class="container"> 
27            <div class="row justify-content-center"> 
28                <div class="col-md-6"> 
29                    <section class="teaser__content"> 
30                        <section class="image-large image-large--centered" id="image-large_${namespace}"> 
31                            <div class="image-inner image-with-caption"> 
32                                <#if SVG?? && SVG.getData()?has_content> 
33                                    <div class="slide-content-image no-border svg-image"> 
34                                        ${SVG.getData()} 
35                                    </div> 
36                                    <#else> 
37                                        <#if ImageLarge?? && ImageLarge.getData()?has_content> 
38                                            <img src="${common.getScaledImageURL(ImageLarge.getData(), "bg-image-medium")}" alt="${common.getAltText(ImageLarge.data)}" class="image"/> 
39                                            ${Copyright} 
40                                        </#if> 
41                                </#if> 
42                            </div> 
43                        </section> 
44                        <h2>${Headline.getData()}</h2> 
45                        <#if Text?? && Text.getData()?has_content> 
46                            <p class="teaser-text"> 
47                                ${Text.getData()} 
48                            </p> 
49                        </#if> 
50                        <#if Button.ButtonInternalLink.getData()?has_content || Button.ButtonExternalLink.getData()?has_content> 
51                            <div class="button-area"> 
52                                ${ButtonMarkup} 
53                            </div> 
54                        </#if> 
55                    </section> 
56                </div> 
57            </div> 
58        </div> 
59    </div> 
60 
61</section> 
 
 
An error occurred while processing the template.
The following has evaluated to null or missing:
==> formField.getValue().getString(locale)  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" at line 22, column 43]

----
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 altTag = formField.getValue()...  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" in function "getAltText" at line 22, column 25]
----
1<#import "/blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" as common> 
2 
3<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
4<#assign namespace = randomNamespace /> 
5<#assign AltText = "" /> 
6<#assign Copyright = "" /> 
7 
8<#if AltTextImage?? && AltTextImage.getData()?has_content> 
9    <#assign AltText = AltTextImage.data /> 
10</#if> 
11 
12<#assign AltText = common.getAltText(ImageLarge.data, AltText) /> 
13<#if (Button.ButtonStyle?? && Button.ButtonStyle.getData()?has_content)> 
14    <#assign ButtonMarkup = common.getButtonMarkup(Button.ButtonInternalLink, Button.ButtonExternalLink, Button.ButtonText, Button.ButtonStyle.getData()) /> 
15    <#else> 
16    <#assign ButtonMarkup = common.getButtonMarkup(Button.ButtonInternalLink, Button.ButtonExternalLink, Button.ButtonText) /> 
17</#if> 
18 
19<#if ImageLarge?? && ImageLarge.data?has_content && (common.getCopyrightText(ImageLarge.data)!"") != ""> 
20    <#assign Copyright = common.getCopyrightTag("",ImageLarge.data) /> 
21</#if> 
22 
23 
24<section class="teaser"> 
25    <div class="colorable-bg"> 
26        <div class="container"> 
27            <div class="row justify-content-center"> 
28                <div class="col-md-6"> 
29                    <section class="teaser__content"> 
30                        <section class="image-large image-large--centered" id="image-large_${namespace}"> 
31                            <div class="image-inner image-with-caption"> 
32                                <#if SVG?? && SVG.getData()?has_content> 
33                                    <div class="slide-content-image no-border svg-image"> 
34                                        ${SVG.getData()} 
35                                    </div> 
36                                    <#else> 
37                                        <#if ImageLarge?? && ImageLarge.getData()?has_content> 
38                                            <img src="${common.getScaledImageURL(ImageLarge.getData(), "bg-image-medium")}" alt="${common.getAltText(ImageLarge.data)}" class="image"/> 
39                                            ${Copyright} 
40                                        </#if> 
41                                </#if> 
42                            </div> 
43                        </section> 
44                        <h2>${Headline.getData()}</h2> 
45                        <#if Text?? && Text.getData()?has_content> 
46                            <p class="teaser-text"> 
47                                ${Text.getData()} 
48                            </p> 
49                        </#if> 
50                        <#if Button.ButtonInternalLink.getData()?has_content || Button.ButtonExternalLink.getData()?has_content> 
51                            <div class="button-area"> 
52                                ${ButtonMarkup} 
53                            </div> 
54                        </#if> 
55                    </section> 
56                </div> 
57            </div> 
58        </div> 
59    </div> 
60 
61</section>