Error executing template "Designs/Jks2022/_parsed/NewsPage.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_086bccd987ca4fd78e19e8d7609b8023.Execute() in D:\Web\jks.dk\Files\Templates\Designs\Jks2022\_parsed\NewsPage.parsed.cshtml:line 271
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.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
2
3 @{
4 //for cookieinformation and flags
5 string languageCode = Pageview.Area.Culture.Substring(0, 2).ToUpper();
6 int modelId = Model.Area.ID;
7 string googleTagManagerId = Model.Area.Item.GetString("GoogleTagManager");
8 }
9
10 <!DOCTYPE html>
11 <html>
12 <head>
13
14 <!-- Google tag (gtag.js) -->
15 @if (modelId == 18)
16 {
17 <script async src="https://www.googletagmanager.com/gtag/js?id=G-ELDPWGB1ZZ"></script>
18 <script>
19 window.dataLayer = window.dataLayer || [];
20 function gtag() { dataLayer.push(arguments); }
21 gtag('js', new Date());
22 gtag('config', 'G-ELDPWGB1ZZ');
23 </script>
24 }
25 else if (modelId == 10)
26 {
27 <script async src="https://www.googletagmanager.com/gtag/js?id=G-D299QWVPJP"></script>
28 <script>
29 window.dataLayer = window.dataLayer || [];
30 function gtag() { dataLayer.push(arguments); }
31 gtag('js', new Date());
32 gtag('config', 'G-D299QWVPJP');
33 </script>
34 }
35 else if (modelId == 12)
36 {
37 <script async src="https://www.googletagmanager.com/gtag/js?id=G-PHS2ZDS6BW"></script>
38 <script>
39 window.dataLayer = window.dataLayer || [];
40 function gtag() { dataLayer.push(arguments); }
41 gtag('js', new Date());
42 gtag('config', 'G-PHS2ZDS6BW');
43 </script>
44 }
45 <!-- End Google tag (gtag.js) -->
46
47 <meta charset="utf-8" />
48 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
49 <title>@Model.Title</title>
50 <meta name="description" content="@Model.Description" />
51
52 <link href="@Model.Area.Item.GetFile("FavIcon")" type="image/x-icon" rel="icon" />
53 <link href="@Model.Area.Item.GetFile("FavIcon")" type="image/x-icon" rel="shortcut icon" />
54
55 @if (System.Web.HttpContext.Current.Request.Url.Host.Contains("staging") || System.Web.HttpContext.Current.Request.Url.Host.Contains("vestjyskmarketing") || Pageview.Area.Noindex)
56 {
57 <meta name="robots" content="noindex,nofollow" />
58 }
59
60 <script id="CookieConsent" src="https://policy.app.cookieinformation.com/uc.js" data-culture="@languageCode" type="text/javascript"></script>
61
62 @if (!String.IsNullOrEmpty(googleTagManagerId))
63 {
64 <!-- Google Tag Manager -->
65 <script>
66
67 window.addEventListener('CookieInformationConsentGiven', function (event) {
68 if (CookieInformation.getConsentGivenFor('cookie_cat_marketing')) {
69
70 (function (w, d, s, l, i) {
71 w[l] = w[l] || []; w[l].push({
72 'gtm.start':
73 new Date().getTime(), event: 'gtm.js'
74 }); var f = d.getElementsByTagName(s)[0],
75 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
76 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
77 })(window, document, 'script', 'dataLayer', '@googleTagManagerId');
78
79 }
80 }, false);
81
82 </script>
83 <!-- End Google Tag Manager -->
84 }
85
86
87 @RenderSnippet("Metas")
88
89 @if (modelId == 17)
90 {
91 <link rel="stylesheet" href="/Files/Templates/Designs/dist/CareerJks2022.css?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/CareerJks2022.css").Ticks" />
92 }
93 else if (modelId == 16)
94 {
95 <link rel="stylesheet" href="/Files/Templates/Designs/dist/ProfJks2022.css?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/ProfJks2022.css").Ticks" />
96 }
97 else
98 {
99 <link rel="stylesheet" href="/Files/Templates/Designs/dist/Jks2022.css?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/Jks2022.css").Ticks" />
100 }
101
102 @RenderSnippet("Styles")
103 @RenderSnippet("Scripts")
104 </head>
105
106
107 <body>
108
109 @if (!String.IsNullOrEmpty(googleTagManagerId))
110 {
111 <!-- Google Tag Manager (noscript) -->
112 <noscript>
113 <iframe src="" data-consent-src="https://www.googletagmanager.com/ns.html?id=@googleTagManagerId" data-category-consent="cookie_cat_marketing" height="0" width="0" style="display:none;visibility:hidden"></iframe>
114 </noscript>
115 <!-- End Google Tag Manager (noscript) -->
116 }
117
118 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
119
120 @using Dynamicweb.Content
121 @using Dynamicweb.Content.Files.Metadata
122 @using Dynamicweb.Extensibility;
123
124 @{
125 var areaID = Dynamicweb.Frontend.PageView.Current().Area.ID;
126 var pageID = Dynamicweb.Frontend.PageView.Current().Page.ID;
127 var pageType = Dynamicweb.Frontend.PageView.Current().Page.ItemType;
128 var pageService = ServiceLocator.Current.GetPageService();
129 var rootPages = pageService.GetRootPagesForArea(areaID).Where(p => p.Active && p.Item != null).ToArray();
130 int searchpageIdGlobal = GetPageIdByNavigationTag("SearchPageGlobal");
131 }
132 @{
133 var navigationSettingsDesktop = new Dynamicweb.Frontend.Navigation.NavigationSettings()
134 {
135 StartLevel = 1,
136 StopLevel = 2,
137 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.All
138 };
139 var navigationTemplateDesktop = "Navigation/NavigationDesktop.cshtml";
140
141 var navigationSettingsMobile = new Dynamicweb.Frontend.Navigation.NavigationSettings()
142 {
143 StartLevel = 1,
144 StopLevel = 999,
145 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.All
146 };
147
148 var navigationTemplateMobile = "Navigation/NavigationMobile.cshtml";
149 string classHeader = Dynamicweb.Core.Converter.ToString(Dynamicweb.Context.Current.Items["headerCLass"]);
150 //hack because the special page does not understand the context properly?
151 if (Model.ItemType == "JksDividerPage")
152 {
153 classHeader += "bg-primary nav-light";
154 }
155 else if(Model.ItemType == "DepartmentPage")
156 {
157 classHeader += "bg-eggwhite";
158 }
159
160
161 string logoDesktop = Model.Area.Item.GetString("LogoWide");
162 string logoMobile = Model.Area.Item.GetString("LogoTall");
163
164 if (pageType == "Job" && !classHeader.Contains("nav-light"))
165 {
166 classHeader = classHeader + " nav-light ";
167 }
168
169 if (!classHeader.Contains("nav-light"))
170 {
171 logoDesktop = logoDesktop.Replace("white", "rgb");
172 logoMobile = logoMobile.Replace("white", "rgb");
173 }
174 }
175 <div class="header-wrapper">
176 <header class="container-fluid header @classHeader">
177 <a href="/" id="js-header-logo" class="header__logo-wrapper" title="@Translate("Go to frontpage")">
178 <picture>
179 <source media="(min-width:1200px)" srcset="@logoDesktop">
180 <img class="header__logo-wrapper__logo" src="@logoMobile" alt="@Translate("Logo") @Model.Area.Name">
181 </picture>
182 </a>
183
184 <div class="d-flex justify-content-around align-items-center">
185 <div class="header__desktop__menu__item--search d-lg-none me-4">
186 <a href="/Default.aspx?ID=@searchpageIdGlobal&Search=" class="header__burger__menu__title--search--wrapper ">
187 <div class="header__burger__menu__title--searchicon">
188 </div>
189 </a>
190
191 </div>
192 <div class="header__burger header__burger--active d-lg-none">
193 <input class="header__burger__checkbox" type="checkbox" id="js-burger-checkbox" />
194 <span class="header__burger__line"></span>
195 <span class="header__burger__line"></span>
196 <span class="header__burger__line"></span>
197
198 @Navigation.RenderNavigation(navigationTemplateMobile, navigationSettingsMobile)
199 </div>
200
201 </div>
202
203
204 <div class="flex-column header__desktop__menu-wrapper">
205 @if (Model.Area.Item.GetItems("Shortcuts").Count > 0)
206 {
207 <ul class="header__desktop__shortcuts justify-content-end" id="js-menu-shortcuts">
208 @foreach (var list in Model.Area.Item.GetItems("Shortcuts"))
209 {
210 <li>
211 <a href="@list.GetLink("Link")">@list.GetString("Tekst")</a>
212 </li>
213 }
214 </ul>
215 }
216
217 @Navigation.RenderNavigation(navigationTemplateDesktop, navigationSettingsDesktop)
218 </div>
219
220
221 </header>
222
223 @if (true)
224 {
225 <div class="d-none d-md-block header-mega-menu container-fluid">
226
227 @foreach (var rootPage in rootPages)
228 {
229
230 if (rootPage.Item.ContainsKey("ShowExtendedMenu") && rootPage.Item["ShowExtendedMenu"] != null && bool.Parse(rootPage.Item["ShowExtendedMenu"].ToString()))
231 {
232 var details = rootPage.Item["ExtendedMenuDetails"];
233 var title = rootPage.MenuText;
234 var subPages = pageService.GetPagesByParentID(rootPage.ID).Where(p => p.Active);
235
236 <div class="mega-menu row" role="menu" menuId="@rootPage.ID">
237 <div class="col-7">
238 <div class="col-10 col-lg-8 col-xl-6">
239 <a href="@rootPage.GetPageHrefValue()" class="section-title"><h3 class="title">@title<span class="arrow"></span></h3></a>
240 <p class="details">@details</p>
241 </div>
242 </div>
243 <div class="col-5 sub-pages">
244 <div class="row">
245 @foreach (var subpage in subPages)
246 {
247 <div class="col-6 col-xl-6 link-item"><a href="@subpage.GetPageHrefValue()">@subpage.MenuText</a></div>
248 }
249 </div>
250 </div>
251 </div>
252 }
253 }
254 </div>
255 }
256
257 </div>
258
259
260 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
261
262 @Title("News page template")
263
264
265
266 @{
267 string port = Dynamicweb.Context.Current.Request.Url.Port == 80 ? "http://" : "https://";
268
269 var imageObj = Model.Item.GetFile("Image");
270 string image = "/Admin/Public/GetImage.ashx?Image=" + Model.Item.GetFile("Image") + "&Crop=7&Format=webP&width=1000&Height=600&Quality=75";
271 if (imageObj.HasFocalPoint())
272 {
273 image += "&x=" + imageObj.FocalX + "&y=" + imageObj.FocalY;
274 }
275
276 string someImage = port + Dynamicweb.Context.Current.Request.Url.Host + "/Admin/Public/GetImage.ashx?Image=" + Model.Item.GetFile("Image") + "&Crop=0&width=480&Height=250";
277 }
278
279 @SnippetStart("Metas")
280 <meta property="og:url" content='@Pageview.SearchFriendlyUrl' />
281 <meta property="og:type" content="article" />
282 <meta property="og:title" content="@Model.Item.GetString("Title")" />
283 <meta property="og:description" content="@Model.Item.GetString("SubTitle")" />
284 <meta property="og:image" content="@someImage" />
285 <meta property="og:image:width" content="480" />
286 <meta property="og:image:height" content="250" />
287 @SnippetEnd("Metas")
288
289
290 @SnippetStart("JavaScriptBottom")
291 <script type="text/javascript">
292 function linkedinShare() {
293 var MainUrl = 'https://www.linkedin.com/shareArticle?url=@(Pageview.SearchFriendlyUrl)&mini=true&title=@(Model.Item.GetString("Title"))&summary=@(Model.Item.GetString("SubTitle"))';
294
295 popitup(MainUrl);
296 }
297
298 function facebookShare() {
299 var MainUrl = 'https://www.facebook.com/sharer/sharer.php?u=@(Pageview.SearchFriendlyUrl)';
300 popitup(MainUrl);
301 }
302
303 function popitup(url) {
304 newwindow=window.open(url,'@(Model.Item.GetString("Title"))','height=460,width=670');
305 if (window.focus) {newwindow.focus()}
306 return false;
307 }
308
309 </script>
310 @SnippetEnd("JavaScriptsBottom")
311
312
313 <div class="container-fluid">
314 <div class="article-top article-top__center pb-rem-3 pt-rem-1 pb-rem-md-4 p-rem-lg-4">
315 <div class="article-top__wrapper ">
316 @if (!String.IsNullOrEmpty(Model.Item.GetString("Date")))
317 {
318 <div class="article-top__wrapper__subheader">@Model.Item.GetDateTime("Date").ToString("d-MM-yyyy")</div>
319 }
320
321 <h1 class="article-top__wrapper__header">@Model.Item.GetString("Title")</h1>
322
323 @if (!String.IsNullOrEmpty(Model.Item.GetString("SubTitle")))
324 {
325 <p class="article-top__wrapper__text mx-auto">
326 @Model.Item.GetString("SubTitle")
327 </p>
328 }
329 <div class="article-top__btn-wrapper">
330 <a href="javascript:void(0)" class="m-auto js-smooth-scroll arrow-small arrow-down btn-hover-primary d-block "></a>
331 </div>
332 </div>
333 </div>
334 </div>
335
336 @if (!String.IsNullOrEmpty(Model.Item.GetString("ImageText")) && !String.IsNullOrEmpty(Model.Item.GetString("Image")))
337 {
338 <div class="container-fluid">
339 <section class="entry-picture entry-picture-large pb-rem-5 pb-rem-md-7">
340 <div class="row">
341 <div class="entry-picture__image-wrapper col-12 col-md-6 col-xl-7 d-flex flex-column justify-content-center">
342 <div class="entry-picture__image" style="background-image: url('@image')"></div>
343 </div>
344 <div class="col-12 col-md-6 offset-xl-1 col-xl-4 d-flex flex-column justify-content-center entry-picture__text-wrapper entry-picture__text-wrapper-big">
345 <p class="entry-picture__text article-page__imagetext">
346 @Model.Item.GetString("ImageText")
347 </p>
348 </div>
349 </div>
350 </section>
351 </div>
352 }
353
354 <div class="container-fluid container-fluid-extra">
355 <section class="article-page entry-picture-large pb-rem-5 pb-rem-md-7">
356 <div class="article-page__text">
357 @Model.Item.GetString("Text")
358 </div>
359 <div class="article-page__share">
360 <span class="article-page__share__text">@Translate("Share this article")</span>
361 <a href="javascript:void(0)" onclick="linkedinShare();" class="article-page__share__linkedin"></a>
362 <a href="javascript:void(0)" onclick="facebookShare();" class="article-page__share__facebook"></a>
363 </div>
364 </section>
365 </div>
366
367 @Model.Placeholder("dwcontent", "Indhold", "default:true;sort:1")
368
369 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
370
371 @{
372 int formIdParagraph = Dynamicweb.Core.Converter.ToInt32(Model.Area.Item.GetString("FooterForm")?.Substring(Model.Area.Item.GetString("FooterForm").LastIndexOf('#') + 1));
373 }
374
375 <footer class="footer">
376 <div class="container-fluid container-fluid-extra ">
377 <div class="row position-relative">
378 <div class="col-12 col-md-7">
379 <div class="footer__form-wrapper">
380 <h3 class="footer__form-wrapper__header">
381 <span class="footer__form-wrapper__header__text">@Model.Area.Item.GetString("FooterFormHeadline")</span>
382
383 <div class="footer__form-wrapper__header__svg-wrapper">
384 <svg class="js-footer-form-btn footer__form-wrapper__header__svg-wrapper__svg arrow-small" version="1.1" id="Layer_1"
385 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
386 viewBox="0 0 71 71" style="enable-background:new 0 0 71 71;" xml:space="preserve">
387 <g>
388 <path d="M37.4,26.7l8.8,8.8l-8.8,8.8l-1.9-2l3.3-3.3c0.7-0.7,1.6-1.2,2.9-1.9l-0.4-1c-1.1,0.4-2.1,0.8-3.7,0.8L24.8,37v-2.9
389 L37.6,34c1.6,0,2.8,0.5,3.7,0.8l0.4-1c-1.4-0.7-2.2-1.1-3-1.9l-3.3-3.2L37.4,26.7z" />
390 </g>
391 </svg>
392 </div>
393 </h3>
394
395 <p class="footer__form-wrapper__text">
396 @Model.Area.Item.GetString("FooterFormSubHeadline")
397 </p>
398
399 @if (formIdParagraph > 0 && String.IsNullOrEmpty(System.Web.HttpContext.Current.Request.QueryString["pid"]))
400 {
401 @RenderParagraphContent(formIdParagraph)
402 }
403 </div>
404 </div>
405 <div class="col-12">
406 <div class="d-flex footer__bottom flex-wrap flex-xxl-nowrap">
407 <div class="flex-fill d-none d-lg-block footer__bottom__logo-wrapper pe-lg-3">
408 <img class="footer__bottom__logo-wrapper__logo" src="@Model.Area.Item.GetFile("LogoFooter")" alt="@Translate("Logo")" />
409 </div>
410
411 <ul class="flex-fill footer__bottom__list pe-2 pe-sm-3">
412 <li class="footer__bottom__list__header">@Model.Area.Item.GetString("FooterHeadlineLinkList1")</li>
413 @foreach (var list in Model.Area.Item.GetItems("FooterLinkList1"))
414 {
415 <li class="footer__bottom__list__item">
416 <a class="footer__bottom__list__item__link" href="@list.GetLink("Link")" title="@Translate("Go to") @list.GetString("Tekst")">@list.GetString("Tekst")</a>
417 </li>
418 }
419 </ul>
420 <ul class="flex-fill footer__bottom__list px-2 px-sm-3">
421 <li class="footer__bottom__list__header">@Model.Area.Item.GetString("FooterHeadlineLinkList2")</li>
422 @foreach (var list in Model.Area.Item.GetItems("FooterLinkList2"))
423 {
424 <li class="footer__bottom__list__item">
425 <a class="footer__bottom__list__item__link" href="@list.GetLink("Link")" title="@Translate("Go to") @list.GetString("Tekst")">@list.GetString("Tekst")</a>
426 </li>
427 }
428 </ul>
429
430 @if (Model.Area.Item.GetItems("FooterLinkList3").Count() > 0)
431 {
432 <ul class="flex-fill footer__bottom__list pe-2 pe-sm-3">
433 <li class="footer__bottom__list__header mt-3 mt-sm-0">@Model.Area.Item.GetString("FooterHeadlineLinkList3")</li>
434 @foreach (var list in Model.Area.Item.GetItems("FooterLinkList3"))
435 {
436 <li class="footer__bottom__list__item">
437 <a class="footer__bottom__list__item__link" href="@list.GetLink("Link")" title="@Translate("Go to") @list.GetString("Tekst")">@list.GetString("Tekst")</a>
438 </li>
439 }
440 </ul>
441 }
442
443 <div class="flex-fill footer__bottom__follow d-flex flex-column">
444 <span class="footer__bottom__follow__header d-none d-lg-block">@Translate("Follow us")</span>
445 <div>
446 @foreach (var icon in Model.Area.Item.GetItems("SocialIcons"))
447 {
448 <a href="@icon.GetLink("Link")" title="@Translate("Go to") @icon.GetString("LinkAltText")" class="d-inline-block">
449 <img class="footer__bottom__follow__linkedin img-fluid" src="@icon.GetFile("Icon")" alt="@icon.GetString("LinkAltText")" />
450 </a>
451
452 }
453 </div>
454 @if (!Model.Area.Item.GetBoolean("Hide_Branding_Logo"))
455 {
456 <a href="#">
457 <img class="footer__bottom__follow__jks img-fluid" src="@Model.Area.Item.GetFile("LogoBranding")" alt="@Translate("Logo branding")" />
458 </a>
459 }
460 </div>
461 </div>
462 </div>
463 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("AAA_Logo")))
464 {
465 <div id="aaa_rating" class="aaa_rating">
466 @Model.Area.Item.GetString("AAA_Logo")
467 </div>
468 }
469 </div>
470 </div>
471
472 </footer>
473
474 @if (modelId == 17)
475 {
476 <script src="/Files/Templates/Designs/dist/CareerJks2022.js?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/CareerJks2022.css").Ticks"></script>
477 }
478 else if (modelId == 16)
479 {
480 <script src="/Files/Templates/Designs/dist/ProfJks2022.js?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/ProfJks2022.css").Ticks"></script>
481 }
482 else
483 {
484 <script src="/Files/Templates/Designs/dist/Jks2022.js?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/Jks2022.css").Ticks"></script>
485 }
486
487 <!--Used for youtube video on site-->
488 <div class="modal fade" id="youtubeModal" aria-hidden="true" tabindex="-1">
489 <div class="modal-dialog modal-xl modal-dialog-centered justify-content-center">
490 <div class="modal-content">
491 <div id="js-ytplayer"></div>
492 </div>
493 </div>
494 </div>
495
496 @RenderSnippet("JavaScriptBottom")
497 </body>
498
499 </html>