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