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]
	- Reached through: ${common.getAltText(curSlide.Image.da...  [in template "20097#20125#SLIDER-STARTPAGE" at line 42, column 60]
----
1<#import "/blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" as common> 
2 
3<#assign namespace = randomNamespace /> 
4 
5<section class="slider-startpage" id="slider_${namespace}" > 
6    <div class="slides-list" aria-roledescription="Karusell"> 
7 
8        <#list Slide.getSiblings() as curSlide> 
9 
10            <#if (curSlide.Button.ButtonStyle?? && curSlide.Button.ButtonStyle.getData()?has_content)> 
11                    <#assign ButtonMarkup = common.getButtonMarkup( 
12                    curSlide.Button.ButtonInternalLink, 
13                    curSlide.Button.ButtonExternalLink, 
14                    curSlide.Button.ButtonText, 
15                    curSlide.Button.ButtonStyle.getData()) /> 
16                <#else> 
17                    <#assign ButtonMarkup = common.getButtonMarkup( 
18                    curSlide.Button.ButtonInternalLink, 
19                    curSlide.Button.ButtonExternalLink, 
20                    curSlide.Button.ButtonText) /> 
21            </#if> 
22 
23            <#assign hasLink = false /> 
24 
25            <#if curSlide.Button.ButtonExternalLink.data?has_content || ((curSlide.Button.ButtonInternalLink??) && (curSlide.Button.ButtonInternalLink.getFriendlyUrl()?has_content))> 
26                <#assign hasLink = true /> 
27            </#if> 
28 
29            <div class="slide" role="group" aria-roledescription="Folie" aria-label="Folie ${curSlide?index + 1} von ${Slide.siblings?size}"> 
30                <div class="slide-content"> 
31                    <h1 class="headline">${curSlide.Headline.getData()}</h1> 
32                    <#if curSlide.SVG?? && curSlide.SVG.getData()?has_content> 
33                        <div class="slide-content-image"> 
34                            ${curSlide.SVG.getData()} 
35                        </div> 
36                    <#else> 
37                    </#if> 
38                    <#if curSlide.Image?? && curSlide.Image.getData()?has_content> 
39                        <div class="slide-content-image"> 
40                            <img src="${common.getScaledImageURL(curSlide.Image.getData(), "bg-image-medium")}" 
41                                 data-src="${common.getScaledImageURL(curSlide.Image.getData(), "bg-image-medium")}" 
42                                 class="slide__image" alt="${common.getAltText(curSlide.Image.data)}" 
43                                 role="img" 
44                            /> 
45                        </div> 
46                    </#if> 
47                </div> 
48                <#if hasLink == true> 
49                    <div class="slide-button-area"> 
50                        ${ButtonMarkup} 
51                    </div> 
52                </#if> 
53            </div> 
54        </#list> 
55    </div> 
56</section> 
57 
58<script> 
59    window.addEventListener("load", function () { 
60        function ${namespace}_updateInfo(info) { 
61            for (var i = 0; i < info.navItems.length; i++) { 
62                info.navItems[i].setAttribute('aria-label','Folie ' + (i+1)); 
63
64 
65            info.navItems[info.navCurrentIndex].setAttribute('aria-label','Folie ' + (info.navCurrentIndex + 1) + ' (aktuell)'); 
66 
67            info.controlsContainer.setAttribute('aria-label', 'Navigationselemente'); 
68            info.prevButton.setAttribute('aria-label','zur vorhergehenden Folie springen'); 
69            info.nextButton.setAttribute('aria-label','zur nächsten Folie springen'); 
70            info.navContainer.setAttribute('aria-label','Auswahl der Folien') 
71
72 
73        var slider = tns({ 
74            container: '#slider_${namespace} .slides-list', 
75            items: 1, 
76            slideBy: 'page', 
77            center: true, 
78            controlsPosition: 'bottom', 
79            navPosition: 'bottom', 
80            touch: true, 
81            mouseDrag: true, 
82            freezable: true, 
83            autoHeight: true, 
84            speed: 600, 
85            lazyload: true, 
86            arrowKeys: true, 
87            lazyloadSelector: '.slide__image', 
88            controlsText: ['<span class="icon-bg icon-bg--arrow2-left"></span>', '<span class="icon-bg icon-bg--arrow2-right"></span>'], 
89            onInit: function (info) { 
90                ${namespace}_updateInfo(info); 
91
92        }); 
93        slider.events.on('indexChanged', function(info) { 
94            ${namespace}_updateInfo(info); 
95        }); 
96    }); 
97</script> 
 
 
 

Blaues Gut: Wir machen Gewässer besser

Das Thema Gewässer ist gar nicht so trocken, wie man zunächst denken mag. Tauchen Sie mit uns ein in eine faszinierende Welt. Flüsse, Bäche, Seen und Grundwasser – darunter können wir uns alle etwas vorstellen. Aber wissen wir, welche Welten sich dahinter verbergen? Grundwasserschutz ist wichtig, weil wir damit sauberes Trinkwasser sicherstellen. Ohne natürliche Flüsse, Bäche und Seen würde unser Leben veröden. Denn gutes Wasser ist nicht nur für uns Menschen wichtig, sondern es ist auch Lebensraum für Tiere und Pflanzen. Gutes Wasser ist keine Selbstverständlichkeit, sondern etwas, das wir schützen und pflegen müssen. Wasser ist eben etwas ganz Besonderes: unser Blaues Gut.

Was Sie hier finden

Auf dieser Internetseite haben wir einige Themen rund um unsere Gewässer für Sie zusammengestellt: Wir zeigen Ihnen, was wir machen, um sie zu verbessern. Außerdem geben wir Ihnen Tipps, wie und wo Sie unsere heimischen Gewässer selbst erleben können – egal, ob zu Fuß oder mit dem Rad, ob Sie sich für Wassersport interessieren oder die Kinder im Schlepptau haben. Politischen Entscheidern geben wir Hilfestellung, wie Sie selbst Maßnahmen in Ihrer Gemeinde oder in Ihrer Stadt erfolgreich realisieren können. Klicken Sie rein und entdecken Sie die Welt von Blaues Gut!

 
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> 
 

Erst mal die „trockene“ Theorie: Die europäische Wasserrahmenrichtlinie (WRRL)

Interessieren Sie sich für die größeren Zusammenhänge? Wollen Sie wissen, ob es auch über Baden-Württemberg hinaus ähnliche Initiativen gibt und woher unser Verständnis von einem „guten Zustand“ der Gewässer überhaupt kommt? Dann sind Sie hier richtig: Auf der Seite „Grundlagen“ bekommen Sie kurz und verständlich die zentralen Informationen zur europäischen Wasserrahmenrichtlinie (WRRL).

 
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<#assign ButtonGlobalMarkup = "" > 
5 
6<section class="slider-related" id="slider_${namespace}"> 
7    <#if (HeadlineGlobal?? && HeadlineGlobal.getData()?has_content)> 
8        <h2 class="headline">${HeadlineGlobal.getData()}</h2> 
9    </#if> 
10    <#if Text?? && Text.getData()?has_content> 
11        <p>${Text.getData()}</p> 
12    </#if> 
13    <div class="slides-wrapper"> 
14 
15        <div class="slides-list" aria-roledescription="Karusell"> 
16 
17            <#list Slide.getSiblings() as curSlide> 
18 
19                <#assign hasLink = false /> 
20                <#assign linkTarget = "" /> 
21                <#assign linkHref = "" /> 
22                <#assign Items1280 = "4" /> 
23                <#assign Items1600 = "5" /> 
24                <#assign linkTitle = "" /> 
25                <#assign Copyright = "" /> 
26 
27                <#if Elements1280?? &&  Elements1280.getData()?has_content> 
28                    <#assign Items1280 =  Elements1280.getData() /> 
29                </#if> 
30 
31                <#if Elements1600?? &&  Elements1600.getData()?has_content> 
32                    <#assign Items1600 =  Elements1600.getData() /> 
33                </#if> 
34 
35                <#if (curSlide.Button.ButtonInternalLink??) && (curSlide.Button.ButtonInternalLink.getFriendlyUrl()?has_content)> 
36                    <#assign hasLink = true /> 
37                    <#assign linkHref = curSlide.Button.ButtonInternalLink.getFriendlyUrl() /> 
38                </#if> 
39 
40                <#if ! curSlide.Button.ButtonInternalLink?has_content> 
41                    <#assign linkHref = "" /> 
42                    <#if curSlide.Button.ButtonExternalLink?has_content> 
43                        <#assign linkHref = curSlide.Button.ButtonExternalLink.getData() /> 
44                        <#assign linkTarget = "target='_blank'" /> 
45                    </#if> 
46                </#if> 
47 
48                <#if curSlide.Button.ButtonText?? && curSlide.Button.ButtonText?has_content> 
49                    <#assign linkTitle = curSlide.Button.ButtonText.getData() /> 
50                <#else> 
51                    <#assign linkTitle = "Zur Seite '" + curSlide.Headline.getData() + "'"/> 
52                </#if> 
53 
54                <#if curSlide.Image?? && curSlide.Image.data?has_content && (common.getCopyrightText(curSlide.Image.data)!"") != ""> 
55                    <#assign Copyright = common.getCopyrightTag("",curSlide.Image.data) /> 
56                </#if> 
57 
58                <div class="slide" role="group" aria-roledescription="Folie" aria-label="Folie ${curSlide?index + 1} von ${Slide.siblings?size}"> 
59                    <div class="slide-content"> 
60                        <#if curSlide.Image?? && curSlide.Image.data?has_content> 
61                            <div class="slide-content-image image-with-caption"> 
62                                <a href="${linkHref}" ${linkTarget} alt="${linkTitle}" title="${linkTitle}" class="no-icon"><img src="${common.getScaledImageURL(curSlide.Image.getData(), "bg-image-medium")}" 
63                                     data-src="${common.getScaledImageURL(curSlide.Image.getData(), "bg-image-medium")}" 
64                                                           class="slide__image" alt="${common.getAltText(curSlide.Image.data)}" role="img"/></a> 
65                                ${Copyright} 
66                            </div> 
67                        </#if> 
68                        <h1 class="title"><a href="${linkHref}" ${linkTarget} alt="${linkTitle}" 
69                                             title="${linkTitle}" class="no-icon">${curSlide.Headline.getData()}</a></h1> 
70                    </div> 
71                </div> 
72            </#list> 
73        </div> 
74 
75    </div> 
76    <#if ButtonGlobal?? && ((ButtonGlobal.ButtonGlobalInternalLink?? && ButtonGlobal.ButtonGlobalInternalLink.getData()?has_content) || 
77         (ButtonGlobal.ButtonGlobalExternalLink?? && ButtonGlobal.ButtonGlobalExternalLink.getData()?has_content))> 
78        <#assign ButtonGlobalMarkup = common.getButtonMarkup(ButtonGlobal.ButtonGlobalInternalLink, ButtonGlobal.ButtonGlobalExternalLink, ButtonGlobal.ButtonGlobalText, ButtonGlobal.ButtonGlobalStyle.getData()) /> 
79            <div class="button-area"> 
80                ${ButtonGlobalMarkup} 
81            </div> 
82    </#if> 
83</section> 
84 
85<script> 
86    window.addEventListener("load", function () { 
87        function ${namespace}_updateInfo(info) { 
88            for (var i = 0; i < info.navItems.length; i++) { 
89                info.navItems[i].setAttribute('aria-label','Folie ' + (i+1)); 
90
91 
92            info.navItems[info.navCurrentIndex].setAttribute('aria-label','Folie ' + (info.navCurrentIndex + 1) + ' (aktuell)'); 
93 
94            info.controlsContainer.setAttribute('aria-label', 'Navigationselemente'); 
95            info.prevButton.setAttribute('aria-label','zur vorhergehenden Folie springen'); 
96            info.nextButton.setAttribute('aria-label','zur nächsten Folie springen'); 
97            info.navContainer.setAttribute('aria-label','Auswahl der Folien') 
98
99 
100        var slider = tns({ 
101            container: '#slider_${namespace} .slides-list', 
102            items: 2, 
103            slideBy: 'page', 
104            lazyload: true, 
105            lazyloadSelector: '.slide__image', 
106            loop: true, 
107            // center: true, 
108            controlsPosition: 'bottom', 
109            controls: false, 
110            navPosition: 'bottom', 
111            touch: true, 
112            mouseDrag: true, 
113            freezable: true, 
114            speed: 600, 
115            arrowKeys: true, 
116            controlsText: ['<span class="icon-bg icon-bg--arrow2-left"></span>', '<span class="icon-bg icon-bg--arrow2-right"></span>'], 
117            responsive: { 
118                768: { 
119                    items: 2, 
120                    edgePadding: 0, 
121                    gutter: 0 
122                }, 
123                900: { 
124                    items: 3, 
125                    edgePadding: 0, 
126                    controls: true 
127                }, 
128                1280: { 
129                    items: ${Items1280}, // 4 
130                    controls: true 
131                }, 
132                1600: { 
133                    controls: true, 
134                    items: ${Items1600} 
135
136            }, 
137            onInit: function (info) { 
138                ${namespace}_updateInfo(info); 
139
140        }); 
141        slider.events.on('indexChanged', function(info) { 
142            ${namespace}_updateInfo(info); 
143        }); 
144    }); 
145</script>