Eingestelltes Produkt
Artikelnummer: WI9614492000001
Im Paket erhaltene Referenz:Gültig für folgende Produkte
- null
Eingestelltes Produkt
- null
Eingestelltes Produkt
- null
Eingestelltes Produkt
- null
Eingestelltes Produkt
Failed to "?eval" string with this error:
---begin-message---
Syntax error in ?eval-ed string in line 1, column 119:
Lexical error: encountered "u" (117), after "\"Passendes Zubeh\u00f6r f\u00fcr Ihr Dusch\\".
---end-message---
The failing expression:
==> cache.getSecondLevelCategories(request, item.code)?eval [in template "20099#20135#384350736" at line 221, column 136]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign currentItemChildren = cache.g... [in template "20099#20135#384350736" in macro "drawDesktopMainMenu" at line 221, column 105]
- Reached through: @drawDesktopMainMenu [in template "20099#20135#384350736" at line 1061, column 65]
---- 1<#assign cache = cacheUtils.getCacheManager(themeDisplay.getScopeGroupId())! /> 2 3<#if cache??> 4 5 <#macro initSupraMenus> 6 <#if shortcuts.shortcutsShortcut.getSiblings()?has_content> 7 <#assign 8 leftColumnShortcuts = [] 9 rightColumnLeftBlockShortcuts = [] 10 rightColumnRightBlockShortcuts = [] 11 /> 12 13 <#list shortcuts.shortcutsShortcut.getSiblings() as curShortcut> 14 <#assign pos = curShortcut.shortcutsShortcutPos.getData()/> 15 <#if pos == "C1"> 16 <#assign leftColumnShortcuts = leftColumnShortcuts + [curShortcut] /> 17 <#elseif pos == "C2"> 18 <#assign rightColumnLeftBlockShortcuts = rightColumnLeftBlockShortcuts + [curShortcut] /> 19 <#elseif pos == "C3"> 20 <#assign rightColumnRightBlockShortcuts = rightColumnRightBlockShortcuts + [curShortcut] /> 21 </#if> 22 </#list> 23 24 <@initSupramenuShortcuts leftColumnShortcuts true /> 25 <@initSupramenuShortcuts rightColumnLeftBlockShortcuts rightColumnRightBlockShortcuts?has_content /> 26 <@initSupramenuShortcuts rightColumnRightBlockShortcuts false /> 27 28 <#assign 29 html = "" 30 icon = shortcuts.shortcutsCta.shortcutsCtaIcon.getData() 31 iconWidth = shortcuts.shortcutsCta.shortcutsCtaWidth.getData() 32 iconHeight = shortcuts.shortcutsCta.shortcutsCtaHeight.getData() 33 text = shortcuts.shortcutsCta.shortcutsCtaText.getData() 34 link = (shortcuts.shortcutsCta.shortcutsCtaLink.getData()?has_content)?string(cache.parseLinkURL(request, shortcuts.shortcutsCta.shortcutsCtaLink.getData()), "") 35 target = (link?has_content)?string((shortcuts.shortcutsCta.shortcutsCtaTargetLink.getData()?has_content)?string(shortcuts.shortcutsCta.shortcutsCtaTargetLink.getData(), cache.getLinkTarget(link)), "") 36 /> 37 38 <#if link?has_content> 39 <#assign html += "<a class=\"supramenu__btn\" href=\"" + link + "\" target=\"" + target + "\">" /> 40 </#if> 41 <#if icon?has_content> 42 <#assign style = "" /> 43 <#if iconWidth?has_content && iconWidth != "0"> 44 <#assign style += "width: " + iconWidth + "px;" /> 45 </#if> 46 <#if iconHeight?has_content && iconHeight != "0"> 47 <#assign style += "height: " + iconHeight + "px;" /> 48 </#if> 49 50 <#if text?has_content> 51 <#assign html += "<img class=\"icon-right-space\" alt=\"" + shortcuts.shortcutsCta.shortcutsCtaIcon.getAttribute("alt") + "\" data-fileentryid=\"" + shortcuts.shortcutsCta.shortcutsCtaIcon.getAttribute("fileEntryId") + "\" src=\"" + icon + "\" title=\"" + text + "\" style=\"" + style + "\" />" /> 52 <#else> 53 <#assign html += "<img alt=\"" + shortcuts.shortcutsCta.shortcutsCtaIcon.getAttribute("alt") + "\" data-fileentryid=\"" + shortcuts.shortcutsCta.shortcutsCtaIcon.getAttribute("fileEntryId") + "\" src=\"" + icon + "\" title=\"" + shortcuts.shortcutsCta.shortcutsCtaIcon.getAttribute("alt") + "\" style=\"" + style + "\" />" /> 54 </#if> 55 </#if> 56 <#if text?has_content> 57 <#assign html += "<div><span>" + text + "</span></div>" /> 58 </#if> 59 <#if link?has_content> 60 <#assign html += "</a>" /> 61 </#if> 62 63 64 <#if html?has_content> 65 <#assign htmlCCta += html /> 66 </#if> 67 </#if> 68 </#macro> 69 70 <#macro initSupramenuShortcuts supramenuShortcuts includeSeparator> 71 <#list supramenuShortcuts as curShortcut> 72 <#assign 73 pos = curShortcut.shortcutsShortcutPos.getData() 74 icon = curShortcut.shortcutsShortcutIcon.getData() 75 iconWidth = curShortcut.shortcutsShortcutWidth.getData() 76 iconHeight = curShortcut.shortcutsShortcutHeight.getData() 77 text = curShortcut.shortcutsShortcutText.getData() 78 link = (curShortcut.shortcutsShortcutLink.getData()?has_content)?string(cache.parseLinkURL(request, curShortcut.shortcutsShortcutLink.getData()), "") 79 target = (link?has_content)?string((curShortcut.shortcutsShortcutTargetLink.getData()?has_content)?string(curShortcut.shortcutsShortcutTargetLink.getData(), cache.getLinkTarget(link)), "") 80 isComparator = curShortcut.shortcutsShortcutComparator?? && getterUtil.getBoolean(curShortcut.shortcutsShortcutComparator.getData()) 81 isFavorites = curShortcut.shortcutsShortcutFavorites?? && getterUtil.getBoolean(curShortcut.shortcutsShortcutFavorites.getData()) 82 /> 83 84 <#assign html = "" /> 85 <#assign cssLiClass = "supramenu__item supramenu__shortcut" /> 86 87 <#if isComparator> 88 <#assign 89 cssLiClass = cssLiClass + " comparator-icon" 90 /> 91 <#elseif isFavorites> 92 <#assign 93 cssLiClass = cssLiClass + " favorites-icon" 94 /> 95 </#if> 96 97 <#if includeSeparator && ((pos == "C1" && curShortcut?is_first) || (pos == "C2" && curShortcut?is_last))> 98 <#assign cssLiClass = cssLiClass + " supramenu__shortcut--separator" /> 99 <#elseif pos == "C3"> 100 <#assign cssLiClass = cssLiClass + " supramenu__shortcut--icon" /> 101 </#if> 102 103 <#assign html += "<li class=\"${cssLiClass}\">" /> 104 105 <#if link?has_content> 106 <#assign html += "<a class=\"supramenu__link\" href=\"" + link + "\" target=\"" + target + "\">" /> 107 </#if> 108 <#if isComparator> 109 <#assign html += "<i class=\"icon-cards\"></i>"/> 110 <#elseif isFavorites> 111 <#assign html += "<i class=\"icon-favourite\"></i>"/> 112 <#elseif icon?has_content> 113 <#assign style = "" /> 114 <#if iconWidth?has_content && iconWidth != "0"> 115 <#assign style += "width: " + iconWidth + "px;" /> 116 </#if> 117 <#if iconHeight?has_content && iconHeight != "0"> 118 <#assign style += "height: " + iconHeight + "px;" /> 119 </#if> 120 121 <#if text?has_content> 122 <#assign html += "<img class=\"icon-right-space\" alt=\"" + curShortcut.shortcutsShortcutIcon.getAttribute("alt") + "\" data-fileentryid=\"" + curShortcut.shortcutsShortcutIcon.getAttribute("fileEntryId") + "\" src=\"" + icon + "\" title=\"" + text + "\" style=\"" + style + "\" />" /> 123 <#else> 124 <#assign html += "<img alt=\"" + curShortcut.shortcutsShortcutIcon.getAttribute("alt") + "\" data-fileentryid=\"" + curShortcut.shortcutsShortcutIcon.getAttribute("fileEntryId") + "\" src=\"" + icon + "\" title=\"" + curShortcut.shortcutsShortcutIcon.getAttribute("alt") + "\" style=\"" + style + "\" />" /> 125 </#if> 126 </#if> 127 <#if text?has_content> 128 <#assign html += "<div><span>" + text + "</span></div>" /> 129 </#if> 130 <#if link?has_content> 131 <#assign html += "</a>" /> 132 </#if> 133 <#assign html += "</li>" /> 134 135 136 <#if html?has_content> 137 <#if pos == "C1"> 138 <#assign htmlC1 += html /> 139 <#elseif pos == "C2"> 140 <#assign htmlC2 += html /> 141 <#elseif pos == "C3"> 142 <#assign htmlC3 += html /> 143 </#if> 144 </#if> 145 </#list> 146 </#macro> 147 148 <#macro drawDesktopMainMenu> 149 <ul class="main-menu__list d-none d-lg-flex" id="laufen-main-menu-list"> 150 <#list mainMenu.mainMenuItems.getSiblings() as curMenuItem> 151 <li class="main-menu__item js-collapse-sm"> 152 <#assign 153 type = curMenuItem.mainMenuItemsType.getData() 154 text = curMenuItem.mainMenuItemsText.getData() 155 link = (curMenuItem.mainMenuLink.getData()?has_content)?string(cache.parseLinkURL(request, curMenuItem.mainMenuLink.getData()), "") 156 target = (link?has_content)?string((curMenuItem.mainMenuItemsTargetLink.getData()?has_content)?string(curMenuItem.mainMenuItemsTargetLink.getData(), cache.getLinkTarget(link)), "") 157 sideMenuCategoryIndex = curMenuItem?index + 1 158 sideMenuCategory = type + "-" + sideMenuCategoryIndex 159 /> 160 161 <div class="link-wrapper"> 162 <#if getterUtil.getBoolean(curMenuItem.mainMenuItemsOpenSide.getData())> 163 <a class="main-menu__link js-open-side-menu text-uppercase" href="javascript:void(0);" data-category="${sideMenuCategory}" title="${text}"> 164 <#elseif link?has_content> 165 <a class="main-menu__link text-uppercase" href="${link}" target="${target}" title="${text}"> 166 </#if> 167 168 ${text} 169 170 <#if getterUtil.getBoolean(curMenuItem.mainMenuItemsOpenSide.getData()) || link?has_content> 171 </a> 172 </#if> 173 </div> 174 175 <#assign categoriesWithChildren = [] /> 176 <#assign sectionsWithSubitems = [] /> 177 178 <div id="sideMenuCategory--${sideMenuCategory}" class="side-menu__category js-side-category-move" data-level="1"> 179 <#if (type == "PRODUCTS")> 180 <#assign categoriesWithOnlyFirstLevel = 181 (curMenuItem.mainMenuItemsFirstLevelCategories?? 182 && curMenuItem.mainMenuItemsFirstLevelCategories.getData()?has_content) 183 ?then( 184 curMenuItem.mainMenuItemsFirstLevelCategories.getData()?split(",")?map(x -> x?trim), 185 [] 186 ) 187 /> 188 189 <div class="side-menu__body"> 190 <span class="side-menu-back-btn js-side-menu-back-btn d-flex align-items-center d-lg-none"> 191 <i class="icon-arrow-left"></i> 192 ${cache.translate(locale, "Back")} 193 </span> 194 195 <div class="side-menu__see-all <#if text?length gt 15>long-title</#if>"> 196 <div class="side-menu__see-all-title-container"> 197 <span class="side-menu__see-all-title"> 198 ${text} 199 </span> 200 </div> 201 202 <#if getterUtil.getBoolean(curMenuItem.mainMenuItemsShowLink.getData())> 203 <div class="side-menu__see-all-link-container"> 204 <a class="side-menu__see-all-link" href="${link}"> 205 <div> 206 <span>${cache.translate(locale, "Show all")}</span> 207 </div> 208 209 <i class="icon-arrow-right"></i> 210 </a> 211 </div> 212 </#if> 213 </div> 214 215 <ul class="side-menu__body-links"> 216 <#list p_Map?sort_by("websort") as item> 217 <#assign currentItemChildren = "" /> 218 <li class="side-menu__body-item"> 219 <div class="link-wrapper"> 220 <#if !categoriesWithOnlyFirstLevel?seq_contains(item.code)> 221 <#assign currentItemChildren = cache.getSecondLevelCategories(request, item.code)?eval /> 222 </#if> 223 224 <#if currentItemChildren?? && getterUtil.getBoolean(currentItemChildren?has_content)> 225 <#-- Se incluye la categoria que tiene hijos en la lista de categorias con hijos--> 226 <#assign itemData = { 227 "original": item, 228 "parentSideCategoryMenu": sideMenuCategory, 229 "children": currentItemChildren 230 } /> 231 232 <#assign categoriesWithChildren = categoriesWithChildren + [itemData] /> 233 234 <a class="side-menu__body-link js-open-side-menu justify-content-between" href="javascript:void(0);" data-category="${item.code}"> 235 <#elseif item.url?has_content> 236 <a class="side-menu__body-link justify-content-between" href="${item.url}"> 237 <#else> 238 <a class="side-menu__body-link justify-content-between" href="javascript:void(0);"> 239 </#if> 240 241 <div class="d-flex align-items-center justify-content-start"> 242 <#if item.title?has_content> 243 <img src="${item.image!}" alt="${item.title}"> 244 <#else> 245 <img src="${item.image!}"> 246 </#if> 247 248 <#if item.title?has_content> 249 <span>${item.title}</span> 250 <#else> 251 <span></span> 252 </#if> 253 </div> 254 255 <#if getterUtil.getBoolean(currentItemChildren?has_content)> 256 <i class="icon-chevron-right"></i> 257 </#if> 258 259 </a> 260 </div> 261 </li> 262 </#list> 263 </ul> 264 265 <#if curMenuItem.mainMenuItemsBanners.getSiblings()?has_content> 266 <div class="side-menu__banner-section"> 267 <div id="${sideMenuCategory}-banner" class="side-menu__banner-content"> 268 <div class="side-menu__banner-container"> 269 <div class="side-menu__banner"> 270 <div class="side-menu__banner-slider" id="${sideMenuCategory}-side-menu__banner-slider"> 271 <div class="side-menu__banner-slider-container"> 272 <#if (curMenuItem.mainMenuItemsBanners.getSiblings()?filter(b -> b.mainMenuItemsBannersType?? && b.mainMenuItemsBannersType.getData() == "slider")?size > 0)> 273 <div class="side-menu__banner-slider-buttons"> 274 <button class="side-menu__banner-slider-button prev icon-chevron-left disabled" onclick="showMenuCarouselItem('${sideMenuCategory}-side-menu__banner-slider', -1);"></button> 275 <button class="side-menu__banner-slider-button next icon-chevron-right" onclick="showMenuCarouselItem('${sideMenuCategory}-side-menu__banner-slider', 1);"></button> 276 </div> 277 </#if> 278 279 <div class="side-menu__banner-slider-content" data-index="0"> 280 <#list curMenuItem.mainMenuItemsBanners.getSiblings()?filter(b -> b.mainMenuItemsBannersType?? && b.mainMenuItemsBannersType.getData() == "slider") as curBanner> 281 <#assign 282 bannerType = curBanner.mainMenuItemsBannersType.getData() 283 img = curBanner.mainMenuItemsBannersImage.getData() 284 text = curBanner.mainMenuItemsBannersText.getData() 285 link = (curBanner.mainMenuItemsBannersLink.getData()?has_content)?string(cache.parseLinkURL(request, curBanner.mainMenuItemsBannersLink.getData()), "") 286 target = (link?has_content)?string((curBanner.mainMenuItemsBannersTargetLink.getData()?has_content)?string(curBanner.mainMenuItemsBannersTargetLink.getData(), cache.getLinkTarget(link)), "") 287 /> 288 289 <#if img?has_content> 290 <div class="side-menu__banner-item ${bannerType}" style="background-image: url('${img}')"> 291 <#if link?has_content> 292 <a href="${link}" target="${target}"> 293 </#if> 294 295 <#if text?has_content> 296 <div class="banner-text-container"> 297 <span>${text}</span> 298 </div> 299 </#if> 300 301 <#if link?has_content> 302 </a> 303 </#if> 304 </div> 305 </#if> 306 </#list> 307 </div> 308 </div> 309 </div> 310 311 <#list curMenuItem.mainMenuItemsBanners.getSiblings()?filter(b -> b.mainMenuItemsBannersType?? && b.mainMenuItemsBannersType.getData() != "slider") as curBanner> 312 <#assign 313 bannerType = curBanner.mainMenuItemsBannersType.getData() 314 img = curBanner.mainMenuItemsBannersImage.getData() 315 text = curBanner.mainMenuItemsBannersText.getData() 316 link = (curBanner.mainMenuItemsBannersLink.getData()?has_content)?string(cache.parseLinkURL(request, curBanner.mainMenuItemsBannersLink.getData()), "") 317 target = (link?has_content)?string((curBanner.mainMenuItemsBannersTargetLink.getData()?has_content)?string(curBanner.mainMenuItemsBannersTargetLink.getData(), cache.getLinkTarget(link)), "") 318 /> 319 320 <#if img?has_content> 321 <div class="side-menu__banner-item ${bannerType}" style="background-image: url('${img}')"> 322 <#if link?has_content> 323 <a href="${link}" target="${target}"> 324 </#if> 325 326 <#if text?has_content> 327 <div class="banner-text-container"> 328 <span>${text}</span> 329 </div> 330 </#if> 331 332 <#if link?has_content> 333 </a> 334 </#if> 335 </div> 336 </#if> 337 </#list> 338 </div> 339 </div> 340 </div> 341 </div> 342 </#if> 343 </div> 344 <#elseif (type == "LINK")> 345 <#assign 346 type = curMenuItem.mainMenuItemsType.getData() 347 sideMenuCategoryIndex = curMenuItem?index + 1 348 sideMenuCategory = type + "-" + sideMenuCategoryIndex 349 /> 350 351 <#if curMenuItem.mainMenuItemsSections.getSiblings()?has_content> 352 <div class="side-menu__body"> 353 <span class="side-menu-back-btn js-side-menu-back-btn d-flex align-items-center d-lg-none"> 354 <i class="icon-arrow-left"></i> 355 ${cache.translate(locale, "Back")} 356 </span> 357 358 <div class="side-menu__see-all <#if text?length gt 15>long-title</#if>"> 359 <div class="side-menu__see-all-title-container"> 360 <span class="side-menu__see-all-title"> 361 ${text} 362 </span> 363 </div> 364 365 <#if getterUtil.getBoolean(curMenuItem.mainMenuItemsShowLink.getData())> 366 <div class="side-menu__see-all-link-container"> 367 <a class="side-menu__see-all-link" href="${link}"> 368 <div> 369 <span>${cache.translate(locale, "Show all")}</span> 370 </div> 371 372 <i class="icon-arrow-right"></i> 373 </a> 374 </div> 375 </#if> 376 </div> 377 378 <ul class="side-menu__body-links"> 379 <#list curMenuItem.mainMenuItemsSections.getSiblings() as curSection> 380 <#assign 381 text = curSection.mainMenuItemsSectionsText.getData() 382 link = (curSection.mainMenuItemsSectionsLink.getData()?has_content)?string(cache.parseLinkURL(request, curSection.mainMenuItemsSectionsLink.getData()), "") 383 target = (link?has_content)?string((curSection.mainMenuItemsSectionsTargetLink.getData()?has_content)?string(curSection.mainMenuItemsSectionsTargetLink.getData(), cache.getLinkTarget(link)), "") 384 sideMenuCategorySectionIndex = curSection?index + 1 385 sideMenuSectionCategory = type + "-" + sideMenuCategoryIndex + "-SECTION-" + sideMenuCategorySectionIndex 386 /> 387 388 <li class="side-menu__body-item side-menu__section"> 389 <div class="link-wrapper"> 390 <#assign 391 sectionSubitems = curSection.mainMenuItemsSectionsSubitems.getSiblings() 392 hasSubitems = sectionSubitems?has_content && 393 !(sectionSubitems?size == 1 && 394 (!sectionSubitems[0]?has_content 395 || (sectionSubitems[0].mainMenuItemsSectionsSubitemsText.getData() == "" || (sectionSubitems[0].mainMenuItemsSectionsSubitemsLink.getData()?has_content)?string(cache.parseLinkURL(request, sectionSubitems[0].mainMenuItemsSectionsSubitemsLink.getData()), "") == ""))) 396 /> 397 398 <#if hasSubitems> 399 <#assign sectionData = { 400 "original": curSection, 401 "sideMenuCategory": sideMenuCategory, 402 "sideMenuSectionCategory": sideMenuSectionCategory 403 } /> 404 405 <#assign sectionsWithSubitems = sectionsWithSubitems + [sectionData] /> 406 407 <a class="side-menu__body-link js-open-side-menu justify-content-between" href="javascript:void(0);" data-category="${sideMenuSectionCategory}"> 408 <#elseif link?has_content> 409 <a class="side-menu__body-link" href="${link}" target="${target}"> 410 <#else> 411 <a class="side-menu__body-link" href="javascript:void(0);"> 412 </#if> 413 414 <div class="d-flex align-items-center justify-content-start"> 415 <span> 416 ${text} 417 </span> 418 </div> 419 420 <#if hasSubitems> 421 <i class="icon-chevron-right"></i> 422 </#if> 423 424 </a> 425 </div> 426 </li> 427 </#list> 428 </ul> 429 430 <#if curMenuItem.mainMenuItemsBanners.getSiblings()?has_content> 431 <div class="side-menu__banner-section"> 432 <div id="${sideMenuCategory}-banner" class="side-menu__banner-content"> 433 <div class="side-menu__banner-container"> 434 <div class="side-menu__banner" data-index="0"> 435 <#list curMenuItem.mainMenuItemsBanners.getSiblings() as curBanner> 436 <#assign 437 bannerType = curBanner.mainMenuItemsBannersType.getData() 438 img = curBanner.mainMenuItemsBannersImage.getData() 439 text = curBanner.mainMenuItemsBannersText.getData() 440 link = (curBanner.mainMenuItemsBannersLink.getData()?has_content)?string(cache.parseLinkURL(request, curBanner.mainMenuItemsBannersLink.getData()), "") 441 target = (link?has_content)?string((curBanner.mainMenuItemsBannersTargetLink.getData()?has_content)?string(curBanner.mainMenuItemsBannersTargetLink.getData(), cache.getLinkTarget(link)), "") 442 /> 443 444 <#if img?has_content> 445 <div class="side-menu__banner-item ${bannerType}" style="background-image: url('${img}')"> 446 <#if link?has_content> 447 <a href="${link}" target="${target}"> 448 </#if> 449 450 <#if text?has_content> 451 <div class="banner-text-container"> 452 <span>${text}</span> 453 </div> 454 </#if> 455 456 <#if link?has_content> 457 </a> 458 </#if> 459 </div> 460 </#if> 461 </#list> 462 </div> 463 </div> 464 </div> 465 </div> 466 </#if> 467 </div> 468 </#if> 469 </#if> 470 </div> 471 472 <#-- PANELES DE SUBCATEGORIAS --> 473 <#if categoriesWithChildren?has_content> 474 <#list categoriesWithChildren as itemData> 475 <#assign 476 item = itemData.original 477 parentSideCategoryMenu = itemData.parentSideCategoryMenu 478 children = itemData.children 479 /> 480 481 <div id="sideMenuCategory--${item.code}" class="side-menu__category js-side-category-move" data-level="2" data-parent-panel="${parentSideCategoryMenu}"> 482 <div class="side-menu__body"> 483 <div class="side-menu__see-all <#if item.title?length gt 15>long-title</#if>"> 484 <div class="side-menu__see-all-title-container side-menu__subcategories-title-container"> 485 <span class="side-menu-back-btn js-side-menu-back-btn d-flex align-items-center d-lg-none"> 486 <i class="icon-arrow-left"></i> 487 ${cache.translate(locale, "Back")} 488 </span> 489 490 <#if item.url?has_content> 491 <a class="side-menu__see-all-title" href="${item.url}"> 492 <div> 493 <span>${item.title}</span> 494 </div> 495 496 <i class="icon-arrow-right"></i> 497 </a> 498 <#else> 499 <span class="side-menu__see-all-title"> 500 ${item.title} 501 </span> 502 </#if> 503 </div> 504 </div> 505 506 <ul class="side-menu__body-links"> 507 <#if children?? && children?has_content> 508 <#list children?sort_by("websort") as child> 509 <li class="side-menu__body-item" data-websort="${child.websort}"> 510 <div class="link-wrapper"> 511 <a class="side-menu__body-link" <#if child.url?has_content>href="${child.url}"</#if>> 512 <#if child.title?has_content> 513 <div class="d-flex align-items-center justify-content-start"> 514 <span>${child.title}</span> 515 </div> 516 <#else> 517 <span></span> 518 </#if> 519 </a> 520 </div> 521 </li> 522 </#list> 523 </#if> 524 </ul> 525 </div> 526 </div> 527 </#list> 528 </#if> 529 530 531 <#-- PANELES DE SUBITEMS DE SECCION --> 532 <#if sectionsWithSubitems?has_content> 533 <#list sectionsWithSubitems as sectionData> 534 <#assign 535 curSection = sectionData.original 536 sideMenuCategory = sectionData.sideMenuCategory 537 sideMenuSectionCategory = sectionData.sideMenuSectionCategory 538 text = curSection.mainMenuItemsSectionsText.getData() 539 link = (curSection.mainMenuItemsSectionsLink.getData()?has_content)?string(cache.parseLinkURL(request, curSection.mainMenuItemsSectionsLink.getData()), "") 540 target = (link?has_content)?string((curSection.mainMenuItemsSectionsTargetLink.getData()?has_content)?string(curSection.mainMenuItemsSectionsTargetLink.getData(), cache.getLinkTarget(link)), "") 541 /> 542 543 <div id="sideMenuCategory--${sideMenuSectionCategory}" class="side-menu__category js-side-category-move" data-level="2" data-parent-panel="${sideMenuCategory}"> 544 <div class="side-menu__body"> 545 <span class="side-menu-back-btn js-side-menu-back-btn d-flex align-items-center d-lg-none"> 546 <i class="icon-arrow-left"></i> 547 ${cache.translate(locale, "Back")} 548 </span> 549 550 <div class="side-menu__see-all <#if text?length gt 15>long-title</#if>"> 551 <div class="side-menu__see-all-title-container"> 552 <#if link?has_content> 553 <a class="side-menu__see-all-title" href="${link}" target="${target}"> 554 <div> 555 <span>${text}</span> 556 </div> 557 558 <i class="icon-arrow-right"></i> 559 </a> 560 <#else> 561 <span class="side-menu__see-all-title"> 562 ${text} 563 </span> 564 </#if> 565 </div> 566 </div> 567 568 <ul class="side-menu__body-links"> 569 <#if curSection.mainMenuItemsSectionsSubitems.getSiblings()?has_content> 570 <#list curSection.mainMenuItemsSectionsSubitems.getSiblings() as curSubitem> 571 <#assign 572 text = curSubitem.mainMenuItemsSectionsSubitemsText.getData() 573 link = (curSubitem.mainMenuItemsSectionsSubitemsLink.getData()?has_content)?string(cache.parseLinkURL(request, curSubitem.mainMenuItemsSectionsSubitemsLink.getData()), "") 574 target = (link?has_content)?string((curSubitem.mainMenuItemsSectionsSubitemsTargetLink.getData()?has_content)?string(curSubitem.mainMenuItemsSectionsSubitemsTargetLink.getData(), cache.getLinkTarget(link)), "") 575 /> 576 <li class="side-menu__body-item"> 577 <div class="link-wrapper"> 578 <a class="side-menu__body-link" <#if link?has_content>href="${link}"</#if> <#if target?has_content>target="${target}"</#if>> 579 <#if text?has_content> 580 <div class="d-flex align-items-center justify-content-start"> 581 <span>${text}</span> 582 </div> 583 </#if> 584 </a> 585 </div> 586 </li> 587 </#list> 588 </#if> 589 </ul> 590 </div> 591 </div> 592 </#list> 593 </#if> 594 </li> 595 </#list> 596 </ul> 597 </#macro> 598 599 <#macro drawSideMenu sideMenuType> 600 <#if sideMenuType == "MENU"> 601 <div id="sideMenu" class="side-menu"> 602 <div class="side-menu-container"> 603 <div class="side-menu__body"> 604 <div class="side-menu__close d-none d-lg-flex"> 605 <img alt="Laufen Swiss Bathroom" class="laufen-logo-mini" src="${themeDisplay.getPathThemeImages()}/brand/brand-logo-mini.svg"/> 606 <i class="icon-close icon-close side-menu-close-btn js-side-menu-close-btn"></i> 607 </div> 608 609 <ul class="side-menu__body-links" id="laufen-side-menu-links"> 610 <#list mainMenu.mainMenuItems.getSiblings() as curMenuItem> 611 <li class="side-menu__body-item"> 612 <#assign 613 type = curMenuItem.mainMenuItemsType.getData() 614 text = curMenuItem.mainMenuItemsText.getData() 615 link = (curMenuItem.mainMenuLink.getData()?has_content)?string(cache.parseLinkURL(request, curMenuItem.mainMenuLink.getData()), "") 616 target = (link?has_content)?string((curMenuItem.mainMenuItemsTargetLink.getData()?has_content)?string(curMenuItem.mainMenuItemsTargetLink.getData(), cache.getLinkTarget(link)), "") 617 sideMenuCategoryIndex = curMenuItem?index + 1 618 sideMenuCategory = type + "-" + sideMenuCategoryIndex 619 /> 620 621 <div class="link-wrapper"> 622 <#if getterUtil.getBoolean(curMenuItem.mainMenuItemsOpenSide.getData())> 623 <a class="side-menu__body-link js-open-side-menu text-uppercase" href="javascript:void(0);" data-category="${sideMenuCategory}" title="${text}"> 624 <#elseif link?has_content> 625 <a class="side-menu__body-link text-uppercase" href="${link}" target="${target}" title="${text}"> 626 </#if> 627 628 <span> 629 ${text} 630 </span> 631 632 <#if getterUtil.getBoolean(curMenuItem.mainMenuItemsOpenSide.getData())> 633 <i class="icon-chevron-right"></i> 634 </#if> 635 636 <#if getterUtil.getBoolean(curMenuItem.mainMenuItemsOpenSide.getData()) || link?has_content> 637 </a> 638 </#if> 639 </div> 640 </#list> 641 </ul> 642 </div> 643 644 <#if (getterUtil.getBoolean(sideMenu.sideMenuShowCountry.getData()) || getterUtil.getBoolean(sideMenu.sideMenuShowLanguage.getData())) || (sideMenu.sideMenuLinks.sideMenuLink.getSiblings()?has_content && sideMenu.sideMenuLinks.sideMenuLink.getSiblings()[0].sideMenuLinkURL.getData()?has_content)> 645 <div class="side-menu__footer"> 646 <ul class="side-menu__footer-links"> 647 <#list sideMenu.sideMenuLinks.sideMenuLink.getSiblings() as curLink> 648 <#assign 649 icon = curLink.sideMenuLinkIcon.getData() 650 iconWidth = curLink.sideMenuLinkWidth.getData() 651 iconHeight = curLink.sideMenuLinkHeight.getData() 652 text = curLink.sideMenuLinkText.getData() 653 link = (curLink.sideMenuLinkURL.getData()?has_content)?string(cache.parseLinkURL(request, curLink.sideMenuLinkURL.getData()), "") 654 target = (link?has_content)?string((curLink.sideMenuLinkTarget.getData()?has_content)?string(curLink.sideMenuLinkTarget.getData(), cache.getLinkTarget(link)), "") 655 /> 656 657 <li class="side-menu__footer-item"> 658 <a class="side-menu__footer-link" href="${link}" target="${target}"> 659 <#if icon?has_content> 660 <#assign style = "" /> 661 <#if iconWidth?has_content && iconWidth != "0"> 662 <#assign style += "width: " + iconWidth + "px;" /> 663 </#if> 664 <#if iconHeight?has_content && iconHeight != "0"> 665 <#assign style += "height: " + iconHeight + "px;" /> 666 </#if> 667 668 <#if text?has_content> 669 <img class="icon-right-space" alt="${curLink.sideMenuLinkIcon.getAttribute("alt")}" data-fileentryid="${curLink.sideMenuLinkIcon.getAttribute("fileEntryId")}" src="${icon}" title="${text}" style="${style}"/> 670 <#else> 671 <img alt="${curLink.sideMenuLinkIcon.getAttribute("alt")}" data-fileentryid="${curLink.sideMenuLinkIcon.getAttribute("fileEntryId")}" src="${icon}" style="${style}" /> 672 </#if> 673 </#if> 674 675 <div><span>${text}</span></div> 676 </a> 677 </li> 678 </#list> 679 680 681 <#if getterUtil.getBoolean(sideMenu.sideMenuShowCountry.getData()) || getterUtil.getBoolean(sideMenu.sideMenuShowLanguage.getData()) || getterUtil.getBoolean(sideMenu.sideMenuShowAdditionalLink.getData())> 682 <#assign linkLocation = "" /> 683 <#if sideMenu.sideMenuAdditionalLink?? && sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkLocation??> 684 <#assign linkLocation = sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkLocation.getData() /> 685 </#if> 686 687 <li class="side-menu__footer-item additional-info ${linkLocation}"> 688 <#if getterUtil.getBoolean(sideMenu.sideMenuShowCountry.getData()) || getterUtil.getBoolean(sideMenu.sideMenuShowLanguage.getData())> 689 <div class="side-menu__footer-item--country menu-country-trigger"> 690 <a class="side-menu__footer-link menu-country-link js-open-side-menu" href="javascript:void(0)" data-category="LANGUAGE" data-groupid="${themeDisplay.getSiteGroupId()}" data-languageid="${themeDisplay.getLanguageId()}"> 691 <#if getterUtil.getBoolean(sideMenu.sideMenuShowCountry.getData())> 692 <span class="menu-country-text-link"> 693 <i class="icon-language icon-right-space"></i> 694 <div><span>${currentCountry.getAssetCategory().getTitle(themeDisplay.getLocale())}</span></div> 695 </span> 696 </#if> 697 698 <#if getterUtil.getBoolean(sideMenu.sideMenuShowLanguage.getData()) && localeList?? && localeList?has_content && localeList?size gt 1> 699 <span class="menu-country-text-link"> 700 <div> 701 <span class="text-uppercase">${themeDisplay.getLocale().getLanguage()}</span> 702 </div> 703 <i class="icon-chevron-down"></i> 704 </span> 705 </#if> 706 </a> 707 </div> 708 </#if> 709 710 <#if getterUtil.getBoolean(sideMenu.sideMenuShowAdditionalLink.getData())> 711 <#assign 712 icon = sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkIcon.getData() 713 iconWidth = sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkWidth.getData() 714 iconHeight = sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkHeight.getData() 715 text = sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkText.getData() 716 link = (sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkURL.getData()?has_content)?string(cache.parseLinkURL(request, sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkURL.getData()), "") 717 target = (link?has_content)?string((sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkTarget.getData()?has_content)?string(sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkTarget.getData(), cache.getLinkTarget(link)), "") 718 /> 719 720 <a class="side-menu__footer-link" href="${link}" target="${target}"> 721 <#if icon?has_content> 722 <#assign style = "" /> 723 <#if iconWidth?has_content && iconWidth != "0"> 724 <#assign style += "width: " + iconWidth + "px;" /> 725 </#if> 726 <#if iconHeight?has_content && iconHeight != "0"> 727 <#assign style += "height: " + iconHeight + "px;" /> 728 </#if> 729 730 <#if text?has_content> 731 <img class="icon-right-space" alt="${sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkIcon.getAttribute("alt")}" data-fileentryid="$sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkIcon.getAttribute("fileEntryId")}" src="${icon}" title="${text}" style="${style}"/> 732 <#else> 733 <img alt="${sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkIcon.getAttribute("alt")}" data-fileentryid="${sideMenu.sideMenuAdditionalLink.sideMenuAdditionalLinkIcon.getAttribute("fileEntryId")}" src="${icon}" style="${style}" /> 734 </#if> 735 </#if> 736 737 <div><span>${text}</span></div> 738 </a> 739 </#if> 740 </li> 741 </#if> 742 </ul> 743 </div> 744 </#if> 745 </div> 746 </div> 747 748 <div class="side-menu-overlay js-side-menu-overlay"></div> 749 750 <#elseif sideMenuType == "LANGUAGE" 751 && ((getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowLanguage.getData())) 752 || (getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowCountry.getData()) && currentCountry?? && currentCountry?has_content))> 753 754 <div id="sideMenuCategory--LANGUAGE" class="side-menu__category side-menu__language" data-level="0"> 755 <div class="side-menu__body"> 756 <div class="side-menu__close d-flex"> 757 <span class="side-menu-back-btn js-side-menu-back-btn d-flex align-items-center d-lg-none"> 758 <i class="icon-arrow-left"></i> 759 ${cache.translate(locale, "Back")} 760 </span> 761 762 <img alt="Laufen Swiss Bathroom" class="laufen-logo-mini" src="${themeDisplay.getPathThemeImages()}/brand/brand-logo-mini.svg"/> 763 <i class="icon-close icon-close side-menu-close-btn js-side-menu-close-btn d-none d-lg-block"></i> 764 </div> 765 766 <#if getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowLanguage.getData()) && localeList?? && localeList?has_content && localeList?size gt 1> 767 <div class="language-container"> 768 <p class="language-selector-title text-uppercase">${cache.translate(locale, "Select language")}</p> 769 770 <ul class="language-list"> 771 <#list localeList as marketLocale> 772 <#if themeDisplay.getLocale() != marketLocale> 773 <#assign lpath = "/" /> 774 </#if> 775 776 <li class="language-list-item <#if themeDisplay.getLocale() == marketLocale>active</#if>"> 777 <a href="${cache.getSiteURL(request, marketLocale, lpath, true)}"> 778 ${marketLocale.getDisplayLanguage(themeDisplay.getLocale())} 779 </a> 780 </li> 781 </#list> 782 </ul> 783 </div> 784 </#if> 785 786 <#if getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowCountry.getData()) && currentCountry?? && currentCountry?has_content> 787 <div class="country-selector-container"> 788 <p class="language-selector-title text-uppercase">${cache.translate(locale, "Select your country")}</p> 789 </div> 790 791 <div id="continent-parent"></div> 792 </#if> 793 </div> 794 </div> 795 </#if> 796 </#macro> 797 798 <#macro drawSearchHeader> 799 <#assign searchLink = cache.parseLinkURL(request, cache.translate(locale, "/search" )) /> 800 801 <div id="search-header" class="search-header"> 802 <input id="header-search-input" class="search-input" data-url="${searchLink}" name="q" placeholder="${cache.translate(themeDisplay.getLocale(), 'Search')}" type="search" /> 803 804 <a id="header-search-icon" class="search-icon" href="javascript:void(0);" role="button" title="${cache.translate(themeDisplay.getLocale(), 'Search')}"> 805 <span class="icon-search"></span> 806 </a> 807 808 <i class="icon-close" id="header-search-close-icon"></i> 809 </div> 810 </#macro> 811 812 <#function getUserInitials> 813 <#local userInitials = "" /> 814 <#if themeDisplay.getUser().getFirstName()?? && themeDisplay.getUser().getFirstName()?has_content> 815 <#local firstName = themeDisplay.getUser().getFirstName() /> 816 <#local userInitials += firstName?substring(0, 1) /> 817 </#if> 818 <#if themeDisplay.getUser().getLastName()?? && themeDisplay.getUser().getLastName()?has_content> 819 <#local lastName = themeDisplay.getUser().getLastName() /> 820 <#local userInitials += lastName?substring(0, 1) /> 821 </#if> 822 823 <#return userInitials?upper_case /> 824 </#function> 825 826 827 828 <#assign 829 p_Map = productsMap?eval 830 u_Layouts = userLayouts?eval 831 832 profile_layouts = u_Layouts.profileLayouts 833 834 profile_url = u_Layouts.profileUrl 835 logout_url = u_Layouts.logoutUrl 836 login_url = u_Layouts.loginUrl 837 838 marketTree = cache.getMarketsTree() 839 hasCommerce = cache.checkCommerce(request) 840 currentMarket = cache.getCurrentMarket(request) 841 currentCountry = cache.getCurrentCountry(request) 842 843 htmlC1 = "" 844 htmlC2 = "" 845 htmlC3 = "" 846 htmlCCta = "" 847 /> 848 849 <header id="laufen-restyle-header" class="laufen-restyle-header js-header"> 850 <#if themeDisplay.isSignedIn()> 851 <input type="hidden" id="user-initials" value="${getUserInitials()}"> 852 </#if> 853 854 <#-- INIT PROMOTIONAL BANNER --> 855 856 <#if getterUtil.getBoolean(promoBanner.promoBannerShow.getData()) && promoBanner.promoBannerText.getData()??> 857 <div class="promoSubmenu"> 858 <section class="promomenu-section"> 859 <#if promoBanner.promoBannerPopup.getData()?? && promoBanner.promoBannerPopup.getData()?has_content> 860 <div class="promomenu-scroll-wrapper" id="promoScrollWrapper"> 861 <a class="promomenu-link" data-toggle="modal" data-target="#promoBannerDisp" href="#"> 862 ${promoBanner.promoBannerText.getData()} 863 </a> 864 </div> 865 <#else> 866 <div class="promomenu-scroll-wrapper" id="promoScrollWrapper"> 867 <p class="promomenu-text">${promoBanner.promoBannerText.getData()}</p> 868 </div> 869 </#if> 870 <button class="promomenu-scroll-btn" id="promoScrollBtn" aria-label="${cache.translate(locale, "Ver mas")}" aria-hidden="true"> 871 <i class="icon-chevron-right"></i> 872 </button> 873 </section> 874 </div> 875 <script> 876document.addEventListener("DOMContentLoaded", function() { 877 const scrollWrapper = document.getElementById('promoScrollWrapper'); 878 const scrollBtn = document.getElementById('promoScrollBtn'); 879 880 if (!scrollWrapper || !scrollBtn) return; 881 882 function checkScrollable() { 883 if (scrollWrapper.scrollWidth > scrollWrapper.clientWidth) { 884 scrollBtn.classList.add('is-visible'); 885 scrollBtn.setAttribute('aria-hidden', 'false'); 886 checkScrollPosition(); 887 } else { 888 scrollBtn.classList.remove('is-visible'); 889 scrollBtn.setAttribute('aria-hidden', 'true'); 890 } 891 } 892 893 function checkScrollPosition() { 894 const isAtEnd = scrollWrapper.scrollLeft + scrollWrapper.clientWidth >= scrollWrapper.scrollWidth - 5; 895 896 if (isAtEnd) { 897 scrollBtn.classList.add('is-at-end'); 898 scrollBtn.setAttribute('aria-label', '${cache.translate(locale, "Volver al principio")}'); 899 } else { 900 scrollBtn.classList.remove('is-at-end'); 901 scrollBtn.setAttribute('aria-label', '${cache.translate(locale, "Ver mas")}'); 902 } 903 } 904 905 checkScrollable(); 906 window.addEventListener('resize', checkScrollable); 907 908 scrollWrapper.addEventListener('scroll', checkScrollPosition); 909 910 scrollBtn.addEventListener('click', function() { 911 if (scrollBtn.classList.contains('is-at-end')) { 912 scrollWrapper.scrollTo({ left: 0, behavior: 'smooth' }); 913 } else { 914 scrollWrapper.scrollBy({ left: 150, behavior: 'smooth' }); 915 } 916 }); 917}); 918 </script> 919 </#if> 920 921 <#-- END PROMOTIONAL BANNER --> 922 923 <div class="main-header__wrapper" id="laufen-main-header-wrapper"> 924 <div class="main-navbar"> 925 <#-- INIT SUPRA MENU --> 926 <@initSupraMenus /> 927 928 <section class="supramenu"> 929 <div class="container"> 930 <div class="row"> 931 <div class="col-12 supramenu-cols"> 932 <div class="supramenu-left"> 933 <ul class="supramenu__list supramenu__list--left"> 934 <li class="supramenu__item supramenu__item--hamburger menu-hamburger-trigger"> 935 <a class="supramenu__link menu-hamburger-link side-menu-btn-trigger js-side-menu-btn-trigger"> 936 <span class="menu-hamburger-icon-link"> 937 <i class="icon-hamburger"></i> 938 </span> 939 </a> 940 </li> 941 942 <#-- INIT LANGUAGE & COUNTRY SELECTOR --> 943 <#if getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowCountry.getData()) || getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowLanguage.getData())> 944 <li class="supramenu__item supramenu__item--country menu-country-trigger d-none d-lg-block"> 945 <a class="supramenu__link menu-country-link js-open-side-menu" href="javascript:void(0)" data-category="LANGUAGE" data-groupid="${themeDisplay.getSiteGroupId()}" data-languageid="${themeDisplay.getLanguageId()}"> 946 <#if getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowCountry.getData())> 947 <span class="menu-country-text-link"> 948 <i class="icon-language icon-right-space"></i> 949 <div><span>${currentCountry.getAssetCategory().getTitle(themeDisplay.getLocale())}</span></div> 950 </span> 951 </#if> 952 953 <#if getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowLanguage.getData()) && localeList?? && localeList?has_content && localeList?size gt 1> 954 <span class="menu-country-text-link"> 955 <div> 956 <span class="text-uppercase">${themeDisplay.getLocale().getLanguage()}</span> 957 </div> 958 <i class="icon-chevron-down"></i> 959 </span> 960 </#if> 961 </a> 962 </li> 963 </#if> 964 <#-- END LANGUAGE & COUNTRY SELECTOR --> 965 966 <#-- INIT ADITIONAL SHORTCUTS --> 967 <#if htmlC1?has_content> 968 ${htmlC1} 969 </#if> 970 <#-- END ADDITIONAL SHORTCUTS --> 971 </ul> 972 </div> 973 974 <div class="supramenu-center"> 975 <#if config.configLogo.configLogoImage.getData()?has_content> 976 <#assign 977 logoImg = config.configLogo.configLogoImage.getData() 978 logoImgWidth = config.configLogo.configLogoWidth.getData() 979 logoImgHeight = config.configLogo.configLogoHeight.getData() 980 link = (config.configLogo.configLogoLink.getData()?has_content)?string(cache.parseLinkURL(request, config.configLogo.configLogoLink.getData()), "") 981 target = (link?has_content)?string((config.configLogo.configLogoTargetLink.getData()?has_content)?string(config.configLogo.configLogoTargetLink.getData(), cache.getLinkTarget(link)), "") 982 /> 983 984 <div class="logo-header"> 985 <#if link?has_content> 986 <a href="${link}" target="${target}"> 987 </#if> 988 989 <#assign style = "" /> 990 <#if logoImgWidth?has_content && logoImgWidth != "0"> 991 <#assign style += "width: " + logoImgWidth + "px;" /> 992 </#if> 993 <#if logoImgHeight?has_content && logoImgHeight != "0"> 994 <#assign style += "height: " + logoImgHeight + "px;" /> 995 </#if> 996 997 <img alt="${config.configLogo.configLogoImage.getAttribute("alt")}" data-fileentryid="${config.configLogo.configLogoImage.getAttribute("fileEntryId")}" src="${logoImg}" style="${style}" /> 998 <#if link?has_content> 999 </a> 1000 </#if> 1001 </div> 1002 </#if> 1003 </div> 1004 1005 <div class="supramenu-right"> 1006 <ul class="supramenu__list supramenu__list--right"> 1007 <#if htmlC2?has_content> 1008 ${htmlC2} 1009 </#if> 1010 1011 <#if htmlC3?has_content> 1012 ${htmlC3} 1013 </#if> 1014 1015 <#if getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowPrivate.getData())> 1016 <li id="userMenuLi" class="supramenu__item supramenu__item--login" 1017 data-group="${themeDisplay.getSiteGroupId()}" 1018 data-market="${currentMarket.getCode()}" 1019 data-language="${themeDisplay.getLanguageId()}" 1020 data-debug="${cache.debugMarginals()?c}" 1021 > 1022 <div class="loader-roca active"> 1023 <div class="lds-css"> 1024 </div> 1025 <div class="lds-load"> 1026 <div></div> 1027 <div></div> 1028 <div></div> 1029 </div> 1030 </li> 1031 </#if> 1032 1033 1034 <#if getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowCart.getData()) && hasCommerce> 1035 <li class="supramenu__item js-h-cart"> 1036 <a class="right-menu__link" id="cartIcon" href="${cache.getEcommerceURL(request, '/checkout/cart')}" title="${cache.translate(locale, 'Go to cart')}"> 1037 <span class="icon-cart"></span> 1038 <span class="items-cart">-</span> 1039 </a> 1040 </li> 1041 </#if> 1042 1043 <#if htmlCCta?has_content> 1044 <div class="supramenu__item--cta"> 1045 ${htmlCCta} 1046 </div> 1047 </#if> 1048 </ul> 1049 </div> 1050 </div> 1051 </div> 1052 </div> 1053 </section> 1054 <#-- END SUPRA MENU --> 1055 1056 <#-- INIT MAIN MENU --> 1057 1058 <section class="main-nav js-main-nav"> 1059 <div class="main-nav-container container"> 1060 <div class="main-menu-container"> 1061 <@drawDesktopMainMenu /> 1062 1063 <div class="logo-search-header container" id="logo-search-header"> 1064 <#if getterUtil.getBoolean(config.configAuxElements.configAuxElementsShowSearch.getData())> 1065 <@drawSearchHeader /> 1066 </#if> 1067 </div> 1068 </div> 1069 </div> 1070 </section> 1071 1072 <#-- END MAIN MENU --> 1073 </div> 1074 1075 <#-- INIT SEARCH MODAL --> 1076 1077 <div id="rs-search-modal" class="r-modal search-modal"></div> 1078 1079 <#-- END SEARCH MODAL --> 1080 1081 <#-- INIT MINI-CART MODAL --> 1082 1083 <div class="r-modal mini-cart-collapse"> 1084 <div class="close-menu"> 1085 <div class="wrapper"> 1086 <a href="javascript:void(0)" class="js-close icon-close"></a> 1087 </div> 1088 </div> 1089 1090 <div class="r-modal__wrapper"></div> 1091 </div> 1092 1093 <#-- END MINI-CART MODAL --> 1094 1095 <#-- INIT PROMOTIONAL BANNER MODAL --> 1096 1097 <#if promoBanner.promoBannerPopup.getData()?? && promoBanner.promoBannerPopup.getData()?has_content> 1098 <div class="lightbox-wrapper"> 1099 <div class="modal fade modal-lightbox" id="promoBannerDisp" tabindex="-1" role="dialog" aria-labelledby="" style="display: none;" aria-hidden="true"> 1100 <div class="modal-dialog modal-lg" role="document" style="top: 20%;"> 1101 <div class="container"> 1102 <div class="close-menu"> 1103 <div class="wrapper"> 1104 <a role="button" data-dismiss="modal" id="promoBannerDisp" class="js-close icon-close"></a> 1105 </div> 1106 </div> 1107 </div> 1108 <div class="r-modal__wrapper"> 1109 <div class="container"> 1110 <section style="background-color:white !important;" class="form-modal"> 1111 <div class="container"> 1112 <div class="row"> 1113 <div class="col-12 col-md-12 promomenu-modal"> 1114 ${promoBanner.promoBannerPopup.getData()} 1115 </div> 1116 </div> 1117 </div> 1118 </section> 1119 </div> 1120 </div> 1121 </div> 1122 </div> 1123 </div> 1124 </#if> 1125 1126 <#-- END PROMOTIONAL BANNER MODAL --> 1127 1128 </div> 1129 1130 <#-- INIT SIDE MENU --> 1131 1132 <@drawSideMenu "MENU" /> 1133 1134 <#-- END SIDE MENU --> 1135 1136 <#-- INIT LANGUAGE & COUNTRY MODAL --> 1137 1138 <@drawSideMenu "LANGUAGE" /> 1139 1140 <#-- END LANGUAGE & COUNTRY MODAL --> 1141 1142 </header> 1143</#if>