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> Bildnachweis: