14.2.3 News Artikel 3 Anhörungsverfahren zu den Bewirtschaftungsplänen der europäischen Wasserrahmenrichtlinie gestartet
14.2.3 News Artikel 3 Anhörungsverfahren zu den Bewirtschaftungsplänen der europäischen Wasserrahmenrichtlinie gestartet
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 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
5<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
6<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
7<#assign namespace = randomNamespace />
8<#assign journalArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
9
10<#assign
11parentLayoutPlid = layout.getParentPlid()
12parentLayout = layoutLocalService.fetchLayout(parentLayoutPlid)!""
13parentAssetPublisherId = ""
14/>
15<#if validator.isNotNull(parentLayout)>
16 <#if parentLayout.isTypePortlet()>
17 <#assign parentLayoutTypePortlet = parentLayout.getLayoutType() />
18 <#assign parentPortlets = parentLayoutTypePortlet.getExplicitlyAddedPortlets() />
19 <#list parentPortlets as parentPortlet>
20 <#if parentPortlet.getRootPortletId() == "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet">
21 <#assign parentAssetPublisherId = parentPortlet.getPortletId() />
22
23 <#break />
24 </#if>
25 </#list>
26 </#if>
27</#if>
28
29<#assign topBgColorClass = "on-" + TopBgColor.getData() + "-bg" />
30
31<article class="article">
32 <#if Slider?? && Slider.NeuerSlider?? && (Slider.NeuerSlider.Image.getData()?has_content || Slider.NeuerSlider.Youtube.getData()?has_content)>
33 <div class="slider-hero">
34 <#list Slider.NeuerSlider.getSiblings() as curSlide>
35
36 <#if curSlide.AltTextImage?? && curSlide.AltTextImage.getData()?has_content>
37 <#assign AltText = curSlide.AltTextImage.data />
38 </#if>
39
40 <#assign AltText = common.getAltText(curSlide.Image.data, AltText) />
41
42 <#assign Copyright = "" />
43 <#if (common.getCopyrightText(curSlide.Image.data)!"") != "">
44 <#assign Copyright = common.getCopyrightTag("",curSlide.Image.data) />
45 </#if>
46
47 <div class="slide">
48 <div class="slide-content">
49 <#if (curSlide.Youtube?? && curSlide.Youtube.getData()?has_content) && (curSlide.Image?? && curSlide.Image?has_content)>
50 <#assign videoId = curSlide.Youtube.getData()/>
51
52 <#if videoId?starts_with("http")>
53 <#assign videoId = videoId?split("/")[3]>
54 </#if>
55
56 <div class="slide-content-video image-with-caption">
57 <a href="https://www.youtube.com/${videoId}" target="_blank" class="video-link">
58 <img src="${common.getScaledImageURL(curSlide.Image.getData(), "bg-image-medium")}"
59 data-src="${common.getScaledImageURL(curSlide.Image.getData(), "bg-image-medium")}"
60 class="slide__image" alt="${AltText}"/>
61 </a>
62 ${Copyright}
63 </div>
64 <#else>
65 <div class="slide-content-image image-with-caption">
66 <img src="${common.getScaledImageURL(curSlide.Image.getData(), "bg-image-medium")}"
67 data-src="${common.getScaledImageURL(curSlide.Image.getData(), "bg-image-medium")}"
68 class="slide__image" alt="${AltText}"/>
69 ${Copyright}
70 </div>
71 </#if>
72 </div>
73 </div>
74 </#list>
75 </div>
76 </#if>
77
78 <section class="article-area article-area--${topBgColorClass}">
79 <div class="container">
80 <div class="row justify-content-center">
81 <div class="col-sm-8">
82 <nav id="breadcrumbs">
83 <@liferay.breadcrumbs />
84 </nav>
85 </div>
86 </div>
87 <div class="row justify-content-center">
88 <div class="col-sm-8">
89 <h1 class="article-headline">${HeadlineArticle.getData()}</h1>
90 </div>
91 </div>
92 <div class="row justify-content-center">
93 <div class="col-sm-8">
94 <#assign assetCategories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.resourcePrimKey) />
95 <#if assetCategories?? && assetCategories?size gt 0>
96 <ul class="tags">
97 <#list assetCategories as assetCategory>
98 <#assign
99 categoryURL = portletURLFactory.create(renderRequest, parentAssetPublisherId, parentLayoutPlid, "RENDER_PHASE")
100 href = categoryURL.toString()
101 href = httpUtil.setParameter(href, "_" + parentAssetPublisherId + "_categoryId", assetCategory.getCategoryId()?string)
102 href = httpUtil.setParameter(href, "_" + parentAssetPublisherId + "_resetCur", "true")
103 />
104
105 <li class="tag">
106 <a href="${href}" class="no-icon">${assetCategory.getTitle(locale)}</a>
107 </li>
108 </#list>
109 </ul>
110 </#if>
111 </div>
112 </div>
113 <#if Intro?? && Intro.data?has_content>
114 <div class="row justify-content-center">
115 <div class="col-md-8">
116 <p class="bold">${Intro.getData()}</p>
117 </div>
118 </div>
119 </#if>
120 </div>
121 </section>
122 <#if WaveTop?? && WaveTopColor??>
123 <section class="article-wave-area" data-source="${WaveTop.getData()}">
124 <section class="waves">
125 <div class="wave wave--${WaveTop.getData()}-${WaveTopColor.getData()} v-mirrored"></div>
126 </section>
127 </section>
128 </#if>
129
130
131
132
133 <#if Text?? && Text.data?has_content>
134 <section class="article-text container">
135 <div class="row justify-content-center">
136 <div class="col-md-8">
137 ${Text.getData()}
138 </div>
139 </div>
140 </section>
141 </#if>
142
143 <#if ImageLarge?? && ImageLarge.data?has_content>
144
145 <#assign CopyrightImageLarge= "" />
146 <#if (common.getCopyrightText(ImageLarge.data)!"") != "">
147 <#assign CopyrightImageLarge = common.getCopyrightTag("",ImageLarge.data) />
148 </#if>
149
150 <section class="article-image-large">
151 <section class="image-large image-with-caption" id="image-large_${namespace}">
152 <div class="image-inner">
153 <img src="${common.getScaledImageURL(ImageLarge.getData(), "bg-image-medium")}"
154 alt="${common.getAltText(ImageLarge.data)}" class="image"/>
155 ${CopyrightImageLarge}
156 </div>
157 </section>
158 <#if ImageCaption?? && ImageCaption.data?has_content>
159 <div class="container">
160 <div class="row justify-content-center">
161 <div class="col-md-8">
162 <div class="article__image-large-caption">${ImageCaption.getData()}</div>
163 </div>
164 </div>
165 </div>
166 </#if>
167 </section>
168 </#if>
169
170 <#if TextBottom?? && TextBottom.data?has_content>
171 <section class="article-text container">
172 <div class="row justify-content-center">
173 <div class="col-md-8">
174 ${TextBottom.getData()}
175 </div>
176 </div>
177 </section>
178 </#if>
179
180</article>
181
182<#if (Slider?? && Slider.Slide??) || (Slider.ExistingSlider?? && Slider.ExistingSlider.getData()?has_content)>
183 <script>
184 window.addEventListener("load", function () {
185 var slider = tns({
186 container: '#slider_${namespace} .slides-list',
187 items: 1,
188 slideBy: 'page',
189 center: true,
190 controlsPosition: 'bottom',
191 navPosition: 'bottom',
192 touch: true,
193 mouseDrag: true,
194 freezable: true,
195 speed: 600,
196 lazyload: true,
197 arrowKeys: true,
198 lazyloadSelector: '.slide__image',
199 controlsText: ['<span class="icon-bg icon-bg--arrow1-left"></span>', '<span class="icon-bg icon-bg--arrow1-right"></span>']
200 });
201 });
202 </script>
203</#if>