Fehler bei der Verarbeitung der Vorlage.
Template importing failed (for parameter value "/lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl"):
Unable to find FreeMarker template with ID lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #import "/lubw-theme_SERVLET_CONTEXT_...  [in template "10157#10197#466899" at line 1, column 1]
----
1<#import "/lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl" as m> 
2 
3<#assign lts = serviceLocator.findService("de.xdot.lubw.lr73.template.LubwTemplateService") /> 
4<#assign glossarVocId=1225601/> <#-- STAGING --> 
5<#assign glossarVocId=1740430/> <#-- PROD --> 
6 
7<style> 
8 
9    .lubw-webcontent-mit-bildern .abschnitt 
10
11        clear:both; 
12
13 
14    .lubw-webcontent-mit-bildern .figure-top 
15
16        margin:15px; 
17        text-align:center; 
18
19 
20    .lubw-webcontent-mit-bildern .spalte-rechts 
21
22        float:right; 
23        margin:15px; 
24        margin-right:0px; 
25        margin-top:0px; 
26
27 
28    .lubw-webcontent-mit-bildern .spalte-rechts figure, 
29    .lubw-webcontent-mit-bildern .spalte-links figure 
30
31        padding-bottom:15px; 
32
33 
34    .lubw-webcontent-mit-bildern .figure-bottom 
35
36        margin:15px; 
37        text-align:center; 
38
39 
40    .lubw-webcontent-mit-bildern .spalte-links 
41
42        float:left; 
43        margin:15px; 
44        margin-left:0px; 
45        margin-top:0px; 
46
47 
48    .lubw-webcontent-mit-bildern .gallerie .bild 
49
50 
51 
52
53 
54    .lubw-webcontent-mit-bildern .gallerie .row-fluid 
55
56        margin-bottom:21px; 
57 
58
59 
60    .lubw-webcontent-mit-bildern  figure 
61
62        margin:0px; 
63        text-align:center; 
64 
65
66 
67    .lubw-webcontent-mit-bildern  figcaption 
68
69        margin:0px; 
70        text-align:center; 
71        padding-top:5px; 
72
73 
74    .lubw-webcontent-mit-bildern .carousel 
75
76        border: 1px solid #ebeae2; 
77        border-radius: 5px; 
78
79 
80 
81    .carousel-control-prev:hover .glyphicon, 
82    .carousel-control-prev:focus .glyphicon, 
83    .carousel-control-next:hover .glyphicon, 
84    .carousel-control-next:focus .glyphicon { 
85 
86        color:#024731; 
87        background-color:white; 
88 
89
90 
91    .carousel-control-prev, .carousel-control-next { 
92 
93        opacity:1; 
94 
95
96 
97    .carousel-control-number { 
98        margin-left: 20px; 
99
100 
101    .carousel-indicators li 
102
103        background-color:#024731; 
104        border:2px solid white; 
105        height:8px; 
106
107 
108    .carousel-indicators li.active 
109
110        background-color:white; 
111        border-color:#024731; 
112
113 
114    .glyphicon:before 
115
116        font-size: 18px; 
117        vertical-align: top; 
118
119 
120    .glyphicon 
121
122        font-size: 26px; 
123        background-color:#024731; 
124        color:white; 
125        line-height:26px; 
126        width:30px; 
127        height:30px; 
128        border:2px solid #024731; 
129        text-align: center; 
130
131 
132 
133    .carousel-control-prev 
134
135        justify-content:left; 
136
137 
138    .carousel-control-next 
139
140        justify-content:right; 
141
142 
143    .carousel-control-pause 
144
145        position:absolute; 
146        bottom:0px; 
147        left:0px; 
148        z-index:10; 
149
150 
151    .carousel-control-number 
152
153        display:none; 
154
155 
156    .carousel-item 
157
158        padding-bottom:40px; 
159
160 
161 
162 
163</style> 
164 
165<div class="lubw-webcontent-mit-bildern"> 
166 
167    <#if Ueberschrift?? && Ueberschrift.getData()?has_content> 
168 
169    <#assign ebene="h1"> 
170    <#if Ueberschrift.Ebene??> 
171        <#assign ebene=Ueberschrift.Ebene.getData()/> 
172    </#if> 
173 
174    <${ebene}>${Ueberschrift.getData()}</${ebene}> 
175 
176</#if> 
177 
178 
179<#if Abschnitt.getSiblings()?has_content> 
180 
181 
182    <#list Abschnitt.getSiblings() as cur_Abschnitt> 
183 
184 
185 
186        <section class="abschnitt row-fluid"> 
187 
188            <#assign bilderVorhanden = cur_Abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings()?has_content 
189            &&  cur_Abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings()[0]?? 
190            &&  cur_Abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings()[0].Bild.getData()?has_content/> 
191 
192            <#if bilderVorhanden> 
193 
194                <#if (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="spalte-rechts") || (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="spalte-links") > 
195 
196                    <#assign spaltenBreite=""/> 
197                    <#if cur_Abschnitt.Bilder.Spaltenbreite?? && cur_Abschnitt.Bilder.Spaltenbreite.getData()!="null"> 
198                        <#assign spaltenBreite="width:"+cur_Abschnitt.Bilder.Spaltenbreite.getData()+"%;"/> 
199                    </#if> 
200 
201                    <div class="${cur_Abschnitt.Bilder.Anzeigen_in.getData()}" style="${spaltenBreite}"> 
202 
203                        <#list cur_Abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings() as cur_image> 
204 
205                            <@showBild bild=cur_image/> 
206 
207                        </#list> 
208 
209                    </div> 
210 
211 
212                <#elseif (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="gallerie-oben")> 
213 
214                    <@gallerie  abschnitt=cur_Abschnitt/> 
215 
216                <#elseif (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="slideshow-oben")> 
217 
218                    <@slideshow abschnitt=cur_Abschnitt abschnittNummer=cur_Abschnitt_index/> 
219 
220                </#if> 
221 
222 
223 
224            </#if>   <#-- bilderVorhanden --> 
225 
226 
227 
228            ${lts.addAltTagAndGlossar(cur_Abschnitt.Inhalt.getData(),locale,m.getGlossarStructureKey(glossarVocId),groupId)} 
229 
230            <#if bilderVorhanden> 
231 
232 
233                <#if (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="gallerie-unten")> 
234 
235                    <@gallerie  abschnitt=cur_Abschnitt/> 
236 
237                <#elseif (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="slideshow-unten")> 
238 
239                    <@slideshow abschnitt=cur_Abschnitt abschnittNummer=cur_Abschnitt_index/> 
240 
241                </#if> 
242 
243 
244            </#if>   <#-- bilderVorhanden --> 
245 
246 
247        </section> 
248 
249 
250 
251 
252 
253 
254 
255 
256    </#list> 
257</#if> 
258 
259<@m.generateMetadataTag "lubw_thema" 32820/> 
260 
261</div>      <#-- lubw-webcontent-mit-bildern --> 
262 
263 
264 
265 
266 
267 
268 
269<#macro showBild bild> 
270 
271    <#if bild.Bild.getData()?has_content> 
272 
273        <#assign bildunterschrift=bild.Bildunterschrift.getData()/> 
274        <#assign altTag=bildunterschrift/> 
275 
276        <#if (bild.BildunterschriftAutomatisch??) && getterUtil.getBoolean(bild.BildunterschriftAutomatisch.getData())> 
277 
278            <#assign metadataMap = m.getMetadataForBild(bild.Bild)/> 
279            <#assign altTag=m.showMetadata(metadataMap,"alttag") /> 
280            <#assign bildnachweis=m.showMetadata(metadataMap,"copyright") /> 
281            <#assign bildunterschrift=altTag/> 
282 
283        </#if> 
284 
285        <figure> 
286            <img src="${bild.Bild.getData()}" alt="${altTag}" title="${altTag}"/> 
287            <figcaption>${bildunterschrift}</figcaption> 
288        </figure> 
289 
290    </#if> 
291 
292</#macro> 
293 
294 
295 
296 
297 
298<#macro slideshow abschnitt abschnittNummer> 
299 
300 
301 
302    <#assign 
303    imageSize = "gaa-image-1400" 
304    namespace = randomNamespace 
305    sliderId = "carousel_" + randomNamespace 
306    images=abschnitt.Bilder.Bild_mit_Bildunterschrift 
307    /> 
308 
309 
310    <section class="carousel slide" data-ride="carousel" id="${sliderId}"> 
311 
312        <ol class="carousel-indicators"> 
313            <#list images.getSiblings() as curIndicator> 
314                <li data-target="#${sliderId}" data-slide-to="${curIndicator?index}" <#if curIndicator?index == 0>class="active"</#if> ></li> 
315            </#list> 
316        </ol> 
317 
318        <div class="carousel-inner"> 
319 
320            <#list images.getSiblings() as curItem> 
321 
322                <#assign 
323                linkHref ="/#nogo" 
324                linkTitle = "Mehr dazu" 
325                linkTarget = "" 
326                /> 
327 
328                <div class="carousel-item <#if curItem?index == 0>active</#if>"> 
329 
330                    <@showBild bild=curItem/> 
331 
332                </div> 
333            </#list> 
334        </div> 
335 
336        <div class="carousel-control"> 
337 
338            <a href="#${sliderId}" class="btn-prev carousel-control-prev" role="button" data-slide="prev"> 
339                <span class="dd-indicator glyphicon glyphicon-chevron-left"></span> 
340                <span class="sr-only">Zurück</span> 
341            </a> 
342            <a href="#${sliderId}" class="btn-pause carousel-control-pause" role="button" data-slide="pause"> 
343                <span class="dd-indicator glyphicon glyphicon-pause"></span> 
344                <span class="sr-only">Pause/Play</span> 
345            </a> 
346 
347            <span class="carousel-control-number"><span class="current">1</span> / <span class="total">${images?size}</span></span> 
348 
349            <a href="#${sliderId}" class="btn-next carousel-control-next" role="button"data-slide="next"> 
350                <span class="dd-indicator glyphicon glyphicon-chevron-right"></span> 
351                <span class="sr-only">Weiter</span> 
352            </a> 
353 
354        </div> 
355    </section> 
356 
357    <script> 
358        jQuery('.carousel').carousel({ 
359            interval: 3500, 
360            keyboard: true, 
361            pause: 'hover' 
362        }); 
363 
364        function initCarousel(id) { 
365            jQuery(id + ' .carousel-control-number .total').text(jQuery(id + ' .carousel-item').length); 
366            jQuery(id).on('slid.bs.carousel', function () { 
367                var curSlide = jQuery(id + ' .carousel-item.active').index() + 1; 
368                jQuery(id + ' .carousel-control-number .current').text(curSlide); 
369            }); 
370 
371            jQuery(id + ' .carousel-control-pause').on('click', function (e) { 
372                e.preventDefault(); 
373                console.log("click"); 
374                var btnPause = jQuery(this); 
375 
376                if(jQuery(id).hasClass('carousel-paused')) 
377
378                    console.log("cycle"); 
379                    jQuery(id).carousel('cycle'); 
380                    jQuery(id).removeClass('carousel-paused'); 
381                    jQuery('.dd-indicator', btnPause).addClass('glyphicon-pause'); 
382                    jQuery('.dd-indicator', btnPause).removeClass('glyphicon-play'); 
383
384                else 
385
386                    console.log("pause"); 
387                    jQuery(id).carousel('pause'); 
388                    jQuery(id).addClass('carousel-paused'); 
389                    jQuery('.dd-indicator', btnPause).addClass('glyphicon-play'); 
390                    jQuery('.dd-indicator', btnPause).removeClass('glyphicon-pause'); 
391
392            }); 
393
394 
395        initCarousel('#${sliderId}'); 
396 
397    </script> 
398 
399</#macro> 
400 
401 
402 
403 
404<#macro gallerie abschnitt> 
405 
406    <#assign Anzahl_Bilder_pro_Zeile=getterUtil.getLong(abschnitt.Bilder.Anzahl_Bilder_pro_Zeile.getData())> 
407 
408    <#assign spanSize= "col-md-"+(12 / Anzahl_Bilder_pro_Zeile)/> 
409 
410    <div class="gallerie container-fluid"> 
411 
412        <#list abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings() as cur_image> 
413 
414            <#if (cur_image_index % Anzahl_Bilder_pro_Zeile) == 0> 
415                <div class="row"> 
416            </#if> 
417 
418 
419            <div class="bild ${spanSize}"> 
420 
421                <@showBild bild=cur_image/> 
422 
423            </div> 
424 
425 
426            <#if (cur_image_index % Anzahl_Bilder_pro_Zeile) == (Anzahl_Bilder_pro_Zeile-1) > 
427                </div> 
428            </#if> 
429 
430        </#list> 
431 
432    </div> 
433 
434</#macro> 
Fehler bei der Verarbeitung der Vorlage.
Template importing failed (for parameter value "/lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl"):
Unable to find FreeMarker template with ID lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #import "/lubw-theme_SERVLET_CONTEXT_...  [in template "10157#10197#119156" at line 1, column 1]
----
1<#import "/lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl" as m> 
2 
3<#assign articleId = getterUtil.getLong(.vars['reserved-article-id'].data)> 
4<#assign namespace = randomNamespace /> 
5<#assign glossarVocId=1225601/> <#-- STAGING --> 
6<#assign glossarVocId=1740430/> <#-- PROD --> 
7<#assign lts = serviceLocator.findService("de.xdot.lubw.lr73.template.LubwTemplateService") /> 
8 
9 
10 
11<div class="aufklappbare-liste"> 
12 
13    <div class="einleitung"> 
14        <#if Einleitung??> 
15            ${lts.addAltTagAndGlossar(Einleitung.getData(),locale,m.getGlossarStructureKey(glossarVocId),groupId)} 
16        </#if> 
17    </div> 
18 
19    <#if Eintrag?has_content> 
20 
21        <div class="accordion" id="accordion-${namespace}"> 
22 
23            <#if (Eintraege_reverse??) && getterUtil.getBoolean(Eintraege_reverse.getData())> 
24                <#assign eintraegeListe=Eintrag.getSiblings()?reverse/> 
25            <#else> 
26                <#assign eintraegeListe=Eintrag.getSiblings()/> 
27            </#if> 
28 
29 
30            <#list eintraegeListe as curEntry> 
31 
32                <div class="accordion-group fragemitantwort"> 
33 
34                    <a id="${articleId}-${curEntry_index + 1}"> 
35 
36                    </a> 
37 
38                    <#assign linkStyle="collapsed"/> 
39                    <#assign areaExpanded="false"/> 
40                    <#assign contentShow=""/> 
41 
42                    <#if curEntry.aufgeklappt?? > 
43                        <#if getterUtil.getBoolean(curEntry.aufgeklappt.getData())> 
44                            <#assign linkStyle=""/> 
45                            <#assign areaExpanded="true"/> 
46                            <#assign contentShow="show"/> 
47                        </#if> 
48                    </#if> 
49 
50                    <div class="accordion-heading"> 
51                        <a class="accordion-toggle ${linkStyle}" 
52                           id="accordion-toggle-${articleId}-${curEntry_index + 1}" 
53                           data-toggle="collapse" 
54                           href="#collapse-${namespace}-${curEntry_index}" 
55                           aria-controls="collapse-${namespace}-${curEntry_index}" 
56                           aria-expanded="${areaExpanded}" 
57                           role="button"> 
58 
59 
60                           <span class="frage"> 
61                                  <#if getterUtil.getBoolean(Automatische_Nummerierung.getData())> 
62                                      <span class="nummer">${curEntry_index + 1}.</span> 
63                                  </#if> 
64                               ${curEntry.Titel.getData()} 
65                           </span> 
66                        </a> 
67 
68                    </div> 
69                    <#-- wenn data-parent="#accordion-$(namespace}" gesetzt ist, kann User immer nur einen Bereich aufklappen --> 
70                    <div class="toggler-content collapse ${contentShow}" id="collapse-${namespace}-${curEntry_index}"> 
71                        <div id="accordion-inner-${articleId}-${curEntry_index + 1}"> 
72                            <div class="accordion-inner"> 
73                                ${lts.addAltTagAndGlossar(curEntry.Inhalt.getData(),locale,m.getGlossarStructureKey(glossarVocId),groupId)} 
74                            </div> 
75                        </div> 
76                    </div> 
77                </div> 
78 
79            </#list> 
80 
81        </div> 
82 
83    </#if> 
84 
85 
86 
87    <div class="weiterer-text-unten"> 
88        <#if Weiterer_Text_unten??> 
89            ${lts.addAltTagAndGlossar(Weiterer_Text_unten.getData(),locale,m.getGlossarStructureKey(glossarVocId),groupId)} 
90        </#if> 
91    </div> 
92 
93</div> 
94 
95<script> 
96 
97    var split1 = document.URL.split("#"); 
98    if (split1.length > 1) { 
99        openListItem(split1[1]); 
100
101 
102    function openListItem(number){ 
103        var innerDiv = document.getElementById("accordion-inner-"+number); 
104        var contentDiv = innerDiv.parentNode; 
105        contentDiv.className = " toggler-content collapse show"; 
106        contentDiv.style = "margin-top: 0px;"; 
107        var alink = document.getElementById("accordion-toggle-"+number); 
108        alink.className = " accordion-toggle"; 
109
110</script> 
111 
112<@m.generateMetadataTag "lubw_thema" 32820/> 
Fehler bei der Verarbeitung der Vorlage.
Template importing failed (for parameter value "/lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl"):
Unable to find FreeMarker template with ID lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #import "/lubw-theme_SERVLET_CONTEXT_...  [in template "10157#10197#119156" at line 1, column 1]
----
1<#import "/lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl" as m> 
2 
3<#assign articleId = getterUtil.getLong(.vars['reserved-article-id'].data)> 
4<#assign namespace = randomNamespace /> 
5<#assign glossarVocId=1225601/> <#-- STAGING --> 
6<#assign glossarVocId=1740430/> <#-- PROD --> 
7<#assign lts = serviceLocator.findService("de.xdot.lubw.lr73.template.LubwTemplateService") /> 
8 
9 
10 
11<div class="aufklappbare-liste"> 
12 
13    <div class="einleitung"> 
14        <#if Einleitung??> 
15            ${lts.addAltTagAndGlossar(Einleitung.getData(),locale,m.getGlossarStructureKey(glossarVocId),groupId)} 
16        </#if> 
17    </div> 
18 
19    <#if Eintrag?has_content> 
20 
21        <div class="accordion" id="accordion-${namespace}"> 
22 
23            <#if (Eintraege_reverse??) && getterUtil.getBoolean(Eintraege_reverse.getData())> 
24                <#assign eintraegeListe=Eintrag.getSiblings()?reverse/> 
25            <#else> 
26                <#assign eintraegeListe=Eintrag.getSiblings()/> 
27            </#if> 
28 
29 
30            <#list eintraegeListe as curEntry> 
31 
32                <div class="accordion-group fragemitantwort"> 
33 
34                    <a id="${articleId}-${curEntry_index + 1}"> 
35 
36                    </a> 
37 
38                    <#assign linkStyle="collapsed"/> 
39                    <#assign areaExpanded="false"/> 
40                    <#assign contentShow=""/> 
41 
42                    <#if curEntry.aufgeklappt?? > 
43                        <#if getterUtil.getBoolean(curEntry.aufgeklappt.getData())> 
44                            <#assign linkStyle=""/> 
45                            <#assign areaExpanded="true"/> 
46                            <#assign contentShow="show"/> 
47                        </#if> 
48                    </#if> 
49 
50                    <div class="accordion-heading"> 
51                        <a class="accordion-toggle ${linkStyle}" 
52                           id="accordion-toggle-${articleId}-${curEntry_index + 1}" 
53                           data-toggle="collapse" 
54                           href="#collapse-${namespace}-${curEntry_index}" 
55                           aria-controls="collapse-${namespace}-${curEntry_index}" 
56                           aria-expanded="${areaExpanded}" 
57                           role="button"> 
58 
59 
60                           <span class="frage"> 
61                                  <#if getterUtil.getBoolean(Automatische_Nummerierung.getData())> 
62                                      <span class="nummer">${curEntry_index + 1}.</span> 
63                                  </#if> 
64                               ${curEntry.Titel.getData()} 
65                           </span> 
66                        </a> 
67 
68                    </div> 
69                    <#-- wenn data-parent="#accordion-$(namespace}" gesetzt ist, kann User immer nur einen Bereich aufklappen --> 
70                    <div class="toggler-content collapse ${contentShow}" id="collapse-${namespace}-${curEntry_index}"> 
71                        <div id="accordion-inner-${articleId}-${curEntry_index + 1}"> 
72                            <div class="accordion-inner"> 
73                                ${lts.addAltTagAndGlossar(curEntry.Inhalt.getData(),locale,m.getGlossarStructureKey(glossarVocId),groupId)} 
74                            </div> 
75                        </div> 
76                    </div> 
77                </div> 
78 
79            </#list> 
80 
81        </div> 
82 
83    </#if> 
84 
85 
86 
87    <div class="weiterer-text-unten"> 
88        <#if Weiterer_Text_unten??> 
89            ${lts.addAltTagAndGlossar(Weiterer_Text_unten.getData(),locale,m.getGlossarStructureKey(glossarVocId),groupId)} 
90        </#if> 
91    </div> 
92 
93</div> 
94 
95<script> 
96 
97    var split1 = document.URL.split("#"); 
98    if (split1.length > 1) { 
99        openListItem(split1[1]); 
100
101 
102    function openListItem(number){ 
103        var innerDiv = document.getElementById("accordion-inner-"+number); 
104        var contentDiv = innerDiv.parentNode; 
105        contentDiv.className = " toggler-content collapse show"; 
106        contentDiv.style = "margin-top: 0px;"; 
107        var alink = document.getElementById("accordion-toggle-"+number); 
108        alink.className = " accordion-toggle"; 
109
110</script> 
111 
112<@m.generateMetadataTag "lubw_thema" 32820/> 
Fehler bei der Verarbeitung der Vorlage.
Template importing failed (for parameter value "/lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl"):
Unable to find FreeMarker template with ID lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #import "/lubw-theme_SERVLET_CONTEXT_...  [in template "10157#10197#466899" at line 1, column 1]
----
1<#import "/lubw-theme_SERVLET_CONTEXT_/templates/shared/xd_metadata.ftl" as m> 
2 
3<#assign lts = serviceLocator.findService("de.xdot.lubw.lr73.template.LubwTemplateService") /> 
4<#assign glossarVocId=1225601/> <#-- STAGING --> 
5<#assign glossarVocId=1740430/> <#-- PROD --> 
6 
7<style> 
8 
9    .lubw-webcontent-mit-bildern .abschnitt 
10
11        clear:both; 
12
13 
14    .lubw-webcontent-mit-bildern .figure-top 
15
16        margin:15px; 
17        text-align:center; 
18
19 
20    .lubw-webcontent-mit-bildern .spalte-rechts 
21
22        float:right; 
23        margin:15px; 
24        margin-right:0px; 
25        margin-top:0px; 
26
27 
28    .lubw-webcontent-mit-bildern .spalte-rechts figure, 
29    .lubw-webcontent-mit-bildern .spalte-links figure 
30
31        padding-bottom:15px; 
32
33 
34    .lubw-webcontent-mit-bildern .figure-bottom 
35
36        margin:15px; 
37        text-align:center; 
38
39 
40    .lubw-webcontent-mit-bildern .spalte-links 
41
42        float:left; 
43        margin:15px; 
44        margin-left:0px; 
45        margin-top:0px; 
46
47 
48    .lubw-webcontent-mit-bildern .gallerie .bild 
49
50 
51 
52
53 
54    .lubw-webcontent-mit-bildern .gallerie .row-fluid 
55
56        margin-bottom:21px; 
57 
58
59 
60    .lubw-webcontent-mit-bildern  figure 
61
62        margin:0px; 
63        text-align:center; 
64 
65
66 
67    .lubw-webcontent-mit-bildern  figcaption 
68
69        margin:0px; 
70        text-align:center; 
71        padding-top:5px; 
72
73 
74    .lubw-webcontent-mit-bildern .carousel 
75
76        border: 1px solid #ebeae2; 
77        border-radius: 5px; 
78
79 
80 
81    .carousel-control-prev:hover .glyphicon, 
82    .carousel-control-prev:focus .glyphicon, 
83    .carousel-control-next:hover .glyphicon, 
84    .carousel-control-next:focus .glyphicon { 
85 
86        color:#024731; 
87        background-color:white; 
88 
89
90 
91    .carousel-control-prev, .carousel-control-next { 
92 
93        opacity:1; 
94 
95
96 
97    .carousel-control-number { 
98        margin-left: 20px; 
99
100 
101    .carousel-indicators li 
102
103        background-color:#024731; 
104        border:2px solid white; 
105        height:8px; 
106
107 
108    .carousel-indicators li.active 
109
110        background-color:white; 
111        border-color:#024731; 
112
113 
114    .glyphicon:before 
115
116        font-size: 18px; 
117        vertical-align: top; 
118
119 
120    .glyphicon 
121
122        font-size: 26px; 
123        background-color:#024731; 
124        color:white; 
125        line-height:26px; 
126        width:30px; 
127        height:30px; 
128        border:2px solid #024731; 
129        text-align: center; 
130
131 
132 
133    .carousel-control-prev 
134
135        justify-content:left; 
136
137 
138    .carousel-control-next 
139
140        justify-content:right; 
141
142 
143    .carousel-control-pause 
144
145        position:absolute; 
146        bottom:0px; 
147        left:0px; 
148        z-index:10; 
149
150 
151    .carousel-control-number 
152
153        display:none; 
154
155 
156    .carousel-item 
157
158        padding-bottom:40px; 
159
160 
161 
162 
163</style> 
164 
165<div class="lubw-webcontent-mit-bildern"> 
166 
167    <#if Ueberschrift?? && Ueberschrift.getData()?has_content> 
168 
169    <#assign ebene="h1"> 
170    <#if Ueberschrift.Ebene??> 
171        <#assign ebene=Ueberschrift.Ebene.getData()/> 
172    </#if> 
173 
174    <${ebene}>${Ueberschrift.getData()}</${ebene}> 
175 
176</#if> 
177 
178 
179<#if Abschnitt.getSiblings()?has_content> 
180 
181 
182    <#list Abschnitt.getSiblings() as cur_Abschnitt> 
183 
184 
185 
186        <section class="abschnitt row-fluid"> 
187 
188            <#assign bilderVorhanden = cur_Abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings()?has_content 
189            &&  cur_Abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings()[0]?? 
190            &&  cur_Abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings()[0].Bild.getData()?has_content/> 
191 
192            <#if bilderVorhanden> 
193 
194                <#if (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="spalte-rechts") || (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="spalte-links") > 
195 
196                    <#assign spaltenBreite=""/> 
197                    <#if cur_Abschnitt.Bilder.Spaltenbreite?? && cur_Abschnitt.Bilder.Spaltenbreite.getData()!="null"> 
198                        <#assign spaltenBreite="width:"+cur_Abschnitt.Bilder.Spaltenbreite.getData()+"%;"/> 
199                    </#if> 
200 
201                    <div class="${cur_Abschnitt.Bilder.Anzeigen_in.getData()}" style="${spaltenBreite}"> 
202 
203                        <#list cur_Abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings() as cur_image> 
204 
205                            <@showBild bild=cur_image/> 
206 
207                        </#list> 
208 
209                    </div> 
210 
211 
212                <#elseif (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="gallerie-oben")> 
213 
214                    <@gallerie  abschnitt=cur_Abschnitt/> 
215 
216                <#elseif (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="slideshow-oben")> 
217 
218                    <@slideshow abschnitt=cur_Abschnitt abschnittNummer=cur_Abschnitt_index/> 
219 
220                </#if> 
221 
222 
223 
224            </#if>   <#-- bilderVorhanden --> 
225 
226 
227 
228            ${lts.addAltTagAndGlossar(cur_Abschnitt.Inhalt.getData(),locale,m.getGlossarStructureKey(glossarVocId),groupId)} 
229 
230            <#if bilderVorhanden> 
231 
232 
233                <#if (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="gallerie-unten")> 
234 
235                    <@gallerie  abschnitt=cur_Abschnitt/> 
236 
237                <#elseif (cur_Abschnitt.Bilder.Anzeigen_in.getData()=="slideshow-unten")> 
238 
239                    <@slideshow abschnitt=cur_Abschnitt abschnittNummer=cur_Abschnitt_index/> 
240 
241                </#if> 
242 
243 
244            </#if>   <#-- bilderVorhanden --> 
245 
246 
247        </section> 
248 
249 
250 
251 
252 
253 
254 
255 
256    </#list> 
257</#if> 
258 
259<@m.generateMetadataTag "lubw_thema" 32820/> 
260 
261</div>      <#-- lubw-webcontent-mit-bildern --> 
262 
263 
264 
265 
266 
267 
268 
269<#macro showBild bild> 
270 
271    <#if bild.Bild.getData()?has_content> 
272 
273        <#assign bildunterschrift=bild.Bildunterschrift.getData()/> 
274        <#assign altTag=bildunterschrift/> 
275 
276        <#if (bild.BildunterschriftAutomatisch??) && getterUtil.getBoolean(bild.BildunterschriftAutomatisch.getData())> 
277 
278            <#assign metadataMap = m.getMetadataForBild(bild.Bild)/> 
279            <#assign altTag=m.showMetadata(metadataMap,"alttag") /> 
280            <#assign bildnachweis=m.showMetadata(metadataMap,"copyright") /> 
281            <#assign bildunterschrift=altTag/> 
282 
283        </#if> 
284 
285        <figure> 
286            <img src="${bild.Bild.getData()}" alt="${altTag}" title="${altTag}"/> 
287            <figcaption>${bildunterschrift}</figcaption> 
288        </figure> 
289 
290    </#if> 
291 
292</#macro> 
293 
294 
295 
296 
297 
298<#macro slideshow abschnitt abschnittNummer> 
299 
300 
301 
302    <#assign 
303    imageSize = "gaa-image-1400" 
304    namespace = randomNamespace 
305    sliderId = "carousel_" + randomNamespace 
306    images=abschnitt.Bilder.Bild_mit_Bildunterschrift 
307    /> 
308 
309 
310    <section class="carousel slide" data-ride="carousel" id="${sliderId}"> 
311 
312        <ol class="carousel-indicators"> 
313            <#list images.getSiblings() as curIndicator> 
314                <li data-target="#${sliderId}" data-slide-to="${curIndicator?index}" <#if curIndicator?index == 0>class="active"</#if> ></li> 
315            </#list> 
316        </ol> 
317 
318        <div class="carousel-inner"> 
319 
320            <#list images.getSiblings() as curItem> 
321 
322                <#assign 
323                linkHref ="/#nogo" 
324                linkTitle = "Mehr dazu" 
325                linkTarget = "" 
326                /> 
327 
328                <div class="carousel-item <#if curItem?index == 0>active</#if>"> 
329 
330                    <@showBild bild=curItem/> 
331 
332                </div> 
333            </#list> 
334        </div> 
335 
336        <div class="carousel-control"> 
337 
338            <a href="#${sliderId}" class="btn-prev carousel-control-prev" role="button" data-slide="prev"> 
339                <span class="dd-indicator glyphicon glyphicon-chevron-left"></span> 
340                <span class="sr-only">Zurück</span> 
341            </a> 
342            <a href="#${sliderId}" class="btn-pause carousel-control-pause" role="button" data-slide="pause"> 
343                <span class="dd-indicator glyphicon glyphicon-pause"></span> 
344                <span class="sr-only">Pause/Play</span> 
345            </a> 
346 
347            <span class="carousel-control-number"><span class="current">1</span> / <span class="total">${images?size}</span></span> 
348 
349            <a href="#${sliderId}" class="btn-next carousel-control-next" role="button"data-slide="next"> 
350                <span class="dd-indicator glyphicon glyphicon-chevron-right"></span> 
351                <span class="sr-only">Weiter</span> 
352            </a> 
353 
354        </div> 
355    </section> 
356 
357    <script> 
358        jQuery('.carousel').carousel({ 
359            interval: 3500, 
360            keyboard: true, 
361            pause: 'hover' 
362        }); 
363 
364        function initCarousel(id) { 
365            jQuery(id + ' .carousel-control-number .total').text(jQuery(id + ' .carousel-item').length); 
366            jQuery(id).on('slid.bs.carousel', function () { 
367                var curSlide = jQuery(id + ' .carousel-item.active').index() + 1; 
368                jQuery(id + ' .carousel-control-number .current').text(curSlide); 
369            }); 
370 
371            jQuery(id + ' .carousel-control-pause').on('click', function (e) { 
372                e.preventDefault(); 
373                console.log("click"); 
374                var btnPause = jQuery(this); 
375 
376                if(jQuery(id).hasClass('carousel-paused')) 
377
378                    console.log("cycle"); 
379                    jQuery(id).carousel('cycle'); 
380                    jQuery(id).removeClass('carousel-paused'); 
381                    jQuery('.dd-indicator', btnPause).addClass('glyphicon-pause'); 
382                    jQuery('.dd-indicator', btnPause).removeClass('glyphicon-play'); 
383
384                else 
385
386                    console.log("pause"); 
387                    jQuery(id).carousel('pause'); 
388                    jQuery(id).addClass('carousel-paused'); 
389                    jQuery('.dd-indicator', btnPause).addClass('glyphicon-play'); 
390                    jQuery('.dd-indicator', btnPause).removeClass('glyphicon-pause'); 
391
392            }); 
393
394 
395        initCarousel('#${sliderId}'); 
396 
397    </script> 
398 
399</#macro> 
400 
401 
402 
403 
404<#macro gallerie abschnitt> 
405 
406    <#assign Anzahl_Bilder_pro_Zeile=getterUtil.getLong(abschnitt.Bilder.Anzahl_Bilder_pro_Zeile.getData())> 
407 
408    <#assign spanSize= "col-md-"+(12 / Anzahl_Bilder_pro_Zeile)/> 
409 
410    <div class="gallerie container-fluid"> 
411 
412        <#list abschnitt.Bilder.Bild_mit_Bildunterschrift.getSiblings() as cur_image> 
413 
414            <#if (cur_image_index % Anzahl_Bilder_pro_Zeile) == 0> 
415                <div class="row"> 
416            </#if> 
417 
418 
419            <div class="bild ${spanSize}"> 
420 
421                <@showBild bild=cur_image/> 
422 
423            </div> 
424 
425 
426            <#if (cur_image_index % Anzahl_Bilder_pro_Zeile) == (Anzahl_Bilder_pro_Zeile-1) > 
427                </div> 
428            </#if> 
429 
430        </#list> 
431 
432    </div> 
433 
434</#macro>