Error compiling template "Designs/ColoursAndCoating_generated/DefaultPage.cshtml"
Line 13: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 14: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 15: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 16: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 21: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 22: The using directive for 'System.Linq' appeared previously in this namespace
Line 23: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 25: The using directive for 'Dynamicweb' appeared previously in this namespace
Line 35: The type or namespace name 'Helper' does not exist in the namespace 'application._webapi' (are you missing an assembly reference?)
Line 112: The name 'favicon' does not exist in the current context
Line 116: The name 'favicon' does not exist in the current context
Line 146: 'User.GetCurrentExtranetUserId()' is obsolete: 'Use UserContext.Current.UserId instead.'
Line 277: The name 'LanguageSwitcher' does not exist in the current context
Line 287: The name 'LanguageSwitcher' does not exist in the current context
Line 317: The name 'RenderHeaderUSP' does not exist in the current context
Line 319: The name 'RenderHeaderUSP' does not exist in the current context
Line 321: The name 'RenderHeaderUSP' does not exist in the current context
Line 323: The name 'RenderHeaderUSP' does not exist in the current context
Line 325: The name 'RenderHeaderUSP' does not exist in the current context
Line 361: The name 'LanguageSwitcher' does not exist in the current context
Line 371: The name 'LanguageSwitcher' does not exist in the current context
Line 804: The name 'RenderFooterUSP' does not exist in the current context
Line 806: The name 'RenderFooterUSP' does not exist in the current context
Line 808: The name 'RenderFooterUSP' does not exist in the current context
Line 810: The name 'RenderFooterUSP' does not exist in the current context
Line 812: The name 'RenderFooterUSP' does not exist in the current context

