Exception in template (Designs/Mobler2018/_parsed/Clean.parsed.cshtml): System.NullReferenceException: Object reference not set to an instance of an object.
   at Mobler.Website.CustomModules.MoblerHelpers.MoblerHelpers.createCanonical() in C:\Users\1stweb\Documents\Git\mobler\Mobler.Website\CustomModules\MoblerHelpers\MoblerHelpers.cs:line 1321
   at CompiledRazorTemplates.Dynamic.abacddab.Execute()
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context)
   at RazorEngine.Templating.TemplateService.Run(ITemplate template, DynamicViewBag viewBag)
   at RazorEngine.Templating.TemplateService.Parse(String razorTemplate, Object model, DynamicViewBag viewBag, String cacheName)
   at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
   at Dynamicweb.Rendering.Template.Output()
@using Mobler.Website.CustomModules.MoblerHelpers; @using System.Web; @using System.Text.RegularExpressions @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ string GoogleMapsAPIKey = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("GoogleMapsApiKey"); string shopname = MoblerHelpers.GetShopName(); var shopInfo = MoblerHelpers.ShopInfo(); string globalAreaName = GetGlobalValue("Global:Area.Name"); string logosrc = "Files/Templates/Designs/Mobler2018/assets/img/logos/logo" + shopname.Replace(" ", "") + ".png"; string logoDesktop = "Files/Templates/Designs/Mobler2018/assets/img/logos/logo" + shopname.Replace(" ", "") + ".png"; string logoMobile = "Files/Templates/Designs/Mobler2018/assets/img/logos/logoSmall" + shopname.Replace(" ", "") + ".png"; var headerSearchIcon = MoblerHelpers.GetSVGIcon("icon-search"); string imageName = shopname.Replace(" ", string.Empty) + "-owner.png"; string localShopPage = MoblerHelpers.localshopPage(); string FindDealerPage = GetString("Item.Area.FindDealerPage"); string CartPage = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("CartPage"); string ProductInstantSearchUrl = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("ProductInstantSearchUrl"); string SearchResultPageId = ""; if (Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("SearchResultPage").Split('=').Length > 1) { SearchResultPageId = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("SearchResultPage").Split('=')[1]; } string FooterLinkDestination = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("Link"); int ShopPageId = GetInteger("Item.Area.ShopPageId"); var AllShops = Firstweb.Custom.CustomCode.Frontend.Helpers.Shops.GetAllShops(ShopPageId); string SearchBarPlaceholder = Translate("SearchbarPlaceholderText", "S&oslash;g.."); int GlobalNewsletterParagraphId = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetInt("GlobalNewsletterParagraphId"); int CartCount = GetLoop("OrderLines").Count; string CountCss = CartCount > 0 ? "d-block" : ""; bool FirstShopWithSameName = true; string SelectPlaceholder = Translate("ShopSelectPlaceholder", "Indtast by, postnummer eller adresse"); string SelectNoResult = Translate("ShopSelectNoResult", "No such shop found"); int ProductPage = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetInt("PrimaryProductPage"); bool EnableTopBarNavigation = GetBoolean("Item.Area.EnableTopBarBanner.Value"); string BannerBackgroundColor = GetString("Item.Area.BannerBackgroundColor"); string BannerTextColor = GetString("Item.Area.BannerTextColor"); var TopBarNav = GetLoop("Item.Area.TopBarNavigation"); string TilbudBgColor = !String.IsNullOrEmpty(GetString("Item.Area.TilbudBackgroundColor.Value")) ? GetString("Item.Area.TilbudBackgroundColor.Value") : "#00AB5D"; string TilbudTextColor = !String.IsNullOrEmpty(GetString("Item.Area.TilbudTextColor.Value")) ? GetString("Item.Area.TilbudTextColor.Value") : "#FFFFFF"; var uniqueSellingPoints = GetLoop("Item.Area.UniqueSellingPoints"); string CookieText = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("CookieText"); string CookieReadMore = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("CookieReadMoreText"); var TopLevelGroups = Dynamicweb.eCommerce.Products.Group.GetToplevelGroups().Where(g => g.NavigationShowInMenu).ToList(); string CurrentUri = HttpContext.Current.Request.Url.PathAndQuery.ToString().Replace("/Default.aspx", "Default.aspx"); string convertedUri = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(CurrentUri); string CanonicalUri = MoblerHelpers.createCanonical(); string CanonicalURL = "https://mobler.dk" + CanonicalUri; string OgTitle = GetString("Title"); string OgDescription = GetString("Meta.Description"); } @SnippetStart("LocalShopPage") <a class="menu-item py-2 px-md-3" href="@localShopPage">Om os</a> @SnippetEnd("LocalShopPage") @foreach (var TopLevelGroup in TopLevelGroups) { @SnippetStart(TopLevelGroup.ID.ToString()) foreach (var PrimaryGroup in TopLevelGroup.Subgroups) { <div class="category p-3"> <div class="font-weight-bold"> <a href="/@TopLevelGroup.Meta.PrimaryPage?groupid=@PrimaryGroup.ID">@PrimaryGroup.Name</a> </div> @foreach (var SubGroup in PrimaryGroup.Subgroups) { string GroupLink = SubGroup.ProductGroupFieldValues.GetProductGroupFieldValue("LinkToGroupsPrimaryPosition").HasValue && !String.IsNullOrEmpty(SubGroup.ProductGroupFieldValues.GetProductGroupFieldValue("LinkToGroupsPrimaryPosition").Value.ToString()) ? SubGroup.ProductGroupFieldValues.GetProductGroupFieldValue("LinkToGroupsPrimaryPosition").Value.ToString() : "/" + TopLevelGroup.Meta.PrimaryPage + "?groupid=" + SubGroup.ID; <div> <a href="@GroupLink">@SubGroup.Name</a> </div> } </div> } @SnippetEnd(TopLevelGroup.ID.ToString()) } <!doctype html> <html lang="da"> <head> @*GTM*@ <script> var ecomm_pagetype = "other"; var ecomm_totalvalue = 0; var ecomm_prodid = ""; </script> @RenderSnippet("DataLayerOverwrites") <script> dataLayer = [{ 'ecomm_pagetype': ecomm_pagetype, 'ecomm_totalvalue': ecomm_totalvalue, 'ecomm_prodid': ecomm_prodid, }]; </script> @RenderSnippet("DataLayerOverwriteReceipt") <script> (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-PN9ZSS'); </script> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> @if (GetInteger("DwPageID") != ProductPage) { } else { @RenderSnippet("ProductDetailsMeta") } @if (System.Web.HttpContext.Current.Request.Url.Host.ToLower().Contains("1stweb")) { <meta name="robots" content="noindex"> } @if (convertedUri != CanonicalUri) { <link rel="canonical" href="@CanonicalURL"> } <!-- Bootstrap CSS --> <title>@GetValue("Title")</title> @GetValue("MetaTags") @GetValue("CopyRightNotice") <meta property="og:url" content="@CanonicalURL"> <meta property="og:title" content="@OgTitle"> <link rel="shortcut icon" type="image/ico" href="/Files/Templates/Designs/Mobler2016/images/icons/favicon.ico"> @if (GetString("Item.SystemName") == "BlogPost") { string OgImage = "https://mobler.dk" + GetString("Item.Billede.Value"); string TeaserText = Regex.Replace(GetString("Item.TeaserTekst"), "<.*?>", String.Empty); <meta property="og:type" content="article"> <meta property="og:description" content="@TeaserText"> <meta property="og:image" content="@OgImage"> } else if (GetString("Item.SystemName") == "Brand") { string OgImage = "https://mobler.dk" + GetString("Item.Logo.Value"); string TeaserText = GetString("Item.Navn"); <meta property="og:type" content="article"> <meta property="og:description" content="@TeaserText"> <meta property="og:image" content="@OgImage"> } else if (System.Web.HttpContext.Current.Items["OverrideOgTags"] != null) { @RenderSnippet("OgTags") } else { <meta property="og:type" content="business.business"> <meta property="og:description" content="@OgDescription"> <meta property="og:image" content="https://mobler.dk/Files/Templates/Designs/Mobler2018/assets/img/logos/logoM%C3%B8bl%C3%A9r.png"> } <link href="/Files/Templates/Designs/Mobler2018/assets/dist/css/main.3f5261e3d8f1320a4c34df35270b4910.css?9b468a3d6cac1ebf73fa" rel="stylesheet">@GetValue("Stylesheets") @GetValue("Javascripts") </head> <body data-bind="viewModel: 'MasterViewModel', Cookies"> @*GTM*@ <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-PN9ZSS" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <div data-bind="viewModel: 'HeaderViewModel'"> @if (EnableTopBarNavigation) { <div class="container-fluid"> <div class="row"> <div class="col-12 text-center" style="background-color:@BannerBackgroundColor;"> <ul class="nav topbar-nav justify-content-center"> @if (TopBarNav != null) { foreach (var navItem in TopBarNav) { string ItemLink = navItem.GetString("Item.Area.TopBarNavigation.NavItemLink"); string ItemText = navItem.GetString("Item.Area.TopBarNavigation.NavItemText"); <li class="nav-item"></li> <a class="nav-link p-1 rte-content" href='@ItemLink' style="color:@BannerTextColor;"> @ItemText </a> <li class="nav-item topbar-nav--separator font-weight-bold p-1" style="color:@BannerTextColor;">-</li> } } </ul> </div> </div> </div> } <div class="menu-open-overlay" data-bind="css: { active: MenuOpen }, click: ToggleMenu"></div> <header class="pt-4 pt-md-0 js-header"> <div class="container pt-3 pb-md-3 position-md-relative"> <div class="mini-cart box-shadow unimportant-hidden" data-bind="css: { 'd-block': CartOpen }"> <div class="mini-cart-closer fs3 pointer" data-bind="click: ToggleCart"> <i class="fas fa-times-circle color-primary"></i> </div> <p class="m-0 p-3 font-weight-bold text-uppercase fs3">@Translate("MiniCartHeader", "Din indk&oslash;bskurv")</p> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @using Mobler.Website.CustomModules.MoblerHelpers @{ bool AnyLines = GetLoop("OrderLines").Any(); string BlackFridayTheme = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("BlackFridayTheme"); } <div class="js-mini-cart-lines"> @if (AnyLines) { <div class="lines"> @foreach (var line in GetLoop("OrderLines")) { string OrderlineProductID = line.GetString("Ecom:Product.ID"); string OrderlineProductNumber = line.GetString("Ecom:Product.Number"); string OrderlineVariantId = ""; if (OrderlineProductNumber.Split('_').Length > 1) { OrderlineVariantId = OrderlineProductNumber.Split('_')[1]; } string OrderlineDefaultVariantID = line.GetString("Ecom:Product.DefaultVariantComboID"); string OrderlineProductImage = ""; if (!String.IsNullOrEmpty(OrderlineVariantId)) { OrderlineProductImage = string.Format("/Admin/Public/GetImage.ashx?Image={0}&Width=260&height=200&Format=png&Crop=5&resolution=50", MoblerHelpers.GetProductImages(OrderlineProductID, OrderlineVariantId).First()); } if (String.IsNullOrEmpty(OrderlineProductImage) || OrderlineProductImage.Contains("kommer_snart.jpg")) { OrderlineProductImage = MoblerHelpers.GetProductListImage(OrderlineProductID, OrderlineDefaultVariantID); } string OrderlineProductName = line.GetString("Ecom:Product.Name"); double OrderlineProductPrice = line.GetDouble("Ecom:Product.Price.Price"); double OrderlinePrice = line.GetDouble("Ecom:Order:olPrice.Price"); double OrderlineQuantity = line.GetDouble("Ecom:Order:OrderLine.Quantity"); <div class="cartline d-flex justify-content-between align-items-center bg-grey px-3 py-2 position-relative"> <a href="/@line.GetString(" ecom:order:orderline.deletelink")"="" class="delete-orderline fs0 color-subtle"> <i class="fas fa-times"></i> </a> <div class="product-image"> <img class="img-fluid" src="@OrderlineProductImage"> </div> <div class="flex-fill px-3"> <p class="fs0 font-weight-bold m-0">@OrderlineProductName</p> <p class="m-0 color-subtle fs0 small-quantity-indicator">@OrderlineQuantity stk. a @MoblerHelpers.formatPrice(OrderlineProductPrice)</p> </div> <p class="fs0 m-0 mr-5 large-quantity-indicator">@OrderlineQuantity stk.</p> <p class="fs0 m-0 orderline-price">@MoblerHelpers.formatPrice(OrderlinePrice)</p> </div> } </div> if (BlackFridayTheme == "True") { <div class="bf-bg-black p-3 d-flex justify-content-between align-items-center price-summary"> <p class="m-0 color-white fs0">@Translate("MiniCartTotal", "Din kurv i alt (ex. fragt)")</p> <p class="m-0 color-white fs1 font-weight-bold">@MoblerHelpers.formatPrice(GetDouble("Ecom:Order.Price.Price"))</p> </div> } else { <div class="bg-brand p-3 d-flex justify-content-between align-items-center price-summary"> <p class="m-0 color-white fs0">@Translate("MiniCartTotal", "Din kurv i alt (ex. fragt)")</p> <p class="m-0 color-white fs1 font-weight-bold">@MoblerHelpers.formatPrice(GetDouble("Ecom:Order.Price.Price"))</p> </div> } } else { <div class="bg-grey p-3 js-no-lines"> <p class="m-0 font-weight-bold">@Translate("MiniCartNoLines", "Du har ingen varer i din kurv")</p> </div> } </div> <div class="p-3 d-flex justify-content-between"> <p class="pointer py-2 px-3 bg-dark-grey color-white rounded m-0" data-bind="click: ToggleCart">@Translate("MiniCartContinueShopping", "Handel videre")</p> <a href="@CartPage" class="pointer py-2 px-3 bg-brand color-white rounded d-block no-underline">@Translate("MiniCartGoToCheckout", "G&aring; til kassen")</a> </div> <div class="p-2 bg-light-grey payment-options d-flex justify-content-center align-items-center"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/DK_Logo_konturstreg.png" alt="VISA/DK"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/visa.png" alt="VISA/DK"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/visa-elektron.png" alt="VISA/DK"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/mc_vrt_pos.png" alt="VISA/DK"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/santander.png" alt="VISA/DK"> </div> </div> <div class="row align-items-center"> <div class="col-3 d-md-none"> <div class="rounded bg-brand d-flex py-2 px-2 float-left justify-content-center align-items-center" data-bind="click: ToggleMenu"> <i class="fas fa-bars color-white"></i> </div> </div> <div class="col-6 col-md-3"> <a href="/"> <img class="img-fluid" src="@logosrc" alt="Logo"> </a> </div> <div class="col-12 col-md-4 d-flex align-items-center mt-2 mt-md-0 order-1 order-md-0" data-bind="setInitValue: { observable: InstantSearchEndpoint, value: '@ProductInstantSearchUrl' }"> <div class="input-group search-bar-container position-relative"> <form action="/" class="w-100" method="get"> <input type="hidden" name="id" value="@SearchResultPageId"> <input type="text" autocomplete="off" name="q" class="form-control rounded-0 bg-light-grey search-bar" placeholder="@SearchBarPlaceholder" aria-describedby="basic-addon2" data-bind="textInput: SearchQuery"> <button class="icon" type="submit"><i class="fas fa-search"></i></button> </form> <div class="instant-search-results box-shadow unimportant-hidden" data-bind="css: { 'd-block': Products().length > 0 || SearchError }"> <div data-bind="foreach: Products, visisble: Products().length > 0"> <a data-bind="attr: { href: Link }" class="col-12 result d-flex justify-content-between align-items-center p-2 no-underline"> <img data-bind="attr: { src: Image }"> <span class="flex-fill px-2" data-bind="text: Name"></span> <span data-bind="text: Price"></span> </a> </div> <p class="p-2 m-0" data-bind="visible: SearchError">@Translate("InstantSearchError", "Der forekom en fejl under s&oslash;gningen")</p> </div> </div> </div> <div class="col-3 col-md-5 d-flex align-items-center position-static"> <div class="row align-items-center flex-grow-1"> <div class="col-12 col-md-7 find-dealer"> <div class="bg-grey pt-1 pt-md-0"> <select class="bg-grey p-2 border-0" data-bind="select2SelectShop: { overlay: 'find-dealer-overlay', placeholder: '@SelectPlaceholder', noResult: '@SelectNoResult' }"> @if (shopname == "Møblér") { <option selected="" disabled="">@Translate("HeaderFindShop", "Find forhandler")</option> } else { foreach (var Shop in AllShops.Where(x => x.MenuText == shopname)) { if (FirstShopWithSameName) { <option selected="" disabled="" value="@HttpUtility.UrlEncode(Shop.MenuText)">@Shop.ShopName</option> FirstShopWithSameName = false; } } } @{ FirstShopWithSameName = true; } @foreach (var Shop in AllShops) { if (Shop.MenuText != "Møblér" && Shop.MenuText != shopname) { var Address = "<div>" + Shop.Address + "</div><div>" + Shop.PostalAndCity + "</div>"; <option title="@Address" value="@HttpUtility.UrlEncode(Shop.MenuText)">@Shop.ShopName {{@Shop.PostalAndCity @Shop.SearchKeyWords}}</option> } } </select> </div> </div> <div class="col-12 col-md-5 d-flex align-items-center justify-content-end"> <p class="m-0 color-primary pointer d-flex align-items-center position-relative" data-bind="click: ToggleCart"> <span class="cart-count-indicator js-cart-count @CountCss">@CartCount</span> <img class="mr-lg-2" src="/Files/Templates/Designs/Mobler2018/assets/img/icons/shopping-cart.svg" alt="Open minicart"> <span class="d-none d-lg-inline fs0 font-weight-bold">@Translate("CartOpen", "Indk&oslash;bskurv")</span> </p> </div> </div> </div> </div> </div> <div class="nav-bg"> <div class="container position-relative"> <nav class="menu d-flex flex-wrap" data-bind="css: { open: MenuOpen }, menuToggler: { menuItemSelector: '.menu-item.has-drop', isMenuOpenObs: MenuOpen, productsArray: Products, searchError: SearchError }"> <div class="menu-closer fs3 pointer" data-bind="click: ToggleMenu"> <i class="fas fa-times-circle color-primary"></i> </div> @RenderNavigation(new { ExpandMode = "All", Template = "navigation.xslt", TilbudTextColor = "color: " + TilbudTextColor + ";", TilbudBgColor = "background-color: " + TilbudBgColor + ";" }) </nav> </div> </div> </header> </div> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> <div class="container pt-3 d-none d-md-block"> @RenderNavigation(new { ExpandMode = "All", Template = "breadcrumb.xslt" }) </div> <div id="content1">@GetValue("DwContent(content1)")</div> @if (GlobalNewsletterParagraphId != 0) { @RenderParagraphContent(GlobalNewsletterParagraphId); } <div class="py-5"> <div class="container"> <div class="row align-items-center"> @foreach (var item in GetLoop("Item.Area.Featured_Brands")) { string Link = item.GetString("Item.Area.Featured_Brands.Brand.Value"); var Brand = Firstweb.Custom.CustomCode.Frontend.Helpers.Brands.GetBrand(Link); if (!String.IsNullOrEmpty(Brand.Name)) { <div class="col-4 col-sm-2"> <a href="@Brand.Link"> <img class="img-fluid" src="@Brand.Logo" alt="@Brand.Name"> </a> </div> } } </div> </div> </div> <div class="footer-find-dealer bg-grey pt-5"> <div class="container"> <div class="row align-items-center mt-3"> <div class="col-12 col-sm-5 col-lg-4 mb-5"> <img class="img-fluid mb-3" src="@logosrc"> <div class="color-grey fs2"> <p class="mb-0 font-weight-bold">@GetString("Item.Area.Header")</p> <p> @GetString("Item.Area.About") </p> <a href="@FooterLinkDestination"><u>@Translate("FooterAboutReadMore", "L&aelig;s mere om M&oslash;blér k&aelig;den her")</u></a> </div> </div> <div class="col-12 col-sm-7 col-lg-5 order-lg-1 mb-5"> @if (shopname == "Møblér") { <div class="d-flex flex-nowrap align-items-center"> <div> <p class="fs2 color-grey">@Translate("FooterFindLocalShop", "Find din lokale forhandler")</p> <a href="@FindDealerPage" class="btn btn-primary font-weight-bold"><i class="fas fa-map-marker mr-1"></i> @Translate("FooterFinShopCTA", "Vælg den n&aelig;rmeste butik")</a> </div> <div> <img class="img-fluid" src="https://puu.sh/AijtR/99094b2d97.jpg" alt="Danmark"> </div> </div> } else { <div class="d-flex flex-nowrap flex-column align-items-sm-end"> <div> <p class="fs4 font-weight-bold mb-1"> @Translate("QuestionsForLocalShop", "Har du sp&oslash;rgsm&aring;l?") </p> <p class="color-primary fs2 font-weight-bold mb-0">@shopInfo.ShopName</p> <div class="color-subtle"> <p class="mb-0">@shopInfo.Address, @shopInfo.PostalAndCity</p> @if (!String.IsNullOrEmpty(MoblerHelpers.ShopInfo().Address1)) { <p class="mb-0">@MoblerHelpers.ShopInfo().Address1, @MoblerHelpers.ShopInfo().PostalAndCity1</p> } @if (!String.IsNullOrEmpty(MoblerHelpers.ShopInfo().Address2)) { <p class="mb-0">@MoblerHelpers.ShopInfo().Address2, @MoblerHelpers.ShopInfo().PostalAndCity2</p> } <p class="mb-0">Tlf. <a href="tel:@shopInfo.Phone">@shopInfo.Phone</a></p> <p class="mb-0">Email: <a href="mailto:@shopInfo.Email">@shopInfo.Email</a></p> <div class="mt-3"> @shopInfo.OpeningHours </div> </div> </div> </div> } </div> <div class="col-12 col-sm-4 offset-sm-4 offset-lg-0 col-lg-3 align-self-end text-center"> @{ string FooterStaffImagePath = String.Format("/Files/Images/Owners/{0}-owner.png", shopname); } <img class="staff-image" src="@FooterStaffImagePath" alt="@shopname"> </div> </div> </div> </div> <div class="footer-links py-4" style="background-image:url('/Files/Templates/Designs/Mobler2018/assets/img/mobler-logo-footer.png')"> <div class="container"> <div class="row justify-content-around"> <div class="col-12 col-md-4 col-xl-3 text-center mb-4 mb-md-0"> <h3 class="font-weight-medium">@GetString("Item.Area.Footer_Column_1_Header")</h3> @foreach (var Link in GetLoop("Item.Area.Footer_Column_1_Links")) { string LinkText = Link.GetString("Item.Area.Footer_Column_1_Links.LinkText"); string LinkDestination = "/Default.aspx?id=" + Link.GetString("Item.Area.Footer_Column_1_Links.Link"); <div> <a href="@LinkDestination">@LinkText</a> </div> } </div> <div class="col-12 col-md-4 col-xl-3 text-center mb-4 mb-md-0"> <h3 class="font-weight-medium">@GetString("Item.Area.Footer_Column_2_Header")</h3> @foreach (var Link in GetLoop("Item.Area.Footer_Column_2_Links")) { string LinkText = Link.GetString("Item.Area.Footer_Column_2_Links.LinkText"); string LinkDestination = "/Default.aspx?id=" + Link.GetString("Item.Area.Footer_Column_2_Links.Link"); <div> <a href="@LinkDestination">@LinkText</a> </div> } </div> <div class="col-12 col-md-4 col-xl-3 text-center"> <h3 class="font-weight-medium">@GetString("Item.Area.Footer_Column_3_Header")</h3> @foreach (var Link in GetLoop("Item.Area.Footer_Column_3_Links")) { string LinkText = Link.GetString("Item.Area.Footer_Column_3_Links.LinkText"); string LinkDestination = "/Default.aspx?id=" + Link.GetString("Item.Area.Footer_Column_3_Links.Link"); <div> <a href="@LinkDestination">@LinkText</a> </div> } </div> </div> </div> </div> <div class="footer-icons py-4 bg-grey"> <div class="container"> <div class="some-icons d-flex justify-content-center mb-3"> @foreach (var Some in GetLoop("Item.Area.SocialMediaIcons")) { string Link = Some.GetString("Item.Area.SocialMediaIcons.Link"); string Icon = Some.GetString("Item.Area.SocialMediaIcons.Icon.Value"); <a href="@Link" target="_blank" class="icon d-flex align-items-center justify-content-center"> <img src="@Icon"> </a> } </div> <div class="payment-options d-flex justify-content-center align-items-center"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/DK_Logo_konturstreg.png" alt="VISA/DK"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/visa.png" alt="VISA/DK"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/visa-elektron.png" alt="VISA/DK"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/mc_vrt_pos.png" alt="VISA/DK"> <img src="/Files/Templates/Designs/Mobler2018/assets/img/santander.png" alt="VISA/DK"> </div> </div> </div> <div class="cookie-open-overlay color-white py-2 px-3" data-bind="css: { active: cookieConsent() == false }"> <div class="rte-cookie"> @CookieText </div> <div data-bind="click: createCookie" class="btn btn-white fs2 font-weight-bold ml-3 bg-white color-primary py-0">@Translate("CookieConsentCTA", "OK")</div> </div> <script src="https://maps.googleapis.com/maps/api/js?key=@GoogleMapsAPIKey"></script> <script src="https://www.youtube.com/iframe_api"></script> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @using Mobler.Website.CustomModules.MoblerHelpers @helper RenderUSP(LoopItem usp) { var pageURL = usp.GetString("Item.Area.UniqueSellingPoints.Link.Value"); string BlackFridayTheme = Firstweb.Custom.CustomCode.Frontend.Helpers.AreaItems.GetString("BlackFridayTheme"); string friendlyUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(pageURL); var svg = MoblerHelpers.GetSVGIcon(usp.GetString("Item.Area.UniqueSellingPoints.Icon.Value")); var blackfridaysvg = MoblerHelpers.GetSVGIcon(usp.GetString("Item.Area.UniqueSellingPoints.Icon.Value")) + "@blackfriday.svg"; <div class="col-6 col-md-3 usp d-flex flex-column mb-3 mb-md-0"> <a class="no-underline" href="@pageURL"> @if (BlackFridayTheme == "True"){ <img class="img-fluid d-block mx-auto" src="@blackfridaysvg"> <div class="text-center black-friday mt-3"> @usp.GetString("Item.Area.UniqueSellingPoints.LinkText.Value") </div> } else { <img class="img-fluid d-block mx-auto" src="@svg"> <div class="text-center mt-3"> @usp.GetString("Item.Area.UniqueSellingPoints.LinkText.Value") </div> } </a> </div> } @SnippetStart("USPs") @if (uniqueSellingPoints.Any()) { <div class="container usps"> <div class="row my-5"> @foreach (LoopItem usp in uniqueSellingPoints) { @RenderUSP(usp) } </div> </div> } @SnippetEnd("USPs") <script type="text/javascript" src="/Files/Templates/Designs/Mobler2018/assets/dist/js/vendor.8ca4231040acd8495ac1.js?9b468a3d6cac1ebf73fa"></script><script type="text/javascript" src="/Files/Templates/Designs/Mobler2018/assets/dist/js/main.21741bedbe251f1b1051.js?9b468a3d6cac1ebf73fa"></script></body> </html>