Error compiling template "Designs/Swift/_parsed/Swift_Page.parsed.cshtml"
Line 231: 'Services' is obsolete: 'Use Dynamicweb.Content.Services instead.'
Line 231: 'Services' does not contain a definition for 'Currencies'

1 //------------------------------------------------------------------------------ 2 // <auto-generated> 3 // This code was generated by a tool. 4 // Runtime Version:4.0.30319.42000 5 // 6 // Changes to this file may cause incorrect behavior and will be lost if 7 // the code is regenerated. 8 // </auto-generated> 9 //------------------------------------------------------------------------------ 10 11 namespace CompiledRazorTemplates.Dynamic { 12 13 #line 425 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 14 using System; 15 16 #line default 17 #line hidden 18 using System.Collections.Generic; 19 using System.Linq; 20 21 #line 3 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 22 using Dynamicweb; 23 24 #line default 25 #line hidden 26 27 #line 4 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 28 using Dynamicweb.Environment; 29 30 #line default 31 #line hidden 32 33 #line 5 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 34 using Dynamicweb.Frontend; 35 36 #line default 37 #line hidden 38 39 #line 426 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 40 using Dynamicweb.Ecommerce.ProductCatalog; 41 42 #line default 43 #line hidden 44 45 46 public class RazorEngine_c27cd1543a574502a11d52a306b8f28a : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> { 47 48 #line hidden 49 50 #line 11 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 51 52 string GetCookieOptInPermission(string category) 53 { 54 bool categoryOrAllGranted = false; 55 56 if (CookieManager.IsCookieManagementActive) 57 { 58 var cookieOptInLevel = CookieManager.GetCookieOptInLevel(); 59 var cookieOptInCategories = CookieManager.GetCookieOptInCategories(); 60 categoryOrAllGranted = cookieOptInCategories.Contains(category) || cookieOptInLevel == CookieOptInLevel.All; 61 } 62 63 return categoryOrAllGranted ? "granted" : "denied"; 64 } 65 66 bool AllowTracking() 67 { 68 bool allowTracking = true; 69 if (CookieManager.IsCookieManagementActive) 70 { 71 var cookieOptInLevel = CookieManager.GetCookieOptInLevel(); 72 var cookieOptInCategories = CookieManager.GetCookieOptInCategories(); 73 74 bool consentEither = (cookieOptInCategories.Contains("Statistical") || cookieOptInCategories.Contains("Marketing")); 75 bool consentFunctional = cookieOptInLevel == CookieOptInLevel.Functional; 76 bool consentAtLeastOne = cookieOptInLevel == CookieOptInLevel.All || (consentFunctional && consentEither); 77 78 allowTracking = consentAtLeastOne; 79 } 80 return allowTracking; 81 } 82 83 #line default 84 #line hidden 85 86 87 #line 759 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 88 89 void SetMetaTags() 90 { 91 //Verification Tokens 92 string siteVerificationGoogle = Model.Area.Item.GetString("Google_Site_Verification") != null ? Model.Area.Item.GetString("Google_Site_Verification") : ""; 93 94 //Generic Site Values 95 string openGraphFacebookAppID = Model.Area.Item.GetString("Fb_app_id") != null ? Model.Area.Item.GetString("Fb_app_id") : ""; 96 string openGraphType = Model.Area.Item.GetString("Open_Graph_Type") != null ? Model.Area.Item.GetString("Open_Graph_Type") : ""; 97 string openGraphSiteName = Model.Area.Item.GetString("Open_Graph_Site_Name") != null ? Model.Area.Item.GetString("Open_Graph_Site_Name") : ""; 98 99 string twitterCardSite = Model.Area.Item.GetString("Twitter_Site") != null ? Model.Area.Item.GetString("Twitter_Site") : ""; 100101 //Page specific values 102 string openGraphSiteTitle = Model.Area.Item.GetString("Open_Graph_Title") != null ? Model.Area.Item.GetString("Open_Graph_Title") : ""; 103 FileViewModel openGraphImage = Model.Area.Item.GetFile("Open_Graph_Image"); 104 string openGraphImageALT = Model.Area.Item.GetString("Open_Graph_Image_ALT") != null ? Model.Area.Item.GetString("Open_Graph_Image_ALT") : ""; 105 string openGraphDescription = Model.Area.Item.GetString("Open_Graph_Description") != null ? Model.Area.Item.GetString("Open_Graph_Description") : ""; 106107 string twitterCardURL = Model.Area.Item.GetString("Twitter_URL") != null ? Model.Area.Item.GetString("Twitter_URL") : ""; 108 string twitterCardTitle = Model.Area.Item.GetString("Twitter_Title") != null ? Model.Area.Item.GetString("Twitter_Title") : ""; 109 string twitterCardDescription = Model.Area.Item.GetString("Twitter_Description") != null ? Model.Area.Item.GetString("Twitter_Description") : ""; 110 FileViewModel twitterCardImage = Model.Area.Item.GetFile("Twitter_Image"); 111 string twitterCardImageALT = Model.Area.Item.GetString("Twitter_Image_ALT") != null ? Model.Area.Item.GetString("Twitter_Image_ALT") : ""; 112 string topImage = Pageview.Page.TopImage.StartsWith("/Files", StringComparison.OrdinalIgnoreCase) ? Pageview.Page.TopImage : $"/Files{Pageview.Page.TopImage}"; 113114 if (string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["ProductID"])) 115 { 116 if (!string.IsNullOrEmpty(Model.Description)) 117 { 118 Pageview.Meta.AddTag($"<meta property=\"og:description\" content=\"{Model.Description}\">"); 119 } 120 else 121 { 122 Pageview.Meta.AddTag($"<meta property=\"og:description\" content=\"{openGraphDescription}\">"); 123 } 124125 if (!string.IsNullOrEmpty(Pageview.Page.TopImage)) 126 { 127 Pageview.Meta.AddTag($"<meta property=\"og:image\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{topImage}\">"); 128 Pageview.Meta.AddTag($"<meta property=\"og:image:secure_url\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{topImage}\">"); 129 } 130 else if (openGraphImage != null) 131 { 132 Pageview.Meta.AddTag($"<meta property=\"og:image\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{openGraphImage.Path}\">"); 133 Pageview.Meta.AddTag($"<meta property=\"og:image:secure_url\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{openGraphImage.Path}\">"); 134 } 135136 if (!string.IsNullOrEmpty(openGraphImageALT)) 137 { 138 Pageview.Meta.AddTag($"<meta property=\"og:image:alt\" content=\"{openGraphImageALT}\">"); 139 } 140 if (!string.IsNullOrEmpty(twitterCardDescription)) 141 { 142 Pageview.Meta.AddTag("twitter:description", twitterCardDescription); 143 } 144145 if (!string.IsNullOrEmpty(Pageview.Page.TopImage)) 146 { 147 Pageview.Meta.AddTag("twitter:image", $"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{topImage}"); 148 } 149 else if (twitterCardImage != null) 150 { 151 Pageview.Meta.AddTag("twitter:image", $"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{openGraphImage.Path}"); 152 } 153154 if (!string.IsNullOrEmpty(twitterCardImageALT)) 155 { 156 Pageview.Meta.AddTag("twitter:image:alt", twitterCardImageALT); 157 } 158 } 159160 if (!string.IsNullOrEmpty(siteVerificationGoogle)) 161 { 162 Pageview.Meta.AddTag("google-site-verification", siteVerificationGoogle); 163 } 164165 if (!string.IsNullOrEmpty(openGraphFacebookAppID)) 166 { 167 Pageview.Meta.AddTag($"<meta property=\"fb:app_id\" content=\"{openGraphFacebookAppID}\">"); 168 } 169170 if (!string.IsNullOrEmpty(openGraphType)) 171 { 172 Pageview.Meta.AddTag($"<meta property=\"og:type\" content=\"{openGraphType}\">"); 173 } 174175 if (!string.IsNullOrEmpty(openGraphSiteName)) 176 { 177 Pageview.Meta.AddTag($"<meta property=\"og:url\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{Pageview.SearchFriendlyUrl}\">"); 178 } 179180 if (!string.IsNullOrEmpty(openGraphSiteName)) 181 { 182 Pageview.Meta.AddTag($"<meta property=\"og:site_name\" content=\"{openGraphSiteName}\">"); 183 } 184185 if (!string.IsNullOrEmpty(Model.Title)) 186 { 187 Pageview.Meta.AddTag($"<meta property=\"og:title\" content=\"{Model.Title}\">"); 188 } 189 else 190 { 191 Pageview.Meta.AddTag($"<meta property=\"og:title\" content=\"{openGraphSiteTitle}\">"); 192 } 193194 if (!string.IsNullOrEmpty(twitterCardSite)) 195 { 196 Pageview.Meta.AddTag("twitter:site", twitterCardSite); 197 } 198199 if (!string.IsNullOrEmpty(twitterCardURL)) 200 { 201 Pageview.Meta.AddTag("twitter:url", twitterCardURL); 202 } 203204 if (!string.IsNullOrEmpty(twitterCardTitle)) 205 { 206 Pageview.Meta.AddTag("twitter:title", twitterCardTitle); 207 } 208 } 209210 #line default 211 #line hidden 212213214 public RazorEngine_c27cd1543a574502a11d52a306b8f28a() { 215 } 216217 public override void Execute() { 218 WriteLiteral("\r\n"); 219220221 #line 7 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 222223224225 #line default 226 #line hidden 227 WriteLiteral("<!-- "); 228229230 #line 8 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 231 Write(Services.Currencies.GetDefaultCurrency()); 232233234 #line default 235 #line hidden 236 WriteLiteral("?.Code -->\r\n"); 237238239 #line 9 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 240241242 #line default 243 #line hidden 244 WriteLiteral("\r\n\r\n"); 245246 WriteLiteral("\r\n"); 247248249 #line 44 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 250251 var cartSummaryPageId = Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(Model.Area.ID, "CartSummary")?.ID; 252 bool enableMiniCart = Model.Area.Item?.GetBoolean("EnableOffcanvasMiniCart") ?? false; 253 var offcanvasMiniCartBehaviour = Model.Area.Item?.GetRawValueString("OffcanvasMinicartBehaviour", "3") ?? "3"; 254 bool miniCartEnabled = cartSummaryPageId != null && enableMiniCart; 255 var brandingPageId = Model.Area.Item?.GetInt32("BrandingPage") ?? 0; 256 var themePageId = Model.Area.Item?.GetInt32("ThemesPage") ?? 0; 257 var cssPageId = Model.Area.Item?.GetInt32("CssPage") ?? 0; 258 var brandingPage = brandingPageId != 0 ? Dynamicweb.Content.Services.Pages?.GetPage(brandingPageId) ?? null : null; 259 var themesParagraphs = themePageId != 0 ? Dynamicweb.Content.Services.Paragraphs?.GetParagraphsByPageId(themePageId) ?? null : null; 260 var cssParagraphs = cssPageId != 0 ? Dynamicweb.Content.Services.Paragraphs?.GetParagraphsByPageId(cssPageId) ?? null : null; 261 var customFooterScripts = Model.Area.Item?.GetRawValueString("FooterScripts", "") ?? ""; 262 var scriptsHeader = Model.Area.Item?.GetRawValueString("ScriptsHeader", "") ?? ""; 263264265266 #line default 267 #line hidden 268 WriteLiteral("\r\n\r\n"); 269270271 #line 60 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 272 if (themesParagraphs != null || brandingPage != null) 273 { 274 string swiftVersion = ReadFile("/Files/Templates/Designs/Swift/swift_version.txt"); 275 bool renderAsResponsive = Model.Area.Item.GetString("DeviceRendering", "responsive").Equals("responsive", StringComparison.OrdinalIgnoreCase); 276 bool renderMobile = Pageview.Device == Dynamicweb.Frontend.Devices.DeviceType.Mobile || Pageview.Device == Dynamicweb.Frontend.Devices.DeviceType.Tablet; 277 string responsiveClassDesktop = string.Empty; 278 string responsiveClassMobile = string.Empty; 279 if (renderAsResponsive) 280 { 281 responsiveClassDesktop = " d-none d-xl-block"; 282 responsiveClassMobile = " d-block d-xl-none"; 283 } 284285 var headerDesktopLink = Model.Area.Item?.GetLink("HeaderDesktop") ?? null; 286 var headerMobileLink = Model.Area.Item?.GetLink("HeaderMobile") ?? null; 287288 var footerDesktopLink = Model.Area.Item?.GetLink("FooterDesktop") ?? null; 289 var footerMobileLink = Model.Area.Item?.GetLink("FooterMobile") ?? null; 290291 var disableWideBreakpoints = Model.Area?.Item?.GetRawValueString("DisableWideBreakpoints", "default"); 292293 string customHeaderInclude = !string.IsNullOrEmpty(Model.Area.Item.GetRawValueString("CustomHeaderInclude")) ? Model.Area.Item.GetFile("CustomHeaderInclude").Name : string.Empty; 294295 var themesParagraphLastChanged = Dynamicweb.Content.Services.Paragraphs.GetParagraphsByPageId(themePageId).OrderByDescending(p => p.Audit.LastModifiedAt).FirstOrDefault(); 296 var cssLastModified = brandingPage.Audit.LastModifiedAt > themesParagraphLastChanged.Audit.LastModifiedAt ? brandingPage.Audit.LastModifiedAt : themesParagraphLastChanged.Audit.LastModifiedAt; 297298 var cssThemeAndBrandingStyleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath($"/Files/Templates/Designs/Swift/_parsed/Swift_css/Swift_styles_{Model.Area.ID}.min.css")); 299300301 if (cssPageId != 0) 302 { 303 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath($"/Files/Templates/Designs/Swift/_parsed/Swift_css/Swift_css_styles_{Model.Area.ID}.css")); 304 var cssParagraphLastChanged = Dynamicweb.Content.Services.Paragraphs.GetParagraphsByPageId(cssPageId).OrderByDescending(p => p.Audit.LastModifiedAt).FirstOrDefault(); 305 if (!cssThemeAndBrandingStyleFileInfo.Exists || cssThemeAndBrandingStyleFileInfo.LastWriteTime < cssParagraphLastChanged.Audit.LastModifiedAt) 306 { 307 var cssPageview = Dynamicweb.Frontend.PageView.GetPageviewByPageID(cssPageId); 308 cssPageview.Redirect = false; 309 cssPageview.Output(); 310 } 311 } 312313 if (!cssThemeAndBrandingStyleFileInfo.Exists || cssThemeAndBrandingStyleFileInfo.LastWriteTime < brandingPage.Audit.LastModifiedAt) 314 { 315 //Branding page has been saved or the file is missing. Rewrite the file to disc. 316 if (brandingPageId > 0) 317 { 318 var brandingPageview = Dynamicweb.Frontend.PageView.GetPageviewByPageID(brandingPageId); 319 brandingPageview.Redirect = false; 320 brandingPageview.Output(); 321 } 322 } 323324 if (!cssThemeAndBrandingStyleFileInfo.Exists || cssThemeAndBrandingStyleFileInfo.LastWriteTime < themesParagraphLastChanged.Audit.LastModifiedAt) 325 { 326 //Branding page has been saved or the file is missing. Rewrite the file to disc. 327 if (themePageId > 0) 328 { 329 var themePageview = Dynamicweb.Frontend.PageView.GetPageviewByPageID(themePageId); 330 themePageview.Redirect = false; 331 themePageview.Output(); 332 } 333 } 334335 // Schema.org details for PDP 336 bool isProductDetailsPage = Dynamicweb.Context.Current.Request.QueryString.AllKeys.Contains("ProductID"); 337 bool isArticlePage = Model.ItemType == "Swift_Article"; 338 string schemaOrgType = string.Empty; 339340 if (isProductDetailsPage) 341 { 342 schemaOrgType = "itemscope=\"\" itemtype=\"https://schema.org/Product\""; 343 } 344345 if (isArticlePage) 346 { 347 schemaOrgType = "itemscope=\"\" itemtype=\"https://schema.org/Article\""; 348 } 349350351 var cssStyleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath("/Files/Templates/Designs/Swift/Assets/css/styles.css")); 352 var cssStyleFileInfoCustom = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath("/Files/Templates/Designs/Swift/Assets/css/custom.css")); 353 var jsFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath("/Files/Templates/Designs/Swift/Assets/js/scripts.js")); 354355 string masterTheme = !string.IsNullOrWhiteSpace(Model.Area.Item.GetRawValueString("Theme")) ? " theme " + Model.Area.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 356357 string favicon = Model.Area.Item.GetRawValueString("Favicon", "/Files/Templates/Designs/Swift/Assets/Images/favicon.png"); 358 string appleTouchIcon = Model.Area.Item.GetRawValueString("AppleTouchIcon", "/Files/Templates/Designs/Swift/Assets/Images/apple-touch-icon.png"); 359360 string headerCssClass = "sticky-top"; 361 bool movePageBehind = false; 362363 if (Model.PropertyItem != null) 364 { 365 headerCssClass = Model.PropertyItem.GetRawValueString("MoveThisPageBehindTheHeader", "sticky-top"); 366 movePageBehind = headerCssClass == "fixed-top" && !Pageview.IsVisualEditorMode ? true : false; 367 } 368369 headerCssClass = headerCssClass == "" ? "sticky-top" : headerCssClass; 370 headerCssClass = Pageview.IsVisualEditorMode ? "" : headerCssClass; 371372 string googleTagManagerID = Model.Area.Item.GetString("GoogleTagManagerID").Trim(); 373 string googleAnalyticsMeasurementID = Model.Area.Item.GetString("GoogleAnalyticsMeasurementID").Trim(); 374 string userCentrics = Model.Area.Item.GetString("UsercentricsScript"); 375 bool allowTracking = true; 376377 Dynamicweb.Context.Current.Response.AddHeader("link", $"</Files/Templates/Designs/Swift/Assets/css/styles.css?{cssStyleFileInfo.LastWriteTime.Ticks}>; rel=preload; as=style;"); 378 Dynamicweb.Context.Current.Response.AddHeader("link", $"</Files/Templates/Designs/Swift/Assets/css/custom.css?{cssStyleFileInfoCustom.LastWriteTime.Ticks}>; rel=preload; as=style;"); 379 Dynamicweb.Context.Current.Response.AddHeader("link", $"</Files/Templates/Designs/Swift/_parsed/Swift_css/Swift_styles_{Model.Area.ID}.min.css?{cssLastModified.Ticks}>; rel=preload; as=style;"); 380 Dynamicweb.Context.Current.Response.AddHeader("link", $"</Files/Templates/Designs/Swift/Assets/js/scripts.js?{jsFileInfo.LastWriteTime.Ticks}>; rel=preload; as=script;"); 381382383 SetMetaTags(); 384385 List<Dynamicweb.Content.Page> languages = new List<Dynamicweb.Content.Page>(); 386387 var masterPage = Pageview.Area.IsMaster ? Pageview.Page : Pageview.Page.MasterPage; 388 languages.Add(masterPage); 389 if (masterPage?.Languages != null) 390 { 391 foreach (var language in masterPage.Languages) 392 { 393 languages.Add(language); 394 } 395 } 396397 Uri url = Dynamicweb.Context.Current.Request.Url; 398 string hostName = url.Host; 399400401402 #line default 403 #line hidden 404 WriteLiteral(" <!doctype html>\r\n"); 405406 WriteLiteral(" <html"); 407408 WriteAttribute("lang", Tuple.Create(" lang=\"", 9835), Tuple.Create("\"", 9893) 409410 #line 189 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 411 , Tuple.Create(Tuple.Create("", 9842), Tuple.Create<System.Object, System.Int32>(Pageview.Area.CultureInfo.TwoLetterISOLanguageName 412413 #line default 414 #line hidden 415 , 9842), false) 416 ); 417418 WriteLiteral(">\r\n <head>\r\n <!-- "); 419420421 #line 191 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 422 Write(swiftVersion); 423424425 #line default 426 #line hidden 427 WriteLiteral(" -->\r\n "); 428429 WriteLiteral("\r\n <meta"); 430431 WriteLiteral(" charset=\"utf-8\""); 432433 WriteLiteral(">\r\n <meta"); 434435 WriteLiteral(" name=\"viewport\""); 436437 WriteLiteral(" content=\"height=device-height, width=device-width, initial-scale=1.0\""); 438439 WriteLiteral(">\r\n <link"); 440441 WriteLiteral(" rel=\"shortcut icon\""); 442443 WriteAttribute("href", Tuple.Create(" href=\"", 10142), Tuple.Create("\"", 10157) 444445 #line 195 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 446 , Tuple.Create(Tuple.Create("", 10149), Tuple.Create<System.Object, System.Int32>(favicon 447448 #line default 449 #line hidden 450 , 10149), false) 451 ); 452453 WriteLiteral(">\r\n <link"); 454455 WriteLiteral(" rel=\"apple-touch-icon\""); 456457 WriteAttribute("href", Tuple.Create(" href=\"", 10197), Tuple.Create("\"", 10219) 458459 #line 196 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 460 , Tuple.Create(Tuple.Create("", 10204), Tuple.Create<System.Object, System.Int32>(appleTouchIcon 461462 #line default 463 #line hidden 464 , 10204), false) 465 ); 466467 WriteLiteral(">\r\n\r\n"); 468469 WriteLiteral(" "); 470471472 #line 198 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 473 Write(Model.MetaTags); 474475476 #line default 477 #line hidden 478 WriteLiteral("\r\n\r\n"); 479480481 #line 200 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 482483484 #line default 485 #line hidden 486487 #line 200 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 488489 var alreadyWrittenTwoletterIsos = new List<string>(); 490491492 #line default 493 #line hidden 494495 #line 202 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 496497 foreach (var language in languages) 498 { 499 hostName = url.Host; 500 if (language?.Area != null) 501 { 502 if (language.Area?.MasterArea != null && !string.IsNullOrEmpty(language.Area.MasterArea.DomainLock)) 503 { 504 hostName = language.Area.MasterArea.DomainLock; //dk.domain.com or dk-domain.dk 505 } 506 if (language != null && language.Area != null && language.Published && language.Area.Active && language.Area.Published) 507 { 508 if (!string.IsNullOrEmpty(language.Area.DomainLock)) 509 { 510 hostName = language.Area.DomainLock; //dk.domain.com or dk-domain.dk 511 } 512 string querystring = $"Default.aspx?ID={language.ID}"; 513 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["GroupID"])) 514 { 515 querystring += $"&GroupID={Dynamicweb.Context.Current.Request.QueryString["GroupID"]}"; 516 } 517 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["ProductID"])) 518 { 519 querystring += $"&ProductID={Dynamicweb.Context.Current.Request.QueryString["ProductID"]}"; 520 } 521 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["VariantID"])) 522 { 523 querystring += $"&VariantID={Dynamicweb.Context.Current.Request.QueryString["VariantID"]}"; 524 } 525526 string friendlyUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(querystring); 527 if (language.Area.RedirectFirstPage && language.ParentPageId == 0 && language.Sort == 1) 528 { 529 friendlyUrl = "/"; 530 } 531 string href = $"{url.Scheme}://{hostName}{friendlyUrl}"; 532533534535536 #line default 537 #line hidden 538 WriteLiteral(" <link"); 539540 WriteLiteral(" rel=\"alternate\""); 541542 WriteAttribute("hreflang", Tuple.Create(" hreflang=\"", 12610), Tuple.Create("\"", 12662) 543544 #line 240 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 545 , Tuple.Create(Tuple.Create("", 12621), Tuple.Create<System.Object, System.Int32>(language.Area.CultureInfo.Name.ToLower() 546547 #line default 548 #line hidden 549 , 12621), false) 550 ); 551552 WriteAttribute("href", Tuple.Create(" href=\"", 12663), Tuple.Create("\"", 12675) 553554 #line 240 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 555 , Tuple.Create(Tuple.Create("", 12670), Tuple.Create<System.Object, System.Int32>(href 556557 #line default 558 #line hidden 559 , 12670), false) 560 ); 561562 WriteLiteral(">\r\n"); 563564565 #line 241 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 566 if (!alreadyWrittenTwoletterIsos.Contains(language.Area.CultureInfo.TwoLetterISOLanguageName)) 567 { 568 alreadyWrittenTwoletterIsos.Add(language.Area.CultureInfo.TwoLetterISOLanguageName); 569570571 #line default 572 #line hidden 573 WriteLiteral(" <link"); 574575 WriteLiteral(" rel=\"alternate\""); 576577 WriteAttribute("hreflang", Tuple.Create(" hreflang=\"", 12989), Tuple.Create("\"", 13061) 578579 #line 244 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 580 , Tuple.Create(Tuple.Create("", 13000), Tuple.Create<System.Object, System.Int32>(language.Area.CultureInfo.TwoLetterISOLanguageName.ToLower() 581582 #line default 583 #line hidden 584 , 13000), false) 585 ); 586587 WriteAttribute("href", Tuple.Create(" href=\"", 13062), Tuple.Create("\"", 13074) 588589 #line 244 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 590 , Tuple.Create(Tuple.Create("", 13069), Tuple.Create<System.Object, System.Int32>(href 591592 #line default 593 #line hidden 594 , 13069), false) 595 ); 596597 WriteLiteral(">\r\n"); 598599600 #line 245 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 601 } 602 } 603 } 604 } 605606607 #line default 608 #line hidden 609 WriteLiteral("\r\n\r\n <title>"); 610611612 #line 251 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 613 Write(Model.Title); 614615616 #line default 617 #line hidden 618 WriteLiteral("</title>\r\n "); 619620 WriteLiteral("\r\n <link"); 621622 WriteAttribute("href", Tuple.Create(" href=\"", 13269), Tuple.Create("\"", 13366) 623 , Tuple.Create(Tuple.Create("", 13276), Tuple.Create("/Files/Templates/Designs/Swift/Assets/css/styles.css?", 13276), true) 624625 #line 253 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 626 , Tuple.Create(Tuple.Create("", 13329), Tuple.Create<System.Object, System.Int32>(cssStyleFileInfo.LastWriteTime.Ticks 627628 #line default 629 #line hidden 630 , 13329), false) 631 ); 632633 WriteLiteral(" rel=\"stylesheet\""); 634635 WriteLiteral(" media=\"all\""); 636637 WriteLiteral(" type=\"text/css\""); 638639 WriteLiteral(">\r\n\t\t<link"); 640641 WriteAttribute("href", Tuple.Create(" href=\"", 13422), Tuple.Create("\"", 13525) 642 , Tuple.Create(Tuple.Create("", 13429), Tuple.Create("/Files/Templates/Designs/Swift/Assets/css/custom.css?", 13429), true) 643644 #line 254 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 645 , Tuple.Create(Tuple.Create("", 13482), Tuple.Create<System.Object, System.Int32>(cssStyleFileInfoCustom.LastWriteTime.Ticks 646647 #line default 648 #line hidden 649 , 13482), false) 650 ); 651652 WriteLiteral(" rel=\"stylesheet\""); 653654 WriteLiteral(" media=\"all\""); 655656 WriteLiteral(" type=\"text/css\""); 657658 WriteLiteral(">\r\n\r\n"); 659660661 #line 256 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 662663664 #line default 665 #line hidden 666667 #line 256 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 668 if (disableWideBreakpoints != "disableBoth") 669 { 670671672 #line default 673 #line hidden 674 WriteLiteral(" <style>\r\n "); 675676 WriteLiteral(@"@media ( min-width: 1600px ) { 677 .container-xxl, 678 .container-xl, 679 .container-lg, 680 .container-md, 681 .container-sm, 682 .container { 683 max-width: 1520px; 684 } 685 } 686 </style> 687 "); 688689690 #line 270 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 691692693694 if (disableWideBreakpoints != "disableUltraWideOnly") 695 { 696697698 #line default 699 #line hidden 700 WriteLiteral(" <style>\r\n "); 701702 WriteLiteral(@"@media ( min-width: 1920px ) { 703 .container-xxl, 704 .container-xl, 705 .container-lg, 706 .container-md, 707 .container-sm, 708 .container { 709 max-width: 1820px; 710 } 711 } 712 </style> 713 "); 714715716 #line 287 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 717 } 718 } 719720721722 #line default 723 #line hidden 724725 #line 290 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 726727728729 #line default 730 #line hidden 731 WriteLiteral(" <link"); 732733 WriteAttribute("href", Tuple.Create(" href=\"", 14655), Tuple.Create("\"", 14771) 734 , Tuple.Create(Tuple.Create("", 14662), Tuple.Create("/Files/Templates/Designs/Swift/_parsed/Swift_css/Swift_styles_", 14662), true) 735736 #line 291 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 737 , Tuple.Create(Tuple.Create("", 14724), Tuple.Create<System.Object, System.Int32>(Model.Area.ID 738739 #line default 740 #line hidden 741 , 14724), false) 742 , Tuple.Create(Tuple.Create("", 14740), Tuple.Create(".min.css?", 14740), true) 743744 #line 291 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 745 , Tuple.Create(Tuple.Create("", 14749), Tuple.Create<System.Object, System.Int32>(cssLastModified.Ticks 746747 #line default 748 #line hidden 749 , 14749), false) 750 ); 751752 WriteLiteral(" rel=\"stylesheet\""); 753754 WriteLiteral(" media=\"all\""); 755756 WriteLiteral(" type=\"text/css\""); 757758 WriteLiteral(" data-last-modified-content=\""); 759760761 #line 291 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 762 Write(cssLastModified); 763764765 #line default 766 #line hidden 767 WriteLiteral("\""); 768769 WriteLiteral(">\r\n <script"); 770771 WriteAttribute("src", Tuple.Create(" src=\"", 14881), Tuple.Create("\"", 14970) 772 , Tuple.Create(Tuple.Create("", 14887), Tuple.Create("/Files/Templates/Designs/Swift/Assets/js/scripts.js?", 14887), true) 773774 #line 292 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 775 , Tuple.Create(Tuple.Create("", 14939), Tuple.Create<System.Object, System.Int32>(jsFileInfo.LastWriteTime.Ticks 776777 #line default 778 #line hidden 779 , 14939), false) 780 ); 781782 WriteLiteral("></script>\r\n <script"); 783784 WriteLiteral(" type=\"module\""); 785786 WriteLiteral(@"> 787 swift.Scroll.hideHeadersOnScroll(); 788 swift.Scroll.handleAlternativeTheme(); 789790 //Only load if AOS 791 const aosColumns = document.querySelectorAll('[data-aos]'); 792 if (aosColumns.length > 0) { 793 swift.AssetLoader.Load('/Files/Templates/Designs/Swift/Assets/js/aos.js?"); 794795796 #line 300 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 797 Write(jsFileInfo.LastWriteTime.Ticks); 798799800 #line default 801 #line hidden 802 WriteLiteral(@"', 'js'); 803 document.addEventListener('load.swift.assetloader', function () { 804 AOS.init({ duration: 400, delay: 100, easing: 'ease-in-out', mirror: false, disable: window.matchMedia('(prefers-reduced-motion: reduce)') }); 805 }); 806 } 807 </script> 808809 "); 810811812 #line 307 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 813814815 #line default 816 #line hidden 817818 #line 307 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 819 if (!string.IsNullOrWhiteSpace(userCentrics)) 820 { 821822823824 #line default 825 #line hidden 826 WriteLiteral("\t\t<link"); 827828 WriteLiteral(" rel=\"preconnect\""); 829830 WriteLiteral(" href=\"//app.usercentrics.eu\""); 831832 WriteLiteral("> \r\n"); 833834 WriteLiteral("\t\t<link"); 835836 WriteLiteral(" rel=\"preconnect\""); 837838 WriteLiteral(" href=\"//api.usercentrics.eu\""); 839840 WriteLiteral("> \r\n"); 841842 WriteLiteral("\t\t<link"); 843844 WriteLiteral(" rel=\"preload\""); 845846 WriteLiteral(" href=\"//app.usercentrics.eu/browser-ui/latest/loader.js\""); 847848 WriteLiteral(" as=\"script\""); 849850 WriteLiteral("> \r\n"); 851852853 #line 313 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 854855 } 856857858 #line default 859 #line hidden 860 WriteLiteral("\r\n"); 861862863 #line 316 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 864865866 #line default 867 #line hidden 868869 #line 316 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 870 if (!string.IsNullOrWhiteSpace(userCentrics)) 871 { 872873874 #line default 875 #line hidden 876 WriteLiteral("\t\t\t"); 877878879 #line 318 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 880 Write(userCentrics); 881882883 #line default 884 #line hidden 885 WriteLiteral("\r\n"); 886887888 #line 319 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 889 } 890891892893 #line default 894 #line hidden 895896 #line 321 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 897898899900 #line default 901 #line hidden 902 WriteLiteral("\t\t"); 903904905 #line 322 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 906 if (!string.IsNullOrWhiteSpace(userCentrics) && !string.IsNullOrWhiteSpace(googleTagManagerID)) 907 { 908909910 #line default 911 #line hidden 912 WriteLiteral("\t\t\t<script"); 913914 WriteLiteral(" type=\"text/plain\""); 915916 WriteLiteral(" data-usercentrics=\"Google Tag Manager\""); 917918 WriteLiteral(@"> 919 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 920 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 921 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 922 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 923 })(window, document, 'script', 'dataLayer', '"); 924925926 #line 329 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 927 Write(googleTagManagerID); 928929930 #line default 931 #line hidden 932 WriteLiteral("\');\r\n\r\n\t\t\t\tfunction gtag() { dataLayer.push(arguments); }\r\n\t\t\t</script>\r\n"); 933934935 #line 333 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 936 } else if (!string.IsNullOrWhiteSpace(googleTagManagerID) && allowTracking) 937 { 938939940 #line default 941 #line hidden 942 WriteLiteral(@" <script> 943 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 944 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 945 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 946 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 947 })(window, document, 'script', 'dataLayer', '"); 948949950 #line 340 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 951 Write(googleTagManagerID); 952953954 #line default 955 #line hidden 956 WriteLiteral("\');\r\n\r\n\t\t\t\tfunction gtag() { dataLayer.push(arguments); }\r\n\t\t\t</script>\r\n"); 957958959 #line 344 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 960 } 961962963 #line default 964 #line hidden 965 WriteLiteral("\r\n"); 966967968 #line 346 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 969970971 #line default 972 #line hidden 973974 #line 346 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 975 if (!string.IsNullOrWhiteSpace(userCentrics) && !string.IsNullOrWhiteSpace(googleAnalyticsMeasurementID)) 976 { 977 var GoogleAnalyticsDebugMode = ""; 978979 if (Model.Area.Item.GetBoolean("EnableGoogleAnalyticsDebugMode")) 980 { 981 GoogleAnalyticsDebugMode = ", {'debug_mode': true}"; 982 } 983984985986 #line default 987 #line hidden 988 WriteLiteral("\t\t\t<script"); 989990 WriteLiteral(" type=\"text/plain\""); 991992 WriteLiteral(" data-usercentrics=\"Google Analytics\""); 993994 WriteLiteral(" async"); 995996 WriteAttribute("src", Tuple.Create(" src=\"", 17659), Tuple.Create("\"", 17738) 997 , Tuple.Create(Tuple.Create("", 17665), Tuple.Create("https://www.googletagmanager.com/gtag/js?id=", 17665), true) 998999 #line 355 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1000 , Tuple.Create(Tuple.Create("", 17709), Tuple.Create<System.Object, System.Int32>(googleAnalyticsMeasurementID 10011002 #line default 1003 #line hidden 1004 , 17709), false) 1005 ); 10061007 WriteLiteral("></script>\r\n"); 10081009 WriteLiteral("\t\t\t<script"); 10101011 WriteLiteral(" type=\"text/plain\""); 10121013 WriteLiteral(" data-usercentrics=\"Google Analytics\""); 10141015 WriteLiteral(">\r\n\t\t\t\twindow.dataLayer = window.dataLayer || [];\r\n\t\t\t\tfunction gtag() { dataLaye" + 1016 "r.push(arguments); }\r\n\t\t\t\tgtag(\'js\', new Date());\r\n\t\t\t\tgtag(\'config\', \'"); 101710181019 #line 360 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1020 Write(googleAnalyticsMeasurementID); 102110221023 #line default 1024 #line hidden 1025 WriteLiteral("\'"); 102610271028 #line 360 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1029 Write(GoogleAnalyticsDebugMode); 103010311032 #line default 1033 #line hidden 1034 WriteLiteral(");\r\n\t\t\t</script>\r\n"); 103510361037 #line 362 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1038 } else if (!string.IsNullOrWhiteSpace(googleAnalyticsMeasurementID) && allowTracking) 1039 { 1040 var GoogleAnalyticsDebugMode = ""; 10411042 if (Model.Area.Item.GetBoolean("EnableGoogleAnalyticsDebugMode")) 1043 { 1044 GoogleAnalyticsDebugMode = ", {'debug_mode': true}"; 1045 } 1046104710481049 #line default 1050 #line hidden 1051 WriteLiteral("\t\t\t<script async"); 10521053 WriteAttribute("src", Tuple.Create(" src=\"", 18334), Tuple.Create("\"", 18413) 1054 , Tuple.Create(Tuple.Create("", 18340), Tuple.Create("https://www.googletagmanager.com/gtag/js?id=", 18340), true) 10551056 #line 371 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1057 , Tuple.Create(Tuple.Create("", 18384), Tuple.Create<System.Object, System.Int32>(googleAnalyticsMeasurementID 10581059 #line default 1060 #line hidden 1061 , 18384), false) 1062 ); 10631064 WriteLiteral("></script>\r\n"); 10651066 WriteLiteral("\t\t\t<script>\r\n\t\t\t\twindow.dataLayer = window.dataLayer || [];\r\n\t\t\t\tfunction gtag() " + 1067 "{ dataLayer.push(arguments); }\r\n\t\t\t\tgtag(\'js\', new Date());\r\n\t\t\t\tgtag(\'config\', " + 1068 "\'"); 106910701071 #line 376 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1072 Write(googleAnalyticsMeasurementID); 107310741075 #line default 1076 #line hidden 1077 WriteLiteral("\'"); 107810791080 #line 376 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1081 Write(GoogleAnalyticsDebugMode); 108210831084 #line default 1085 #line hidden 1086 WriteLiteral(");\r\n\t\t\t</script>\r\n"); 108710881089 #line 378 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1090 } 109110921093 #line default 1094 #line hidden 1095 WriteLiteral("\r\n"); 109610971098 #line 380 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 109911001101 #line default 1102 #line hidden 11031104 #line 380 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1105 if (!string.IsNullOrWhiteSpace(customHeaderInclude)) 1106 { 110711081109 #line default 1110 #line hidden 11111112 #line 382 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1113 Write(RenderPartial($"Components/Custom/{customHeaderInclude}")); 111411151116 #line default 1117 #line hidden 11181119 #line 382 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 11201121 } 112211231124 #line default 1125 #line hidden 1126 WriteLiteral("\r\n"); 112711281129 #line 385 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 113011311132 #line default 1133 #line hidden 11341135 #line 385 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1136 if (allowTracking && !string.IsNullOrWhiteSpace(scriptsHeader)){ 113711381139 #line default 1140 #line hidden 11411142 #line 386 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1143 Write(scriptsHeader); 114411451146 #line default 1147 #line hidden 11481149 #line 386 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 11501151 } 115211531154 #line default 1155 #line hidden 1156 WriteLiteral("\r\n </head>\r\n <body"); 11571158 WriteAttribute("class", Tuple.Create(" class=\"", 18951), Tuple.Create("\"", 18979) 1159 , Tuple.Create(Tuple.Create("", 18959), Tuple.Create("brand", 18959), true) 11601161 #line 390 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1162 , Tuple.Create(Tuple.Create(" ", 18964), Tuple.Create<System.Object, System.Int32>(masterTheme 11631164 #line default 1165 #line hidden 1166 , 18965), false) 1167 ); 11681169 WriteAttribute("id", Tuple.Create(" id=\"", 18980), Tuple.Create("\"", 19000) 1170 , Tuple.Create(Tuple.Create("", 18985), Tuple.Create("page", 18985), true) 11711172 #line 390 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1173 , Tuple.Create(Tuple.Create("", 18989), Tuple.Create<System.Object, System.Int32>(Model.ID 11741175 #line default 1176 #line hidden 1177 , 18989), false) 1178 ); 11791180 WriteLiteral(">\r\n\r\n "); 11811182 WriteLiteral("\r\n"); 118311841185 #line 393 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 118611871188 #line default 1189 #line hidden 11901191 #line 393 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1192 if (!string.IsNullOrWhiteSpace(googleTagManagerID) && allowTracking) 1193 { 119411951196 #line default 1197 #line hidden 1198 WriteLiteral(" <noscript>\r\n <iframe"); 11991200 WriteAttribute("src", Tuple.Create(" src=\"", 19177), Tuple.Create("\"", 19248) 1201 , Tuple.Create(Tuple.Create("", 19183), Tuple.Create("https://www.googletagmanager.com/ns.html?id=", 19183), true) 12021203 #line 396 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1204 , Tuple.Create(Tuple.Create("", 19227), Tuple.Create<System.Object, System.Int32>(googleTagManagerID 12051206 #line default 1207 #line hidden 1208 , 19227), false) 1209 ); 12101211 WriteLiteral("\r\n height=\"0\""); 12121213 WriteLiteral(" width=\"0\""); 12141215 WriteLiteral(" style=\"display:none;visibility:hidden\""); 12161217 WriteLiteral("></iframe>\r\n </noscript>\r\n"); 121812191220 #line 399 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1221 } 122212231224 #line default 1225 #line hidden 1226 WriteLiteral("\r\n"); 122712281229 #line 401 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 123012311232 #line default 1233 #line hidden 12341235 #line 401 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1236 if (renderAsResponsive || !renderMobile) 1237 { 123812391240 #line default 1241 #line hidden 1242 WriteLiteral(" <header"); 12431244 WriteAttribute("class", Tuple.Create(" class=\"", 19465), Tuple.Create("\"", 19531) 1245 , Tuple.Create(Tuple.Create("", 19473), Tuple.Create("page-header", 19473), true) 12461247 #line 403 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1248 , Tuple.Create(Tuple.Create(" ", 19484), Tuple.Create<System.Object, System.Int32>(headerCssClass 12491250 #line default 1251 #line hidden 1252 , 19485), false) 1253 , Tuple.Create(Tuple.Create(" ", 19500), Tuple.Create("top-0", 19501), true) 12541255 #line 403 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1256 , Tuple.Create(Tuple.Create("", 19506), Tuple.Create<System.Object, System.Int32>(responsiveClassDesktop 12571258 #line default 1259 #line hidden 1260 , 19506), false) 1261 ); 12621263 WriteLiteral(" id=\"page-header-desktop\""); 12641265 WriteLiteral(">\r\n"); 126612671268 #line 404 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 126912701271 #line default 1272 #line hidden 12731274 #line 404 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1275 if (headerDesktopLink != null) 1276 { 127712781279 #line default 1280 #line hidden 12811282 #line 406 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1283 Write(RenderGrid(headerDesktopLink.PageId)); 128412851286 #line default 1287 #line hidden 12881289 #line 406 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 12901291 } 129212931294 #line default 1295 #line hidden 1296 WriteLiteral(" </header>\r\n"); 129712981299 #line 409 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1300 } 130113021303 #line default 1304 #line hidden 1305 WriteLiteral("\r\n"); 130613071308 #line 411 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 130913101311 #line default 1312 #line hidden 13131314 #line 411 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1315 if ((renderAsResponsive || renderMobile)) 1316 { 131713181319 #line default 1320 #line hidden 1321 WriteLiteral(" <header"); 13221323 WriteAttribute("class", Tuple.Create(" class=\"", 19824), Tuple.Create("\"", 19889) 1324 , Tuple.Create(Tuple.Create("", 19832), Tuple.Create("page-header", 19832), true) 13251326 #line 413 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1327 , Tuple.Create(Tuple.Create(" ", 19843), Tuple.Create<System.Object, System.Int32>(headerCssClass 13281329 #line default 1330 #line hidden 1331 , 19844), false) 1332 , Tuple.Create(Tuple.Create(" ", 19859), Tuple.Create("top-0", 19860), true) 13331334 #line 413 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1335 , Tuple.Create(Tuple.Create("", 19865), Tuple.Create<System.Object, System.Int32>(responsiveClassMobile 13361337 #line default 1338 #line hidden 1339 , 19865), false) 1340 ); 13411342 WriteLiteral(" id=\"page-header-mobile\""); 13431344 WriteLiteral(">\r\n"); 134513461347 #line 414 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 134813491350 #line default 1351 #line hidden 13521353 #line 414 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1354 if (headerMobileLink != null) 1355 { 135613571358 #line default 1359 #line hidden 13601361 #line 416 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1362 Write(RenderGrid(headerMobileLink.PageId)); 136313641365 #line default 1366 #line hidden 13671368 #line 416 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 13691370 } 137113721373 #line default 1374 #line hidden 1375 WriteLiteral(" </header>\r\n"); 137613771378 #line 419 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1379 } 138013811382 #line default 1383 #line hidden 1384 WriteLiteral("\r\n <div data-intersect></div>\r\n\r\n <main"); 13851386 WriteLiteral(" id=\"content\""); 13871388 WriteLiteral(" "); 138913901391 #line 423 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1392 Write(schemaOrgType); 139313941395 #line default 1396 #line hidden 1397 WriteLiteral(">\r\n"); 139813991400 #line 424 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 140114021403 #line default 1404 #line hidden 1405 WriteLiteral("\r\n\r\n"); 140614071408 #line 429 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 14091410 string productIdFromUrl = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("ProductID")) ? Dynamicweb.Context.Current.Request.QueryString.Get("ProductID") : string.Empty; 1411 bool isProductDetail = !string.IsNullOrEmpty(productIdFromUrl) && Pageview.Page.NavigationTag.ToLower() == "shop"; 14121413 bool isArticlePagePage = Model.ItemType == "Swift_Article"; 1414 bool isArticleListPage = Model.ItemType == "Swift_ArticleListPage"; 1415 string schemaOrgProp = string.Empty; 1416 if (isArticlePagePage) 1417 { 1418 schemaOrgProp = "itemprop=\"articleBody\""; 1419 } 14201421 string theme = ""; 1422 string gridContent = ""; 14231424 if (Model.PropertyItem != null) 1425 { 1426 theme = !string.IsNullOrWhiteSpace(Model.PropertyItem.GetRawValueString("Theme")) ? "theme " + Model.PropertyItem.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 1427 } 14281429 if (Model.Item != null || Pageview.IsVisualEditorMode) 1430 { 1431 if (!isProductDetail) 1432 { 1433 gridContent = Model.Grid("Grid", "Grid", "default:true;sort:1", "Page"); 1434 } 1435 else 1436 { 1437 var productObject = Dynamicweb.Ecommerce.Services.Products.GetProductById(productIdFromUrl, "", Pageview.Area.EcomLanguageId); 1438 if (productObject != null) 1439 { 1440 var detailPage = Dynamicweb.Ecommerce.Services.ProductGroups.GetGroup(productObject?.PrimaryGroupId)?.Meta.PrimaryPage ?? string.Empty; 1441 var detailPageId = detailPage != string.Empty ? Convert.ToInt16(detailPage.Substring(detailPage.LastIndexOf('=') + 1)) : GetPageIdByNavigationTag("ProductDetailPage"); 1442144314441445 #line default 1446 #line hidden 14471448 #line 463 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1449 Write(RenderGrid(detailPageId)); 145014511452 #line default 1453 #line hidden 14541455 #line 463 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 14561457 } 1458 } 1459 } 14601461 bool doNotRenderPage = false; 14621463 //Check if we are on the poduct detail page, and if there is data to render 1464 ProductViewModel product = new ProductViewModel(); 1465 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 1466 { 1467 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 1468 if (string.IsNullOrEmpty(product.Id)) 1469 { 1470 doNotRenderPage = true; 1471 } 1472 } 14731474 //Render the page 1475 if (!doNotRenderPage) 1476 { 1477 string itemIdentifier = Model?.Item?.SystemName != null ? "item_" + Model.Item.SystemName.ToLower() : "item_Swift_Page"; 14781479 if (Pageview.IsVisualEditorMode) 1480 { 148114821483 #line default 1484 #line hidden 14851486 #line 488 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1487 Write(Model.Placeholder("dwcontent", "content", "default:true;sort:1")); 148814891490 #line default 1491 #line hidden 14921493 #line 488 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 14941495 } 1496149714981499 #line default 1500 #line hidden 1501 WriteLiteral("\t\t<div"); 15021503 WriteAttribute("class", Tuple.Create(" class=\"", 22612), Tuple.Create("\"", 22642) 15041505 #line 491 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1506 , Tuple.Create(Tuple.Create("", 22620), Tuple.Create<System.Object, System.Int32>(theme 15071508 #line default 1509 #line hidden 1510 , 22620), false) 15111512 #line 491 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1513 , Tuple.Create(Tuple.Create(" ", 22626), Tuple.Create<System.Object, System.Int32>(itemIdentifier 15141515 #line default 1516 #line hidden 1517 , 22627), false) 1518 ); 15191520 WriteLiteral(" "); 152115221523 #line 491 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1524 Write(schemaOrgProp); 152515261527 #line default 1528 #line hidden 1529 WriteLiteral(">\r\n"); 153015311532 #line 492 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 153315341535 #line default 1536 #line hidden 15371538 #line 492 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1539 if (isArticleListPage) 1540 { 1541 var hx = $"hx-get=\"{Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(Model.ID)}\" hx-select=\"#content\" hx-target=\"#content\" hx-swap=\"outerHTML\" hx-trigger=\"change\" hx-headers='{{\"feed\": \"true\"}}' hx-push-url=\"true\" hx-indicator=\"#ArticleFacetForm\""; 1542154315441545 #line default 1546 #line hidden 1547 WriteLiteral("\t\t\t\t<form "); 154815491550 #line 496 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1551 Write(hx); 155215531554 #line default 1555 #line hidden 1556 WriteLiteral(" id=\"ArticleFacetForm\">\r\n"); 15571558 WriteLiteral("\t\t\t\t\t"); 155915601561 #line 497 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1562 Write(gridContent); 156315641565 #line default 1566 #line hidden 1567 WriteLiteral("\r\n\t\t\t\t</form>\r\n"); 15681569 WriteLiteral("\t\t\t\t<script"); 15701571 WriteLiteral(" type=\"module\""); 15721573 WriteLiteral(" src=\"/Files/Templates/Designs/Swift/Assets/js/htmx.js\""); 15741575 WriteLiteral("></script>\r\n"); 15761577 WriteLiteral("\t\t\t\t<script"); 15781579 WriteLiteral(" type=\"module\""); 15801581 WriteLiteral(@"> 1582 document.addEventListener('htmx:confirm', (event) => { 1583 let filters = event.detail.elt.querySelectorAll('select'); 1584 for (var i = 0; i < filters.length; i++) { 1585 let input = filters[i]; 1586 if (input.name && !input.value) { 1587 input.name = ''; 1588 } 1589 } 1590 }); 15911592 document.addEventListener('htmx:beforeOnLoad', (event) => { 1593 swift.Scroll.stopIntersectionObserver(); 1594 }); 15951596 document.addEventListener('htmx:afterOnLoad', () => { 1597 swift.Scroll.hideHeadersOnScroll(); 1598 swift.Scroll.handleAlternativeTheme(); 1599 }); 1600 </script> 1601 "); 160216031604 #line 520 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1605 } 1606 else 1607 { 160816091610 #line default 1611 #line hidden 16121613 #line 523 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1614 Write(gridContent); 161516161617 #line default 1618 #line hidden 16191620 #line 523 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 16211622 } 162316241625 #line default 1626 #line hidden 1627 WriteLiteral("\t\t</div>\r\n"); 162816291630 #line 526 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 16311632 } 1633 else 1634 { 163516361637 #line default 1638 #line hidden 1639 WriteLiteral("\t\t<div"); 16401641 WriteLiteral(" class=\"container\""); 16421643 WriteLiteral(">\r\n\t\t\t<div"); 16441645 WriteLiteral(" class=\"alert alert-info\""); 16461647 WriteLiteral(" role=\"alert\""); 16481649 WriteLiteral(">"); 165016511652 #line 531 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1653 Write(Translate("Sorry. There is nothing to view here")); 165416551656 #line default 1657 #line hidden 1658 WriteLiteral("</div>\r\n\t\t</div>\r\n"); 165916601661 #line 533 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1662 } 16631664 if (!Model.IsCurrentUserAllowed) 1665 { 1666 int signInPage = GetPageIdByNavigationTag("SignInPage"); 1667 int dashboardPage = GetPageIdByNavigationTag("MyAccountDashboardPage"); 16681669 if (!Pageview.IsVisualEditorMode) 1670 { 1671 if (signInPage != 0) 1672 { 1673 if (signInPage != Model.ID) 1674 { 1675 Dynamicweb.Context.Current.Response.Redirect("/Default.aspx?ID=" + signInPage); 1676 } 1677 else 1678 { 1679 if (dashboardPage != 0) 1680 { 1681 Dynamicweb.Context.Current.Response.Redirect("/Default.aspx?ID=" + dashboardPage); 1682 } 1683 else 1684 { 1685 Dynamicweb.Context.Current.Response.Redirect("/"); 1686 } 1687 } 1688 } 1689 else 1690 { 169116921693 #line default 1694 #line hidden 1695 WriteLiteral("\t\t\t\t<div"); 16961697 WriteLiteral(" class=\"alert alert-dark m-0\""); 16981699 WriteLiteral(" role=\"alert\""); 17001701 WriteLiteral(">\r\n\t\t\t\t\t<span>"); 170217031704 #line 563 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1705 Write(Translate("You do not have access to this page")); 170617071708 #line default 1709 #line hidden 1710 WriteLiteral("</span>\r\n\t\t\t\t</div>\r\n"); 171117121713 #line 565 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1714 } 1715 } 1716 else 1717 { 171817191720 #line default 1721 #line hidden 1722 WriteLiteral("\t\t\t<div"); 17231724 WriteLiteral(" class=\"alert alert-dark m-0\""); 17251726 WriteLiteral(" role=\"alert\""); 17271728 WriteLiteral(">\r\n\t\t\t\t<span>"); 172917301731 #line 570 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1732 Write(Translate("To work on this page, you must be signed in, in the frontend")); 173317341735 #line default 1736 #line hidden 1737 WriteLiteral("</span>\r\n\t\t\t</div>\r\n"); 173817391740 #line 572 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1741 } 1742 } 174317441745 #line default 1746 #line hidden 1747 WriteLiteral("\r\n\r\n </main>\r\n\r\n"); 174817491750 #line 578 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 175117521753 #line default 1754 #line hidden 17551756 #line 578 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1757 if (renderAsResponsive || !renderMobile) 1758 { 175917601761 #line default 1762 #line hidden 1763 WriteLiteral(" <footer"); 17641765 WriteAttribute("class", Tuple.Create(" class=\"", 25073), Tuple.Create("\"", 25117) 1766 , Tuple.Create(Tuple.Create("", 25081), Tuple.Create("page-footer", 25081), true) 17671768 #line 580 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1769 , Tuple.Create(Tuple.Create("", 25092), Tuple.Create<System.Object, System.Int32>(responsiveClassDesktop 17701771 #line default 1772 #line hidden 1773 , 25092), false) 1774 ); 17751776 WriteLiteral(" id=\"page-footer-desktop\""); 17771778 WriteLiteral(">\r\n"); 177917801781 #line 581 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 178217831784 #line default 1785 #line hidden 17861787 #line 581 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1788 if (footerDesktopLink != null) 1789 { 179017911792 #line default 1793 #line hidden 17941795 #line 583 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1796 Write(RenderGrid(footerDesktopLink.PageId)); 179717981799 #line default 1800 #line hidden 18011802 #line 583 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 18031804 } 180518061807 #line default 1808 #line hidden 1809 WriteLiteral("\r\n"); 181018111812 #line 586 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 181318141815 #line default 1816 #line hidden 18171818 #line 586 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1819 if (allowTracking && !string.IsNullOrWhiteSpace(customFooterScripts)){ 182018211822 #line default 1823 #line hidden 18241825 #line 587 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1826 Write(customFooterScripts); 182718281829 #line default 1830 #line hidden 18311832 #line 587 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 18331834 } 183518361837 #line default 1838 #line hidden 1839 WriteLiteral(" </footer>\r\n"); 184018411842 #line 590 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1843 } 184418451846 #line default 1847 #line hidden 1848 WriteLiteral("\r\n"); 184918501851 #line 592 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 185218531854 #line default 1855 #line hidden 18561857 #line 592 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1858 if (renderAsResponsive || renderMobile) 1859 { 186018611862 #line default 1863 #line hidden 1864 WriteLiteral(" <footer"); 18651866 WriteAttribute("class", Tuple.Create(" class=\"", 25533), Tuple.Create("\"", 25576) 1867 , Tuple.Create(Tuple.Create("", 25541), Tuple.Create("page-footer", 25541), true) 18681869 #line 594 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1870 , Tuple.Create(Tuple.Create("", 25552), Tuple.Create<System.Object, System.Int32>(responsiveClassMobile 18711872 #line default 1873 #line hidden 1874 , 25552), false) 1875 ); 18761877 WriteLiteral(" id=\"page-footer-mobile\""); 18781879 WriteLiteral(">\r\n"); 188018811882 #line 595 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 188318841885 #line default 1886 #line hidden 18871888 #line 595 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1889 if (footerMobileLink != null) 1890 { 189118921893 #line default 1894 #line hidden 18951896 #line 597 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1897 Write(RenderGrid(footerMobileLink.PageId)); 189818991900 #line default 1901 #line hidden 19021903 #line 597 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 19041905 } 190619071908 #line default 1909 #line hidden 1910 WriteLiteral(" </footer>\r\n"); 191119121913 #line 600 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1914 } 1915191619171918 #line default 1919 #line hidden 19201921 #line 602 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1922192319241925 #line default 1926 #line hidden 1927 WriteLiteral(" "); 192819291930 #line 603 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 1931 Write(RenderSnippet("offcanvas")); 193219331934 #line default 1935 #line hidden 1936 WriteLiteral("\r\n\r\n"); 193719381939 #line 605 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 194019411942 #line default 1943 #line hidden 19441945 #line 605 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 19461947 bool isErpConnectionDown = !Dynamicweb.Core.Converter.ToBoolean(Context.Current.Items["IsWebServiceConnectionAvailable"]); 194819491950 #line default 1951 #line hidden 1952 WriteLiteral("\r\n\r\n "); 19531954 WriteLiteral("\r\n <div"); 19551956 WriteLiteral(" class=\"modal fade\""); 19571958 WriteLiteral(" id=\"PreferencesModal\""); 19591960 WriteLiteral(" tabindex=\"-1\""); 19611962 WriteLiteral(" aria-hidden=\"true\""); 19631964 WriteLiteral(">\r\n <div"); 19651966 WriteLiteral(" class=\"modal-dialog modal-dialog-centered modal-sm\""); 19671968 WriteLiteral(" id=\"PreferencesModalContent\""); 19691970 WriteLiteral(">\r\n "); 19711972 WriteLiteral("\r\n </div>\r\n </div>\r\n\r\n "); 19731974 WriteLiteral("\r\n <div"); 19751976 WriteLiteral(" aria-live=\"polite\""); 19771978 WriteLiteral(" aria-atomic=\"true\""); 19791980 WriteLiteral(">\r\n <div"); 19811982 WriteLiteral(" class=\"position-fixed bottom-0 end-0 p-3\""); 19831984 WriteLiteral(" style=\"z-index: 11\""); 19851986 WriteLiteral(">\r\n <div"); 19871988 WriteLiteral(" id=\"favoriteNotificationToast\""); 19891990 WriteLiteral(" class=\"toast\""); 19911992 WriteLiteral(" role=\"alert\""); 19931994 WriteLiteral(" aria-live=\"assertive\""); 19951996 WriteLiteral(" aria-atomic=\"true\""); 19971998 WriteLiteral(">\r\n <div"); 19992000 WriteLiteral(" class=\"toast-header\""); 20012002 WriteLiteral(">\r\n <strong"); 20032004 WriteLiteral(" class=\"me-auto\""); 20052006 WriteLiteral(">"); 200720082009 #line 621 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2010 Write(Translate("Favorite list updated")); 201120122013 #line default 2014 #line hidden 2015 WriteLiteral("</strong>\r\n <button"); 20162017 WriteLiteral(" type=\"button\""); 20182019 WriteLiteral(" class=\"btn-close\""); 20202021 WriteLiteral(" data-bs-dismiss=\"toast\""); 20222023 WriteLiteral(" aria-label=\"Close\""); 20242025 WriteLiteral("></button>\r\n </div>\r\n <div"); 20262027 WriteLiteral(" class=\"toast-body d-flex gap-3\""); 20282029 WriteLiteral(">\r\n <div"); 20302031 WriteLiteral(" id=\"favoriteNotificationToast_Image\""); 20322033 WriteLiteral("></div>\r\n <div"); 20342035 WriteLiteral(" id=\"favoriteNotificationToast_Text\""); 20362037 WriteLiteral("></div>\r\n </div>\r\n </div>\r\n </div>\r\n" + 2038 " </div>\r\n\r\n "); 20392040 WriteLiteral("\r\n <div"); 20412042 WriteLiteral(" class=\"modal fade js-product\""); 20432044 WriteLiteral(" id=\"DynamicModal\""); 20452046 WriteLiteral(" tabindex=\"-1\""); 20472048 WriteLiteral(" aria-hidden=\"true\""); 20492050 WriteLiteral(">\r\n <div"); 20512052 WriteLiteral(" class=\"modal-dialog modal-dialog-centered modal-md\""); 20532054 WriteLiteral(">\r\n <div"); 20552056 WriteLiteral(" class=\"modal-content theme light\""); 20572058 WriteLiteral(" id=\"DynamicModalContent\""); 20592060 WriteLiteral(">\r\n "); 20612062 WriteLiteral("\r\n </div>\r\n </div>\r\n </div>\r\n\r\n "); 20632064 WriteLiteral("\r\n\t\t<div"); 20652066 WriteLiteral(" class=\"offcanvas offcanvas-end theme light\""); 20672068 WriteLiteral(" tabindex=\"-1\""); 20692070 WriteLiteral(" id=\"DynamicOffcanvas\""); 20712072 WriteLiteral(">\r\n "); 20732074 WriteLiteral("\r\n </div>\r\n\r\n"); 207520762077 #line 646 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 207820792080 #line default 2081 #line hidden 20822083 #line 646 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2084 if (Model.Area.Item.GetBoolean("ShowErpDownMessage") && !Dynamicweb.Core.Converter.ToBoolean(Context.Current.Items["IsWebServiceConnectionAvailable"])) 2085 { 2086 string erpDownMessageTheme = !string.IsNullOrWhiteSpace(Model.Area.Item.GetRawValueString("ErpDownMessageTheme")) ? " theme " + Model.Area.Item.GetRawValueString("ErpDownMessageTheme").Replace(" ", "").Trim().ToLower() : "theme light"; 2087208820892090 #line default 2091 #line hidden 2092 WriteLiteral(" <div"); 20932094 WriteLiteral(" class=\"position-fixed bottom-0 end-0 p-3\""); 20952096 WriteLiteral(" style=\"z-index: 1040\""); 20972098 WriteLiteral(">\r\n <div"); 20992100 WriteAttribute("class", Tuple.Create(" class=\"", 28410), Tuple.Create("\"", 28463) 2101 , Tuple.Create(Tuple.Create("", 28418), Tuple.Create("toast", 28418), true) 2102 , Tuple.Create(Tuple.Create(" ", 28423), Tuple.Create("fade", 28424), true) 2103 , Tuple.Create(Tuple.Create(" ", 28428), Tuple.Create("show", 28429), true) 2104 , Tuple.Create(Tuple.Create(" ", 28433), Tuple.Create("border-0", 28434), true) 21052106 #line 651 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2107 , Tuple.Create(Tuple.Create(" ", 28442), Tuple.Create<System.Object, System.Int32>(erpDownMessageTheme 21082109 #line default 2110 #line hidden 2111 , 28443), false) 2112 ); 21132114 WriteLiteral(" role=\"alert\""); 21152116 WriteLiteral(" aria-live=\"assertive\""); 21172118 WriteLiteral(" aria-atomic=\"true\""); 21192120 WriteLiteral(">\r\n <div"); 21212122 WriteLiteral(" class=\"toast-header\""); 21232124 WriteLiteral(">\r\n <strong"); 21252126 WriteLiteral(" class=\"me-auto\""); 21272128 WriteLiteral(">"); 212921302131 #line 653 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2132 Write(Translate("Connection down")); 213321342135 #line default 2136 #line hidden 2137 WriteLiteral("</strong>\r\n <button"); 21382139 WriteLiteral(" type=\"button\""); 21402141 WriteLiteral(" class=\"btn-close\""); 21422143 WriteLiteral(" data-bs-dismiss=\"toast\""); 21442145 WriteLiteral(" aria-label=\"Close\""); 21462147 WriteLiteral("></button>\r\n </div>\r\n <div"); 21482149 WriteLiteral(" class=\"toast-body\""); 21502151 WriteLiteral(">\r\n"); 21522153 WriteLiteral(" "); 215421552156 #line 657 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2157 Write(Translate("We are experiencing some connectivity issues. Not all features may be available to you.")); 215821592160 #line default 2161 #line hidden 2162 WriteLiteral("\r\n </div>\r\n </div>\r\n </div>\r\n"); 216321642165 #line 661 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2166 } 216721682169 #line default 2170 #line hidden 2171 WriteLiteral("\r\n"); 217221732174 #line 663 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 217521762177 #line default 2178 #line hidden 21792180 #line 663 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2181 if (miniCartEnabled) 2182 { 218321842185 #line default 2186 #line hidden 21872188 #line 665 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2189219021912192 #line default 2193 #line hidden 2194 WriteLiteral("\t\t\t<script"); 21952196 WriteLiteral(" type=\"module\""); 21972198 WriteLiteral(">\r\n\t\t\t\tdocument.addEventListener(\'updated.swift.cart\', (event) => {\r\n\t\t\t\t\tlet ord" + 2199 "erContext = event?.detail?.formData?.get(\"OrderContext\");\r\n\t\t\t\t\tupdateCartSummar" + 2200 "y(orderContext);\r\n\r\n"); 220122022203 #line 671 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 220422052206 #line default 2207 #line hidden 22082209 #line 671 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2210 if (offcanvasMiniCartBehaviour == "2" || offcanvasMiniCartBehaviour == "3") { 221122122213 #line default 2214 #line hidden 2215 WriteLiteral("\t\t\t\t\t\t"); 22162217 WriteLiteral("openMiniCartOffcanvas();"); 22182219 WriteLiteral("\r\n"); 222022212222 #line 673 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2223 } 222422252226 #line default 2227 #line hidden 2228 WriteLiteral("\t\t\t\t});\r\n\t\t\t</script>\r\n"); 222922302231 #line 676 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 22322233 if (offcanvasMiniCartBehaviour == "1" || offcanvasMiniCartBehaviour == "3") 2234 { 223522362237 #line default 2238 #line hidden 22392240 #line 679 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2241224222432244 #line default 2245 #line hidden 2246 WriteLiteral("\t\t\t\t<script"); 22472248 WriteLiteral(" type=\"module\""); 22492250 WriteLiteral(@"> 2251 let miniCartToggles = document.querySelectorAll('.mini-cart-quantity'); 2252 miniCartToggles?.forEach((toggle) => { 2253 toggle.parentElement.addEventListener('click', (event) => { 2254 event.preventDefault(); 2255 let orderContext = toggle.dataset?.orderContext; 2256 updateCartSummary(orderContext); 22572258 openMiniCartOffcanvas(); 2259 }); 2260 }); 2261 </script> 2262 "); 226322642265 #line 692 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2266 } 2267226822692270 #line default 2271 #line hidden 2272 WriteLiteral("\t\t\t<script>\r\n\r\n\t\t\t\tconst updateCartSummary = (orderContext) => {\r\n\t\t\t\t\tconst dyna" + 2273 "micOffcanvas = document.getElementById(\'DynamicOffcanvas\');\r\n\t\t\t\t\tswift.PageUpda" + 2274 "ter.UpdateFromUrlInline(event, \'/Default.aspx?ID="); 227522762277 #line 698 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2278 Write(cartSummaryPageId); 227922802281 #line default 2282 #line hidden 2283 WriteLiteral("&CartType=minicart&RequestPageID="); 228422852286 #line 698 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2287 Write(Pageview.Page.ID); 228822892290 #line default 2291 #line hidden 2292 WriteLiteral(@"&OrderContext=' + orderContext +'', 'Swift_CartSummary.cshtml', dynamicOffcanvas); 2293 }; 22942295 const openMiniCartOffcanvas = () => { 2296 const dynamicOffcanvas = document.getElementById('DynamicOffcanvas'); 2297 const miniCartOffcanvas = bootstrap.Offcanvas.getOrCreateInstance(dynamicOffcanvas); 2298 dynamicOffcanvas.classList.add('overflow-y-auto'); 22992300 if (!miniCartOffcanvas._isShown) { 2301 miniCartOffcanvas.show(); 2302 hideActiveOffcanvases(miniCartOffcanvas); 2303 } 2304 }; 23052306 const hideActiveOffcanvases = (miniCartOffcanvas) => { 2307 let activeOffcanvases = document.querySelectorAll('.offcanvas.show'); 2308 activeOffcanvases?.forEach((offCanvas) => { 2309 offCanvas = bootstrap.Offcanvas.getInstance(offCanvas); 2310 if (offCanvas !== miniCartOffcanvas) { 2311 offCanvas.hide(); 2312 } 2313 }); 2314 }; 23152316 </script> 2317 "); 231823192320 #line 723 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2321 } 232223232324 #line default 2325 #line hidden 2326 WriteLiteral("\r\n\t</body>\r\n\r\n</html>\r\n"); 232723282329 #line 728 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 23302331 } 2332 else if (Pageview.IsVisualEditorMode) 2333 { 233423352336 #line default 2337 #line hidden 2338 WriteLiteral(" <head>\r\n <title>"); 233923402341 #line 733 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2342 Write(Model.Title); 234323442345 #line default 2346 #line hidden 2347 WriteLiteral("</title>\r\n "); 23482349 WriteLiteral("\r\n <link"); 23502351 WriteLiteral(" href=\"/Files/Templates/Designs/Swift/Assets/css/styles.css\""); 23522353 WriteLiteral(" rel=\"stylesheet\""); 23542355 WriteLiteral(" media=\"all\""); 23562357 WriteLiteral(" type=\"text/css\""); 23582359 WriteLiteral(">\r\n </head>\r\n"); 23602361 WriteLiteral(" <body"); 23622363 WriteLiteral(" class=\"p-3\""); 23642365 WriteLiteral(">\r\n <div"); 23662367 WriteLiteral(" class=\"alert alert-danger\""); 23682369 WriteLiteral(" role=\"alert\""); 23702371 WriteLiteral(">\r\n"); 23722373 WriteLiteral(" "); 237423752376 #line 739 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2377 Write(Translate("Basic Swift setup is needed!")); 237823792380 #line default 2381 #line hidden 2382 WriteLiteral("\r\n </div>\r\n\r\n"); 238323842385 #line 742 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 238623872388 #line default 2389 #line hidden 23902391 #line 742 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2392 if (brandingPage == null) 2393 { 239423952396 #line default 2397 #line hidden 2398 WriteLiteral(" <div"); 23992400 WriteLiteral(" class=\"alert alert-warning\""); 24012402 WriteLiteral(" role=\"alert\""); 24032404 WriteLiteral(">\r\n"); 24052406 WriteLiteral(" "); 240724082409 #line 745 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2410 Write(Translate("Please add a Branding page and reference it in website settings")); 241124122413 #line default 2414 #line hidden 2415 WriteLiteral("\r\n </div>\r\n"); 241624172418 #line 747 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2419 } 242024212422 #line default 2423 #line hidden 2424 WriteLiteral("\r\n"); 242524262427 #line 749 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 242824292430 #line default 2431 #line hidden 24322433 #line 749 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2434 if (themesParagraphs == null) 2435 { 243624372438 #line default 2439 #line hidden 2440 WriteLiteral(" <div"); 24412442 WriteLiteral(" class=\"alert alert-warning\""); 24432444 WriteLiteral(" role=\"alert\""); 24452446 WriteLiteral(">\r\n"); 24472448 WriteLiteral(" "); 244924502451 #line 752 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2452 Write(Translate("Please add a Themes collection page and reference it in website settings")); 245324542455 #line default 2456 #line hidden 2457 WriteLiteral("\r\n </div>\r\n"); 245824592460 #line 754 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2461 } 246224632464 #line default 2465 #line hidden 2466 WriteLiteral(" </body>\r\n"); 246724682469 #line 756 "D:\dynamicweb.net\Solutions\Dynamicweb\hctswift.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Page.parsed.cshtml" 2470 } 247124722473 #line default 2474 #line hidden 2475 WriteLiteral("\r\n\r\n"); 24762477 } 2478 } 2479 } 2480

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 2 @using System 3 @using Dynamicweb 4 @using Dynamicweb.Environment 5 @using Dynamicweb.Frontend 6 7 @{ 8 <!-- @Services.Currencies.GetDefaultCurrency()?.Code --> 9 } 10 11 @functions { 12 string GetCookieOptInPermission(string category) 13 { 14 bool categoryOrAllGranted = false; 15 16 if (CookieManager.IsCookieManagementActive) 17 { 18 var cookieOptInLevel = CookieManager.GetCookieOptInLevel(); 19 var cookieOptInCategories = CookieManager.GetCookieOptInCategories(); 20 categoryOrAllGranted = cookieOptInCategories.Contains(category) || cookieOptInLevel == CookieOptInLevel.All; 21 } 22 23 return categoryOrAllGranted ? "granted" : "denied"; 24 } 25 26 bool AllowTracking() 27 { 28 bool allowTracking = true; 29 if (CookieManager.IsCookieManagementActive) 30 { 31 var cookieOptInLevel = CookieManager.GetCookieOptInLevel(); 32 var cookieOptInCategories = CookieManager.GetCookieOptInCategories(); 33 34 bool consentEither = (cookieOptInCategories.Contains("Statistical") || cookieOptInCategories.Contains("Marketing")); 35 bool consentFunctional = cookieOptInLevel == CookieOptInLevel.Functional; 36 bool consentAtLeastOne = cookieOptInLevel == CookieOptInLevel.All || (consentFunctional && consentEither); 37 38 allowTracking = consentAtLeastOne; 39 } 40 return allowTracking; 41 } 42 } 43 44 @{ 45 var cartSummaryPageId = Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(Model.Area.ID, "CartSummary")?.ID; 46 bool enableMiniCart = Model.Area.Item?.GetBoolean("EnableOffcanvasMiniCart") ?? false; 47 var offcanvasMiniCartBehaviour = Model.Area.Item?.GetRawValueString("OffcanvasMinicartBehaviour", "3") ?? "3"; 48 bool miniCartEnabled = cartSummaryPageId != null && enableMiniCart; 49 var brandingPageId = Model.Area.Item?.GetInt32("BrandingPage") ?? 0; 50 var themePageId = Model.Area.Item?.GetInt32("ThemesPage") ?? 0; 51 var cssPageId = Model.Area.Item?.GetInt32("CssPage") ?? 0; 52 var brandingPage = brandingPageId != 0 ? Dynamicweb.Content.Services.Pages?.GetPage(brandingPageId) ?? null : null; 53 var themesParagraphs = themePageId != 0 ? Dynamicweb.Content.Services.Paragraphs?.GetParagraphsByPageId(themePageId) ?? null : null; 54 var cssParagraphs = cssPageId != 0 ? Dynamicweb.Content.Services.Paragraphs?.GetParagraphsByPageId(cssPageId) ?? null : null; 55 var customFooterScripts = Model.Area.Item?.GetRawValueString("FooterScripts", "") ?? ""; 56 var scriptsHeader = Model.Area.Item?.GetRawValueString("ScriptsHeader", "") ?? ""; 57 58 } 59 60 @if (themesParagraphs != null || brandingPage != null) 61 { 62 string swiftVersion = ReadFile("/Files/Templates/Designs/Swift/swift_version.txt"); 63 bool renderAsResponsive = Model.Area.Item.GetString("DeviceRendering", "responsive").Equals("responsive", StringComparison.OrdinalIgnoreCase); 64 bool renderMobile = Pageview.Device == Dynamicweb.Frontend.Devices.DeviceType.Mobile || Pageview.Device == Dynamicweb.Frontend.Devices.DeviceType.Tablet; 65 string responsiveClassDesktop = string.Empty; 66 string responsiveClassMobile = string.Empty; 67 if (renderAsResponsive) 68 { 69 responsiveClassDesktop = " d-none d-xl-block"; 70 responsiveClassMobile = " d-block d-xl-none"; 71 } 72 73 var headerDesktopLink = Model.Area.Item?.GetLink("HeaderDesktop") ?? null; 74 var headerMobileLink = Model.Area.Item?.GetLink("HeaderMobile") ?? null; 75 76 var footerDesktopLink = Model.Area.Item?.GetLink("FooterDesktop") ?? null; 77 var footerMobileLink = Model.Area.Item?.GetLink("FooterMobile") ?? null; 78 79 var disableWideBreakpoints = Model.Area?.Item?.GetRawValueString("DisableWideBreakpoints", "default"); 80 81 string customHeaderInclude = !string.IsNullOrEmpty(Model.Area.Item.GetRawValueString("CustomHeaderInclude")) ? Model.Area.Item.GetFile("CustomHeaderInclude").Name : string.Empty; 82 83 var themesParagraphLastChanged = Dynamicweb.Content.Services.Paragraphs.GetParagraphsByPageId(themePageId).OrderByDescending(p => p.Audit.LastModifiedAt).FirstOrDefault(); 84 var cssLastModified = brandingPage.Audit.LastModifiedAt > themesParagraphLastChanged.Audit.LastModifiedAt ? brandingPage.Audit.LastModifiedAt : themesParagraphLastChanged.Audit.LastModifiedAt; 85 86 var cssThemeAndBrandingStyleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath($"/Files/Templates/Designs/Swift/_parsed/Swift_css/Swift_styles_{Model.Area.ID}.min.css")); 87 88 89 if (cssPageId != 0) 90 { 91 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath($"/Files/Templates/Designs/Swift/_parsed/Swift_css/Swift_css_styles_{Model.Area.ID}.css")); 92 var cssParagraphLastChanged = Dynamicweb.Content.Services.Paragraphs.GetParagraphsByPageId(cssPageId).OrderByDescending(p => p.Audit.LastModifiedAt).FirstOrDefault(); 93 if (!cssThemeAndBrandingStyleFileInfo.Exists || cssThemeAndBrandingStyleFileInfo.LastWriteTime < cssParagraphLastChanged.Audit.LastModifiedAt) 94 { 95 var cssPageview = Dynamicweb.Frontend.PageView.GetPageviewByPageID(cssPageId); 96 cssPageview.Redirect = false; 97 cssPageview.Output(); 98 } 99 } 100101 if (!cssThemeAndBrandingStyleFileInfo.Exists || cssThemeAndBrandingStyleFileInfo.LastWriteTime < brandingPage.Audit.LastModifiedAt) 102 { 103 //Branding page has been saved or the file is missing. Rewrite the file to disc. 104 if (brandingPageId > 0) 105 { 106 var brandingPageview = Dynamicweb.Frontend.PageView.GetPageviewByPageID(brandingPageId); 107 brandingPageview.Redirect = false; 108 brandingPageview.Output(); 109 } 110 } 111112 if (!cssThemeAndBrandingStyleFileInfo.Exists || cssThemeAndBrandingStyleFileInfo.LastWriteTime < themesParagraphLastChanged.Audit.LastModifiedAt) 113 { 114 //Branding page has been saved or the file is missing. Rewrite the file to disc. 115 if (themePageId > 0) 116 { 117 var themePageview = Dynamicweb.Frontend.PageView.GetPageviewByPageID(themePageId); 118 themePageview.Redirect = false; 119 themePageview.Output(); 120 } 121 } 122123 // Schema.org details for PDP 124 bool isProductDetailsPage = Dynamicweb.Context.Current.Request.QueryString.AllKeys.Contains("ProductID"); 125 bool isArticlePage = Model.ItemType == "Swift_Article"; 126 string schemaOrgType = string.Empty; 127128 if (isProductDetailsPage) 129 { 130 schemaOrgType = "itemscope=\"\" itemtype=\"https://schema.org/Product\""; 131 } 132133 if (isArticlePage) 134 { 135 schemaOrgType = "itemscope=\"\" itemtype=\"https://schema.org/Article\""; 136 } 137138139 var cssStyleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath("/Files/Templates/Designs/Swift/Assets/css/styles.css")); 140 var cssStyleFileInfoCustom = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath("/Files/Templates/Designs/Swift/Assets/css/custom.css")); 141 var jsFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath("/Files/Templates/Designs/Swift/Assets/js/scripts.js")); 142143 string masterTheme = !string.IsNullOrWhiteSpace(Model.Area.Item.GetRawValueString("Theme")) ? " theme " + Model.Area.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 144145 string favicon = Model.Area.Item.GetRawValueString("Favicon", "/Files/Templates/Designs/Swift/Assets/Images/favicon.png"); 146 string appleTouchIcon = Model.Area.Item.GetRawValueString("AppleTouchIcon", "/Files/Templates/Designs/Swift/Assets/Images/apple-touch-icon.png"); 147148 string headerCssClass = "sticky-top"; 149 bool movePageBehind = false; 150151 if (Model.PropertyItem != null) 152 { 153 headerCssClass = Model.PropertyItem.GetRawValueString("MoveThisPageBehindTheHeader", "sticky-top"); 154 movePageBehind = headerCssClass == "fixed-top" && !Pageview.IsVisualEditorMode ? true : false; 155 } 156157 headerCssClass = headerCssClass == "" ? "sticky-top" : headerCssClass; 158 headerCssClass = Pageview.IsVisualEditorMode ? "" : headerCssClass; 159160 string googleTagManagerID = Model.Area.Item.GetString("GoogleTagManagerID").Trim(); 161 string googleAnalyticsMeasurementID = Model.Area.Item.GetString("GoogleAnalyticsMeasurementID").Trim(); 162 string userCentrics = Model.Area.Item.GetString("UsercentricsScript"); 163 bool allowTracking = true; 164165 Dynamicweb.Context.Current.Response.AddHeader("link", $"</Files/Templates/Designs/Swift/Assets/css/styles.css?{cssStyleFileInfo.LastWriteTime.Ticks}>; rel=preload; as=style;"); 166 Dynamicweb.Context.Current.Response.AddHeader("link", $"</Files/Templates/Designs/Swift/Assets/css/custom.css?{cssStyleFileInfoCustom.LastWriteTime.Ticks}>; rel=preload; as=style;"); 167 Dynamicweb.Context.Current.Response.AddHeader("link", $"</Files/Templates/Designs/Swift/_parsed/Swift_css/Swift_styles_{Model.Area.ID}.min.css?{cssLastModified.Ticks}>; rel=preload; as=style;"); 168 Dynamicweb.Context.Current.Response.AddHeader("link", $"</Files/Templates/Designs/Swift/Assets/js/scripts.js?{jsFileInfo.LastWriteTime.Ticks}>; rel=preload; as=script;"); 169170171 SetMetaTags(); 172173 List<Dynamicweb.Content.Page> languages = new List<Dynamicweb.Content.Page>(); 174175 var masterPage = Pageview.Area.IsMaster ? Pageview.Page : Pageview.Page.MasterPage; 176 languages.Add(masterPage); 177 if (masterPage?.Languages != null) 178 { 179 foreach (var language in masterPage.Languages) 180 { 181 languages.Add(language); 182 } 183 } 184185 Uri url = Dynamicweb.Context.Current.Request.Url; 186 string hostName = url.Host; 187188 <!doctype html> 189 <html lang="@Pageview.Area.CultureInfo.TwoLetterISOLanguageName"> 190 <head> 191 <!-- @swiftVersion --> 192 @* Required meta tags *@ 193 <meta charset="utf-8"> 194 <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0"> 195 <link rel="shortcut icon" href="@favicon"> 196 <link rel="apple-touch-icon" href="@appleTouchIcon"> 197198 @Model.MetaTags 199200 @{ 201 var alreadyWrittenTwoletterIsos = new List<string>(); 202 @* Languages meta data *@ 203 foreach (var language in languages) 204 { 205 hostName = url.Host; 206 if (language?.Area != null) 207 { 208 if (language.Area?.MasterArea != null && !string.IsNullOrEmpty(language.Area.MasterArea.DomainLock)) 209 { 210 hostName = language.Area.MasterArea.DomainLock; //dk.domain.com or dk-domain.dk 211 } 212 if (language != null && language.Area != null && language.Published && language.Area.Active && language.Area.Published) 213 { 214 if (!string.IsNullOrEmpty(language.Area.DomainLock)) 215 { 216 hostName = language.Area.DomainLock; //dk.domain.com or dk-domain.dk 217 } 218 string querystring = $"Default.aspx?ID={language.ID}"; 219 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["GroupID"])) 220 { 221 querystring += $"&GroupID={Dynamicweb.Context.Current.Request.QueryString["GroupID"]}"; 222 } 223 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["ProductID"])) 224 { 225 querystring += $"&ProductID={Dynamicweb.Context.Current.Request.QueryString["ProductID"]}"; 226 } 227 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["VariantID"])) 228 { 229 querystring += $"&VariantID={Dynamicweb.Context.Current.Request.QueryString["VariantID"]}"; 230 } 231232 string friendlyUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(querystring); 233 if (language.Area.RedirectFirstPage && language.ParentPageId == 0 && language.Sort == 1) 234 { 235 friendlyUrl = "/"; 236 } 237 string href = $"{url.Scheme}://{hostName}{friendlyUrl}"; 238239240 <link rel="alternate" hreflang="@language.Area.CultureInfo.Name.ToLower()" href="@href"> 241 if (!alreadyWrittenTwoletterIsos.Contains(language.Area.CultureInfo.TwoLetterISOLanguageName)) 242 { 243 alreadyWrittenTwoletterIsos.Add(language.Area.CultureInfo.TwoLetterISOLanguageName); 244 <link rel="alternate" hreflang="@language.Area.CultureInfo.TwoLetterISOLanguageName.ToLower()" href="@href"> 245 } 246 } 247 } 248 } 249 } 250251 <title>@Model.Title</title> 252 @* Bootstrap + Swift stylesheet *@ 253 <link href="/Files/Templates/Designs/Swift/Assets/css/styles.css?@cssStyleFileInfo.LastWriteTime.Ticks" rel="stylesheet" media="all" type="text/css"> 254 <link href="/Files/Templates/Designs/Swift/Assets/css/custom.css?@cssStyleFileInfoCustom.LastWriteTime.Ticks" rel="stylesheet" media="all" type="text/css"> 255256 @if (disableWideBreakpoints != "disableBoth") 257 { 258 <style> 259 @@media ( min-width: 1600px ) { 260 .container-xxl, 261 .container-xl, 262 .container-lg, 263 .container-md, 264 .container-sm, 265 .container { 266 max-width: 1520px; 267 } 268 } 269 </style> 270271272273 if (disableWideBreakpoints != "disableUltraWideOnly") 274 { 275 <style> 276 @@media ( min-width: 1920px ) { 277 .container-xxl, 278 .container-xl, 279 .container-lg, 280 .container-md, 281 .container-sm, 282 .container { 283 max-width: 1820px; 284 } 285 } 286 </style> 287 } 288 } 289290 @* Branding and Themes min stylesheet *@ 291 <link href="/Files/Templates/Designs/Swift/_parsed/Swift_css/Swift_styles_@(Model.Area.ID).min.css?@cssLastModified.Ticks" rel="stylesheet" media="all" type="text/css" data-last-modified-content="@cssLastModified"> 292 <script src="/Files/Templates/Designs/Swift/Assets/js/scripts.js?@jsFileInfo.LastWriteTime.Ticks"></script> 293 <script type="module"> 294 swift.Scroll.hideHeadersOnScroll(); 295 swift.Scroll.handleAlternativeTheme(); 296297 //Only load if AOS 298 const aosColumns = document.querySelectorAll('[data-aos]'); 299 if (aosColumns.length > 0) { 300 swift.AssetLoader.Load('/Files/Templates/Designs/Swift/Assets/js/aos.js?@jsFileInfo.LastWriteTime.Ticks', 'js'); 301 document.addEventListener('load.swift.assetloader', function () { 302 AOS.init({ duration: 400, delay: 100, easing: 'ease-in-out', mirror: false, disable: window.matchMedia('(prefers-reduced-motion: reduce)') }); 303 }); 304 } 305 </script> 306307 @if (!string.IsNullOrWhiteSpace(userCentrics)) 308 { 309310 <link rel="preconnect" href="//app.usercentrics.eu"> 311 <link rel="preconnect" href="//api.usercentrics.eu"> 312 <link rel="preload" href="//app.usercentrics.eu/browser-ui/latest/loader.js" as="script"> 313314 } 315316 @if (!string.IsNullOrWhiteSpace(userCentrics)) 317 { 318 <text>@userCentrics</text> 319 } 320321 @* Google tag manager *@ 322 @if (!string.IsNullOrWhiteSpace(userCentrics) && !string.IsNullOrWhiteSpace(googleTagManagerID)) 323 { 324 <script type="text/plain" data-usercentrics="Google Tag Manager"> 325 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 326 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 327 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 328 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 329 })(window, document, 'script', 'dataLayer', '@(googleTagManagerID)'); 330331 function gtag() { dataLayer.push(arguments); } 332 </script> 333 } else if (!string.IsNullOrWhiteSpace(googleTagManagerID) && allowTracking) 334 { 335 <script> 336 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 337 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 338 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 339 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 340 })(window, document, 'script', 'dataLayer', '@(googleTagManagerID)'); 341342 function gtag() { dataLayer.push(arguments); } 343 </script> 344 } 345346 @if (!string.IsNullOrWhiteSpace(userCentrics) && !string.IsNullOrWhiteSpace(googleAnalyticsMeasurementID)) 347 { 348 var GoogleAnalyticsDebugMode = ""; 349350 if (Model.Area.Item.GetBoolean("EnableGoogleAnalyticsDebugMode")) 351 { 352 GoogleAnalyticsDebugMode = ", {'debug_mode': true}"; 353 } 354355 <script type="text/plain" data-usercentrics="Google Analytics" async src="https://www.googletagmanager.com/gtag/js?id=@googleAnalyticsMeasurementID"></script> 356 <script type="text/plain" data-usercentrics="Google Analytics"> 357 window.dataLayer = window.dataLayer || []; 358 function gtag() { dataLayer.push(arguments); } 359 gtag('js', new Date()); 360 gtag('config', '@googleAnalyticsMeasurementID'@GoogleAnalyticsDebugMode); 361 </script> 362 } else if (!string.IsNullOrWhiteSpace(googleAnalyticsMeasurementID) && allowTracking) 363 { 364 var GoogleAnalyticsDebugMode = ""; 365366 if (Model.Area.Item.GetBoolean("EnableGoogleAnalyticsDebugMode")) 367 { 368 GoogleAnalyticsDebugMode = ", {'debug_mode': true}"; 369 } 370371 <script async src="https://www.googletagmanager.com/gtag/js?id=@googleAnalyticsMeasurementID"></script> 372 <script> 373 window.dataLayer = window.dataLayer || []; 374 function gtag() { dataLayer.push(arguments); } 375 gtag('js', new Date()); 376 gtag('config', '@googleAnalyticsMeasurementID'@GoogleAnalyticsDebugMode); 377 </script> 378 } 379380 @if (!string.IsNullOrWhiteSpace(customHeaderInclude)) 381 { 382 @RenderPartial($"Components/Custom/{customHeaderInclude}") 383 } 384385 @if (allowTracking && !string.IsNullOrWhiteSpace(scriptsHeader)){ 386 @scriptsHeader 387 } 388389 </head> 390 <body class="brand @(masterTheme)" id="page@(Model.ID)"> 391392 @* Google tag manager *@ 393 @if (!string.IsNullOrWhiteSpace(googleTagManagerID) && allowTracking) 394 { 395 <noscript> 396 <iframe src="https://www.googletagmanager.com/ns.html?id=@(googleTagManagerID)" 397 height="0" width="0" style="display:none;visibility:hidden"></iframe> 398 </noscript> 399 } 400401 @if (renderAsResponsive || !renderMobile) 402 { 403 <header class="page-header @headerCssClass top-0@(responsiveClassDesktop)" id="page-header-desktop"> 404 @if (headerDesktopLink != null) 405 { 406 @RenderGrid(headerDesktopLink.PageId) 407 } 408 </header> 409 } 410411 @if ((renderAsResponsive || renderMobile)) 412 { 413 <header class="page-header @headerCssClass top-0@(responsiveClassMobile)" id="page-header-mobile"> 414 @if (headerMobileLink != null) 415 { 416 @RenderGrid(headerMobileLink.PageId) 417 } 418 </header> 419 } 420421 <div data-intersect></div> 422423 <main id="content" @(schemaOrgType)> 424 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 425 @using System 426 @using Dynamicweb.Ecommerce.ProductCatalog 427428429 @{ 430 string productIdFromUrl = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("ProductID")) ? Dynamicweb.Context.Current.Request.QueryString.Get("ProductID") : string.Empty; 431 bool isProductDetail = !string.IsNullOrEmpty(productIdFromUrl) && Pageview.Page.NavigationTag.ToLower() == "shop"; 432433 bool isArticlePagePage = Model.ItemType == "Swift_Article"; 434 bool isArticleListPage = Model.ItemType == "Swift_ArticleListPage"; 435 string schemaOrgProp = string.Empty; 436 if (isArticlePagePage) 437 { 438 schemaOrgProp = "itemprop=\"articleBody\""; 439 } 440441 string theme = ""; 442 string gridContent = ""; 443444 if (Model.PropertyItem != null) 445 { 446 theme = !string.IsNullOrWhiteSpace(Model.PropertyItem.GetRawValueString("Theme")) ? "theme " + Model.PropertyItem.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 447 } 448449 if (Model.Item != null || Pageview.IsVisualEditorMode) 450 { 451 if (!isProductDetail) 452 { 453 gridContent = Model.Grid("Grid", "Grid", "default:true;sort:1", "Page"); 454 } 455 else 456 { 457 var productObject = Dynamicweb.Ecommerce.Services.Products.GetProductById(productIdFromUrl, "", Pageview.Area.EcomLanguageId); 458 if (productObject != null) 459 { 460 var detailPage = Dynamicweb.Ecommerce.Services.ProductGroups.GetGroup(productObject?.PrimaryGroupId)?.Meta.PrimaryPage ?? string.Empty; 461 var detailPageId = detailPage != string.Empty ? Convert.ToInt16(detailPage.Substring(detailPage.LastIndexOf('=') + 1)) : GetPageIdByNavigationTag("ProductDetailPage"); 462463 @RenderGrid(detailPageId) 464 } 465 } 466 } 467468 bool doNotRenderPage = false; 469470 //Check if we are on the poduct detail page, and if there is data to render 471 ProductViewModel product = new ProductViewModel(); 472 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 473 { 474 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 475 if (string.IsNullOrEmpty(product.Id)) 476 { 477 doNotRenderPage = true; 478 } 479 } 480481 //Render the page 482 if (!doNotRenderPage) 483 { 484 string itemIdentifier = Model?.Item?.SystemName != null ? "item_" + Model.Item.SystemName.ToLower() : "item_Swift_Page"; 485486 if (Pageview.IsVisualEditorMode) 487 { 488 @Model.Placeholder("dwcontent", "content", "default:true;sort:1") 489 } 490491 <div class="@theme @itemIdentifier" @schemaOrgProp> 492 @if (isArticleListPage) 493 { 494 var hx = $"hx-get=\"{Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(Model.ID)}\" hx-select=\"#content\" hx-target=\"#content\" hx-swap=\"outerHTML\" hx-trigger=\"change\" hx-headers='{{\"feed\": \"true\"}}' hx-push-url=\"true\" hx-indicator=\"#ArticleFacetForm\""; 495496 <form @hx id="ArticleFacetForm"> 497 @gridContent 498 </form> 499 <script type="module" src="/Files/Templates/Designs/Swift/Assets/js/htmx.js"></script> 500 <script type="module"> 501 document.addEventListener('htmx:confirm', (event) => { 502 let filters = event.detail.elt.querySelectorAll('select'); 503 for (var i = 0; i < filters.length; i++) { 504 let input = filters[i]; 505 if (input.name && !input.value) { 506 input.name = ''; 507 } 508 } 509 }); 510511 document.addEventListener('htmx:beforeOnLoad', (event) => { 512 swift.Scroll.stopIntersectionObserver(); 513 }); 514515 document.addEventListener('htmx:afterOnLoad', () => { 516 swift.Scroll.hideHeadersOnScroll(); 517 swift.Scroll.handleAlternativeTheme(); 518 }); 519 </script> 520 } 521 else 522 { 523 @gridContent 524 } 525 </div> 526527 } 528 else 529 { 530 <div class="container"> 531 <div class="alert alert-info" role="alert">@Translate("Sorry. There is nothing to view here")</div> 532 </div> 533 } 534535 if (!Model.IsCurrentUserAllowed) 536 { 537 int signInPage = GetPageIdByNavigationTag("SignInPage"); 538 int dashboardPage = GetPageIdByNavigationTag("MyAccountDashboardPage"); 539540 if (!Pageview.IsVisualEditorMode) 541 { 542 if (signInPage != 0) 543 { 544 if (signInPage != Model.ID) 545 { 546 Dynamicweb.Context.Current.Response.Redirect("/Default.aspx?ID=" + signInPage); 547 } 548 else 549 { 550 if (dashboardPage != 0) 551 { 552 Dynamicweb.Context.Current.Response.Redirect("/Default.aspx?ID=" + dashboardPage); 553 } 554 else 555 { 556 Dynamicweb.Context.Current.Response.Redirect("/"); 557 } 558 } 559 } 560 else 561 { 562 <div class="alert alert-dark m-0" role="alert"> 563 <span>@Translate("You do not have access to this page")</span> 564 </div> 565 } 566 } 567 else 568 { 569 <div class="alert alert-dark m-0" role="alert"> 570 <span>@Translate("To work on this page, you must be signed in, in the frontend")</span> 571 </div> 572 } 573 } 574 } 575576 </main> 577578 @if (renderAsResponsive || !renderMobile) 579 { 580 <footer class="page-footer@(responsiveClassDesktop)" id="page-footer-desktop"> 581 @if (footerDesktopLink != null) 582 { 583 @RenderGrid(footerDesktopLink.PageId) 584 } 585586 @if (allowTracking && !string.IsNullOrWhiteSpace(customFooterScripts)){ 587 @customFooterScripts 588 } 589 </footer> 590 } 591592 @if (renderAsResponsive || renderMobile) 593 { 594 <footer class="page-footer@(responsiveClassMobile)" id="page-footer-mobile"> 595 @if (footerMobileLink != null) 596 { 597 @RenderGrid(footerMobileLink.PageId) 598 } 599 </footer> 600 } 601602 @* Render any offcanvas menu here *@ 603 @RenderSnippet("offcanvas") 604605 @{ 606 bool isErpConnectionDown = !Dynamicweb.Core.Converter.ToBoolean(Context.Current.Items["IsWebServiceConnectionAvailable"]); 607 } 608609 @* Language selector modal *@ 610 <div class="modal fade" id="PreferencesModal" tabindex="-1" aria-hidden="true"> 611 <div class="modal-dialog modal-dialog-centered modal-sm" id="PreferencesModalContent"> 612 @* The content here comes from an external request *@ 613 </div> 614 </div> 615616 @* Favorite toast *@ 617 <div aria-live="polite" aria-atomic="true"> 618 <div class="position-fixed bottom-0 end-0 p-3" style="z-index: 11"> 619 <div id="favoriteNotificationToast" class="toast" role="alert" aria-live="assertive" aria-atomic="true"> 620 <div class="toast-header"> 621 <strong class="me-auto">@Translate("Favorite list updated")</strong> 622 <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button> 623 </div> 624 <div class="toast-body d-flex gap-3"> 625 <div id="favoriteNotificationToast_Image"></div> 626 <div id="favoriteNotificationToast_Text"></div> 627 </div> 628 </div> 629 </div> 630 </div> 631632 @* Modal for dynamic content *@ 633 <div class="modal fade js-product" id="DynamicModal" tabindex="-1" aria-hidden="true"> 634 <div class="modal-dialog modal-dialog-centered modal-md"> 635 <div class="modal-content theme light" id="DynamicModalContent"> 636 @* The content here comes from an external request *@ 637 </div> 638 </div> 639 </div> 640641 @* Offcanvas for dynamic content *@ 642 <div class="offcanvas offcanvas-end theme light" tabindex="-1" id="DynamicOffcanvas"> 643 @* The content here comes from an external request *@ 644 </div> 645646 @if (Model.Area.Item.GetBoolean("ShowErpDownMessage") && !Dynamicweb.Core.Converter.ToBoolean(Context.Current.Items["IsWebServiceConnectionAvailable"])) 647 { 648 string erpDownMessageTheme = !string.IsNullOrWhiteSpace(Model.Area.Item.GetRawValueString("ErpDownMessageTheme")) ? " theme " + Model.Area.Item.GetRawValueString("ErpDownMessageTheme").Replace(" ", "").Trim().ToLower() : "theme light"; 649650 <div class="position-fixed bottom-0 end-0 p-3" style="z-index: 1040"> 651 <div class="toast fade show border-0 @erpDownMessageTheme" role="alert" aria-live="assertive" aria-atomic="true"> 652 <div class="toast-header"> 653 <strong class="me-auto">@Translate("Connection down")</strong> 654 <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button> 655 </div> 656 <div class="toast-body"> 657 @Translate("We are experiencing some connectivity issues. Not all features may be available to you.") 658 </div> 659 </div> 660 </div> 661 } 662663 @if (miniCartEnabled) 664 { 665 @* Open MiniCart when the cart is updated *@ 666 <script type="module"> 667 document.addEventListener('updated.swift.cart', (event) => { 668 let orderContext = event?.detail?.formData?.get("OrderContext"); 669 updateCartSummary(orderContext); 670671 @if (offcanvasMiniCartBehaviour == "2" || offcanvasMiniCartBehaviour == "3") { 672 <text>openMiniCartOffcanvas();</text> 673 } 674 }); 675 </script> 676677 if (offcanvasMiniCartBehaviour == "1" || offcanvasMiniCartBehaviour == "3") 678 { 679 @* Open MiniCart when toggle is clicked *@ 680 <script type="module"> 681 let miniCartToggles = document.querySelectorAll('.mini-cart-quantity'); 682 miniCartToggles?.forEach((toggle) => { 683 toggle.parentElement.addEventListener('click', (event) => { 684 event.preventDefault(); 685 let orderContext = toggle.dataset?.orderContext; 686 updateCartSummary(orderContext); 687688 openMiniCartOffcanvas(); 689 }); 690 }); 691 </script> 692 } 693694 <script> 695696 const updateCartSummary = (orderContext) => { 697 const dynamicOffcanvas = document.getElementById('DynamicOffcanvas'); 698 swift.PageUpdater.UpdateFromUrlInline(event, '/Default.aspx?ID=@(cartSummaryPageId)&CartType=minicart&RequestPageID=@(Pageview.Page.ID)&OrderContext=' + orderContext +'', 'Swift_CartSummary.cshtml', dynamicOffcanvas); 699 }; 700701 const openMiniCartOffcanvas = () => { 702 const dynamicOffcanvas = document.getElementById('DynamicOffcanvas'); 703 const miniCartOffcanvas = bootstrap.Offcanvas.getOrCreateInstance(dynamicOffcanvas); 704 dynamicOffcanvas.classList.add('overflow-y-auto'); 705706 if (!miniCartOffcanvas._isShown) { 707 miniCartOffcanvas.show(); 708 hideActiveOffcanvases(miniCartOffcanvas); 709 } 710 }; 711712 const hideActiveOffcanvases = (miniCartOffcanvas) => { 713 let activeOffcanvases = document.querySelectorAll('.offcanvas.show'); 714 activeOffcanvases?.forEach((offCanvas) => { 715 offCanvas = bootstrap.Offcanvas.getInstance(offCanvas); 716 if (offCanvas !== miniCartOffcanvas) { 717 offCanvas.hide(); 718 } 719 }); 720 }; 721722 </script> 723 } 724725 </body> 726727 </html> 728729 } 730 else if (Pageview.IsVisualEditorMode) 731 { 732 <head> 733 <title>@Model.Title</title> 734 @* Bootstrap + Swift stylesheet *@ 735 <link href="/Files/Templates/Designs/Swift/Assets/css/styles.css" rel="stylesheet" media="all" type="text/css"> 736 </head> 737 <body class="p-3"> 738 <div class="alert alert-danger" role="alert"> 739 @Translate("Basic Swift setup is needed!") 740 </div> 741742 @if (brandingPage == null) 743 { 744 <div class="alert alert-warning" role="alert"> 745 @Translate("Please add a Branding page and reference it in website settings") 746 </div> 747 } 748749 @if (themesParagraphs == null) 750 { 751 <div class="alert alert-warning" role="alert"> 752 @Translate("Please add a Themes collection page and reference it in website settings") 753 </div> 754 } 755 </body> 756 } 757758759 @functions { 760 void SetMetaTags() 761 { 762 //Verification Tokens 763 string siteVerificationGoogle = Model.Area.Item.GetString("Google_Site_Verification") != null ? Model.Area.Item.GetString("Google_Site_Verification") : ""; 764765 //Generic Site Values 766 string openGraphFacebookAppID = Model.Area.Item.GetString("Fb_app_id") != null ? Model.Area.Item.GetString("Fb_app_id") : ""; 767 string openGraphType = Model.Area.Item.GetString("Open_Graph_Type") != null ? Model.Area.Item.GetString("Open_Graph_Type") : ""; 768 string openGraphSiteName = Model.Area.Item.GetString("Open_Graph_Site_Name") != null ? Model.Area.Item.GetString("Open_Graph_Site_Name") : ""; 769770 string twitterCardSite = Model.Area.Item.GetString("Twitter_Site") != null ? Model.Area.Item.GetString("Twitter_Site") : ""; 771772 //Page specific values 773 string openGraphSiteTitle = Model.Area.Item.GetString("Open_Graph_Title") != null ? Model.Area.Item.GetString("Open_Graph_Title") : ""; 774 FileViewModel openGraphImage = Model.Area.Item.GetFile("Open_Graph_Image"); 775 string openGraphImageALT = Model.Area.Item.GetString("Open_Graph_Image_ALT") != null ? Model.Area.Item.GetString("Open_Graph_Image_ALT") : ""; 776 string openGraphDescription = Model.Area.Item.GetString("Open_Graph_Description") != null ? Model.Area.Item.GetString("Open_Graph_Description") : ""; 777778 string twitterCardURL = Model.Area.Item.GetString("Twitter_URL") != null ? Model.Area.Item.GetString("Twitter_URL") : ""; 779 string twitterCardTitle = Model.Area.Item.GetString("Twitter_Title") != null ? Model.Area.Item.GetString("Twitter_Title") : ""; 780 string twitterCardDescription = Model.Area.Item.GetString("Twitter_Description") != null ? Model.Area.Item.GetString("Twitter_Description") : ""; 781 FileViewModel twitterCardImage = Model.Area.Item.GetFile("Twitter_Image"); 782 string twitterCardImageALT = Model.Area.Item.GetString("Twitter_Image_ALT") != null ? Model.Area.Item.GetString("Twitter_Image_ALT") : ""; 783 string topImage = Pageview.Page.TopImage.StartsWith("/Files", StringComparison.OrdinalIgnoreCase) ? Pageview.Page.TopImage : $"/Files{Pageview.Page.TopImage}"; 784785 if (string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["ProductID"])) 786 { 787 if (!string.IsNullOrEmpty(Model.Description)) 788 { 789 Pageview.Meta.AddTag($"<meta property=\"og:description\" content=\"{Model.Description}\">"); 790 } 791 else 792 { 793 Pageview.Meta.AddTag($"<meta property=\"og:description\" content=\"{openGraphDescription}\">"); 794 } 795796 if (!string.IsNullOrEmpty(Pageview.Page.TopImage)) 797 { 798 Pageview.Meta.AddTag($"<meta property=\"og:image\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{topImage}\">"); 799 Pageview.Meta.AddTag($"<meta property=\"og:image:secure_url\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{topImage}\">"); 800 } 801 else if (openGraphImage != null) 802 { 803 Pageview.Meta.AddTag($"<meta property=\"og:image\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{openGraphImage.Path}\">"); 804 Pageview.Meta.AddTag($"<meta property=\"og:image:secure_url\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{openGraphImage.Path}\">"); 805 } 806807 if (!string.IsNullOrEmpty(openGraphImageALT)) 808 { 809 Pageview.Meta.AddTag($"<meta property=\"og:image:alt\" content=\"{openGraphImageALT}\">"); 810 } 811 if (!string.IsNullOrEmpty(twitterCardDescription)) 812 { 813 Pageview.Meta.AddTag("twitter:description", twitterCardDescription); 814 } 815816 if (!string.IsNullOrEmpty(Pageview.Page.TopImage)) 817 { 818 Pageview.Meta.AddTag("twitter:image", $"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{topImage}"); 819 } 820 else if (twitterCardImage != null) 821 { 822 Pageview.Meta.AddTag("twitter:image", $"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{openGraphImage.Path}"); 823 } 824825 if (!string.IsNullOrEmpty(twitterCardImageALT)) 826 { 827 Pageview.Meta.AddTag("twitter:image:alt", twitterCardImageALT); 828 } 829 } 830831 if (!string.IsNullOrEmpty(siteVerificationGoogle)) 832 { 833 Pageview.Meta.AddTag("google-site-verification", siteVerificationGoogle); 834 } 835836 if (!string.IsNullOrEmpty(openGraphFacebookAppID)) 837 { 838 Pageview.Meta.AddTag($"<meta property=\"fb:app_id\" content=\"{openGraphFacebookAppID}\">"); 839 } 840841 if (!string.IsNullOrEmpty(openGraphType)) 842 { 843 Pageview.Meta.AddTag($"<meta property=\"og:type\" content=\"{openGraphType}\">"); 844 } 845846 if (!string.IsNullOrEmpty(openGraphSiteName)) 847 { 848 Pageview.Meta.AddTag($"<meta property=\"og:url\" content=\"{Dynamicweb.Context.Current.Request.Url.Scheme}://{Dynamicweb.Context.Current.Request.Url.Host}{Pageview.SearchFriendlyUrl}\">"); 849 } 850851 if (!string.IsNullOrEmpty(openGraphSiteName)) 852 { 853 Pageview.Meta.AddTag($"<meta property=\"og:site_name\" content=\"{openGraphSiteName}\">"); 854 } 855856 if (!string.IsNullOrEmpty(Model.Title)) 857 { 858 Pageview.Meta.AddTag($"<meta property=\"og:title\" content=\"{Model.Title}\">"); 859 } 860 else 861 { 862 Pageview.Meta.AddTag($"<meta property=\"og:title\" content=\"{openGraphSiteTitle}\">"); 863 } 864865 if (!string.IsNullOrEmpty(twitterCardSite)) 866 { 867 Pageview.Meta.AddTag("twitter:site", twitterCardSite); 868 } 869870 if (!string.IsNullOrEmpty(twitterCardURL)) 871 { 872 Pageview.Meta.AddTag("twitter:url", twitterCardURL); 873 } 874875 if (!string.IsNullOrEmpty(twitterCardTitle)) 876 { 877 Pageview.Meta.AddTag("twitter:title", twitterCardTitle); 878 } 879 } 880 } 881