Error executing template "Designs/skabertrang/_parsed/SB_Page.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_6244cc47d9fc4da7a3f400e7849228d8.Execute() in D:\home\site\wwwroot\Skabertrang\SkabertrangWebApp\Files\Templates\Designs\skabertrang\_parsed\SB_Page.parsed.cshtml:line 437
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits RazorTemplateBase<RazorTemplateModel<Template>> 2 @using Dynamicweb.Rendering 3 @using Dynamicweb.Content 4 @using Dynamicweb.Environment 5 6 @{ 7 var tmpRes = System.Web.HttpContext.Current.Response; 8 9 switch (Pageview.Page.ID) 10 { 11 case 2492: // Forside 12 case 2498: // Kontakt 13 case 2497: // Grafisk produktion 14 tmpRes.RedirectPermanent("/Default.aspx?Id=2677", true); 15 break; 16 17 case 2491: // Bureau 18 tmpRes.RedirectPermanent("/Default.aspx?Id=2728", true); 19 break; 20 21 case 2496: // Online 22 tmpRes.RedirectPermanent("/Default.aspx?Id=2679", true); 23 break; 24 25 case 2652: // EnergiMidt 26 tmpRes.RedirectPermanent("/Default.aspx?Id=2724", true); 27 break; 28 29 case 2555: // Cases 30 case 2552: // FSR 31 case 2550: // PFP 32 tmpRes.RedirectPermanent("/Default.aspx?Id=2681", true); 33 break; 34 35 case 2502: // Find medarbejdere 36 tmpRes.RedirectPermanent("/Default.aspx?Id=2682", true); 37 break; 38 } 39 //privatlivspolitik rettes til 2722 ved live 40 string privacyPolicyLink = "Default.aspx?ID=127"; 41 42 string GoogleTagManagerID = GetString("Item.Area.GoogleTagManagerID"); 43 string GoogleAnalyticsID = GetString("Item.Area.Google_Analytics_Code"); 44 } 45 @using System.IO 46 @using System.Web 47 @helper RenderGoogleConversion(string conversionId, string conversionLanguage, string conversionFormat, string conversionColor, string conversionLabel, string conversionValue, string conversionCurrency, bool remarketingOnly) { 48 var googleConversionId = conversionId; 49 var googleConversionLanguage = string.IsNullOrWhiteSpace(conversionLanguage) ? "en" : conversionLanguage; 50 var googleConversionFormat = string.IsNullOrWhiteSpace(conversionFormat) ? "3" : conversionFormat; 51 var googleConversionColor = string.IsNullOrWhiteSpace(conversionColor) ? "ffffff" : conversionColor; 52 var googleConversionLabel = conversionLabel; 53 var googleConversionValue = string.IsNullOrWhiteSpace(conversionValue) ? "0" : conversionValue; 54 var googleConversionCurrency = string.IsNullOrWhiteSpace(conversionCurrency) ? "DKK" : conversionCurrency; 55 var googleRemarketingOnly = remarketingOnly; 56 57 <!-- Google Code for the Conversion Page --> 58 <script type="text/javascript"> 59 /* <![CDATA[ */ 60 var google_conversion_id = @(googleConversionId); 61 var google_conversion_language = '@(googleConversionLanguage)'; 62 var google_conversion_format = '@(googleConversionFormat)'; 63 var google_conversion_color = '@(googleConversionColor)'; 64 var google_conversion_label = '@(googleConversionLabel)'; 65 var google_conversion_value = @(googleConversionValue); 66 var google_conversion_currency = '@(googleConversionCurrency)'; 67 var google_remarketing_only = @(googleRemarketingOnly ? "true" : "false"); 68 /* ]]> */ 69 </script> 70 <script type="text/javascript" src="https://www.googleadservices.com/pagead/conversion.js"></script> 71 <noscript> 72 <div style="display: inline;"> 73 <img src="https://www.googleadservices.com/pagead/conversion/@(googleConversionId)/?value=@(googleConversionValue)&amp;currency_code=@(googleConversionCurrency)&amp;label=@(googleConversionLabel)&amp;guid=ON&amp;script=0" alt="" width="1" height="1" style="border-style: none;"> 74 </div> 75 </noscript> 76 } 77 @helper RenderGoogleAnalyticsEcommerceTracking(string transactionId, string affiliation, string revenue, string shipping, string tax, string currency, string[][] orderLines) { 78 <script type="text/javascript"> 79 if (!window.skabertrang_ga_ecommerce_callbacks) 80 window.skabertrang_ga_ecommerce_callbacks = []; 81 82 (function() { 83 var orderLines = @(Newtonsoft.Json.JsonConvert.SerializeObject(orderLines)); 84 85 window.skabertrang_ga_ecommerce_callbacks.push(function() { 86 ga('require', 'ecommerce'); 87 88 ga('ecommerce:addTransaction', { 89 'id' : '@(transactionId)', 90 'affiliation' : '@(affiliation)', 91 'revenue' : '@(revenue)', 92 'shipping' : '@(shipping)', 93 'tax' : '@(tax)', 94 'currency' : '@(currency)' 95 }); 96 97 if (orderLines && orderLines.length) { 98 for (var i = 0; i < orderLines.length; i++) { 99 ga('ecommerce:addItem', { 100 'id' : '@(transactionId)', 101 'name' : orderLines[i][1], 102 'sku' : orderLines[i][0], 103 'category' : orderLines[i][2], 104 'price' : orderLines[i][3], 105 'quantity' : orderLines[i][4], 106 'currency' : '@(currency)' 107 }); 108 } 109 } 110 111 ga('ecommerce:send'); 112 }); 113 })(); 114 </script> 115 } 116 @functions { 117 string mediaOverlay(string filePath, string filePathThumb = "", string caption = "", string group = "", string alt = "", string title = "", string extraAttributes = "") { 118 var pv = Dynamicweb.Frontend.PageView.Current(); 119 var imageOverlayType = pv.Area.Item["ImageOverlayType"] as string; 120 121 filePathThumb = !string.IsNullOrWhiteSpace(filePathThumb) ? filePathThumb : filePath; 122 group = !string.IsNullOrWhiteSpace(group) ? group : !string.IsNullOrWhiteSpace(GetString("ParagraphID")) ? GetString("ParagraphID") : "imageGroup"; 123 124 if (imageOverlayType=="Fancybox") { 125 return "<a class='fancybox media-overlay' href='" + filePath + "' rel='" + group + "' title='" + title + "' data-title='" + caption + "'><img src='/Files/Templates/Designs/skabertrang/"+filePathThumb+"' alt='" + alt + "' title='" + title + "'></a>"; 126 } else { 127 return "<a href='" + filePath + "' class='media-overlay' data-lightbox='" + group + "' data-title='" + caption + "'><img src='/Files/Templates/Designs/skabertrang/"+filePathThumb+"' alt='" + alt + "' title='" + title + "'></a>"; 128 } 129 } 130 131 string GetImage(string image, int width, int height, int compression, int crop, string colorSpace, bool doNotUpscale) { 132 // Crop 133 // 0 = Center 134 // 1 = From upper left 135 // 2 = From lower left 136 // 3 = From lower right 137 // 4 = From upper right 138 // 5 = Keep aspect ratio 139 // 6 = Fit image 140 141 // ColorSpace 142 // rgb 143 // cmyk 144 // grayscale 145 146 var param = new List<string>(); 147 148 param.Add("Image=" + image); 149 param.Add("Format=" + Path.GetExtension(image).Substring(1)); 150 151 if (width > 0) { 152 param.Add("Width=" + width); 153 } 154 155 if (height > 0) { 156 param.Add("Height=" + height); 157 } 158 159 param.Add("Compression=" + compression); 160 param.Add("Crop=" + crop); 161 param.Add("ColorSpace=" + colorSpace); 162 param.Add("DoNotUpscale=" + (doNotUpscale ? "True" : "False")); 163 164 return "/Admin/Public/GetImage.ashx?" + string.Join("&amp;", param); 165 } 166 167 string GetImagePlaceholder(int width, int height) { 168 return GetImagePlaceholder(width, height, null, null, null); 169 } 170 171 string GetImagePlaceholder(int width, int height, string backgroundColor, string textColor, string text) { 172 var r = "https://placehold.it/" + width; 173 174 if (height > 0) { 175 r += "x" + height; 176 } 177 178 if (!string.IsNullOrWhiteSpace(backgroundColor) && !string.IsNullOrWhiteSpace(textColor)) { 179 r += "/" + backgroundColor; 180 r += "/" + textColor; 181 } 182 183 if (!string.IsNullOrWhiteSpace(text)) { 184 r += "?text=" + text.Replace(" ", "+"); 185 } 186 187 return r; 188 } 189 190 191 T LoadContextItem<T>(string key) { 192 var obj = HttpContext.Current.Items != null ? HttpContext.Current.Items[key] : null; 193 194 if (obj == null) { 195 return default(T); 196 } 197 198 return (T)obj; 199 } 200 201 void SaveContextItem(string key, object value) { 202 if (HttpContext.Current.Items != null && value != null) { 203 HttpContext.Current.Items[key] = value; 204 } 205 } 206 207 string PathCombine(params string[] paths) { 208 return Path.Combine(paths); 209 } 210 211 string NullIfEmpty(string value) { 212 return string.IsNullOrEmpty(value) ? null : value; 213 } 214 215 string NullIfWhiteSpace(string value) { 216 return string.IsNullOrWhiteSpace(value) ? null : value; 217 } 218 219 string ToJson(object value) { 220 return ToJson(value, false); 221 } 222 223 string ToJson(object value, bool indented) { 224 return Newtonsoft.Json.JsonConvert.SerializeObject( 225 value, 226 indented ? Newtonsoft.Json.Formatting.Indented : Newtonsoft.Json.Formatting.None, 227 new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "yyyyMMdd'T'HHmmss" } 228 ); 229 } 230 231 void AddCssFile(params string[] files) { 232 var list = LoadContextItem<List<string>>("SB.CssFiles"); 233 234 if (list == null) { 235 list = new List<string>(); 236 } 237 238 foreach (var file in files) { 239 if (!list.Contains(file, StringComparer.OrdinalIgnoreCase)) { 240 list.Add(file); 241 } 242 } 243 244 SaveContextItem("SB.CssFiles", list); 245 } 246 247 void AddJsFile(params string[] files) { 248 var list = LoadContextItem<List<string>>("SB.JsFiles"); 249 250 if (list == null) { 251 list = new List<string>(); 252 } 253 254 foreach (var file in files) { 255 if (!list.Contains(file, StringComparer.OrdinalIgnoreCase)) { 256 list.Add(file); 257 } 258 } 259 260 SaveContextItem("SB.JsFiles", list); 261 } 262 } 263 264 <!DOCTYPE html> 265 <html lang="@Pageview.Area.CultureInfo.TwoLetterISOLanguageName"> 266 <head> 267 <meta charset="utf-8"> 268 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 269 <meta name="viewport" content="width=device-width, initial-scale=1"> 270 <title>@GetValue("Title")</title> 271 @GetValue("MetaTags") 272 @GetValue("CopyRightNotice") 273 274 <meta name="google-translate-customization" content="3ab294752fbc971b-990b0778fdaa5c49-gd959cd44578dce8b-1a"> 275 @* 276 *@ 277 <meta name="google-site-verification" content="UI6CCfoEXHqqYbkQulWJbCUBiPaknTfvc6MYUHnbYZU"> 278 <meta name="facebook-domain-verification" content="oooibtk2fv4agzeqwcdost2ytcmmx8"> 279 @* TOP bar theme color for Safari 15+ *@ 280 <meta name="theme-color" content="#eb6501"> 281 282 @RenderSnippet("OpenGraph") 283 @RenderSnippet("Icons") 284 @RenderSnippet("Css") 285 286 @* Loading some needed scripts at top of page - rest before end of body tag *@ 287 @RenderSnippet("TopJs") 288 <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> 289 290 @* HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries *@ 291 @* WARNING: Respond.js doesn't work if you view the page via file:// *@ 292 <!--[if lt IE 9]> 293 <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script> 294 <script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script> 295 <![endif]--> 296 <!-- Google Consent Mode --> 297 <script data-cookieconsent="ignore"> 298 window.dataLayer = window.dataLayer || []; 299 function gtag() { 300 dataLayer.push(arguments); 301 } 302 gtag("consent", "default", { 303 ad_storage: "denied", 304 analytics_storage: "denied", 305 functionality_storage: "denied", 306 personalization_storage: "denied", 307 security_storage: "granted", 308 wait_for_update: 2000, 309 }); 310 gtag("set", "ads_data_redaction", true); 311 </script> 312 <!-- End Google Consent Mode --> 313 <!-- Google Tag Manager --> 314 <script data-cookieconsent="ignore"> 315 (function (w, d, s, l, i) { 316 w[l] = w[l] || []; w[l].push({ 317 'gtm.start': 318 new Date().getTime(), event: 'gtm.js' 319 }); var f = d.getElementsByTagName(s)[0], 320 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 321 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 322 })(window, document, 'script', 'dataLayer', '@GoogleTagManagerID');</script> 323 <!-- End Google Tag Manager --> 324 <!-- Cookiebot --> 325 <script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="74ca9a71-bf07-411a-9581-01cda813b409" data-blockingmode="auto" type="text/javascript"> 326 </script> 327 <!-- End Cookiebot --> 328 <!-- Facebook Pixel Code --> 329 @*<script type="text/javascript"> 330 !function (f, b, e, v, n, t, s) { 331 if (f.fbq) return; n = f.fbq = function () { 332 n.callMethod ? 333 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 334 }; if (!f._fbq) f._fbq = n; 335 n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0; 336 t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s) 337 }(window, 338 document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); 339 340 fbq('init', '931914863515916'); 341 fbq('track', "PageView");</script> 342 <noscript> 343 <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=931914863515916&ev=PageView&noscript=1"> 344 </noscript>*@ 345 <!-- End Facebook Pixel Code --> 346 347 @GetValue("Stylesheets") 348 @GetValue("Javascripts") 349 </head> 350 <body> 351 <!-- Google Tag Manager (noscript) --> 352 <noscript> 353 <iframe src="https://www.googletagmanager.com/ns.html?id=@GoogleTagManagerID" height="0" width="0" style="display:none;visibility:hidden"></iframe> 354 </noscript> 355 <!-- End Google Tag Manager (noscript) --> 356 357 <div id="fb-root"></div> 358 <script type="text/javascript"> 359 (function (d, s, id) { 360 var js, fjs = d.getElementsByTagName(s)[0]; 361 if (d.getElementById(id)) return; 362 js = d.createElement(s); js.id = id; 363 js.src = '//connect.facebook.net/da_DK/sdk.js#xfbml=1&version=v2.5'; 364 fjs.parentNode.insertBefore(js, fjs); 365 }(document, 'script', 'facebook-jssdk')); 366 </script> 367 368 369 <div class="pure-container" data-effect="pure-effect-slide"> 370 <input type="checkbox" id="pure-toggle-left" class="pure-toggle" data-toggle="left" aria-label="pure-toggle-left"> 371 <input type="checkbox" id="pure-toggle-right" class="pure-toggle" data-toggle="right" aria-label="pure-toggle-right"> 372 373 <label class="pure-toggle-label side-contact" for="pure-toggle-left" data-toggle-label="left"> 374 <span class="pure-toggle-icon"></span> 375 </label> 376 <label class="pure-toggle-label" for="pure-toggle-right" data-toggle-label="right"> 377 <span class="pure-toggle-icon"></span> 378 </label> 379 380 <div class="pure-drawer side-contact" data-position="left"> 381 <div class="pure-inner-toggle"> 382 <label for="pure-toggle-left"> 383 <i class="fa fa-times" aria-hidden="true"></i> 384 </label> 385 </div> 386 387 @*@RenderParagraphContent(111)*@ 388 @*@RenderParagraphContent(615)*@ 389 @RenderParagraphContent(663) 390 </div> 391 <div class="pure-drawer" data-position="right"> 392 @RenderSnippet("NavbarCanvas") 393 </div> 394 395 <div class="pure-pusher-container"> 396 <div class="pure-pusher"> 397 @RenderSnippet("Navbar") 398 399 @inherits RazorTemplateBase<RazorTemplateModel<Template>> 400 @using Dynamicweb.Rendering 401 402 403 @{ 404 string host = HttpContext.Current.Request.Url.Host; 405 string scheme = HttpContext.Current.Request.Url.Scheme; 406 407 var width = GetString("Item.Width"); 408 var banner = GetValue("Item.Banner"); 409 var bannerName = Path.GetFileNameWithoutExtension(scheme + "://" + host + banner); 410 var hideBanner = GetBoolean("Item.HideBanner"); 411 var incFooter = GetBoolean("Item.IncludeFooter"); 412 413 414 string altText = bannerName; 415 if (!string.IsNullOrWhiteSpace(GetString("Item.ImageInfo.Alt"))) 416 { 417 altText = GetString("Item.ImageInfo.Alt"); 418 } 419 420 string titleText = ""; 421 if (!string.IsNullOrWhiteSpace(GetString("Item.ImageInfo.Title"))) 422 { 423 titleText = GetString("Item.ImageInfo.Title"); 424 } 425 426 427 //if (string.IsNullOrWhiteSpace(banner)) { 428 // banner = GetImagePlaceholder(2000, 533, "222222", "ffffff", null); 429 //} else { 430 // banner = GetImage(banner, 2000, 0, 100, 5, "rgb", false); 431 //} 432 433 var cssContainer = width == "fixed" ? "container" : "container-fluid"; 434 435 } 436 <div class="page-block"> 437 @if (!hideBanner && !string.IsNullOrWhiteSpace(banner.ToString())) 438 { 439 <div class="page-image"> 440 <img src="@(banner)" alt="@altText" title="@titleText" class="img-responsive"> 441 </div> 442 } 443 else 444 { 445 <div class="page-hide-image"></div> 446 } 447 448 <div class="@(cssContainer)"> 449 @{ 450 var topPage = Dynamicweb.Services.Pages.GetPage(GetInteger("DwTopPageID")); 451 int navStartlevel = 1; 452 if (topPage.IsFolder) 453 { 454 navStartlevel++; 455 } 456 var navigationSettingsBreadcrumb = new Dynamicweb.Frontend.Navigation.NavigationSettings() 457 { 458 StartLevel = navStartlevel, 459 StopLevel = 10, 460 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.PathOnly 461 }; 462 } 463 @Navigation.RenderNavigation("Navigation/Breadcrumb.cshtml", navigationSettingsBreadcrumb) 464 465 466 <div class="row">@GetValue("DwContent(pagecontent)")</div> 467 </div> 468 </div> 469 @RenderSnippet("SB") 470 471 472 @{ 473 AddCssFile("https://cdnjs.cloudflare.com/ajax/libs/jquery.perfect-scrollbar/0.6.16/css/perfect-scrollbar.min.css"); 474 AddJsFile("https://cdnjs.cloudflare.com/ajax/libs/jquery.perfect-scrollbar/0.6.16/js/perfect-scrollbar.jquery.min.js"); 475 } 476 @*@RenderParagraphContent(7962)*@ 477 478 </div> 479 </div> 480 <label class="pure-overlay" for="pure-toggle-left" data-overlay="left"></label> 481 <label class="pure-overlay" for="pure-toggle-right" data-overlay="right"></label> 482 </div> 483 484 <div class="modal fade" id="globalModal" tabindex="-1" role="dialog" aria-labelledby="globalModalLabel"> 485 <div class="modal-dialog modal-sm" role="document"> 486 <div class="modal-content"> 487 <div class="modal-body"></div> 488 </div> 489 </div> 490 </div> 491 492 @* SKABERTRANG NEWS MODAL - klippet ud *@ 493 494 @* Scripts placed at the end of the page to make it load faster *@ 495 @RenderSnippet("BottomJs") 496 @RenderSnippet("ParagraphJs") 497 @RenderSnippet("GoogleAnalytics") 498 @*@RenderSnippet("CookieNotice")*@ 499 @RenderSnippet("ModalContent") 500 501 @*@{ 502 var backendUser = Dynamicweb.Security.UserManagement.User.get_Current(Dynamicweb.Security.UserManagement.PagePermissionLevels.Backend); 503 } 504 @if (backendUser != null) { 505 <div class="page-edit" style="position: fixed; bottom: 10px; right: 10px; z-index: 100"> 506 <div class="btn-group dropup"> 507 <button type="button" class="btn btn-default">@Translate("Page actions")</button> 508 <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> 509 <span class="caret"></span> 510 </button> 511 <ul class="dropdown-menu pull-right"> 512 @if (Pageview.Page.Item == null) { 513 <li><a target="backend" href="/Admin/Content/PageEdit.aspx?ID=@Pageview.Page.ID">@Translate("Edit page properties")</a></li> 514 <li><a target="backend" href="/Admin/Content/ParagraphList.aspx?PageID=@Pageview.Page.ID">@Translate("Edit paragraphs")</a></li> 515 } else { 516 <li><a target="backend" href="/Admin/Content/Items/Editing/ItemEdit.aspx?PageID=@Pageview.Page.ID">@Translate("Edit page")</a></li> 517 <li><a target="backend" href="/Admin/Content/ParagraphList.aspx?PageID=@Pageview.Page.ID&amp;mode=viewParagraphs">@Translate("Edit paragraphs")</a></li> 518 <li><a target="backend" href="/Admin/Content/PageEdit.aspx?ID=@Pageview.Page.ID">@Translate("Edit page properties")</a></li> 519 } 520 </ul> 521 </div> 522 </div> 523 }*@ 524 <script type="application/ld+json"> 525 { 526 "@@context": "https://schema.org", 527 "@@graph": [ 528 { 529 "@@type": "WebSite", 530 "name": "Skabertrang", 531 "url": "https://www.skabertrang.dk", 532 "potentialAction": { 533 "@@type": "SearchAction", 534 "target": "https://www.skabertrang.dk/da-dk/search.aspx?q={search_term}", 535 "query-input": "required name=search_term" 536 } 537 }, 538 { 539 "@@type": "Organization", 540 "legalName": "Skabertrang A/S", 541 "name": "Skabertrang", 542 "url": "https://www.skabertrang.dk", 543 "contactPoint": [ 544 { 545 "@@type": "ContactPoint", 546 "telephone": "+4586821655", 547 "contactType": "customer service" 548 } 549 ], 550 "logo": "https://skabertrang.dk/Files/Billeder/Skabertrang/logo.png", 551 "sameAs": [ "https://www.linkedin.com/company/skabertrang", "https://www.facebook.com/skabertrang/", "https://www.krak.dk/silkeborg+bogtryk+silkeborg/66544850/firma", "http://www.silkeborgerhvervsportal.dk/da-dk/erhvervsbog-katalog/virksomhedsprofiler/grafisk-branche-graphic-industry/skabertrang-silkeborg-bogtryk.aspx", "https://www.dynamicweb.dk/partnere/skabertrang", "https://twitter.com/skabertrang" ] 552 }, 553 { 554 "@@type": "AggregateRating", 555 "ratingvalue": "5", 556 "reviewCount": "18", 557 "itemReviewed": "Skabertrang" 558 } 559 ] 560 } 561 </script> 562 563 @*<script> 564 $(function () { 565 console.log("AOS library") 566 AOS.init({ 567 // Global settings: 568 disable: false, // accepts following values: 'phone', 'tablet', 'mobile', boolean, expression or function 569 startEvent: 'DOMContentLoaded', // name of the event dispatched on the document, that AOS should initialize on 570 initClassName: 'aos-init', // class applied after initialization 571 animatedClassName: 'aos-animate', // class applied on animation 572 useClassNames: false, // if true, will add content of `data-aos` as classes on scroll 573 disableMutationObserver: false, // disables automatic mutations' detections (advanced) 574 debounceDelay: 50, // the delay on debounce used while resizing window (advanced) 575 throttleDelay: 99, // the delay on throttle used while scrolling the page (advanced) 576 577 578 // Settings that can be overridden on per-element basis, by `data-aos-*` attributes: 579 offset: 120, // offset (in px) from the original trigger point 580 delay: 0, // values from 0 to 3000, with step 50ms 581 duration: 400, // values from 0 to 3000, with step 50ms 582 easing: 'ease', // default easing for AOS animations 583 once: false, // whether animation should happen only once - while scrolling down 584 mirror: false, // whether elements should animate out while scrolling past them 585 anchorPlacement: 'top-top', // defines which position of the element regarding to window should trigger the animation 586 587 }); 588 }); 589 </script>*@ 590 </body> 591 </html> 592 @SnippetStart("OpenGraph") 593 @{ 594 var openGraph_Domain = "http://" +Dynamicweb.Context.Current.Request.Url.Host; 595 var openGraph_Url = GetString("Item.Page.Og_Url"); 596 var openGraph_Title = GetString("Item.Page.Og_Title"); 597 var openGraph_Type = GetString("Item.Page.Og_Type"); 598 var openGraph_Description = GetString("Item.Page.Og_Description"); 599 var openGraph_Image = GetString("Item.Page.Og_Image"); 600 } 601 @if (!string.IsNullOrWhiteSpace(openGraph_Url)) { 602 <meta property="og:url" content="@(openGraph_Domain)/Default.aspx?ID=@(openGraph_Url)"> 603 } 604 @if (!string.IsNullOrWhiteSpace(openGraph_Title)) { 605 <meta property="og:title" content="@(openGraph_Title)"> 606 } 607 @if (!string.IsNullOrWhiteSpace(openGraph_Type)) { 608 <meta property="og:type" content="@(openGraph_Type)"> 609 } 610 @if (!string.IsNullOrWhiteSpace(openGraph_Description)) { 611 <meta property="og:description" content="@(openGraph_Description)"> 612 } 613 @if (!string.IsNullOrWhiteSpace(openGraph_Image)) { 614 <meta property="og:image" content="@(openGraph_Domain)@(openGraph_Image)"> 615 } 616 @SnippetEnd("OpenGraph") 617 @SnippetStart("Icons") 618 @{ 619 /* 620 * http://www.favicon-generator.org 621 */ 622 623 var icons_DesktopIconsFolder = GetString("Item.Area.FaviconDir"); 624 var icons_FacebookShareIcon = GetString("Item.Area.Icons_FacebookShareIcon"); 625 626 if (!string.IsNullOrWhiteSpace(icons_DesktopIconsFolder) && icons_DesktopIconsFolder.EndsWith("/")) { 627 icons_DesktopIconsFolder = icons_DesktopIconsFolder.Remove(icons_DesktopIconsFolder.Length - 1); 628 } 629 630 if (icons_DesktopIconsFolder.ToUpper() == "/FILES") { 631 icons_DesktopIconsFolder = null; 632 } 633 } 634 @if (!string.IsNullOrWhiteSpace(icons_DesktopIconsFolder)) { 635 <link rel="shortcut icon" href="@(icons_DesktopIconsFolder)/favicon.ico"> 636 637 <link rel="apple-touch-icon" sizes="57x57" href="@(icons_DesktopIconsFolder)/apple-icon-57x57.png"> 638 <link rel="apple-touch-icon" sizes="60x60" href="@(icons_DesktopIconsFolder)/apple-icon-60x60.png"> 639 <link rel="apple-touch-icon" sizes="72x72" href="@(icons_DesktopIconsFolder)/apple-icon-72x72.png"> 640 <link rel="apple-touch-icon" sizes="76x76" href="@(icons_DesktopIconsFolder)/apple-icon-76x76.png"> 641 <link rel="apple-touch-icon" sizes="114x114" href="@(icons_DesktopIconsFolder)/apple-icon-114x114.png"> 642 <link rel="apple-touch-icon" sizes="120x120" href="@(icons_DesktopIconsFolder)/apple-icon-120x120.png"> 643 <link rel="apple-touch-icon" sizes="144x144" href="@(icons_DesktopIconsFolder)/apple-icon-144x144.png"> 644 <link rel="apple-touch-icon" sizes="152x152" href="@(icons_DesktopIconsFolder)/apple-icon-152x152.png"> 645 <link rel="apple-touch-icon" sizes="180x180" href="@(icons_DesktopIconsFolder)/apple-icon-180x180.png"> 646 647 <link rel="icon" type="image/png" sizes="192x192" href="@(icons_DesktopIconsFolder)/android-icon-192x192.png"> 648 <link rel="icon" type="image/png" sizes="32x32" href="@(icons_DesktopIconsFolder)/favicon-32x32.png"> 649 <link rel="icon" type="image/png" sizes="96x96" href="@(icons_DesktopIconsFolder)/favicon-96x96.png"> 650 <link rel="icon" type="image/png" sizes="16x16" href="@(icons_DesktopIconsFolder)/favicon-16x16.png"> 651 652 <link rel="manifest" href="@(icons_DesktopIconsFolder)/manifest.json"> 653 654 <meta name="msapplication-TileColor" content="#ffffff"> 655 <meta name="msapplication-TileImage" content="@(icons_DesktopIconsFolder)/ms-icon-144x144.png"> 656 <meta name="msapplication-config" content="@(icons_DesktopIconsFolder)/browserconfig.xml"> 657 <meta name="theme-color" content="#ffffff"> 658 } 659 @if (!string.IsNullOrWhiteSpace(icons_FacebookShareIcon)) { 660 <link rel="image_src" href="@(icons_FacebookShareIcon)"> 661 } 662 @SnippetEnd("Icons") 663 @SnippetStart("Css") 664 @{ 665 var css_AssetsBaseUrl = "/Files/Templates/Assets/"; 666 var css_DesignBaseUrl = GetString("Template:DesignBaseUrl"); 667 668 AddCssFile( 669 "https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.2/cookieconsent.min.css", 670 671 css_AssetsBaseUrl + "formvalidation/css/formValidation.min.css", 672 css_DesignBaseUrl + "css/mmenu-light.css", 673 css_DesignBaseUrl + "css/style.min.css?v=16-05-2022T11:54" 674 ); 675 676 var listCss = LoadContextItem<List<string>>("SB.CssFiles"); 677 } 678 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> 679 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 680 <link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel="stylesheet"> 681 @*<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css">*@ 682 @if (!true) 683 { 684 var listCssObj = listCss.Select(o => new 685 { 686 Path = o, 687 IsCDN = o.StartsWith("http", StringComparison.OrdinalIgnoreCase) || o.StartsWith("//") 688 }).ToList(); 689 690 foreach (var css in listCssObj.Where(o => o.IsCDN)) 691 { 692 <link href="@(css.Path)" rel="stylesheet"> 693 } 694 695 var csses = string.Join(",", listCssObj.Where(o => !o.IsCDN).Select(o => o.Path)); 696 <link href="/Admin/Public/ControlResourcesHandler.ashx?OutputType=css&amp;Files=@(csses)" rel="stylesheet"> 697 } 698 else 699 { 700 foreach (var css in listCss) 701 { 702 <link href="@(css)" rel="stylesheet"> 703 } 704 } 705 @SnippetEnd("Css") 706 @SnippetStart("TopJs") 707 <!--[if lt IE 9]> 708 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 709 <![endif]--> 710 <!--[if gte IE 9]><!--> 711 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 712 <!--<![endif]--> 713 714 <script src="https://cdnjs.cloudflare.com/ajax/libs/headjs/1.0.3/head.min.js"></script> 715 @SnippetEnd("TopJs") 716 @SnippetStart("BottomJs") 717 @{ 718 var bottomJs_AssetsBaseUrl = "/Files/Templates/Assets/"; 719 var bottomJs_DesignBaseUrl = GetString("Template:DesignBaseUrl"); 720 721 AddJsFile( 722 "https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.2/cookieconsent.min.js", 723 724 bottomJs_AssetsBaseUrl + "formvalidation/js/formValidation.min.js", 725 bottomJs_AssetsBaseUrl + "formvalidation/js/framework/bootstrap.min.js", 726 bottomJs_AssetsBaseUrl + "formvalidation/js/language/da_DK.js", 727 728 bottomJs_DesignBaseUrl + "js/script.js" 729 ); 730 731 var listBottomJs = LoadContextItem<List<string>>("SB.JsFiles"); 732 } 733 <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> 734 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script> 735 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> 736 @*<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> 737 <script> 738 AOS.init(); 739 </script>*@ 740 741 @if (!true) { 742 var listBottomJsObj = listBottomJs.Select(o => new { 743 Path = o, 744 IsCDN = o.StartsWith("http", StringComparison.OrdinalIgnoreCase) || o.StartsWith("//") 745 }).ToList(); 746 747 foreach (var js in listBottomJsObj.Where(o => o.IsCDN)) { 748 <script src="@(js.Path)"></script> 749 } 750 751 var bottomJses = string.Join(",", listBottomJsObj.Where(o => !o.IsCDN).Select(o => o.Path)); 752 <script src="/Admin/Public/ControlResourcesHandler.ashx?OutputType=js&amp;Files=@(bottomJses)"></script> 753 } else { 754 foreach (var js in listBottomJs) { 755 <script src="@(js)"></script> 756 } 757 } 758 @SnippetEnd("BottomJs") 759 @SnippetStart("GoogleAnalytics") 760 @{ 761 var googleAnalytics_Code = GetString("Item.Area.Google_Analytics_Code"); 762 } 763 @if (!string.IsNullOrWhiteSpace(googleAnalytics_Code)) { 764 <script type="text/javascript"> 765 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 766 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 767 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 768 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 769 ga('create', '@(googleAnalytics_Code)', 'auto'); 770 ga('send', 'pageview'); 771 </script> 772 } 773 <script type="text/javascript"> 774 if (window.skabertrang_ga_ecommerce_callbacks && window.skabertrang_ga_ecommerce_callbacks.length) { 775 for (var i = 0; i < window.skabertrang_ga_ecommerce_callbacks.length; i++) { 776 window.skabertrang_ga_ecommerce_callbacks[i](); 777 } 778 } 779 </script> 780 @SnippetEnd("GoogleAnalytics") 781 @SnippetStart("CookieNotice") 782 <script type="text/javascript"> 783 (function(window) { 784 window.cookieconsent.initialise({ 785 palette: { 786 popup: { 787 background : '#000000', 788 text : '#ffffff' 789 }, 790 button: { 791 background : '#eb6501', 792 text : '#ffffff' 793 } 794 }, 795 796 elements: { 797 header : '<span class="cc-header">{{header}}</span>&nbsp;', 798 message : '<span id="cookieconsent:desc" class="cc-message">{{message}}</span>', 799 messagelink : '<span id="cookieconsent:desc" class="cc-message">{{message}} <a aria-label="learn more about cookies" role="button" tabindex="0" class="cc-link" href="{{href}}">{{link}}</a></span>', 800 dismiss : '<a aria-label="dismiss cookie message" role="button" tabindex="0" class="cc-btn cc-dismiss">{{dismiss}}</a>', 801 allow : '<a aria-label="allow cookies" role="button" tabindex="0" class="cc-btn cc-allow">{{allow}}</a>', 802 deny : '<a aria-label="deny cookies" role="button" tabindex="0" class="cc-btn cc-deny">{{deny}}</a>', 803 link : '<a aria-label="learn more about cookies" role="button" tabindex="0" class="cc-link" href="{{href}}">{{link}}</a>', 804 close : '<span aria-label="dismiss cookie message" role="button" tabindex="0" class="cc-close">{{close}}</span>' 805 }, 806 807 content: { 808 message : 'Dette website anvendes cookies til at sikre, at du får den bedste oplevelse på vores website.', 809 dismiss : 'OK', 810 link : 'Mere info', 811 href : '/Default.aspx?Id=2722' 812 } 813 }); 814 })(window); 815 </script> 816 @SnippetEnd("CookieNotice") 817 @SnippetStart("Navbar") 818 @{ 819 var navbar_AreaFirstPage = (int)Dynamicweb.Services.Pages.GetFirstPageForArea(1).ID; 820 //var navbar_ItemCount = topPageviewPages.Count(o => (bool)o["Enabled"] && (string)o["ItemType"] == "SB_Page" && (bool)o["IsFolder"] == false); 821 822 var topPages = Dynamicweb.Services.Pages.GetPagesByAreaID(1).Where(x => x.Active && x.Level <= 1 && x.ItemType == "SB_Page").ToList(); 823 var navbar_ItemCount = topPages.Count; 824 } 825 <div class="nav-underlay-block" onclick="navToggle(this)"></div> 826 <div class="nav-block"> 827 <div class="nav-header"> 828 <a href="/Default.aspx?Id=@(navbar_AreaFirstPage)" title="Velkommen til Skabertrang"></a> 829 <div class="nav-toggle" onclick="navToggle(this)" tabindex="0"> 830 <div class="nav-toggle-bars"> 831 <div></div> 832 </div> 833 </div> 834 </div> 835 <div class="nav-collapse" data-itemcount="@(navbar_ItemCount)"> 836 <ul> 837 @foreach (var page in topPages.OrderBy(x => x.Sort)) { 838 var id = (int)page.ID; 839 var active = (bool)page.Active; 840 var inpath = (bool)false; 841 var level = (int)page.Level; 842 var menutext = (string)page.MenuText; 843 var itemtype = (string)page.ItemType; 844 var isfolder = (bool)page.IsFolder; 845 string navTag = (string)page.NavigationTag; 846 string navHl = (!string.IsNullOrWhiteSpace(navTag) && navTag == "menu_hl") ? "nav-highlight" : ""; 847 848 //var enabled = (bool)page["Enabled"]; 849 //var pages = (List<Dictionary<string, object>>)page["Pages"]; 850 851 var className = string.Empty; 852 className += active ? " active" : string.Empty; 853 className += inpath ? " inpath" : string.Empty; 854 855 <li class="@(className.Trim()) @navHl" data-active="@(active ? 1 : 0)" data-inpath="@(inpath ? 1 : 0)" data-level="@(level)" data-pageid="@(id)" data-pages="@(topPages != null ? topPages.Count : 0)"> 856 <a href="/Default.aspx?ID=@(id)">@(menutext)</a> 857 858 @* Vi tilbyder - CF This is old fake news *@ 859 @*@if (id == 2678) { 860 <ul class="hidden"> 861 @foreach (var subpage in topPages) { 862 var s_id = (int)subpage.ID; 863 var s_menutext = (string)subpage.MenuText; 864 865 <li> 866 <a href="/Default.aspx?ID=@(s_id)">@(s_menutext)</a> 867 </li> 868 } 869 </ul> 870 871 <i class="fa fa-bars" aria-hidden="true"></i> 872 }*@ 873 </li> 874 } 875 </ul> 876 </div> 877 </div> 878 <script type="text/javascript"> 879 function navToggle(target) { 880 var $navUnderlay = $('.nav-underlay-block'); 881 var $nav = $('.nav-block'); 882 var $collapse = $('.nav-collapse'); 883 884 if (!$nav.hasClass('nav-open')) { 885 $navUnderlay.addClass('nav-underlay-open'); 886 $nav.addClass('nav-open'); 887 } else { 888 $('> ul > li > ul', $collapse).addClass('hidden'); 889 $('> ul > li > .fa-bars', $collapse).removeClass('fa-rotate-90'); 890 891 $navUnderlay.removeClass('nav-underlay-open'); 892 $nav.removeClass('nav-open'); 893 } 894 } 895 896 $(function() { 897 $('.nav-collapse').on('click', 'li[data-pageid="2678"] > .fa-bars', function(e) { 898 e.preventDefault(); 899 900 var $this = $(this); 901 var $ul = $('> ul', $this.parent()); 902 903 if ($ul.hasClass('hidden')) { 904 $ul.removeClass('hidden'); 905 $this.addClass('fa-rotate-90'); 906 } else { 907 $ul.addClass('hidden'); 908 $this.removeClass('fa-rotate-90'); 909 } 910 }); 911 }); 912 913 914 //$(".nav-toggle").keyup(function (event) { 915 // if (event.keyCode === 13) { 916 // $(this).click(); 917 // } 918 //}); 919 920 //$(".nav-toggle").click(function () { 921 //}); 922 </script> 923 @SnippetEnd("Navbar") 924 @inherits RazorTemplateBase<RazorTemplateModel<Template>> 925 @using Dynamicweb.Rendering 926 927 @SnippetStart("NavbarCanvas") 928 @{ 929 var navbarCanvas_AreaFirstPage = (int)Dynamicweb.Services.Pages.GetFirstPageForArea(1).ID; 930 //var navbarCanvas_ItemCount = topPageviewPages.Count(o => (bool)o["Enabled"] && (string)o["ItemType"] == "SB_Page" && (bool)o["IsFolder"] == false); 931 932 var navbarTopPages = Dynamicweb.Services.Pages.GetPagesByAreaID(1).Where(x => x.Active && x.Level <= 1 && x.ItemType == "SB_Page").ToList(); 933 var navbar_TopItemCount = topPages.Count; 934 } 935 <div class="navcanvas-block" data-itemcount="@(navbar_TopItemCount)"> 936 <ul> 937 <li> 938 <a href="/Default.aspx?Id=@(navbar_AreaFirstPage)"> </a> 939 </li> 940 @foreach (var page in topPages) { 941 var id = (int)page.ID; 942 var active = (bool)page.Active; 943 var inpath = (bool)false; 944 var level = (int)page.Level; 945 var menutext = (string)page.MenuText; 946 var itemtype = (string)page.ItemType; 947 var isfolder = (bool)page.IsFolder; 948 949 if (!active) { 950 continue; 951 } 952 953 if (itemtype != "SB_Page") { 954 continue; 955 } 956 957 if (isfolder) { 958 continue; 959 } 960 961 var className = string.Empty; 962 className += active ? " active" : string.Empty; 963 className += inpath ? " inpath" : string.Empty; 964 965 <li class="@(className.Trim())" data-active="@(active ? 1 : 0)" data-inpath="@(inpath ? 1 : 0)" data-level="@(level)" data-pageid="@(id)" data-pages="@(topPages != null ? topPages.Count : 0)"> 966 <a href="/Default.aspx?ID=@(id)">@(menutext)</a> 967 </li> 968 } 969 </ul> 970 </div> 971 @SnippetEnd("NavbarCanvas") 972 @SnippetStart("SB") 973 @{ 974 //var navbar_AreaFirstPage = (int)Dynamicweb.Services.Pages.GetFirstPageForArea(1).ID; 975 } 976 <div class="sb-footer"> 977 <div class="container"> 978 <div class="row"> 979 <div class="col-lg-6 col-md-6 col-sm-6 col-xs-10 col-xs-offset-1 col-sm-offset-0 col-md-offset-0"> 980 <div class="logo-holder col-xs-12"> 981 <svg id="logo-s" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 794.457 933.892"><defs><lineargradient id="a" x1="0.5" x2="0.5" y2="1" gradientunits="objectBoundingBox"><stop offset="0" stop-color="#fff"></stop><stop offset="0.419" stop-color="#a2a2a2"></stop><stop offset="1" stop-color="#575757"></stop></lineargradient></defs><path class="a" d="M486.4,363.18c-113.494-32.427-158.891-61.611-158.891-100.523,0-74.582,97.28-81.067,139.435-81.067,84.31,0,152.406,22.7,175.1,35.67l32.427,12.971,16.213-29.184,48.64-94.038,19.456-35.67L723.118,55.126C655.022,19.456,551.256,0,434.519,0,168.619,0,25.941,142.678,25.941,282.113c0,123.222,94.038,210.774,282.113,265.9,145.921,38.912,165.377,74.582,165.377,103.766,0,64.854-87.552,90.8-158.891,90.8-97.28,0-162.134-22.7-191.318-35.67L90.8,693.934,74.582,726.361,19.456,833.369,0,865.8l38.912,16.213c77.824,35.67,181.59,51.883,321.026,51.883,249.686,0,434.519-123.222,434.519-291.841C791.214,509.1,697.177,424.791,486.4,363.18Z"></path></svg> 982 </div> 983 <div class="sb-logo-wrapper"> 984 <a href="/Default.aspx?Id=@(navbar_AreaFirstPage)" id="sb-namelogo" title="Skabertrang logo"><img src="/Files/Templates/Designs/skabertrang/css/img/logo-menu-white.png" alt="Skabertrang logo" title="Skabertrang logo"></a> 985 </div> 986 <div> 987 <p class="company-info"> 988 Stagehøjvej 27a<br> 989 8600 Silkeborg<br> 990 Telefon: <a href="tel:86821655">86 82 16 55</a><br> 991 <a href="mailto:info@skabertrang.dk">info@skabertrang.dk</a><br> 992 CVR: 51776712 993 </p> 994 </div> 995 <div> 996 <a href="https://www.facebook.com/skabertrang" class="sm-icons" target="_blank" rel="noopener" title="Skabertrang facebook"> 997 <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 41.3 41.2" xml:space="preserve"> 998 <g transform="translate(-903.2 -2819.999)"> 999 <path class="a" d="M923.8,2820c-11.4,0-20.6,9.2-20.6,20.6c0,11.4,9.2,20.6,20.6,20.6c11.4,0,20.6-9.2,20.6-20.6l0,0 C944.4,2829.2,935.2,2820,923.8,2820C923.8,2820,923.8,2820,923.8,2820z M929.2,2840.5h-3.6v12.7h-5.3v-12.7h-2.5v-4.5h2.5v-2.9c0-2.1,1-5.4,5.4-5.4h3.9v4.4h-2.8c-0.5,0-1.1,0.3-1.1,1.3v2.7h4L929.2,2840.5z"></path> 1000 </g> 1001 </svg> 1002 </a> 1003 <a href="https://www.linkedin.com/company/skabertrang" class="sm-icons" target="_blank" rel="noopener" title="Skabertrang linkedin"> 1004 <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 41.3 41.2" xml:space="preserve"> 1005 <path class="a" d="M32.1,30.3v-8c0-4.3-2.3-6.3-5.4-6.3c-1.7-0.1-3.3,0.8-4.2,2.3v-2h-4.7c0.1,1.3,0,14,0,14h4.7v-7.8c0-0.4,0-0.8,0.1-1.2 1006 c0.4-1,1.3-1.7,2.4-1.7c1.7,0,2.3,1.3,2.3,3.2v7.5L32.1,30.3L32.1,30.3z M13,14.4c1.3,0.1,2.5-0.9,2.6-2.2c0.1-1.3-0.9-2.5-2.2-2.6 1007 c-0.1,0-0.3,0-0.4,0c-1.3-0.1-2.5,0.9-2.6,2.2c0,0.1,0,0.1,0,0.2c0,1.3,1,2.4,2.3,2.4C12.9,14.4,13,14.4,13,14.4L13,14.4z 1008 M20.6,41.2C9.2,41.2,0,32,0,20.6S9.2,0,20.6,0s20.6,9.2,20.6,20.6l0,0C41.2,32,32,41.2,20.6,41.2C20.6,41.2,20.6,41.2,20.6,41.2z 1009 M15.4,30.3v-14h-4.7v14H15.4z"></path> 1010 </svg> 1011 1012 </a> 1013 1014 @*<svg class="sm-icons" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 109.8 41.203"> 1015 <defs></defs> 1016 <g transform="translate(-903.2 -2819.999)"> 1017 <path class="a" d="M20.6,0A20.6,20.6,0,1,0,41.2,20.6,20.587,20.587,0,0,0,20.6,0Zm5.443,20.518h-3.6V33.247H17.168V20.518H14.655V16h2.512V13.064c0-2.094,1-5.36,5.36-5.36h3.936v4.355H23.616c-.5,0-1.089.251-1.089,1.256V16h4.02Z" transform="translate(903.2 2819.999)"></path> 1018 <path class="a" d="M32.138,30.284V22.25c0-4.326-2.266-6.318-5.356-6.318a4.6,4.6,0,0,0-4.189,2.335V16.275h-4.67c.069,1.3,0,14.009,0,14.009h4.67V22.456a3.213,3.213,0,0,1,.137-1.167,2.584,2.584,0,0,1,2.4-1.717c1.717,0,2.335,1.3,2.335,3.159v7.485l4.67.069ZM13.048,14.352a2.412,2.412,0,1,0,0-4.807,2.4,2.4,0,0,0-2.61,2.4,2.367,2.367,0,0,0,2.61,2.4ZM20.6,41.2A20.6,20.6,0,1,1,41.2,20.6,20.574,20.574,0,0,1,20.6,41.2ZM15.382,30.284V16.275h-4.67V30.284Z" transform="translate(971.797 2819.999)"></path> 1019 </g> 1020 </svg>*@ 1021 1022 @*<svg class="sm-icons" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 109.8 41.203"> 1023 <defs></defs> 1024 <g transform="translate(-903.2 -2819.999)"> 1025 <a href="https://www.facebook.com/skabertrang" target="_blank" rel="noopener" title="Skabertrang facebook"><path class="a" d="M20.6,0A20.6,20.6,0,1,0,41.2,20.6,20.587,20.587,0,0,0,20.6,0Zm5.443,20.518h-3.6V33.247H17.168V20.518H14.655V16h2.512V13.064c0-2.094,1-5.36,5.36-5.36h3.936v4.355H23.616c-.5,0-1.089.251-1.089,1.256V16h4.02Z" transform="translate(903.2 2819.999)"></path></a> 1026 <a href="https://www.linkedin.com/company/skabertrang" target="_blank" rel="noopener" title="Skabertrang linkedin"><path class="a" d="M32.138,30.284V22.25c0-4.326-2.266-6.318-5.356-6.318a4.6,4.6,0,0,0-4.189,2.335V16.275h-4.67c.069,1.3,0,14.009,0,14.009h4.67V22.456a3.213,3.213,0,0,1,.137-1.167,2.584,2.584,0,0,1,2.4-1.717c1.717,0,2.335,1.3,2.335,3.159v7.485l4.67.069ZM13.048,14.352a2.412,2.412,0,1,0,0-4.807,2.4,2.4,0,0,0-2.61,2.4,2.367,2.367,0,0,0,2.61,2.4ZM20.6,41.2A20.6,20.6,0,1,1,41.2,20.6,20.574,20.574,0,0,1,20.6,41.2ZM15.382,30.284V16.275h-4.67V30.284Z" transform="translate(971.797 2819.999)"></path></a> 1027 </g> 1028 </svg>*@ 1029 </div> 1030 <div> 1031 <br> <a href="https://www.dnb.com/da-dk/om-bisnode/hvad-vi-gor/live-rating-logo/" target="_blank" rel="noopener" class="bisnode-logo"><img oncontextmenu="return false" title="Vi er en kreditv&aelig;rdig virksomhed baseret p&aring; Bisnodes kreditvurderingssystem. Vurderingen er foretaget ud fra en m&aelig;ngde forskellige beslutningsregler. Oplysningerne bliver opdateret dagligt via Bisnodes database. Kreditvurderingen af virksomheden er s&aring;ledes altid aktuel." alt="Vi er en kreditv&aelig;rdig virksomhed baseret p&aring; Bisnodes kreditvurderingssystem. Vurderingen er foretaget ud fra en m&aelig;ngde forskellige beslutningsregler. Oplysningerne bliver opdateret dagligt via Bisnodes database. Kreditvurderingen af virksomheden er s&aring;ledes altid aktuel." id="img_98_58_px_tr1" src="https://merit.soliditet.dk/merit/imageGenerator/display?lang=DK&country=DK&cId=dSFi%2BuoboRR3F0yFtaqK8g%3D%3D&cUid=h9tf3GR2evw%3D&imgType=img_98_58_px_tr1"></a> 1032 </div> 1033 </div> 1034 1035 1036 <div class="col-lg-6 col-md-6 col-sm-6 col-xs-10 col-xs-offset-1 col-sm-offset-0 col-md-offset-0"> 1037 <div class="sb-footerlinks"> 1038 <div> 1039 <h4>@Translate("Shortcuts", "Genveje")</h4> 1040 @foreach (var footerLinks in GetLoop("Item.Area.FooterLinks")) 1041 { 1042 string linkurl = footerLinks.GetString("Item.Area.FooterLinks.Page"); 1043 <a href="@linkurl">@footerLinks.GetString("Item.Area.FooterLinks.LinkText")</a> 1044 } 1045 </div> 1046 </div> 1047 </div> 1048 1049 @*<div class="col-lg-4 col-md-4 col-sm-6 col-xs-10 col-xs-offset-1 col-md-offset-0 form-wrapper"> 1050 <h4>Tilmeld Nyhedsbrev</h4> 1051 <form id="_form_1_" action="https://skabertrang83821.activehosted.com/proc.php" method="post" enctype="multipart/form-data" enctype="multipart/form-data" data-fv-live="disabled" data-fv-framework="bootstrap" data-fv-icon-required="fa fa-asterisk" data-fv-icon-valid="fa fa-check" data-fv-icon-invalid="fa fa-times" data-fv-icon-validating="fa fa-refresh"> 1052 <input type="hidden" name="u" value="1"> 1053 <input type="hidden" name="f" value="1"> 1054 <input type="hidden" name="s"> 1055 <input type="hidden" name="c" value="0"> 1056 <input type="hidden" name="m" value="0"> 1057 <input type="hidden" name="act" value="sub"> 1058 <input type="hidden" name="v" value="2"> 1059 <div class="form-group"> 1060 <input type="text" class="form-control" id="kampagne-Navn" required="" name="firstname" placeholder="Navn" data-validation="length" data-validation-length="min5" data-validation-error-msg="Angiv venligst dit fulde navn."> 1061 </div> 1062 <div class="form-group"> 1063 <input type="text" class="form-control" required="" id="kampagne-Email" name="email" placeholder="E-mail *" data-validation="email" data-validation-error-msg="Angiv venligst din e-mail"> 1064 </div> 1065 <div class="form-group"> 1066 <input type="text" class="form-control" id="kampagne-Arbejdsplads" name="organization" placeholder="Virksomhed"> 1067 </div> 1068 <div> 1069 <p> 1070 Vi udsender 4-6 nyhedsbreve om året med inspiration til din markedsføring samt viden og tilbud fra bureauet og branchen. 1071 Du kan til enhver tid afmelde dig med et enkelt klik. 1072 <a href="@privacyPolicyLink" title="Privatlivspolitik">@Translate("Privatlivspolitik")</a> 1073 </p> 1074 1075 </div> 1076 <div class="submit-wrapper"> 1077 <div class="col-xs-6"> 1078 <button type="submit" class="btn btn-orange" id="kampagne-Submit">Tilmeld mig</button> 1079 </div> 1080 </div> 1081 </form> 1082 </div>*@ 1083 </div> 1084 </div> 1085 </div> 1086 <script type="text/javascript"> 1087 $(document).ready(function () { 1088 1089 1090 1091 1092 $('#termslabel').on('click', function () { 1093 var checkbox = $('#txtChk'); 1094 1095 if (!checkbox.prop("checked")) { 1096 checkbox.prop("checked", true); 1097 } 1098 else { 1099 checkbox.prop("checked", false); 1100 } 1101 1102 }); 1103 }); 1104 </script> 1105 @SnippetEnd("SB") 1106 @SnippetStart("Footer") 1107 @{ 1108 var footer_AgencyHeadline = GetString("Item.Area.AgencyHeadline"); 1109 var footer_AgencyText = GetString("Item.Area.AgencyText"); 1110 var footer_AgencyLinks = GetString("Item.Area.AgencyLinks"); 1111 var footer_AgencyClass = !string.IsNullOrEmpty(footer_AgencyLinks); 1112 1113 var footer_OnlineHeadline = GetString("Item.Area.OnlineHeadline"); 1114 var footer_OnlineText = GetString("Item.Area.OnlineText"); 1115 var footer_OnlineLinks = GetString("Item.Area.OnlineLinks"); 1116 var footer_OnlineClass = !string.IsNullOrEmpty(footer_OnlineLinks); 1117 1118 var footer_PrintHeadline = GetString("Item.Area.PrintHeadline"); 1119 var footer_PrintText = GetString("Item.Area.PrintText"); 1120 var footer_PrintLinks = GetString("Item.Area.PrintLinks"); 1121 var footer_PrintClass = !string.IsNullOrEmpty(footer_PrintLinks); 1122 } 1123 <div class="footer-block"> 1124 <div class="container"> 1125 <div class="row"> 1126 <div class="col-lg-4"> 1127 <a href="/Default.aspx?Id=@(footer_AgencyLinks)" class="@(footer_AgencyClass)"> 1128 <span>@(footer_AgencyHeadline)</span> 1129 @(footer_AgencyText) 1130 </a> 1131 </div> 1132 <div class="col-lg-4"> 1133 <a href="/Default.aspx?Id=@(footer_OnlineLinks)" class="@(footer_OnlineClass)"> 1134 <span>@(footer_OnlineHeadline)</span> 1135 @(footer_OnlineText) 1136 </a> 1137 </div> 1138 <div class="col-lg-4"> 1139 <a href="/Default.aspx?Id=@(footer_PrintLinks)" class="@(footer_PrintClass)"> 1140 <span>@(footer_PrintHeadline)</span> 1141 @(footer_PrintText) 1142 </a> 1143 </div> 1144 </div> 1145 </div> 1146 </div> 1147 1148 @SnippetEnd("Footer") 1149 @SnippetStart("KampagneVindWebsite") 1150 <div class="kampagnevindwebsite-overlay" id="kampagnevindwebsite-overlay"></div> 1151 <div class="kampagnevindwebsite-window" id="kampagnevindwebsite-window"> 1152 <div class="kampagnevindwebsite-content" id="kampagnevindwebsite-content"> 1153 <div class="kampagnevindwebsite-close"> 1154 <a href="javascript:void(kampagnevindwebsite_close())"></a> 1155 </div> 1156 1157 <h2>Skabertrang | Silkeborg Bogtryk har fÃ¥et nyt navn og ny hjemmeside.<br>Det skal fejres!</h2> 1158 <h2>VIND ET NYT WEBSITE MED WEBSHOP</h2> 1159 <p> 1160 Tilmeld dig vores nyhedsbrev og deltag i konkurrencen om en spritny webløsning til en værdi af 29.995 kr. 1161 <br> 1162 <a href="/Default.aspx?Id=2732">Læs mere</a> 1163 </p> 1164 1165 <form action="/Default.aspx?Id=2732" method="post" id="kampagnevindwebsite-form" onsubmit="return kampagnevindwebsite_submit(this);"> 1166 <input type="hidden" name="ID" value="2732"> 1167 <input type="hidden" name="FormPID" value="7921"> 1168 <input type="hidden" name="FormID" value="12"> 1169 <input type="hidden" name="SubmitForm" value="true"> 1170 <input type="hidden" name="_sys_to_email" value="bot@dynamicweb.com"> 1171 1172 @{ 1173 var formId = "12"; 1174 var formch1_f = Dynamicweb.Core.Helpers.StringHelper.Md5HashToString(formId + "dwdotnetsecret"); 1175 var formch1_s = Dynamicweb.Core.Helpers.StringHelper.Md5HashToString(System.Web.HttpContext.Current.Session.SessionID); 1176 var formch1_i = Dynamicweb.Core.Helpers.StringHelper.Md5HashToString(System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_HOST"]); 1177 } 1178 1179 <input type="hidden" name="FormCH1_h" value=""> 1180 <input type="hidden" name="FormCH1_f" value="@(formch1_f)"> 1181 <input type="hidden" name="FormCH1_s" value="@(formch1_s)"> 1182 <input type="hidden" name="FormCH1_i" value="@(formch1_i)"> 1183 1184 <div class="form-group"> 1185 <input type="text" class="form-control" id="kampagnevindwebsite-company" name="kampagnevindwebsite_Virksomhed" placeholder="Virksomhed" required=""> 1186 </div> 1187 <div class="form-group"> 1188 <input type="text" class="form-control" id="kampagnevindwebsite-name" name="kampagnevindwebsite_Navn" placeholder="Navn" required=""> 1189 </div> 1190 <div class="form-group"> 1191 <input type="email" class="form-control" id="kampagnevindwebsite-email" name="kampagnevindwebsite_Email" placeholder="E-mail" required=""> 1192 </div> 1193 1194 <button type="submit" class="btn btn-default">Tilmeld</button> 1195 <button type="button" class="btn btn-default hidden-sm hidden-md hidden-lg" onclick="kampagnevindwebsite_close()"> 1196 <i class="fa fa-times" aria-hidden="true"></i> Luk 1197 </button> 1198 </form> 1199 </div> 1200 </div> 1201 1202 <script type="text/javascript"> 1203 function kampagnevindwebsite_post_to_createsend(company, name, email, callback) { 1204 var o = { 1205 // company 1206 'cm-f-xjjddh': company, 1207 // name 1208 'cm-name': name, 1209 // email 1210 'cm-udml-udml': email 1211 }; 1212 1213 1214 $.ajax({ 1215 dataType: 'json', 1216 url: 'https://skabertrang.createsend.com/t/i/s/udml/?callback=?', 1217 data: o, 1218 success: function() { 1219 callback(); 1220 } 1221 }); 1222 } 1223 1224 function kampagnevindwebsite_submit(target) { 1225 target.elements['FormCH1_h'].value = '@(Dynamicweb.Core.Helpers.StringHelper.Md5HashToString(System.Web.HttpContext.Current.Session.SessionID + "dwdotnetsecret"))'; 1226 target.elements['_sys_to_email'].value = ''; 1227 1228 var company = $.trim($('#kampagnevindwebsite-company').val()); 1229 var name = $.trim($('#kampagnevindwebsite-name').val()); 1230 var email = $.trim($('#kampagnevindwebsite-email').val()); 1231 1232 if (company != '' && name != '' && email != '') { 1233 var o = { 1234 'ID' : target.elements['ID'].value, 1235 'FormPID' : target.elements['FormPID'].value, 1236 'FormID' : target.elements['FormID'].value, 1237 'SubmitForm' : target.elements['SubmitForm'].value, 1238 '_sys_to_email' : target.elements['_sys_to_email'].value, 1239 1240 'FormCH1_h' : target.elements['FormCH1_h'].value, 1241 'FormCH1_f' : target.elements['FormCH1_f'].value, 1242 'FormCH1_s' : target.elements['FormCH1_s'].value, 1243 'FormCH1_i' : target.elements['FormCH1_i'].value, 1244 1245 'kampagnevindwebsite_Virksomhed' : company, 1246 'kampagnevindwebsite_Navn' : name, 1247 'kampagnevindwebsite_Email' : email 1248 }; 1249 1250 $('input[type="text"], input[type="email"], button[type="submit"]', target).prop('disabled', true); 1251 1252 kampagnevindwebsite_post_to_createsend(company, name, email, function() { 1253 $.ajax({ 1254 type: 'POST', 1255 url: '/Default.aspx?Id=2732', 1256 data: o, 1257 success: function() { 1258 $('input[type="text"], input[type="email"], button[type="submit"]', target).prop('disabled', false); 1259 $.cookie('kampagnevindwebsite_setted', '1', { expires: 356 }); 1260 1261 location.href = '/Default.aspx?Id=2733'; 1262 } 1263 }); 1264 }); 1265 } 1266 1267 return false; 1268 } 1269 1270 function kampagnevindwebsite_close() { 1271 $('#kampagnevindwebsite-form')[0].reset(); 1272 1273 $('#kampagnevindwebsite-window').animate({ opacity: 0 }, 200, function() { 1274 $('#kampagnevindwebsite-overlay').animate({ opacity: 0 }, 200, function() { 1275 $('#kampagnevindwebsite-overlay').css('display', 'none'); 1276 $('#kampagnevindwebsite-window').css('display', 'none'); 1277 }); 1278 }); 1279 } 1280 1281 function kampagnevindwebsite_open() { 1282 $('#kampagnevindwebsite-form')[0].reset(); 1283 1284 $('#kampagnevindwebsite-overlay').css({ opacity: 0, display: 'block' }); 1285 $('#kampagnevindwebsite-window').css({ opacity: 0, display: 'block' }); 1286 1287 $('#kampagnevindwebsite-overlay').animate({ opacity: 0.88 }, 200, function() { 1288 $('#kampagnevindwebsite-window').animate({ opacity: 1 }, 200); 1289 }); 1290 } 1291 1292 $(function() { 1293 var pageid = @(Pageview.Page.ID); 1294 1295 if (pageid == 2732) 1296 return; 1297 1298 if ($.cookie('kampagnevindwebsite_setted')) 1299 return; 1300 1301 kampagnevindwebsite_open(); 1302 }); 1303 </script> 1304 @SnippetEnd("KampagneVindWebsite")