1 // <auto-generated/> 2 #pragma warning disable 1591 3 namespace CompiledRazorTemplates.Dynamic 4 { 5 #line hidden 6 using System.Threading.Tasks; 7 using System; 8 using System.Collections.Generic; 9 using Dynamicweb; 10 using Bluedesk.Tools.Generic; 11 using System.Globalization; 12 using Bluedesk.DynamicWeb.ItemTypes.Settings.Configuration; 13 using Dynamicweb; 14 using Dynamicweb; 15 using Dynamicweb; 16 using Dynamicweb; 17 using Bluedesk.DynamicWeb.ItemTypes.Pages; 18 using Bluedesk.Tools.DynamicWeb.ExtensionMethods; 19 using System.Linq; 20 using Dynamicweb.Content; 21 using Dynamicweb; 22 using System.Linq; 23 using Dynamicweb; 24 using Bluedesk.DynamicWeb.ItemTypes; 25 using Dynamicweb; 26 internal class RazorEngine_2ed0f9568b8c4ba784355f98a6073674 : Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 27 { 28 #pragma warning disable 1998 29 public async override global::System.Threading.Tasks.Task ExecuteAsync() 30 { 31 WriteLiteral("\r\n"); 32 33 var httpdomain = Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain(); 34 var lang = GetString("LongLang").Split('-')[0]; 35 var csrftoken = application._webapi.Helper.CSRFHelper.TokenHeaderValue(); 36 var designRoot = "/Files/Templates/Designs/" + Pageview.Area.Layout.Design.Name; 37 38 var phonenumber = GetString("Item.Area.Phonenumber"); 39 var formattedPhonenumber = phonenumber.Replace(" ", String.Empty); 40 var emailadress = GetString("Item.Area.Emailadress"); 41 var buttonIconClass = Pageview.Area.Item["Global_button_icon"] != null ? Pageview.Area.Item["Global_button_icon"].ToString().Replace("+", " ") : "fal fa-arrow-right"; 42 var callmebackformlink = GetString("Item.Area.Call_me_back_form"); 43 var mobileThemeColor = GetString("Item.Area.Mobile_Theme_Color"); 44 45 bool isOffline = false; 46 DateTime workingHoursStart = GetDate("Item.Area.OpeningTime"); 47 DateTime workingHoursEnd = GetDate("Item.Area.ClosingTime"); 48 DateTime today = DateTime.Now; 49 var cHour = DateTime.Now.TimeOfDay; 50 int cDay = (int)DateTime.Now.DayOfWeek; 51 string availableToHour24hFormat = workingHoursEnd.TimeOfDay.ToString().Substring(0,5); 52 var timeFromInput = DateTime.ParseExact(availableToHour24hFormat, "H:m", null, DateTimeStyles.None); 53 string availableToHour12hFormat = timeFromInput.ToString("hh:mm tt", CultureInfo.InvariantCulture); 54 var availableToHour = lang == "en" ? availableToHour12hFormat : availableToHour24hFormat; 55 bool isOvertime = cHour >= workingHoursEnd.TimeOfDay || cHour <= workingHoursStart.TimeOfDay; 56 bool isNoValidDate = today < workingHoursStart || today > workingHoursEnd; 57 if (isNoValidDate || isOvertime) 58 { 59 isOffline = true; 60 } 61 WriteLiteral("\r\n<!DOCTYPE html>\r\n<html"); 62 BeginWriteAttribute("lang", " lang=\"", 1968, "\"", 1980, 1); 63 WriteAttributeValue("", 1975, lang, 1975, 5, false); 64 EndWriteAttribute(); 65 WriteLiteral(" prefix=\"og: http://ogp.me/ns#\">\r\n<head>\r\n\t<meta charset=\"utf-8\">\r\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\r\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n\t<meta name=\"theme-color\""); 66 BeginWriteAttribute("content", " content=\"", 2200, "\"", 2227, 1); 67 WriteAttributeValue("", 2210, mobileThemeColor, 2210, 17, false); 68 EndWriteAttribute(); 69 WriteLiteral(">\r\n\t<meta name=\"description\""); 70 BeginWriteAttribute("content", " content=\"", 2256, "\"", 2296, 1); 71 WriteAttributeValue("", 2266, GetString("Meta.Description"), 2266, 30, false); 72 EndWriteAttribute(); 73 WriteLiteral(">\r\n\t<meta name=\"keywords\""); 74 BeginWriteAttribute("content", " content=\"", 2322, "\"", 2359, 1); 75 WriteAttributeValue("", 2332, GetString("Meta.Keywords"), 2332, 27, false); 76 EndWriteAttribute(); 77 WriteLiteral(">\r\n\r\n\t"); 78 Write(RenderSnippet("canonical")); 79 WriteLiteral("\r\n\r\n\t"); 80 Write(RenderSnippet("ogTags")); 81 WriteLiteral("\r\n\r\n\t<title>Dynamicweb</title>\r\n\r\n"); 82 83 84 85 var appcss = Cache.VersionedFile(designRoot + "/dist/app.css"); 86 WriteLiteral("\t\t<link"); 87 BeginWriteAttribute("href", " href=\"", 2540, "\"", 2554, 1); 88 WriteAttributeValue("", 2547, appcss, 2547, 7, false); 89 EndWriteAttribute(); 90 WriteLiteral(" rel=\"stylesheet\" />\r\n"); 91 92 var favicon32 = Cache.VersionedFile(designRoot + "/assets/img/favicon-32.png", true); 93 var favicon16 = Cache.VersionedFile(designRoot + "/assets/img/favicon-16.png", true); 94 var favico = Cache.VersionedFile(designRoot + "/assets/img/favicon.ico", true); 95 96 if (!string.IsNullOrWhiteSpace(favicon32)) 97 { 98 WriteLiteral("\t\t\t<link rel=\"icon\" type=\"image/png\" sizes=\"32x32\""); 99 BeginWriteAttribute("href", " href=\"", 2943, "\"", 2960, 1); 100 WriteAttributeValue("", 2950, favicon32, 2950, 10, false); 101 EndWriteAttribute(); 102 WriteLiteral(">\r\n"); 103 } 104 if (!string.IsNullOrWhiteSpace(favicon16)) 105 { 106 WriteLiteral("\t\t\t<link rel=\"icon\" type=\"image/png\" sizes=\"16x16\""); 107 BeginWriteAttribute("href", " href=\"", 3070, "\"", 3087, 1); 108 WriteAttributeValue("", 3077, favicon16, 3077, 10, false); 109 EndWriteAttribute(); 110 WriteLiteral(">\r\n"); 111 } 112 if (!string.IsNullOrWhiteSpace(favicon)) 113 { 114 WriteLiteral("\t\t\t<link rel=\"shortcut icon\""); 115 BeginWriteAttribute("href", " href=\"", 3173, "\"", 3188, 1); 116 WriteAttributeValue("", 3180, favicon, 3180, 8, false); 117 EndWriteAttribute(); 118 WriteLiteral(">\r\n"); 119 } 120 WriteLiteral("\r\n"); 121 foreach (var language in GetLoop("Languages")) 122 { 123 string pageid = language.GetString("PageID"); 124 string url = language.GetString("PrimaryDomain") + Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("default.aspx?id=" + pageid); 125 126 WriteLiteral("\t\t<link rel=\"alternate\""); 127 BeginWriteAttribute("href", " href=\'", 3475, "\'", 3486, 1); 128 WriteAttributeValue("", 3482, url, 3482, 4, false); 129 EndWriteAttribute(); 130 BeginWriteAttribute("hreflang", " hreflang=\'", 3487, "\'", 3528, 1); 131 WriteAttributeValue("", 3498, language.GetString("Culture"), 3498, 30, false); 132 EndWriteAttribute(); 133 WriteLiteral(" />\r\n"); 134 } 135 WriteLiteral("\r\n\t<script>\r\n\t\twindow.globals = {\r\n\t\t\tpageId: \'"); 136 Write(Pageview.ID); 137 WriteLiteral("\',\r\n\t\t\tToken: \'"); 138 Write(csrftoken); 139 WriteLiteral("\',\r\n\t\t\tDW_AREA_CULTURE: \'"); 140 Write(GetString("LongLang")); 141 WriteLiteral("\',\r\n\t\t\tDW_AREA_CULTURE_SHORT: \'"); 142 Write(lang); 143 WriteLiteral("\',\r\n\t\t\tglobalIconClass: \'"); 144 Write(buttonIconClass); 145 WriteLiteral("\',\r\n\t\t\tDW_USERID: \'"); 146 Write(Dynamicweb.Security.UserManagement.User.GetCurrentExtranetUserId()); 147 WriteLiteral("\'\r\n\t\t};\r\n\t</script>\r\n\r\n\t"); 148 Write(GetString("Item.Area.HeadScript")); 149 WriteLiteral("\r\n"); 150 151 var _cookieOptinLevel = Dynamicweb.Environment.CookieManager.GetCookieOptInLevel(); 152 var _enabledCookieCategories = Dynamicweb.Environment.CookieManager.GetCookieOptInCategories(); 153 if (_cookieOptinLevel.ToString() == "All" || _enabledCookieCategories.Contains("Marketing_Cookies")) 154 { 155 Write(GetString("Item.Area.HeadScriptAfterConsent")); 156 157 } 158 WriteLiteral("\r\n"); 159 WriteLiteral("\r\n"); 160 161 var reviewName = GetString("Item.Area.Review_Name") != null ? GetString("Item.Area.Review_Name") : ""; 162 var reviewBestRating = GetString("Item.Area.Review_Best_Rating") != null ? GetString("Item.Area.Review_Best_Rating") : ""; 163 var reviewWorstRating = GetString("Item.Area.Review_Worst_Rating") != null ? GetString("Item.Area.Review_Worst_Rating") : ""; 164 var reviewRatingValue = GetString("Item.Area.Review_Rating_Value") != null ? GetString("Item.Area.Review_Rating_Value") : ""; 165 var reviewCount = GetString("Item.Area.Review_Count") != null ? GetString("Item.Area.Review_Count") : ""; 166 var reviewUrl = GetString("Item.Area.Review_URL") != null ? GetString("Item.Area.Review_URL") : ""; 167 168 var searchPageID = Bluedesk.Tools.DynamicWeb.Generic.PageHelper.GetPageIDByNavigationTag("searchresults", Pageview.AreaID); 169 var domain = Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain(); 170 WriteLiteral("\r\n<script type=\"application/ld+json\">\r\n [{\r\n \""); 171 WriteLiteral("@context\": \"https://schema.org\",\r\n \""); 172 WriteLiteral("@type\": \"Organization\",\r\n \"name\" : \""); 173 Write(GetString("Item.Area.CompanyName")); 174 WriteLiteral("\",\r\n \"url\": \""); 175 Write(domain); 176 WriteLiteral("\",\r\n \"sameAs\" : \""); 177 Write(GetString("Item.Area.Facebook")); 178 WriteLiteral("\",\r\n \"logo\": \""); 179 Write(domain); 180 Write(GetString("Item.Area.Logo")); 181 WriteLiteral("\",\r\n \"contactPoint\" : [{\r\n \""); 182 WriteLiteral("@type\" : \"ContactPoint\",\r\n \"telephone\" : \""); 183 Write(GetString("Item.Area.Phonenumber")); 184 WriteLiteral("\",\r\n \"contactType\" : \"customer service\" ,\r\n \""); 185 WriteLiteral("@context\": \"https://schema.org\",\r\n \""); 186 WriteLiteral("@id\": \""); 187 Write(domain); 188 WriteLiteral("\",\r\n \"name\": \""); 189 Write(GetString("Item.Area.CompanyName")); 190 WriteLiteral("\"\r\n }],\r\n \"address\": {\r\n \""); 191 WriteLiteral("@type\": \"PostalAddress\",\r\n \"streetAddress\": \""); 192 Write(GetString("Item.Area.Address")); 193 WriteLiteral("\",\r\n \"addressLocality\": \""); 194 Write(GetString("Item.Area.City")); 195 WriteLiteral("\",\r\n \"postalCode\": \""); 196 Write(GetString("Item.Area.Zipcode")); 197 WriteLiteral("\",\r\n \"addressRegion\": \""); 198 Write(GetString("Item.Area.Region")); 199 WriteLiteral("\",\r\n \"addressCountry\": \""); 200 Write(GetString("Item.Area.Country")); 201 WriteLiteral("\"\r\n }\r\n },\r\n {\r\n \""); 202 WriteLiteral("@context\": \"https://schema.org\",\r\n \""); 203 WriteLiteral("@type\": \"WebSite\",\r\n \"name\" : \""); 204 Write(GetString("Item.Area.CompanyName")); 205 WriteLiteral("\",\r\n \"alternateName\" : \""); 206 Write(GetString("Item.Area.AltCompanyName")); 207 WriteLiteral("\",\r\n \"url\": \""); 208 Write(domain); 209 WriteLiteral("\",\r\n \"potentialAction\": {\r\n \""); 210 WriteLiteral("@type\": \"SearchAction\",\r\n \"target\": \""); 211 Write(domain); 212 WriteLiteral("/Default.aspx?ID="); 213 Write(searchPageID); 214 WriteLiteral("&q={search_term_string}\",\r\n \"query-input\": \"required name=search_term_string\"\r\n }\r\n }]\r\n</script>\r\n\r\n<script type=\"application/ld+json\">\r\n {\r\n \""); 215 WriteLiteral("@context\": \"https://schema.org\",\r\n \""); 216 WriteLiteral("@type\": \"Product\",\r\n \"name\": \""); 217 Write(reviewName); 218 WriteLiteral("\",\r\n \"url\":\""); 219 Write(reviewUrl); 220 WriteLiteral("\",\r\n \"aggregateRating\": {\r\n \""); 221 WriteLiteral("@type\": \"AggregateRating\",\r\n \"bestRating\": \""); 222 Write(reviewBestRating); 223 WriteLiteral("\",\r\n \"worstRating\": \""); 224 Write(reviewWorstRating); 225 WriteLiteral("\",\r\n \"ratingValue\": \""); 226 Write(reviewRatingValue); 227 WriteLiteral("\",\r\n \"reviewCount\": \""); 228 Write(reviewCount); 229 WriteLiteral("\"\r\n }\r\n }\r\n</script>\r\n\t"); 230 Write(RenderSnippet("DataLayer")); 231 WriteLiteral("\r\n\r\n\t"); 232 Write(RenderSnippet("GoogleMapsScript")); 233 WriteLiteral("\r\n\r\n"); 234 WriteLiteral("\r\n"); 235 236 // TODO: Add there options to master config for product overview 237 bool hideShoppingCartForGuests = false; 238 239 bool enableShoppingCart = hideShoppingCartForGuests && Pageview.User == null ? false : (bool) GetBoolean("Item.Area.ConfigModuleShoppingCart"); 240 bool enableLogin = (bool) GetBoolean("Item.Area.ConfigModuleLogin"); 241 bool enableQuickOrder = (bool) GetBoolean("Item.Area.ConfigModuleQuickOrder"); 242 bool enableAdvancedSearch = (bool) GetBoolean("Item.Area.ConfigModuleAdvancedSearch"); 243 bool enableCallMeBack = (bool) GetBoolean("Item.Area.ConfigModuleCallMeBack"); 244 bool enableDyslexicFont = (bool) GetBoolean("Item.Area.ConfigModuleDyslexicFont"); 245 bool enableProductCompare = (bool) GetBoolean("Item.Area.ConfigModuleProductCompare"); 246 WriteLiteral("\r\n</head>\r\n\r\n<body>\r\n\t"); 247 Write(GetString("Item.Area.BodyScript")); 248 WriteLiteral("\r\n"); 249 250 if (_cookieOptinLevel.ToString() == "All" || _enabledCookieCategories.Contains("Marketing_Cookies")) 251 { 252 Write(GetString("Item.Area.BodyScriptAfterConsent")); 253 254 } 255 WriteLiteral("\t"); 256 Write(GetString("Item.Area.TailScript")); 257 WriteLiteral("\r\n\r\n"); 258 WriteLiteral("\r\n"); 259 260 string logo = GetString("Item.Area.Logo"); 261 string logoAlt = GetString("Item.Area.Logo_Alt"); 262 263 int SearchPageID = Bluedesk.Tools.DynamicWeb.Generic.PageHelper.GetPageIDByNavigationTag("searchresults", Pageview.AreaID); 264 var SearchPlaceholder = Translate("Searchbox.PlaceholderValue", "Search..."); 265 var SearchPlaceholderHover = Translate("Search.PlaceholderValue2", "Zoekt u misschien een ...?"); 266 var SearchPrefill = Dynamicweb.Context.Current.Request["q"]; 267 var SearchboxClass = !string.IsNullOrWhiteSpace(SearchPrefill) ? "open" : ""; 268 var SearchtoggleClass = !string.IsNullOrWhiteSpace(SearchPrefill) ? "close" : ""; 269 WriteLiteral("\r\n<header class=\"header header--mobile\">\r\n\r\n\t<div class=\"flex items-center\">\r\n\t\t<a href=\"/\" class=\"w-full mr-4 header__logo__wrapper\">\r\n\t\t\t<img class=\"header__logo\""); 270 BeginWriteAttribute("src", " src=\"", 9554, "\"", 9654, 3); 271 WriteAttributeValue("", 9560, "/Admin/Public/GetImage.ashx?Image=", 9560, 34, true); 272 WriteAttributeValue("", 9594, logo, 9594, 5, false); 273 WriteAttributeValue("", 9599, "&Crop=5&Format=webp&Quality=99&Compression=80&Width=400", 9599, 55, true); 274 EndWriteAttribute(); 275 WriteLiteral(" alt=\"Logo\" width=\"400\" height=\"200\">\r\n\t\t</a>\r\n\r\n"); 276 WriteLiteral("\r\n"); 277 if (LanguageSwitcher.GetLanguages().Count > 1) 278 { 279 WriteLiteral("\t<div class=\"top-toggles\">\r\n\t\t<div class=\"language\">\r\n\t\t\t<div class=\"language-dropdown\">\r\n\t\t\t\t<button class=\"language-dropdown__toggle\" type=\"button\" aria-label=\"Change language\">\r\n\t\t\t\t\t<span"); 280 BeginWriteAttribute("class", " class=\"", 10073, "\"", 10153, 4); 281 WriteAttributeValue("", 10081, "flag", 10081, 4, true); 282 WriteAttributeValue(" ", 10085, "flag-icon", 10086, 10, true); 283 WriteAttributeValue(" ", 10095, "flag-icon-", 10096, 11, true); 284 WriteAttributeValue("", 10106, Pageview.Area.Culture.Substring(3,2).ToLower(), 10106, 47, false); 285 EndWriteAttribute(); 286 WriteLiteral("></span>\r\n\t\t\t\t\t<i class=\"fal fa-chevron-down\"></i>\r\n\t\t\t\t</button>\r\n\t\t\t\t<ul class=\"language-dropdown__options\">\r\n"); 287 foreach (var l in LanguageSwitcher.GetLanguages()) 288 { 289 string languageName = @l.NativeName.ToString().Split('(')[0]; 290 WriteLiteral("<li class=\"language-dropdown__item\">\r\n\t\t\t\t\t\t\t<a"); 291 BeginWriteAttribute("href", " href=\'", 10454, "\'", 10467, 1); 292 WriteAttributeValue("", 10461, l.Url, 10461, 6, false); 293 EndWriteAttribute(); 294 BeginWriteAttribute("title", " title=\"", 10468, "\"", 10489, 1); 295 WriteAttributeValue("", 10476, languageName, 10476, 13, false); 296 EndWriteAttribute(); 297 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t<span"); 298 BeginWriteAttribute("class", " class=\"", 10506, "\"", 10548, 3); 299 WriteAttributeValue("", 10514, "flag-icon", 10514, 9, true); 300 WriteAttributeValue(" ", 10523, "flag-icon-", 10524, 11, true); 301 WriteAttributeValue("", 10534, l.CountryCode, 10534, 14, false); 302 EndWriteAttribute(); 303 WriteLiteral("></span>\r\n\t\t\t\t\t\t\t\t<span class=\"language-dropdown__item-code\">"); 304 Write(languageName); 305 WriteLiteral("</span>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</li>\r\n"); 306 } 307 WriteLiteral("\t\t\t\t</ul>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n"); 308 } 309 WriteLiteral("\r\n\r\n"); 310 if(enableShoppingCart) { 311 WriteLiteral("\t\t\t<div class=\"app-shopping-cart\" data-cart-location=\"header-mobile\" data-enable-shoppingcart=\""); 312 Write(enableShoppingCart); 313 WriteLiteral("\"></div>\r\n"); 314 } 315 WriteLiteral("\r\n\t\t<div id=\"hamburger\" class=\"icon__content\">\r\n\t\t\t<i class=\"fal fa-bars icon\"></i>\r\n\t\t</div>\r\n\r\n\t</div>\r\n\r\n</header>\r\n\r\n<header class=\"header header--desktop\">\r\n\r\n"); 316 WriteLiteral("\r\n<section class=\"topmenu\">\r\n\r\n\t<div class=\"topmenu__container container\">\r\n\r\n\t\t<ul class=\"usp__list\">\r\n\t\t\t"); 317 Write(RenderHeaderUSP(@GetString("Item.Area.USP_1.Value"), @GetString("Item.Area.USP_1_icon.Value"))); 318 WriteLiteral("\r\n\t\t\t"); 319 Write(RenderHeaderUSP(@GetString("Item.Area.USP_2.Value"), @GetString("Item.Area.USP_2_icon.Value"))); 320 WriteLiteral("\r\n\t\t\t"); 321 Write(RenderHeaderUSP(@GetString("Item.Area.USP_3.Value"), @GetString("Item.Area.USP_3_icon.Value"))); 322 WriteLiteral("\r\n\t\t\t"); 323 Write(RenderHeaderUSP(@GetString("Item.Area.USP_4.Value"), @GetString("Item.Area.USP_4_icon.Value"))); 324 WriteLiteral("\r\n\t\t\t"); 325 Write(RenderHeaderUSP(@GetString("Item.Area.USP_5.Value"), @GetString("Item.Area.USP_5_icon.Value"))); 326 WriteLiteral(@" 327 </ul> 328 329 <section class=""flex flex-row""> 330 331 <ul class=""topmenu__list""> 332 <placeholder class=""dwnavigation"" id=""topnavigation"" settings=""startlevel:1;endlevel:1;template:TopNavigation.xslt;blockclass:topmenu;parenttag:topmenu-nav;""></placeholder> 333 "); 334 if (enableLogin) 335 { 336 if (Pageview.User == null) 337 { 338 WriteLiteral("\t\t\t\t\t\t<li class=\"topmenu__item topmenu__login\">\r\n\t\t\t\t\t\t\t<a href=\"javascript:;\" class=\"topmenu__link topmenu__link--login\">"); 339 Write(Translate("User.Login", "Login")); 340 WriteLiteral("</a>\r\n\t\t\t\t\t\t</li>\r\n"); 341 } 342 else 343 { 344 WriteLiteral("\t\t\t\t\t\t<li class=\"topmenu__item topmenu__login\">\r\n\t\t\t\t\t\t\t<a"); 345 BeginWriteAttribute("href", " href=\"", 12370, "\"", 12431, 2); 346 WriteAttributeValue("", 12377, "/Admin/Public/ExtranetLogoff.aspx?ID=", 12377, 37, true); 347 WriteAttributeValue("", 12414, Pageview.Page.ID, 12414, 17, false); 348 EndWriteAttribute(); 349 WriteLiteral(" class=\"topmenu__link\">"); 350 Write(Translate("User.Logout", "Logout")); 351 WriteLiteral("</a>\r\n\t\t\t\t\t\t</li>\r\n"); 352 } 353 } 354 WriteLiteral("\t\t\t</ul>\r\n\t\t\t\t\t\t\r\n"); 355 if (enableDyslexicFont) 356 { 357 WriteLiteral("\t\t\t\t<div class=\"app-font-toggle\" data-standardfont=\"Maven Pro\"></div>\r\n"); 358 } 359 WriteLiteral("\r\n"); 360 WriteLiteral("\r\n"); 361 if (LanguageSwitcher.GetLanguages().Count > 1) 362 { 363 WriteLiteral("\t<div class=\"top-toggles\">\r\n\t\t<div class=\"language\">\r\n\t\t\t<div class=\"language-dropdown\">\r\n\t\t\t\t<button class=\"language-dropdown__toggle\" type=\"button\" aria-label=\"Change language\">\r\n\t\t\t\t\t<span"); 364 BeginWriteAttribute("class", " class=\"", 13026, "\"", 13106, 4); 365 WriteAttributeValue("", 13034, "flag", 13034, 4, true); 366 WriteAttributeValue(" ", 13038, "flag-icon", 13039, 10, true); 367 WriteAttributeValue(" ", 13048, "flag-icon-", 13049, 11, true); 368 WriteAttributeValue("", 13059, Pageview.Area.Culture.Substring(3,2).ToLower(), 13059, 47, false); 369 EndWriteAttribute(); 370 WriteLiteral("></span>\r\n\t\t\t\t\t<i class=\"fal fa-chevron-down\"></i>\r\n\t\t\t\t</button>\r\n\t\t\t\t<ul class=\"language-dropdown__options\">\r\n"); 371 foreach (var l in LanguageSwitcher.GetLanguages()) 372 { 373 string languageName = @l.NativeName.ToString().Split('(')[0]; 374 WriteLiteral("<li class=\"language-dropdown__item\">\r\n\t\t\t\t\t\t\t<a"); 375 BeginWriteAttribute("href", " href=\'", 13407, "\'", 13420, 1); 376 WriteAttributeValue("", 13414, l.Url, 13414, 6, false); 377 EndWriteAttribute(); 378 BeginWriteAttribute("title", " title=\"", 13421, "\"", 13442, 1); 379 WriteAttributeValue("", 13429, languageName, 13429, 13, false); 380 EndWriteAttribute(); 381 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t<span"); 382 BeginWriteAttribute("class", " class=\"", 13459, "\"", 13501, 3); 383 WriteAttributeValue("", 13467, "flag-icon", 13467, 9, true); 384 WriteAttributeValue(" ", 13476, "flag-icon-", 13477, 11, true); 385 WriteAttributeValue("", 13487, l.CountryCode, 13487, 14, false); 386 EndWriteAttribute(); 387 WriteLiteral("></span>\r\n\t\t\t\t\t\t\t\t<span class=\"language-dropdown__item-code\">"); 388 Write(languageName); 389 WriteLiteral("</span>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</li>\r\n"); 390 } 391 WriteLiteral("\t\t\t\t</ul>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n"); 392 } 393 WriteLiteral("\r\n\r\n"); 394 if (enableShoppingCart) 395 { 396 WriteLiteral("\t\t\t\t<div class=\"app-shopping-cart\" data-cart-location=\"header-desktop\" data-enable-shoppingcart=\""); 397 Write(enableShoppingCart); 398 WriteLiteral("\"></div>\r\n"); 399 } 400 WriteLiteral("\r\n\t\t</section>\r\n\t\t\r\n\t</div>\r\n\r\n</section>\r\n\r\n"); 401 WriteLiteral("\r\n\r\n\t<section class=\"header__container container\">\r\n\r\n\t\t<a href=\"/\" class=\"flex items-center\">\r\n\t\t\t<img class=\"header__logo\""); 402 BeginWriteAttribute("src", " src=\"", 14337, "\"", 14437, 3); 403 WriteAttributeValue("", 14343, "/Admin/Public/GetImage.ashx?Image=", 14343, 34, true); 404 WriteAttributeValue("", 14377, logo, 14377, 5, false); 405 WriteAttributeValue("", 14382, "&Crop=5&Format=webp&Quality=99&Compression=80&Width=400", 14382, 55, true); 406 EndWriteAttribute(); 407 WriteLiteral(" alt=\"Logo\" width=\"400\" height=\"200\">\r\n\t\t</a>\r\n\r\n"); 408 if(enableAdvancedSearch) { 409 WriteLiteral("<div id=\"advanced-search\"></div>\r\n"); 410 } else { 411 WriteLiteral("<div class=\"searchbox\">\r\n <form class=\"searchbox__form no-validate\" method=\"get\" action=\"/Default.aspx\" autocomplete=\"off\" role=\"search\">\r\n <input type=\"hidden\" name=\"ID\""); 412 BeginWriteAttribute("value", " value=\"", 14998, "\"", 15019, 1); 413 WriteAttributeValue("", 15006, SearchPageID, 15006, 13, false); 414 EndWriteAttribute(); 415 WriteLiteral(" />\r\n <input type=\"text\" name=\"q\""); 416 BeginWriteAttribute("value", " value=\"", 15060, "\"", 15082, 1); 417 WriteAttributeValue("", 15068, SearchPrefill, 15068, 14, false); 418 EndWriteAttribute(); 419 WriteLiteral(" class=\"input form__input input--text searchbox__input\""); 420 BeginWriteAttribute("placeholder", " placeholder=\"", 15138, "\"", 15170, 1); 421 WriteAttributeValue("", 15152, SearchPlaceholder, 15152, 18, false); 422 EndWriteAttribute(); 423 BeginWriteAttribute("aria-label", " aria-label=\"", 15171, "\"", 15202, 1); 424 WriteAttributeValue("", 15184, SearchPlaceholder, 15184, 18, false); 425 EndWriteAttribute(); 426 WriteLiteral(" data-placeholder=\""); 427 Write(SearchPlaceholder); 428 WriteLiteral("\" data-hoverplaceholder=\""); 429 Write(SearchPlaceholderHover); 430 WriteLiteral(@""" /> 431 <div class=""searchbox__button""> 432 <button type=""submit"" class=""searchbox__form__submit icon icon--medium icon__search input__icon"" aria-label=""Search""> 433 <i class=""fal fa-search""></i> 434 </button> 435 </div> 436 </form> 437 </div> 438 "); 439 } 440 WriteLiteral("\r\n\t\t<div class=\"header__cta\">\r\n"); 441 if (!isOffline) 442 { 443 WriteLiteral("\t\t\t\t<a"); 444 BeginWriteAttribute("href", " href=\"", 15642, "\"", 15674, 2); 445 WriteAttributeValue("", 15649, "tel:", 15649, 4, true); 446 WriteAttributeValue("", 15653, formattedPhonenumber, 15653, 21, false); 447 EndWriteAttribute(); 448 WriteLiteral(" class=\"header__cta--phone phone-cta\">\r\n\t\t\t\t\t<p class=\"phone-cta__number\"><i class=\"fas fa-phone-alt\"></i>"); 449 Write(Translate("Header.CallUsOn", "Call us on")); 450 WriteLiteral("<span>"); 451 Write(phonenumber); 452 WriteLiteral("</span></p>\r\n\t\t\t\t\t<div class=\"phone-cta__availability__wrapper\">\r\n\t\t\t\t\t\t<i class=\"fas fa-circle phone-cta__availability__icon\"></i>\r\n\t\t\t\t\t\t<p class=\"phone-cta__availability__description\">"); 453 Write(Translate("Header.AvailableUntill", "We are available until")); 454 WriteLiteral(" "); 455 Write(availableToHour); 456 WriteLiteral("</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n"); 457 } 458 else 459 { 460 WriteLiteral("\t\t\t\t<div class=\"header__cta--callmeback callmeback-cta\">\r\n\t\t\t\t\t<a"); 461 BeginWriteAttribute("href", " href=\"", 16223, "\"", 16249, 1); 462 WriteAttributeValue("", 16230, callmebackformlink, 16230, 19, false); 463 EndWriteAttribute(); 464 WriteLiteral(" class=\"btn default-btn btn__outline btn--callmeback\">\r\n\t\t\t\t\t\t<span class=\"btn__text\">"); 465 Write(Translate("Header.CallMeBack", "Call me back")); 466 WriteLiteral("</span>\r\n\t\t\t\t\t\t<i class=\"btn__icon fas fa-phone\"></i>\r\n\t\t\t\t\t</a>\r\n\t\t\t\t</div>\r\n"); 467 } 468 WriteLiteral("\t\t</div>\r\n\r\n\t</section>\r\n\r\n</header>\r\n\r\n<nav>\r\n"); 469 WriteLiteral("\r\n<section class=\"mainmenu mainmenu__container\">\r\n\t<header-menu id=\"header-menu\" data-enable-quickorder=\""); 470 Write(enableQuickOrder); 471 WriteLiteral(@"""> 472 <!-- Fall back menu for non vue--> 473 <div class=""container""> 474 <ul class=""mainmenu__list h-full""> 475 <placeholder class=""dwnavigation"" id=""mainmenu"" settings=""startlevel:1;endlevel:1;template:MainNavigation.xslt;expandmode:all;parenttag:topnavigation;blockclass:mainmenu;""></placeholder> 476 "); 477 if(enableQuickOrder) 478 { 479 WriteLiteral("\t\t\t\t\t<li class=\"mainmenu__item quickorder__toggle\">\r\n\t\t\t\t\t\t<button class=\"mainmenu__link\">Quick Order</button>\r\n\t\t\t\t\t</li>\r\n"); 480 } 481 WriteLiteral("\t\t\t</ul>\r\n\t\t</div>\r\n\t</header-menu>\r\n</section>\r\n\r\n</nav>\r\n\r\n\r\n<!-- DO NOT REMOVE -->\r\n<div id=\"quick-order\"></div>\r\n<div id=\"backdrop-megamenu\"></div>\r\n<mega-menu id=\"mega-menu\"></mega-menu>\r\n<!-- DO NOT REMOVE -->\r\n\r\n"); 482 WriteLiteral("\r\n"); 483 484 // cp = currentpage 485 var cp_default = Dynamicweb.Context.Current.Items["defaultActive"]; 486 var cp_productOverview = Dynamicweb.Context.Current.Items["productOverviewActive"]; 487 var cp_productDetail = Dynamicweb.Context.Current.Items["productDetailActive"]; 488 string stickyHeaderCTAText = GetString("Item.Area.Sticky_header_cta_text"); 489 string stickyHeaderCTALink = GetString("Item.Area.Sticky_header_cta_link"); 490 491 string stickyHeaderCTAIcon = GetString("Item.Area.Sticky_header_cta_icon"); 492 string stickyHeaderCTAIconClass = (!string.IsNullOrWhiteSpace(stickyHeaderCTAIcon)) ? stickyHeaderCTAIcon : "fal fa-shopping-cart"; 493 WriteLiteral(@" 494 <section class=""stickymenu flex""> 495 496 <!-- Sticky menu - Desktop --> 497 <div class=""hidden lg:flex container justify-between items-center""> 498 <div class=""mr-4 inline-block""> 499 <a href=""/"" class=""flex items-center""> 500 <img class=""header__logo--sticky"""); 501 BeginWriteAttribute("src", " src=\"", 18483, "\"", 18494, 1); 502 WriteAttributeValue("", 18489, logo, 18489, 5, false); 503 EndWriteAttribute(); 504 WriteLiteral(" alt=\"Logo\" width=\"200\" height=\"50\"/>\r\n\t\t\t</a>\r\n\t\t</div>\r\n\r\n"); 505 if (cp_productDetail != null && (bool)cp_productDetail) 506 { 507 Write(RenderSnippet("ProductDetailHeaderDesktop")); 508 509 } 510 else if (cp_productOverview != null && (bool)cp_productOverview) 511 { 512 WriteLiteral("<div class=\"searchbox\">\r\n <form class=\"searchbox__form no-validate\" method=\"get\" action=\"/Default.aspx\" autocomplete=\"off\" role=\"search\">\r\n <input type=\"hidden\" name=\"ID\""); 513 BeginWriteAttribute("value", " value=\"", 19054, "\"", 19075, 1); 514 WriteAttributeValue("", 19062, SearchPageID, 19062, 13, false); 515 EndWriteAttribute(); 516 WriteLiteral(" />\r\n <input type=\"text\" name=\"q\""); 517 BeginWriteAttribute("value", " value=\"", 19116, "\"", 19138, 1); 518 WriteAttributeValue("", 19124, SearchPrefill, 19124, 14, false); 519 EndWriteAttribute(); 520 WriteLiteral(" class=\"input form__input input--text searchbox__input\""); 521 BeginWriteAttribute("placeholder", " placeholder=\"", 19194, "\"", 19226, 1); 522 WriteAttributeValue("", 19208, SearchPlaceholder, 19208, 18, false); 523 EndWriteAttribute(); 524 BeginWriteAttribute("aria-label", " aria-label=\"", 19227, "\"", 19258, 1); 525 WriteAttributeValue("", 19240, SearchPlaceholder, 19240, 18, false); 526 EndWriteAttribute(); 527 WriteLiteral(" data-placeholder=\""); 528 Write(SearchPlaceholder); 529 WriteLiteral("\" data-hoverplaceholder=\""); 530 Write(SearchPlaceholderHover); 531 WriteLiteral(@""" /> 532 <div class=""searchbox__button""> 533 <button type=""submit"" class=""searchbox__form__submit icon icon--medium icon__search input__icon"" aria-label=""Search""> 534 <i class=""fal fa-search""></i> 535 </button> 536 </div> 537 </form> 538 </div> 539 "); 540 541 if(@enableShoppingCart) { 542 WriteLiteral("\t\t\t\t<div class=\"app-shopping-cart\" data-cart-location=\"sticky-desktop\" data-enable-shoppingcart=\""); 543 Write(enableShoppingCart); 544 WriteLiteral("\"></div>\r\n"); 545 } 546 } 547 else 548 { 549 550 if (!string.IsNullOrWhiteSpace(stickyHeaderCTAText)) 551 { 552 WriteLiteral("\t\t\t\t<a"); 553 BeginWriteAttribute("href", " href=\"", 19882, "\"", 19909, 1); 554 WriteAttributeValue("", 19889, stickyHeaderCTALink, 19889, 20, false); 555 EndWriteAttribute(); 556 WriteLiteral(" class=\"btn default-btn stickymenu__cta-btn\">\r\n\t\t\t\t\t<span class=\"btn__text stickymenu__cta-btn-label\">"); 557 Write(stickyHeaderCTAText); 558 WriteLiteral("</span>\r\n\t\t\t\t\t<i"); 559 BeginWriteAttribute("class", " class=\"", 20049, "\"", 20117, 3); 560 WriteAttributeValue("", 20057, "btn__icon", 20057, 9, true); 561 WriteAttributeValue(" ", 20066, stickyHeaderCTAIconClass, 20067, 25, false); 562 WriteAttributeValue(" ", 20092, "stickymenu__cta-btn-icon", 20093, 25, true); 563 EndWriteAttribute(); 564 WriteLiteral("></i>\r\n\t\t\t\t</a>\r\n"); 565 } 566 567 WriteLiteral("\t\t\t<div class=\"header__cta\">\r\n"); 568 if (!isOffline) 569 { 570 WriteLiteral("\t\t\t\t\t<a"); 571 BeginWriteAttribute("href", " href=\"", 20209, "\"", 20241, 2); 572 WriteAttributeValue("", 20216, "tel:", 20216, 4, true); 573 WriteAttributeValue("", 20220, formattedPhonenumber, 20220, 21, false); 574 EndWriteAttribute(); 575 WriteLiteral(" class=\"header__cta--phone phone-cta phone-cta--compact\">\r\n\t\t\t\t\t\t<p class=\"phone-cta__number\"><i class=\"fas fa-phone-alt\"></i><span>"); 576 Write(phonenumber); 577 WriteLiteral("</span></p>\r\n\t\t\t\t\t\t<p class=\"phone-cta__availability__description\"><i class=\"fas fa-circle phone-cta__availability__icon\"></i>"); 578 Write(Translate("Header.Available", "Available")); 579 WriteLiteral("</p>\r\n\t\t\t\t\t</a>\r\n"); 580 } 581 else 582 { 583 WriteLiteral("\t\t\t\t\t<div class=\"header__cta--callmeback callmeback-cta\">\r\n\t\t\t\t\t\t<a"); 584 BeginWriteAttribute("href", " href=\"", 20663, "\"", 20689, 1); 585 WriteAttributeValue("", 20670, callmebackformlink, 20670, 19, false); 586 EndWriteAttribute(); 587 WriteLiteral(" class=\"btn default-btn btn__outline btn--callmeback\">\r\n\t\t\t\t\t\t\t<span class=\"btn__text\">"); 588 Write(Translate("Header.CallMeBack", "Call me back")); 589 WriteLiteral("</span>\r\n\t\t\t\t\t\t\t<i class=\"btn__icon fas fa-phone\"></i>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>\r\n"); 590 } 591 WriteLiteral("\t\t\t</div>\r\n"); 592 593 if(@enableShoppingCart) { 594 WriteLiteral("\t\t\t\t<div class=\"app-shopping-cart\" data-cart-location=\"sticky-desktop\" data-enable-shoppingcart=\""); 595 Write(enableShoppingCart); 596 WriteLiteral("\"></div>\r\n"); 597 } 598 } 599 WriteLiteral("\t</div>\r\n\r\n\t<!-- Sticky menu - Mobile -->\r\n\t<div class=\"container flex lg:hidden justify-between items-center p-2\">\r\n"); 600 if (cp_productDetail != null && (bool)cp_productDetail) 601 { 602 Write(RenderSnippet("ProductDetailHeaderMobile")); 603 604 } 605 else if (cp_productOverview != null && (bool)cp_productOverview) 606 { 607 WriteLiteral("<div class=\"searchbox\">\r\n <form class=\"searchbox__form no-validate\" method=\"get\" action=\"/Default.aspx\" autocomplete=\"off\" role=\"search\">\r\n <input type=\"hidden\" name=\"ID\""); 608 BeginWriteAttribute("value", " value=\"", 21707, "\"", 21728, 1); 609 WriteAttributeValue("", 21715, SearchPageID, 21715, 13, false); 610 EndWriteAttribute(); 611 WriteLiteral(" />\r\n <input type=\"text\" name=\"q\""); 612 BeginWriteAttribute("value", " value=\"", 21769, "\"", 21791, 1); 613 WriteAttributeValue("", 21777, SearchPrefill, 21777, 14, false); 614 EndWriteAttribute(); 615 WriteLiteral(" class=\"input form__input input--text searchbox__input\""); 616 BeginWriteAttribute("placeholder", " placeholder=\"", 21847, "\"", 21879, 1); 617 WriteAttributeValue("", 21861, SearchPlaceholder, 21861, 18, false); 618 EndWriteAttribute(); 619 BeginWriteAttribute("aria-label", " aria-label=\"", 21880, "\"", 21911, 1); 620 WriteAttributeValue("", 21893, SearchPlaceholder, 21893, 18, false); 621 EndWriteAttribute(); 622 WriteLiteral(" data-placeholder=\""); 623 Write(SearchPlaceholder); 624 WriteLiteral("\" data-hoverplaceholder=\""); 625 Write(SearchPlaceholderHover); 626 WriteLiteral(@""" /> 627 <div class=""searchbox__button""> 628 <button type=""submit"" class=""searchbox__form__submit icon icon--medium icon__search input__icon"" aria-label=""Search""> 629 <i class=""fal fa-search""></i> 630 </button> 631 </div> 632 </form> 633 </div> 634 "); 635 } 636 else 637 { 638 if (!string.IsNullOrWhiteSpace(stickyHeaderCTAText)) 639 { 640 WriteLiteral("\t\t\t\t<a"); 641 BeginWriteAttribute("href", " href=\"", 22369, "\"", 22396, 1); 642 WriteAttributeValue("", 22376, stickyHeaderCTALink, 22376, 20, false); 643 EndWriteAttribute(); 644 WriteLiteral(" class=\"btn default-btn stickymenu__cta-btn\">\r\n\t\t\t\t\t<span class=\"btn__text stickymenu__cta-btn-label\">"); 645 Write(stickyHeaderCTAText); 646 WriteLiteral("</span>\r\n\t\t\t\t\t<i"); 647 BeginWriteAttribute("class", " class=\"", 22536, "\"", 22604, 3); 648 WriteAttributeValue("", 22544, "btn__icon", 22544, 9, true); 649 WriteAttributeValue(" ", 22553, stickyHeaderCTAIconClass, 22554, 25, false); 650 WriteAttributeValue(" ", 22579, "stickymenu__cta-btn-icon", 22580, 25, true); 651 EndWriteAttribute(); 652 WriteLiteral("></i>\r\n\t\t\t\t</a>\r\n"); 653 } else { 654 // Empty element to fix justify-between alignment 655 WriteLiteral("\t\t\t\t<span></span>\r\n"); 656 } 657 } 658 WriteLiteral("\t\t<div id=\"sticky-hamburger\" class=\"icon__content\">\r\n\t\t\t<i class=\"fal fa-bars icon\"></i>\r\n\t\t</div>\r\n\t</div>\r\n</section>\r\n\r\n"); 659 WriteLiteral("\r\n"); 660 661 var pid = ModuleOnlyParagraph.GetParagraphIDByTag<ModuleOnlyParagraph>("SideBarForm", Pageview.AreaID); 662 663 if (pid > 0) 664 { 665 WriteLiteral("\t\t<section id=\"vue-side-bar-form\" data-paragraphid=\""); 666 Write(pid); 667 WriteLiteral("\" data-telephone=\""); 668 Write(phonenumber); 669 WriteLiteral("\" data-formatphonenumber=\""); 670 Write(formattedPhonenumber); 671 WriteLiteral("\" data-isoffline=\""); 672 Write(isOffline); 673 WriteLiteral("\"></section>\r\n"); 674 } 675 WriteLiteral("\r\n"); 676 if(@enableProductCompare) 677 { 678 WriteLiteral("<div id=\"vue-compare-list\"></div>\r\n"); 679 } 680 WriteLiteral("\r\n\t<style>\r\n\t\tmain.blur {\r\n\t\t\tfilter: grayscale(50%) blur(15px);\r\n\t\t\t-webkit-filter: grayscale(50%) blur(15px);\r\n\t\t}\r\n\t</style>\r\n\r\n\t<main>\r\n"); 681 WriteLiteral("\r\n\r\n\r\n"); 682 WriteLiteral("\r\n"); 683 684 var ogLocale = GetString("LongLang").Replace("-", "_"); 685 var ogSiteName = GetString("Item.Area.CompanyName"); 686 var ogurl = string.Format("{0}{1}", httpdomain, GetGlobalValue("Global:Pageview.Url")); 687 var ogtitle = GetString("Title"); 688 var ogdesc = GetString("Meta.Description"); 689 var ogDefaultImg = GetString("Item.Area.DefaultOGImage"); 690 var ogImg = !string.IsNullOrWhiteSpace(ogDefaultImg) ? string.Format("{0}{1}", httpdomain, ogDefaultImg) : ""; 691 WriteLiteral("\r\n"); 692 Write(SnippetStart("ogTags")); 693 WriteLiteral("\r\n <meta property=\"og:locale\""); 694 BeginWriteAttribute("content", " content=\"", 24577, "\"", 24596, 1); 695 WriteAttributeValue("", 24587, ogLocale, 24587, 9, false); 696 EndWriteAttribute(); 697 WriteLiteral(" />\r\n <meta property=\"og:site_name\""); 698 BeginWriteAttribute("content", " content=\"", 24635, "\"", 24656, 1); 699 WriteAttributeValue("", 24645, ogSiteName, 24645, 11, false); 700 EndWriteAttribute(); 701 WriteLiteral(" />\r\n <meta property=\"og:url\""); 702 BeginWriteAttribute("content", " content=\"", 24689, "\"", 24705, 1); 703 WriteAttributeValue("", 24699, ogurl, 24699, 6, false); 704 EndWriteAttribute(); 705 WriteLiteral(" />\r\n <meta property=\"og:type\" content=\"website\" />\r\n <meta property=\"og:title\""); 706 BeginWriteAttribute("content", " content=\"", 24791, "\"", 24809, 1); 707 WriteAttributeValue("", 24801, ogtitle, 24801, 8, false); 708 EndWriteAttribute(); 709 WriteLiteral(" />\r\n <meta property=\"og:description\""); 710 BeginWriteAttribute("content", " content=\"", 24850, "\"", 24867, 1); 711 WriteAttributeValue("", 24860, ogdesc, 24860, 7, false); 712 EndWriteAttribute(); 713 WriteLiteral(" />\r\n <meta property=\"og:image\""); 714 BeginWriteAttribute("content", " content=\"", 24902, "\"", 24918, 1); 715 WriteAttributeValue("", 24912, ogImg, 24912, 6, false); 716 EndWriteAttribute(); 717 WriteLiteral(" />\r\n"); 718 Write(SnippetEnd("ogTags")); 719 WriteLiteral("\r\n\r\n"); 720 721 Boolean showBreadcrumbs = Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem["ShowBreadcrumbs"] != null ? Convert.ToBoolean(Pageview.Page.PropertyItem["ShowBreadcrumbs"]) : false; 722 WriteLiteral("\r\n<section class=\"defaultpage__content\">\r\n\t<div class=\"dwcontent\" id=\"jumbotron\" title=\"Jumbotron\" settings=\"unwrap:true;\"></div>\r\n</section>\r\n\r\n"); 723 if(showBreadcrumbs) { 724 WriteLiteral("<nav class=\"breadcrumbs\" id=\"breadcrumbs\">\r\n\t<span class=\"breadcrumbs__text\">"); 725 Write(Translate("Breadcrumbs.YouAreHere", "You are here")); 726 WriteLiteral("</span>\r\n\t<ol id=\"_breadcrumblist\" class=\"breadcrumbs__nav-list dwnavigation\" settings=\"template:Breadcrumbs.xslt;sitemapmode:true;expandmode:pathonly;\"></ol>\r\n</nav>"); 727 ; 728 } 729 WriteLiteral("\r\n<section class=\"defaultpage__content\">\r\n\t<div class=\"dwcontent\" id=\"wide-content\" title=\"Wide content\" settings=\"unwrap:true;\"></div>\r\n</section>\r\n\r\n\r\n\t</main>\r\n\r\n"); 730 WriteLiteral("\r\n"); 731 732 string footerLogo = GetString("Item.Area.FooterLogo"); 733 string footerDescription = GetString("Item.Area.FooterDescription"); 734 735 var fb = GetString("Item.Area.Facebook"); 736 var twitter = GetString("Item.Area.Twitter"); 737 var linkedin = GetString("Item.Area.LinkedIn"); 738 var googlePlus = GetString("Item.Area.GooglePlus"); 739 var instagram = GetString("Item.Area.Instagram"); 740 var youtube = GetString("Item.Area.Youtube"); 741 var pinterest = GetString("Item.Area.Pinterest"); 742 743 var Emailadress = GetString("Item.Area.Emailadress"); 744 var Phonenumber = GetString("Item.Area.Phonenumber"); 745 var Address = GetString("Item.Area.Address"); 746 var Zipcode = GetString("Item.Area.Zipcode"); 747 var City = GetString("Item.Area.City"); 748 var Country = GetString("Item.Area.Country"); 749 750 var selectedPaymentLogos = @GetString("Item.Area.FooterPaymentLogos"); 751 WriteLiteral("\r\n<a href=\"javascript:void(0);\" id=\"scroll-to-top\" class=\"scroll-to-top\">\r\n\t<span class=\"scroll-to-top__text\">\r\n\t\t"); 752 Write(Translate("Naar boven", "To Top")); 753 WriteLiteral("\r\n\t</span>\r\n\t<i class=\"fal fa-arrow-to-top scroll-to-top__icon\"></i>\r\n</a>\r\n\r\n"); 754 WriteLiteral("\r\n"); 755 if (Pageview.Page.ParentPageId > 0) 756 { 757 var siblings = Dynamicweb.Content.Services.Pages.GetPagesByParentID(Pageview.Page.ParentPageId).Where(p => p.Active).ToList(); 758 var parentpageItemType = Pageview.Page.Parent.ItemType; 759 bool isParentPageOverviewpage = parentpageItemType == "OverviewPage"; 760 761 if (siblings.Count() > 1 && isParentPageOverviewpage) 762 { 763 var prevPage = siblings.OrderByDescending(p => p.Sort).FirstOrDefault(p => p.Sort < Pageview.Page.Sort); 764 var nextPage = siblings.OrderBy(p => p.Sort).FirstOrDefault(p => p.Sort > Pageview.Page.Sort); 765 var overview = "/Default.aspx?ID=" + Pageview.Page.ParentPageId; 766 767 WriteLiteral("\t\t<section class=\"page-navigation\">\r\n"); 768 if (prevPage != null) 769 { 770 var back = "/Default.aspx?ID=" + prevPage.ID; 771 WriteLiteral("\t\t\t\t<a"); 772 BeginWriteAttribute("href", " href=\"", 28073, "\"", 28085, 1); 773 WriteAttributeValue("", 28080, back, 28080, 5, false); 774 EndWriteAttribute(); 775 WriteLiteral(" class=\"page-navigation__item\">\r\n\t\t\t\t\t<i class=\"fal fa-arrow-alt-to-left page-navigation__item--icon\"></i>\r\n\t\t\t\t\t<label class=\"page-navigation__item-label\">"); 776 Write(Translate("pagenavigation.previous", "Previous")); 777 WriteLiteral("</label>\r\n\t\t\t\t</a>\r\n"); 778 } 779 WriteLiteral("\r\n\t\t\t<a"); 780 BeginWriteAttribute("href", " href=\"", 28324, "\"", 28340, 1); 781 WriteAttributeValue("", 28331, overview, 28331, 9, false); 782 EndWriteAttribute(); 783 WriteLiteral(" class=\"page-navigation__item\">\r\n\t\t\t\t<label class=\"page-navigation__item-label\">"); 784 Write(Translate("pagenavigation.Overview", "To overview")); 785 WriteLiteral("</label>\r\n\t\t\t\t<i class=\"fas fa-th page-navigation__item--icon\"></i>\r\n\t\t\t</a>\r\n\r\n"); 786 if (nextPage != null) 787 { 788 var forward = "/Default.aspx?ID=" + nextPage.ID; 789 WriteLiteral("\t\t\t\t<a"); 790 BeginWriteAttribute("href", " href=\"", 28646, "\"", 28661, 1); 791 WriteAttributeValue("", 28653, forward, 28653, 8, false); 792 EndWriteAttribute(); 793 WriteLiteral(" class=\"page-navigation__item\">\r\n\t\t\t\t\t<label class=\"page-navigation__item-label\">"); 794 Write(Translate("pagenavigation.next", "Next")); 795 WriteLiteral("</label>\r\n\t\t\t\t\t<i class=\"fal fa-arrow-alt-to-right page-navigation__item--icon\"></i>\r\n\t\t\t\t</a>\r\n"); 796 } 797 WriteLiteral("\t\t</section>\r\n"); 798 } 799 } 800 WriteLiteral("\r\n\r\n<footer class=\"footer\">\r\n\r\n"); 801 if (!string.IsNullOrWhiteSpace(@GetString("Item.Area.USP_1.Value")) || !string.IsNullOrWhiteSpace(@GetString("Item.Area.USP_2.Value")) || !string.IsNullOrWhiteSpace(@GetString("Item.Area.USP_3.Value"))) 802 { 803 WriteLiteral("\t\t<div class=\"footer-usp__wrapper\">\r\n\t\t\t<div class=\"container\">\r\n\t\t\t\t<ul class=\"footer-usp__list flex-wrap\">\r\n\t\t\t\t\t"); 804 Write(RenderFooterUSP(@GetString("Item.Area.USP_1.Value"), @GetString("Item.Area.USP_1_icon.Value"))); 805 WriteLiteral("\r\n\t\t\t\t\t"); 806 Write(RenderFooterUSP(@GetString("Item.Area.USP_2.Value"), @GetString("Item.Area.USP_2_icon.Value"))); 807 WriteLiteral("\r\n\t\t\t\t\t"); 808 Write(RenderFooterUSP(@GetString("Item.Area.USP_3.Value"), @GetString("Item.Area.USP_3_icon.Value"))); 809 WriteLiteral("\r\n\t\t\t\t\t"); 810 Write(RenderFooterUSP(@GetString("Item.Area.USP_4.Value"), @GetString("Item.Area.USP_4_icon.Value"))); 811 WriteLiteral("\r\n\t\t\t\t\t"); 812 Write(RenderFooterUSP(@GetString("Item.Area.USP_5.Value"), @GetString("Item.Area.USP_5_icon.Value"))); 813 WriteLiteral("\r\n\r\n\t\t\t\t</ul>\r\n\t\t\t</div>\r\n\t\t</div>\r\n"); 814 } 815 WriteLiteral("\r\n"); 816 WriteLiteral("\r\n"); 817 818 var newsletterFormID = ModuleOnlyParagraph.GetParagraphIDByTag<ModuleOnlyParagraph>("Footer.Newsletter", Pageview.AreaID); 819 820 if (newsletterFormID > 0) 821 { 822 WriteLiteral("\t\t<section class=\"footer__newsletter-container\">\r\n\t\t\t<div class=\"container footer__newsletter\">\r\n\t\t\t\t<label class=\"footer__newsletter-label\">\r\n\t\t\t\t\t"); 823 Write(Translate("Footer.SignUpNewsletter", "Sign up for the digital newsletter")); 824 WriteLiteral("\r\n\t\t\t\t</label>\r\n\t\t\t\t"); 825 Write(RenderParagraphContent(newsletterFormID)); 826 WriteLiteral("\r\n\t\t\t</div>\r\n\t\t</section>\r\n"); 827 } 828 WriteLiteral("\r\n\r\n\t<div class=\"footer-paymentoptions\" data-paymentmethods=\""); 829 Write(selectedPaymentLogos); 830 WriteLiteral("\"></div>\r\n\r\n\t<section class=\"container footer__content\">\r\n\r\n\t\t<div class=\"footer__link\">\r\n"); 831 832 var footerColumn1 = RenderNavigation(new 833 { 834 id = "footernavigation-1", 835 cssclass = "dwnavigation", 836 startLevel = 1, 837 endlevel = 4, 838 template = "BottomNavigation.xslt", 839 expandmode = "all", 840 parenttag = "footer-column-1", 841 }); 842 843 if (!string.IsNullOrEmpty(footerColumn1)) 844 { 845 WriteLiteral("\t\t\t\t\t<h2 class=\"footer__link-header\">"); 846 Write(Translate("Footer.Column1.Header", "What you need to know")); 847 WriteLiteral("</h2>\r\n\t\t\t\t\t<ul class=\"footer__link-list\">\r\n\t\t\t\t\t\t"); 848 Write(footerColumn1); 849 WriteLiteral("\r\n\t\t\t\t\t</ul>\r\n"); 850 } 851 WriteLiteral("\t\t</div>\r\n\t\t<div class=\"footer__link\">\r\n"); 852 853 var footerColumn2 = RenderNavigation(new 854 { 855 id = "footernavigation-2", 856 cssclass = "dwnavigation", 857 startLevel = 1, 858 endlevel = 4, 859 template = "BottomNavigation.xslt", 860 expandmode = "all", 861 parenttag = "footer-column-2", 862 }); 863 864 if (!string.IsNullOrEmpty(footerColumn2)) 865 { 866 WriteLiteral("\t\t\t\t\t<h2 class=\"footer__link-header\">"); 867 Write(Translate("Footer.Column2.Header", "Category two")); 868 WriteLiteral("</h2>\r\n\t\t\t\t\t<ul class=\"footer__link-list\">\r\n\t\t\t\t\t\t"); 869 Write(footerColumn2); 870 WriteLiteral("\r\n\t\t\t\t\t</ul>\r\n"); 871 } 872 WriteLiteral("\t\t</div>\r\n\t\t<div class=\"footer__link\">\r\n"); 873 874 var footerColumn3 = RenderNavigation(new 875 { 876 id = "footernavigation-3", 877 cssclass = "dwnavigation", 878 startLevel = 1, 879 endlevel = 4, 880 template = "BottomNavigation.xslt", 881 expandmode = "all", 882 parenttag = "footer-column-3", 883 }); 884 885 if (!string.IsNullOrEmpty(footerColumn3)) 886 { 887 WriteLiteral("\t\t\t\t\t<h2 class=\"footer__link-header\">"); 888 Write(Translate("Footer.Column3.Header", "Category three")); 889 WriteLiteral("</h2>\r\n\t\t\t\t\t<ul class=\"footer__link-list\">\r\n\t\t\t\t\t\t"); 890 Write(footerColumn3); 891 WriteLiteral("\r\n\t\t\t\t\t</ul>\r\n"); 892 } 893 WriteLiteral("\t\t</div>\r\n\t\t<div class=\"footer__description-container\">\r\n\t\t\t<img class=\"footer__logo\" loading=\"lazy\""); 894 BeginWriteAttribute("src", " src=\"", 32328, "\"", 32434, 3); 895 WriteAttributeValue("", 32334, "/Admin/Public/GetImage.ashx?Image=", 32334, 34, true); 896 WriteAttributeValue("", 32368, footerLogo, 32368, 11, false); 897 WriteAttributeValue("", 32379, "&Crop=5&Format=webp&Quality=99&Compression=80&Width=400", 32379, 55, true); 898 EndWriteAttribute(); 899 WriteLiteral(" alt=\"Footer logo\" width=\"400\" height=\"200\"/>\r\n\r\n\t\t\t<div class=\"footer__description\">\r\n\t\t\t\t"); 900 Write(footerDescription); 901 WriteLiteral(@" 902 </div> 903 904 </div> 905 906 </section> 907 908 <section class=""footer__copyright""> 909 910 <div class=""container bottombar__container""> 911 <placeholder class=""dwnavigation"" id=""bottombar__navigation"" 912 settings=""startlevel:1;endlevel:4;template:CleanNavigation.xslt;expandmode:all;parenttag:bottombar;blockclass:bottombar""> 913 </placeholder> 914 915 "); 916 if (!string.IsNullOrWhiteSpace(twitter) || !string.IsNullOrWhiteSpace(fb) || !string.IsNullOrWhiteSpace(linkedin) || !string.IsNullOrWhiteSpace(youtube) || !string.IsNullOrWhiteSpace(instagram) || !string.IsNullOrWhiteSpace(pinterest)) 917 { 918 WriteLiteral("\t\t\t\t<section class=\"footer__social-container\">\r\n\r\n\t\t\t\t\t<span class=\"footer__icon-labels\">"); 919 Write(Translate("Footer.FollowUs", "Volg ons op:")); 920 WriteLiteral("</span>\r\n\r\n\t\t\t\t\t<div class=\"footer__social-icon-container\">\r\n"); 921 if (!string.IsNullOrWhiteSpace(twitter)) 922 { 923 WriteLiteral("\t\t\t\t\t\t\t<a"); 924 BeginWriteAttribute("href", " href=\"", 33399, "\"", 33414, 1); 925 WriteAttributeValue("", 33406, twitter, 33406, 8, false); 926 EndWriteAttribute(); 927 WriteLiteral(" target=\"_blank\" title=\"twitter\" class=\"footer__social\" rel=\"noreferrer\"><i class=\"fab fa-twitter\"></i></a>\r\n"); 928 } 929 if (!string.IsNullOrWhiteSpace(fb)) 930 { 931 WriteLiteral("\t\t\t\t\t\t\t<a"); 932 BeginWriteAttribute("href", " href=\"", 33595, "\"", 33605, 1); 933 WriteAttributeValue("", 33602, fb, 33602, 3, false); 934 EndWriteAttribute(); 935 WriteLiteral(" target=\"_blank\" title=\"facebook\" class=\"footer__social\" rel=\"noreferrer\"><i class=\"fab fa-facebook\"></i></a>\r\n"); 936 } 937 if (!string.IsNullOrWhiteSpace(linkedin)) 938 { 939 WriteLiteral("\t\t\t\t\t\t\t<a"); 940 BeginWriteAttribute("href", " href=\"", 33794, "\"", 33810, 1); 941 WriteAttributeValue("", 33801, linkedin, 33801, 9, false); 942 EndWriteAttribute(); 943 WriteLiteral(" target=\"_blank\" title=\"LinkedIn\" class=\"footer__social\" rel=\"noreferrer\"><i class=\"fab fa-linkedin\"></i></a>\r\n"); 944 } 945 if (!string.IsNullOrWhiteSpace(youtube)) 946 { 947 WriteLiteral("\t\t\t\t\t\t\t<a"); 948 BeginWriteAttribute("href", " href=\"", 33998, "\"", 34013, 1); 949 WriteAttributeValue("", 34005, youtube, 34005, 8, false); 950 EndWriteAttribute(); 951 WriteLiteral(" target=\"_blank\" title=\"YouTube\" class=\"footer__social\" rel=\"noreferrer\"><i class=\"fab fa-youtube\"></i></a>\r\n"); 952 } 953 if (!string.IsNullOrWhiteSpace(instagram)) 954 { 955 WriteLiteral("\t\t\t\t\t\t\t<a"); 956 BeginWriteAttribute("href", " href=\"", 34201, "\"", 34218, 1); 957 WriteAttributeValue("", 34208, instagram, 34208, 10, false); 958 EndWriteAttribute(); 959 WriteLiteral(" target=\"_blank\" title=\"Instagram\" class=\"footer__social\" rel=\"noreferrer\"><i class=\"fab fa-instagram\"></i></a>\r\n"); 960 } 961 if (!string.IsNullOrWhiteSpace(pinterest)) 962 { 963 WriteLiteral("\t\t\t\t\t\t\t<a"); 964 BeginWriteAttribute("href", " href=\"", 34410, "\"", 34427, 1); 965 WriteAttributeValue("", 34417, pinterest, 34417, 10, false); 966 EndWriteAttribute(); 967 WriteLiteral(" target=\"_blank\" title=\"Pinterest\" class=\"footer__social\" rel=\"noreferrer\"><i class=\"fab fa-pinterest\"></i></a>\r\n"); 968 } 969 WriteLiteral("\t\t\t\t\t</div>\r\n\r\n\t\t\t\t</section>\r\n"); 970 } 971 WriteLiteral("\t\t</div>\r\n\r\n\t</section>\r\n</footer>\r\n\r\n"); 972 WriteLiteral("\r\n"); 973 WriteLiteral("\r\n<section id=\"vue-modal\"></section>\r\n\r\n<section id=\"vue-bottom-bar\"\r\n\tdata-phonenumber=\""); 974 Write(formattedPhonenumber); 975 WriteLiteral("\"\r\n\tdata-isoffline=\""); 976 Write(isOffline); 977 WriteLiteral("\"\r\n\tdata-emailadress=\""); 978 Write(emailadress); 979 WriteLiteral("\"\r\n\tdata-currentpageid=\""); 980 Write(Pageview.Page.ID); 981 WriteLiteral("\"\r\n\tdata-enable-login=\""); 982 Write(enableLogin); 983 WriteLiteral("\"\r\n\tdata-enable-shoppingcart=\""); 984 Write(enableShoppingCart); 985 WriteLiteral("\"\r\n\tdata-enable-advancedsearch=\""); 986 Write(enableAdvancedSearch); 987 WriteLiteral("\">\r\n</section>\r\n\r\n<section class=\"bottombar__searchbox__wrapper\">\r\n"); 988 WriteLiteral("\r\n<div class=\"searchbox\">\r\n <form class=\"searchbox__form no-validate\" method=\"get\" action=\"/Default.aspx\" autocomplete=\"off\" role=\"search\">\r\n <input type=\"hidden\" name=\"ID\""); 989 BeginWriteAttribute("value", " value=\"", 35840, "\"", 35861, 1); 990 WriteAttributeValue("", 35848, SearchPageID, 35848, 13, false); 991 EndWriteAttribute(); 992 WriteLiteral(" />\r\n <input type=\"text\" name=\"q\""); 993 BeginWriteAttribute("value", " value=\"", 35902, "\"", 35924, 1); 994 WriteAttributeValue("", 35910, SearchPrefill, 35910, 14, false); 995 EndWriteAttribute(); 996 WriteLiteral(" class=\"input form__input input--text searchbox__input\""); 997 BeginWriteAttribute("placeholder", " placeholder=\"", 35980, "\"", 36012, 1); 998 WriteAttributeValue("", 35994, SearchPlaceholder, 35994, 18, false); 999 EndWriteAttribute(); 1000 BeginWriteAttribute("aria-label", " aria-label=\"", 36013, "\"", 36044, 1); 1001 WriteAttributeValue("", 36026, SearchPlaceholder, 36026, 18, false); 1002 EndWriteAttribute(); 1003 WriteLiteral(" data-placeholder=\""); 1004 Write(SearchPlaceholder); 1005 WriteLiteral("\" data-hoverplaceholder=\""); 1006 Write(SearchPlaceholderHover); 1007 WriteLiteral(@""" /> 1008 <div class=""searchbox__button""> 1009 <button type=""submit"" class=""searchbox__form__submit icon icon--medium icon__search input__icon"" aria-label=""Search""> 1010 <i class=""fal fa-search""></i> 1011 </button> 1012 </div> 1013 </form> 1014 </div> 1015 </section> 1016 1017 <div id=""backdrop""></div> 1018 1019 "); 1020 1021 var appbundlejs = Cache.VersionedFile(designRoot + "/dist/app.bundle.js"); 1022 var appAsyncbundlejs = Cache.VersionedFile(designRoot + "/dist/appAsync.bundle.js"); 1023 var vuebundlejs = Cache.VersionedFile(designRoot + "/dist/vue.bundle.js"); 1024 WriteLiteral("\r\n\t<script"); 1025 BeginWriteAttribute("src", " src=\"", 36722, "\"", 36740, 1); 1026 WriteAttributeValue("", 36728, appbundlejs, 36728, 12, false); 1027 EndWriteAttribute(); 1028 WriteLiteral("></script>\r\n\t<script defer"); 1029 BeginWriteAttribute("src", " src=\"", 36767, "\"", 36785, 1); 1030 WriteAttributeValue("", 36773, vuebundlejs, 36773, 12, false); 1031 EndWriteAttribute(); 1032 WriteLiteral("></script>\r\n\t<script defer"); 1033 BeginWriteAttribute("src", " src=\"", 36812, "\"", 36835, 1); 1034 WriteAttributeValue("", 36818, appAsyncbundlejs, 36818, 17, false); 1035 EndWriteAttribute(); 1036 WriteLiteral("></script>\r\n\t<link rel=\"stylesheet\" href=\"https://pro.fontawesome.com/releases/v5.15.4/css/all.css\" integrity=\"sha384-rqn26AG5Pj86AF4SO72RK5fyefcQ/x32DNQfChxWvbXIyXFePlEktwD18fEz+kQU\" crossorigin=\"anonymous\">\r\n\r\n</body>\r\n</html>\r\n"); 1037 } 1038 #pragma warning restore 1998 1039 } 1040 } 1041 #pragma warning restore 1591 1042

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using Dynamicweb; 3 @using Bluedesk.Tools.Generic; 4 @using System.Globalization; 5 @using Bluedesk.DynamicWeb.ItemTypes.Settings.Configuration; 6 7 @{ 8 var httpdomain = Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain(); 9 var lang = GetString("LongLang").Split('-')[0]; 10 var csrftoken = application._webapi.Helper.CSRFHelper.TokenHeaderValue(); 11 var designRoot = "/Files/Templates/Designs/" + Pageview.Area.Layout.Design.Name; 12 13 var phonenumber = GetString("Item.Area.Phonenumber"); 14 var formattedPhonenumber = phonenumber.Replace(" ", String.Empty); 15 var emailadress = GetString("Item.Area.Emailadress"); 16 var buttonIconClass = Pageview.Area.Item["Global_button_icon"] != null ? Pageview.Area.Item["Global_button_icon"].ToString().Replace("+", " ") : "fal fa-arrow-right"; 17 var callmebackformlink = GetString("Item.Area.Call_me_back_form"); 18 var mobileThemeColor = GetString("Item.Area.Mobile_Theme_Color"); 19 20 bool isOffline = false; 21 DateTime workingHoursStart = GetDate("Item.Area.OpeningTime"); 22 DateTime workingHoursEnd = GetDate("Item.Area.ClosingTime"); 23 DateTime today = DateTime.Now; 24 var cHour = DateTime.Now.TimeOfDay; 25 int cDay = (int)DateTime.Now.DayOfWeek; 26 string availableToHour24hFormat = workingHoursEnd.TimeOfDay.ToString().Substring(0,5); 27 var timeFromInput = DateTime.ParseExact(availableToHour24hFormat, "H:m", null, DateTimeStyles.None); 28 string availableToHour12hFormat = timeFromInput.ToString("hh:mm tt", CultureInfo.InvariantCulture); 29 var availableToHour = lang == "en" ? availableToHour12hFormat : availableToHour24hFormat; 30 bool isOvertime = cHour >= workingHoursEnd.TimeOfDay || cHour <= workingHoursStart.TimeOfDay; 31 bool isNoValidDate = today < workingHoursStart || today > workingHoursEnd; 32 if (isNoValidDate || isOvertime) 33 { 34 isOffline = true; 35 } 36 } 37 38 <!DOCTYPE html> 39 <html lang="@lang" prefix="og: http://ogp.me/ns#"> 40 <head> 41 <meta charset="utf-8"> 42 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 43 <meta name="viewport" content="width=device-width, initial-scale=1"> 44 <meta name="theme-color" content="@mobileThemeColor"> 45 <meta name="description" content="@GetString("Meta.Description")"> 46 <meta name="keywords" content="@GetString("Meta.Keywords")"> 47 48 @RenderSnippet("canonical") 49 50 @RenderSnippet("ogTags") 51 52 <title>Dynamicweb</title> 53 54 @{ 55 56 57 var appcss = Cache.VersionedFile(designRoot + "/dist/app.css"); 58 <link href="@appcss" rel="stylesheet" /> 59 60 var favicon32 = Cache.VersionedFile(designRoot + "/assets/img/favicon-32.png", true); 61 var favicon16 = Cache.VersionedFile(designRoot + "/assets/img/favicon-16.png", true); 62 var favico = Cache.VersionedFile(designRoot + "/assets/img/favicon.ico", true); 63 64 if (!string.IsNullOrWhiteSpace(favicon32)) 65 { 66 <link rel="icon" type="image/png" sizes="32x32" href="@favicon32"> 67 } 68 if (!string.IsNullOrWhiteSpace(favicon16)) 69 { 70 <link rel="icon" type="image/png" sizes="16x16" href="@favicon16"> 71 } 72 if (!string.IsNullOrWhiteSpace(favicon)) 73 { 74 <link rel="shortcut icon" href="@favicon"> 75 } 76 } 77 78 @foreach (var language in GetLoop("Languages")) 79 { 80 string pageid = language.GetString("PageID"); 81 string url = language.GetString("PrimaryDomain") + Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("default.aspx?id=" + pageid); 82 83 <link rel="alternate" href='@url' hreflang='@language.GetString("Culture")' /> 84 } 85 86 <script> 87 window.globals = { 88 pageId: '@Pageview.ID', 89 Token: '@csrftoken', 90 DW_AREA_CULTURE: '@GetString("LongLang")', 91 DW_AREA_CULTURE_SHORT: '@lang', 92 globalIconClass: '@buttonIconClass', 93 DW_USERID: '@Dynamicweb.Security.UserManagement.User.GetCurrentExtranetUserId()' 94 }; 95 </script> 96 97 @GetString("Item.Area.HeadScript") 98 @{ 99 var _cookieOptinLevel = Dynamicweb.Environment.CookieManager.GetCookieOptInLevel(); 100 var _enabledCookieCategories = Dynamicweb.Environment.CookieManager.GetCookieOptInCategories(); 101 if (_cookieOptinLevel.ToString() == "All" || _enabledCookieCategories.Contains("Marketing_Cookies")) 102 { 103 @GetString("Item.Area.HeadScriptAfterConsent") 104 } 105 } 106 107 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 108 109 @{ 110 var reviewName = GetString("Item.Area.Review_Name") != null ? GetString("Item.Area.Review_Name") : ""; 111 var reviewBestRating = GetString("Item.Area.Review_Best_Rating") != null ? GetString("Item.Area.Review_Best_Rating") : ""; 112 var reviewWorstRating = GetString("Item.Area.Review_Worst_Rating") != null ? GetString("Item.Area.Review_Worst_Rating") : ""; 113 var reviewRatingValue = GetString("Item.Area.Review_Rating_Value") != null ? GetString("Item.Area.Review_Rating_Value") : ""; 114 var reviewCount = GetString("Item.Area.Review_Count") != null ? GetString("Item.Area.Review_Count") : ""; 115 var reviewUrl = GetString("Item.Area.Review_URL") != null ? GetString("Item.Area.Review_URL") : ""; 116 117 var searchPageID = Bluedesk.Tools.DynamicWeb.Generic.PageHelper.GetPageIDByNavigationTag("searchresults", Pageview.AreaID); 118 var domain = Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain(); 119 } 120 121 <script type="application/ld+json"> 122 [{ 123 "@@context": "https://schema.org", 124 "@@type": "Organization", 125 "name" : "@GetString("Item.Area.CompanyName")", 126 "url": "@domain", 127 "sameAs" : "@GetString("Item.Area.Facebook")", 128 "logo": "@domain@GetString("Item.Area.Logo")", 129 "contactPoint" : [{ 130 "@@type" : "ContactPoint", 131 "telephone" : "@GetString("Item.Area.Phonenumber")", 132 "contactType" : "customer service" , 133 "@@context": "https://schema.org", 134 "@@id": "@domain", 135 "name": "@GetString("Item.Area.CompanyName")" 136 }], 137 "address": { 138 "@@type": "PostalAddress", 139 "streetAddress": "@GetString("Item.Area.Address")", 140 "addressLocality": "@GetString("Item.Area.City")", 141 "postalCode": "@GetString("Item.Area.Zipcode")", 142 "addressRegion": "@GetString("Item.Area.Region")", 143 "addressCountry": "@GetString("Item.Area.Country")" 144 } 145 }, 146 { 147 "@@context": "https://schema.org", 148 "@@type": "WebSite", 149 "name" : "@GetString("Item.Area.CompanyName")", 150 "alternateName" : "@GetString("Item.Area.AltCompanyName")", 151 "url": "@domain", 152 "potentialAction": { 153 "@@type": "SearchAction", 154 "target": "@domain/Default.aspx?ID=@searchPageID&q={search_term_string}", 155 "query-input": "required name=search_term_string" 156 } 157 }] 158 </script> 159 160 <script type="application/ld+json"> 161 { 162 "@@context": "https://schema.org", 163 "@@type": "Product", 164 "name": "@reviewName", 165 "url":"@reviewUrl", 166 "aggregateRating": { 167 "@@type": "AggregateRating", 168 "bestRating": "@reviewBestRating", 169 "worstRating": "@reviewWorstRating", 170 "ratingValue": "@reviewRatingValue", 171 "reviewCount": "@reviewCount" 172 } 173 } 174 </script> 175 @RenderSnippet("DataLayer") 176 177 @RenderSnippet("GoogleMapsScript") 178 179 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 180 181 @{ 182 // TODO: Add there options to master config for product overview 183 bool hideShoppingCartForGuests = false; 184 185 bool enableShoppingCart = hideShoppingCartForGuests && Pageview.User == null ? false : (bool) GetBoolean("Item.Area.ConfigModuleShoppingCart"); 186 bool enableLogin = (bool) GetBoolean("Item.Area.ConfigModuleLogin"); 187 bool enableQuickOrder = (bool) GetBoolean("Item.Area.ConfigModuleQuickOrder"); 188 bool enableAdvancedSearch = (bool) GetBoolean("Item.Area.ConfigModuleAdvancedSearch"); 189 bool enableCallMeBack = (bool) GetBoolean("Item.Area.ConfigModuleCallMeBack"); 190 bool enableDyslexicFont = (bool) GetBoolean("Item.Area.ConfigModuleDyslexicFont"); 191 bool enableProductCompare = (bool) GetBoolean("Item.Area.ConfigModuleProductCompare"); 192 } 193 194 </head> 195 196 <body> 197 @GetString("Item.Area.BodyScript") 198 @{ 199 if (_cookieOptinLevel.ToString() == "All" || _enabledCookieCategories.Contains("Marketing_Cookies")) 200 { 201 @GetString("Item.Area.BodyScriptAfterConsent") 202 } 203 } 204 @GetString("Item.Area.TailScript") 205 206 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 207 @using Dynamicweb; 208 209 @{ 210 string logo = GetString("Item.Area.Logo"); 211 string logoAlt = GetString("Item.Area.Logo_Alt"); 212 213 int SearchPageID = Bluedesk.Tools.DynamicWeb.Generic.PageHelper.GetPageIDByNavigationTag("searchresults", Pageview.AreaID); 214 var SearchPlaceholder = Translate("Searchbox.PlaceholderValue", "Search..."); 215 var SearchPlaceholderHover = Translate("Search.PlaceholderValue2", "Zoekt u misschien een ...?"); 216 var SearchPrefill = Dynamicweb.Context.Current.Request["q"]; 217 var SearchboxClass = !string.IsNullOrWhiteSpace(SearchPrefill) ? "open" : ""; 218 var SearchtoggleClass = !string.IsNullOrWhiteSpace(SearchPrefill) ? "close" : ""; 219 } 220 221 <header class="header header--mobile"> 222 223 <div class="flex items-center"> 224 <a href="/" class="w-full mr-4 header__logo__wrapper"> 225 <img class="header__logo" src="/Admin/Public/GetImage.ashx?Image=@logo&Crop=5&Format=webp&Quality=99&Compression=80&Width=400" alt="Logo" width="400" height="200"> 226 </a> 227 228 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 229 230 @if (LanguageSwitcher.GetLanguages().Count > 1) 231 { 232 <div class="top-toggles"> 233 <div class="language"> 234 <div class="language-dropdown"> 235 <button class="language-dropdown__toggle" type="button" aria-label="Change language"> 236 <span class="flag flag-icon flag-icon-@Pageview.Area.Culture.Substring(3,2).ToLower()"></span> 237 <i class="fal fa-chevron-down"></i> 238 </button> 239 <ul class="language-dropdown__options"> 240 @foreach (var l in LanguageSwitcher.GetLanguages()) 241 { 242 string languageName = @l.NativeName.ToString().Split('(')[0]; 243 <li class="language-dropdown__item"> 244 <a href='@l.Url' title="@languageName"> 245 <span class="flag-icon flag-icon-@l.CountryCode"></span> 246 <span class="language-dropdown__item-code">@languageName</span> 247 </a> 248 </li> 249 } 250 </ul> 251 </div> 252 </div> 253 </div> 254 } 255 256 257 @if(enableShoppingCart) { 258 <div class="app-shopping-cart" data-cart-location="header-mobile" data-enable-shoppingcart="@enableShoppingCart"></div> 259 } 260 261 <div id="hamburger" class="icon__content"> 262 <i class="fal fa-bars icon"></i> 263 </div> 264 265 </div> 266 267 </header> 268 269 <header class="header header--desktop"> 270 271 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 272 @using Dynamicweb; 273 274 <section class="topmenu"> 275 276 <div class="topmenu__container container"> 277 278 <ul class="usp__list"> 279 @RenderHeaderUSP(@GetString("Item.Area.USP_1.Value"), @GetString("Item.Area.USP_1_icon.Value")) 280 @RenderHeaderUSP(@GetString("Item.Area.USP_2.Value"), @GetString("Item.Area.USP_2_icon.Value")) 281 @RenderHeaderUSP(@GetString("Item.Area.USP_3.Value"), @GetString("Item.Area.USP_3_icon.Value")) 282 @RenderHeaderUSP(@GetString("Item.Area.USP_4.Value"), @GetString("Item.Area.USP_4_icon.Value")) 283 @RenderHeaderUSP(@GetString("Item.Area.USP_5.Value"), @GetString("Item.Area.USP_5_icon.Value")) 284 </ul> 285 286 <section class="flex flex-row"> 287 288 <ul class="topmenu__list"> 289 <placeholder class="dwnavigation" id="topnavigation" settings="startlevel:1;endlevel:1;template:TopNavigation.xslt;blockclass:topmenu;parenttag:topmenu-nav;"></placeholder> 290 @if (enableLogin) 291 { 292 if (Pageview.User == null) 293 { 294 <li class="topmenu__item topmenu__login"> 295 <a href="javascript:;" class="topmenu__link topmenu__link--login">@Translate("User.Login", "Login")</a> 296 </li> 297 } 298 else 299 { 300 <li class="topmenu__item topmenu__login"> 301 <a href="/Admin/Public/ExtranetLogoff.aspx?ID=@Pageview.Page.ID" class="topmenu__link">@Translate("User.Logout", "Logout")</a> 302 </li> 303 } 304 } 305 </ul> 306 307 @if (enableDyslexicFont) 308 { 309 <div class="app-font-toggle" data-standardfont="Maven Pro"></div> 310 } 311 312 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 313 314 @if (LanguageSwitcher.GetLanguages().Count > 1) 315 { 316 <div class="top-toggles"> 317 <div class="language"> 318 <div class="language-dropdown"> 319 <button class="language-dropdown__toggle" type="button" aria-label="Change language"> 320 <span class="flag flag-icon flag-icon-@Pageview.Area.Culture.Substring(3,2).ToLower()"></span> 321 <i class="fal fa-chevron-down"></i> 322 </button> 323 <ul class="language-dropdown__options"> 324 @foreach (var l in LanguageSwitcher.GetLanguages()) 325 { 326 string languageName = @l.NativeName.ToString().Split('(')[0]; 327 <li class="language-dropdown__item"> 328 <a href='@l.Url' title="@languageName"> 329 <span class="flag-icon flag-icon-@l.CountryCode"></span> 330 <span class="language-dropdown__item-code">@languageName</span> 331 </a> 332 </li> 333 } 334 </ul> 335 </div> 336 </div> 337 </div> 338 } 339 340 341 @if (enableShoppingCart) 342 { 343 <div class="app-shopping-cart" data-cart-location="header-desktop" data-enable-shoppingcart="@enableShoppingCart"></div> 344 } 345 346 </section> 347 348 </div> 349 350 </section> 351 352 @*@helper RenderHeaderUSP(string USP_content, string USP_icon) 353 { 354 if (!string.IsNullOrWhiteSpace(USP_content)) 355 { 356 var usp_icon_class = (!string.IsNullOrWhiteSpace(USP_icon)) ? USP_icon : "fal fa-check"; 357 358 <li class="usp__item"> 359 <i class="@usp_icon_class usp__icon"></i> 360 <span>@USP_content</span> 361 </li> 362 } 363 }*@ 364 365 366 <section class="header__container container"> 367 368 <a href="/" class="flex items-center"> 369 <img class="header__logo" src="/Admin/Public/GetImage.ashx?Image=@logo&Crop=5&Format=webp&Quality=99&Compression=80&Width=400" alt="Logo" width="400" height="200"> 370 </a> 371 372 @if(enableAdvancedSearch) { 373 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 374 375 <div id="advanced-search"></div> 376 } else { 377 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 378 379 <div class="searchbox"> 380 <form class="searchbox__form no-validate" method="get" action="/Default.aspx" autocomplete="off" role="search"> 381 <input type="hidden" name="ID" value="@SearchPageID" /> 382 <input type="text" name="q" value="@SearchPrefill" class="input form__input input--text searchbox__input" placeholder="@SearchPlaceholder" aria-label="@SearchPlaceholder" data-placeholder="@SearchPlaceholder" data-hoverplaceholder="@SearchPlaceholderHover" /> 383 <div class="searchbox__button"> 384 <button type="submit" class="searchbox__form__submit icon icon--medium icon__search input__icon" aria-label="Search"> 385 <i class="fal fa-search"></i> 386 </button> 387 </div> 388 </form> 389 </div> 390 } 391 392 <div class="header__cta"> 393 @if (!isOffline) 394 { 395 <a href="tel:@formattedPhonenumber" class="header__cta--phone phone-cta"> 396 <p class="phone-cta__number"><i class="fas fa-phone-alt"></i>@Translate("Header.CallUsOn", "Call us on")<span>@phonenumber</span></p> 397 <div class="phone-cta__availability__wrapper"> 398 <i class="fas fa-circle phone-cta__availability__icon"></i> 399 <p class="phone-cta__availability__description">@Translate("Header.AvailableUntill", "We are available until") @availableToHour</p> 400 </div> 401 </a> 402 } 403 else 404 { 405 <div class="header__cta--callmeback callmeback-cta"> 406 <a href="@callmebackformlink" class="btn default-btn btn__outline btn--callmeback"> 407 <span class="btn__text">@Translate("Header.CallMeBack", "Call me back")</span> 408 <i class="btn__icon fas fa-phone"></i> 409 </a> 410 </div> 411 } 412 </div> 413 414 </section> 415 416 </header> 417 418 <nav> 419 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 420 421 <section class="mainmenu mainmenu__container"> 422 <header-menu id="header-menu" data-enable-quickorder="@enableQuickOrder"> 423 <!-- Fall back menu for non vue--> 424 <div class="container"> 425 <ul class="mainmenu__list h-full"> 426 <placeholder class="dwnavigation" id="mainmenu" settings="startlevel:1;endlevel:1;template:MainNavigation.xslt;expandmode:all;parenttag:topnavigation;blockclass:mainmenu;"></placeholder> 427 @if(enableQuickOrder) 428 { 429 <li class="mainmenu__item quickorder__toggle"> 430 <button class="mainmenu__link">Quick Order</button> 431 </li> 432 } 433 </ul> 434 </div> 435 </header-menu> 436 </section> 437 438 </nav> 439 440 441 <!-- DO NOT REMOVE --> 442 <div id="quick-order"></div> 443 <div id="backdrop-megamenu"></div> 444 <mega-menu id="mega-menu"></mega-menu> 445 <!-- DO NOT REMOVE --> 446 447 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 448 @using Dynamicweb; 449 450 @{ 451 // cp = currentpage 452 var cp_default = Dynamicweb.Context.Current.Items["defaultActive"]; 453 var cp_productOverview = Dynamicweb.Context.Current.Items["productOverviewActive"]; 454 var cp_productDetail = Dynamicweb.Context.Current.Items["productDetailActive"]; 455 string stickyHeaderCTAText = GetString("Item.Area.Sticky_header_cta_text"); 456 string stickyHeaderCTALink = GetString("Item.Area.Sticky_header_cta_link"); 457 458 string stickyHeaderCTAIcon = GetString("Item.Area.Sticky_header_cta_icon"); 459 string stickyHeaderCTAIconClass = (!string.IsNullOrWhiteSpace(stickyHeaderCTAIcon)) ? stickyHeaderCTAIcon : "fal fa-shopping-cart"; 460 } 461 462 <section class="stickymenu flex"> 463 464 <!-- Sticky menu - Desktop --> 465 <div class="hidden lg:flex container justify-between items-center"> 466 <div class="mr-4 inline-block"> 467 <a href="/" class="flex items-center"> 468 <img class="header__logo--sticky" src="@logo" alt="Logo" width="200" height="50"/> 469 </a> 470 </div> 471 472 @if (cp_productDetail != null && (bool)cp_productDetail) 473 { 474 @RenderSnippet("ProductDetailHeaderDesktop") 475 } 476 else if (cp_productOverview != null && (bool)cp_productOverview) 477 { 478 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 479 480 <div class="searchbox"> 481 <form class="searchbox__form no-validate" method="get" action="/Default.aspx" autocomplete="off" role="search"> 482 <input type="hidden" name="ID" value="@SearchPageID" /> 483 <input type="text" name="q" value="@SearchPrefill" class="input form__input input--text searchbox__input" placeholder="@SearchPlaceholder" aria-label="@SearchPlaceholder" data-placeholder="@SearchPlaceholder" data-hoverplaceholder="@SearchPlaceholderHover" /> 484 <div class="searchbox__button"> 485 <button type="submit" class="searchbox__form__submit icon icon--medium icon__search input__icon" aria-label="Search"> 486 <i class="fal fa-search"></i> 487 </button> 488 </div> 489 </form> 490 </div> 491 492 if(@enableShoppingCart) { 493 <div class="app-shopping-cart" data-cart-location="sticky-desktop" data-enable-shoppingcart="@enableShoppingCart"></div> 494 } 495 } 496 else 497 { 498 499 if (!string.IsNullOrWhiteSpace(stickyHeaderCTAText)) 500 { 501 <a href="@stickyHeaderCTALink" class="btn default-btn stickymenu__cta-btn"> 502 <span class="btn__text stickymenu__cta-btn-label">@stickyHeaderCTAText</span> 503 <i class="btn__icon @stickyHeaderCTAIconClass stickymenu__cta-btn-icon"></i> 504 </a> 505 } 506 507 <div class="header__cta"> 508 @if (!isOffline) 509 { 510 <a href="tel:@formattedPhonenumber" class="header__cta--phone phone-cta phone-cta--compact"> 511 <p class="phone-cta__number"><i class="fas fa-phone-alt"></i><span>@phonenumber</span></p> 512 <p class="phone-cta__availability__description"><i class="fas fa-circle phone-cta__availability__icon"></i>@Translate("Header.Available", "Available")</p> 513 </a> 514 } 515 else 516 { 517 <div class="header__cta--callmeback callmeback-cta"> 518 <a href="@callmebackformlink" class="btn default-btn btn__outline btn--callmeback"> 519 <span class="btn__text">@Translate("Header.CallMeBack", "Call me back")</span> 520 <i class="btn__icon fas fa-phone"></i> 521 </a> 522 </div> 523 } 524 </div> 525 526 if(@enableShoppingCart) { 527 <div class="app-shopping-cart" data-cart-location="sticky-desktop" data-enable-shoppingcart="@enableShoppingCart"></div> 528 } 529 } 530 </div> 531 532 <!-- Sticky menu - Mobile --> 533 <div class="container flex lg:hidden justify-between items-center p-2"> 534 @if (cp_productDetail != null && (bool)cp_productDetail) 535 { 536 @RenderSnippet("ProductDetailHeaderMobile") 537 } 538 else if (cp_productOverview != null && (bool)cp_productOverview) 539 { 540 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 541 542 <div class="searchbox"> 543 <form class="searchbox__form no-validate" method="get" action="/Default.aspx" autocomplete="off" role="search"> 544 <input type="hidden" name="ID" value="@SearchPageID" /> 545 <input type="text" name="q" value="@SearchPrefill" class="input form__input input--text searchbox__input" placeholder="@SearchPlaceholder" aria-label="@SearchPlaceholder" data-placeholder="@SearchPlaceholder" data-hoverplaceholder="@SearchPlaceholderHover" /> 546 <div class="searchbox__button"> 547 <button type="submit" class="searchbox__form__submit icon icon--medium icon__search input__icon" aria-label="Search"> 548 <i class="fal fa-search"></i> 549 </button> 550 </div> 551 </form> 552 </div> 553 } 554 else 555 { 556 if (!string.IsNullOrWhiteSpace(stickyHeaderCTAText)) 557 { 558 <a href="@stickyHeaderCTALink" class="btn default-btn stickymenu__cta-btn"> 559 <span class="btn__text stickymenu__cta-btn-label">@stickyHeaderCTAText</span> 560 <i class="btn__icon @stickyHeaderCTAIconClass stickymenu__cta-btn-icon"></i> 561 </a> 562 } else { 563 // Empty element to fix justify-between alignment 564 <span></span> 565 } 566 } 567 <div id="sticky-hamburger" class="icon__content"> 568 <i class="fal fa-bars icon"></i> 569 </div> 570 </div> 571 </section> 572 573 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 574 575 @{ 576 var pid = ModuleOnlyParagraph.GetParagraphIDByTag<ModuleOnlyParagraph>("SideBarForm", Pageview.AreaID); 577 578 if (pid > 0) 579 { 580 <section id="vue-side-bar-form" data-paragraphid="@pid" data-telephone="@phonenumber" data-formatphonenumber="@formattedPhonenumber" data-isoffline="@isOffline"></section> 581 } 582 } 583 584 @if(@enableProductCompare) 585 { 586 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 587 588 <div id="vue-compare-list"></div> 589 } 590 591 <style> 592 main.blur { 593 filter: grayscale(50%) blur(15px); 594 -webkit-filter: grayscale(50%) blur(15px); 595 } 596 </style> 597 598 <main> 599 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 600 @using Dynamicweb; 601 @using Bluedesk.DynamicWeb.ItemTypes.Pages; 602 @using Bluedesk.Tools.DynamicWeb.ExtensionMethods; 603 @using System.Linq; 604 @using Dynamicweb.Content; 605 606 607 608 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 609 @using Dynamicweb; 610 @using System.Linq; 611 612 @{ 613 var ogLocale = GetString("LongLang").Replace("-", "_"); 614 var ogSiteName = GetString("Item.Area.CompanyName"); 615 var ogurl = string.Format("{0}{1}", httpdomain, GetGlobalValue("Global:Pageview.Url")); 616 var ogtitle = GetString("Title"); 617 var ogdesc = GetString("Meta.Description"); 618 var ogDefaultImg = GetString("Item.Area.DefaultOGImage"); 619 var ogImg = !string.IsNullOrWhiteSpace(ogDefaultImg) ? string.Format("{0}{1}", httpdomain, ogDefaultImg) : ""; 620 } 621 622 @SnippetStart("ogTags") 623 <meta property="og:locale" content="@ogLocale" /> 624 <meta property="og:site_name" content="@ogSiteName" /> 625 <meta property="og:url" content="@ogurl" /> 626 <meta property="og:type" content="website" /> 627 <meta property="og:title" content="@ogtitle" /> 628 <meta property="og:description" content="@ogdesc" /> 629 <meta property="og:image" content="@ogImg" /> 630 @SnippetEnd("ogTags") 631 632 @{ 633 Boolean showBreadcrumbs = Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem["ShowBreadcrumbs"] != null ? Convert.ToBoolean(Pageview.Page.PropertyItem["ShowBreadcrumbs"]) : false; 634 } 635 636 <section class="defaultpage__content"> 637 <div class="dwcontent" id="jumbotron" title="Jumbotron" settings="unwrap:true;"></div> 638 </section> 639 640 @if(showBreadcrumbs) { 641 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 642 643 <nav class="breadcrumbs" id="breadcrumbs"> 644 <span class="breadcrumbs__text">@Translate("Breadcrumbs.YouAreHere", "You are here")</span> 645 <ol id="_breadcrumblist" class="breadcrumbs__nav-list dwnavigation" settings="template:Breadcrumbs.xslt;sitemapmode:true;expandmode:pathonly;"></ol> 646 </nav>; 647 } 648 649 <section class="defaultpage__content"> 650 <div class="dwcontent" id="wide-content" title="Wide content" settings="unwrap:true;"></div> 651 </section> 652 653 654 </main> 655 656 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 657 @using Dynamicweb; 658 @using Bluedesk.DynamicWeb.ItemTypes; 659 660 @{ 661 string footerLogo = GetString("Item.Area.FooterLogo"); 662 string footerDescription = GetString("Item.Area.FooterDescription"); 663 664 var fb = GetString("Item.Area.Facebook"); 665 var twitter = GetString("Item.Area.Twitter"); 666 var linkedin = GetString("Item.Area.LinkedIn"); 667 var googlePlus = GetString("Item.Area.GooglePlus"); 668 var instagram = GetString("Item.Area.Instagram"); 669 var youtube = GetString("Item.Area.Youtube"); 670 var pinterest = GetString("Item.Area.Pinterest"); 671 672 var Emailadress = GetString("Item.Area.Emailadress"); 673 var Phonenumber = GetString("Item.Area.Phonenumber"); 674 var Address = GetString("Item.Area.Address"); 675 var Zipcode = GetString("Item.Area.Zipcode"); 676 var City = GetString("Item.Area.City"); 677 var Country = GetString("Item.Area.Country"); 678 679 var selectedPaymentLogos = @GetString("Item.Area.FooterPaymentLogos"); 680 } 681 682 <a href="javascript:void(0);" id="scroll-to-top" class="scroll-to-top"> 683 <span class="scroll-to-top__text"> 684 @Translate("Naar boven", "To Top") 685 </span> 686 <i class="fal fa-arrow-to-top scroll-to-top__icon"></i> 687 </a> 688 689 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 690 691 @if (Pageview.Page.ParentPageId > 0) 692 { 693 var siblings = Dynamicweb.Content.Services.Pages.GetPagesByParentID(Pageview.Page.ParentPageId).Where(p => p.Active).ToList(); 694 var parentpageItemType = Pageview.Page.Parent.ItemType; 695 bool isParentPageOverviewpage = parentpageItemType == "OverviewPage"; 696 697 if (siblings.Count() > 1 && isParentPageOverviewpage) 698 { 699 var prevPage = siblings.OrderByDescending(p => p.Sort).FirstOrDefault(p => p.Sort < Pageview.Page.Sort); 700 var nextPage = siblings.OrderBy(p => p.Sort).FirstOrDefault(p => p.Sort > Pageview.Page.Sort); 701 var overview = "/Default.aspx?ID=" + Pageview.Page.ParentPageId; 702 703 <section class="page-navigation"> 704 @if (prevPage != null) 705 { 706 var back = "/Default.aspx?ID=" + prevPage.ID; 707 <a href="@back" class="page-navigation__item"> 708 <i class="fal fa-arrow-alt-to-left page-navigation__item--icon"></i> 709 <label class="page-navigation__item-label">@Translate("pagenavigation.previous", "Previous")</label> 710 </a> 711 } 712 713 <a href="@overview" class="page-navigation__item"> 714 <label class="page-navigation__item-label">@Translate("pagenavigation.Overview", "To overview")</label> 715 <i class="fas fa-th page-navigation__item--icon"></i> 716 </a> 717 718 @if (nextPage != null) 719 { 720 var forward = "/Default.aspx?ID=" + nextPage.ID; 721 <a href="@forward" class="page-navigation__item"> 722 <label class="page-navigation__item-label">@Translate("pagenavigation.next", "Next")</label> 723 <i class="fal fa-arrow-alt-to-right page-navigation__item--icon"></i> 724 </a> 725 } 726 </section> 727 } 728 } 729 730 731 <footer class="footer"> 732 733 @if (!string.IsNullOrWhiteSpace(@GetString("Item.Area.USP_1.Value")) || !string.IsNullOrWhiteSpace(@GetString("Item.Area.USP_2.Value")) || !string.IsNullOrWhiteSpace(@GetString("Item.Area.USP_3.Value"))) 734 { 735 <div class="footer-usp__wrapper"> 736 <div class="container"> 737 <ul class="footer-usp__list flex-wrap"> 738 @RenderFooterUSP(@GetString("Item.Area.USP_1.Value"), @GetString("Item.Area.USP_1_icon.Value")) 739 @RenderFooterUSP(@GetString("Item.Area.USP_2.Value"), @GetString("Item.Area.USP_2_icon.Value")) 740 @RenderFooterUSP(@GetString("Item.Area.USP_3.Value"), @GetString("Item.Area.USP_3_icon.Value")) 741 @RenderFooterUSP(@GetString("Item.Area.USP_4.Value"), @GetString("Item.Area.USP_4_icon.Value")) 742 @RenderFooterUSP(@GetString("Item.Area.USP_5.Value"), @GetString("Item.Area.USP_5_icon.Value")) 743 744 </ul> 745 </div> 746 </div> 747 } 748 749 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 750 751 @{ 752 var newsletterFormID = ModuleOnlyParagraph.GetParagraphIDByTag<ModuleOnlyParagraph>("Footer.Newsletter", Pageview.AreaID); 753 754 if (newsletterFormID > 0) 755 { 756 <section class="footer__newsletter-container"> 757 <div class="container footer__newsletter"> 758 <label class="footer__newsletter-label"> 759 @Translate("Footer.SignUpNewsletter", "Sign up for the digital newsletter") 760 </label> 761 @RenderParagraphContent(newsletterFormID) 762 </div> 763 </section> 764 } 765 } 766 767 768 <div class="footer-paymentoptions" data-paymentmethods="@selectedPaymentLogos"></div> 769 770 <section class="container footer__content"> 771 772 <div class="footer__link"> 773 @{ 774 var footerColumn1 = RenderNavigation(new 775 { 776 id = "footernavigation-1", 777 cssclass = "dwnavigation", 778 startLevel = 1, 779 endlevel = 4, 780 template = "BottomNavigation.xslt", 781 expandmode = "all", 782 parenttag = "footer-column-1", 783 }); 784 785 if (!string.IsNullOrEmpty(footerColumn1)) 786 { 787 <h2 class="footer__link-header">@Translate("Footer.Column1.Header", "What you need to know")</h2> 788 <ul class="footer__link-list"> 789 @footerColumn1 790 </ul> 791 } 792 } 793 </div> 794 <div class="footer__link"> 795 @{ 796 var footerColumn2 = RenderNavigation(new 797 { 798 id = "footernavigation-2", 799 cssclass = "dwnavigation", 800 startLevel = 1, 801 endlevel = 4, 802 template = "BottomNavigation.xslt", 803 expandmode = "all", 804 parenttag = "footer-column-2", 805 }); 806 807 if (!string.IsNullOrEmpty(footerColumn2)) 808 { 809 <h2 class="footer__link-header">@Translate("Footer.Column2.Header", "Category two")</h2> 810 <ul class="footer__link-list"> 811 @footerColumn2 812 </ul> 813 } 814 } 815 </div> 816 <div class="footer__link"> 817 @{ 818 var footerColumn3 = RenderNavigation(new 819 { 820 id = "footernavigation-3", 821 cssclass = "dwnavigation", 822 startLevel = 1, 823 endlevel = 4, 824 template = "BottomNavigation.xslt", 825 expandmode = "all", 826 parenttag = "footer-column-3", 827 }); 828 829 if (!string.IsNullOrEmpty(footerColumn3)) 830 { 831 <h2 class="footer__link-header">@Translate("Footer.Column3.Header", "Category three")</h2> 832 <ul class="footer__link-list"> 833 @footerColumn3 834 </ul> 835 } 836 } 837 </div> 838 <div class="footer__description-container"> 839 <img class="footer__logo" loading="lazy" src="/Admin/Public/GetImage.ashx?Image=@footerLogo&Crop=5&Format=webp&Quality=99&Compression=80&Width=400" alt="Footer logo" width="400" height="200"/> 840 841 <div class="footer__description"> 842 @footerDescription 843 </div> 844 845 </div> 846 847 </section> 848 849 <section class="footer__copyright"> 850 851 <div class="container bottombar__container"> 852 <placeholder class="dwnavigation" id="bottombar__navigation" 853 settings="startlevel:1;endlevel:4;template:CleanNavigation.xslt;expandmode:all;parenttag:bottombar;blockclass:bottombar"> 854 </placeholder> 855 856 @if (!string.IsNullOrWhiteSpace(twitter) || !string.IsNullOrWhiteSpace(fb) || !string.IsNullOrWhiteSpace(linkedin) || !string.IsNullOrWhiteSpace(youtube) || !string.IsNullOrWhiteSpace(instagram) || !string.IsNullOrWhiteSpace(pinterest)) 857 { 858 <section class="footer__social-container"> 859 860 <span class="footer__icon-labels">@Translate("Footer.FollowUs", "Volg ons op:")</span> 861 862 <div class="footer__social-icon-container"> 863 @if (!string.IsNullOrWhiteSpace(twitter)) 864 { 865 <a href="@twitter" target="_blank" title="twitter" class="footer__social" rel="noreferrer"><i class="fab fa-twitter"></i></a> 866 } 867 @if (!string.IsNullOrWhiteSpace(fb)) 868 { 869 <a href="@fb" target="_blank" title="facebook" class="footer__social" rel="noreferrer"><i class="fab fa-facebook"></i></a> 870 } 871 @if (!string.IsNullOrWhiteSpace(linkedin)) 872 { 873 <a href="@linkedin" target="_blank" title="LinkedIn" class="footer__social" rel="noreferrer"><i class="fab fa-linkedin"></i></a> 874 } 875 @if (!string.IsNullOrWhiteSpace(youtube)) 876 { 877 <a href="@youtube" target="_blank" title="YouTube" class="footer__social" rel="noreferrer"><i class="fab fa-youtube"></i></a> 878 } 879 @if (!string.IsNullOrWhiteSpace(instagram)) 880 { 881 <a href="@instagram" target="_blank" title="Instagram" class="footer__social" rel="noreferrer"><i class="fab fa-instagram"></i></a> 882 } 883 @if (!string.IsNullOrWhiteSpace(pinterest)) 884 { 885 <a href="@pinterest" target="_blank" title="Pinterest" class="footer__social" rel="noreferrer"><i class="fab fa-pinterest"></i></a> 886 } 887 </div> 888 889 </section> 890 } 891 </div> 892 893 </section> 894 </footer> 895 896 @*@helper RenderFooterUSP(string USP_content, string USP_icon) 897 { 898 if (!string.IsNullOrWhiteSpace(USP_content)) 899 { 900 var usp_icon_class = (!string.IsNullOrWhiteSpace(USP_icon)) ? USP_icon : "fal fa-check"; 901 902 <li class="footer-usp__item"> 903 <i class="@usp_icon_class footer-usp__icon"></i> 904 <span>@USP_content</span> 905 </li> 906 } 907 }*@ 908 909 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 910 @using Dynamicweb; 911 912 <section id="vue-modal"></section> 913 914 <section id="vue-bottom-bar" 915 data-phonenumber="@formattedPhonenumber" 916 data-isoffline="@isOffline" 917 data-emailadress="@emailadress" 918 data-currentpageid="@Pageview.Page.ID" 919 data-enable-login="@enableLogin" 920 data-enable-shoppingcart="@enableShoppingCart" 921 data-enable-advancedsearch="@enableAdvancedSearch"> 922 </section> 923 924 <section class="bottombar__searchbox__wrapper"> 925 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 926 927 <div class="searchbox"> 928 <form class="searchbox__form no-validate" method="get" action="/Default.aspx" autocomplete="off" role="search"> 929 <input type="hidden" name="ID" value="@SearchPageID" /> 930 <input type="text" name="q" value="@SearchPrefill" class="input form__input input--text searchbox__input" placeholder="@SearchPlaceholder" aria-label="@SearchPlaceholder" data-placeholder="@SearchPlaceholder" data-hoverplaceholder="@SearchPlaceholderHover" /> 931 <div class="searchbox__button"> 932 <button type="submit" class="searchbox__form__submit icon icon--medium icon__search input__icon" aria-label="Search"> 933 <i class="fal fa-search"></i> 934 </button> 935 </div> 936 </form> 937 </div> 938 </section> 939 940 <div id="backdrop"></div> 941 942 @{ 943 var appbundlejs = Cache.VersionedFile(designRoot + "/dist/app.bundle.js"); 944 var appAsyncbundlejs = Cache.VersionedFile(designRoot + "/dist/appAsync.bundle.js"); 945 var vuebundlejs = Cache.VersionedFile(designRoot + "/dist/vue.bundle.js"); 946 } 947 948 <script src="@appbundlejs"></script> 949 <script defer src="@vuebundlejs"></script> 950 <script defer src="@appAsyncbundlejs"></script> 951 <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.15.4/css/all.css" integrity="sha384-rqn26AG5Pj86AF4SO72RK5fyefcQ/x32DNQfChxWvbXIyXFePlEktwD18fEz+kQU" crossorigin="anonymous"> 952 953 </body> 954 </html> 955