Error executing template "Designs/deBisschop_generated/Paragraph/JumbotronContainer.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_9b308f5ac81e4ed99813d4345b4ede8f.<>c__DisplayClass5_0.<RenderShoutbox>b__0(TextWriter __razor_helper_writer) in E:\Dynamicweb.NET\Groco-DeBisschop\Production\host\files\Templates\Designs\deBisschop_generated\Paragraph\JumbotronContainer.cshtml:line 497
   at CompiledRazorTemplates.Dynamic.RazorEngine_9b308f5ac81e4ed99813d4345b4ede8f.Execute() in E:\Dynamicweb.NET\Groco-DeBisschop\Production\host\files\Templates\Designs\deBisschop_generated\Paragraph\JumbotronContainer.cshtml:line 263
   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.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using Dynamicweb; 3 @using Dynamicweb.Content.Items; 4 @using Dynamicweb.Content.Items.Metadata; 5 @using Bluedesk.DynamicWeb.ItemTypes; 6 @using Bluedesk.DynamicWeb.ItemTypes.Settings; 7 8 9 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 10 @using Dynamicweb; 11 @using Dynamicweb.Content.Items; 12 @using Bluedesk.DynamicWeb.ItemTypes; 13 @using Bluedesk.DynamicWeb.ItemTypes.Extensions; 14 @using Bluedesk.DynamicWeb.ItemTypes.Configuration; 15 @using Bluedesk.DynamicWeb.ItemTypes.Settings.Configuration; 16 17 @helper RenderButton(ButtonConfiguration ButtonConfiguration, string btnLink, string btnClass, string btnText, string ariaLabel = "", bool newWindow = false, string btnIcon = "", string btnExtraClass = "", string btnTextClass = "", string btnIconClass = "") 18 { 19 string buttonID = ButtonConfiguration.Id; 20 var master_configuration = Dynamicweb.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "MasterConfiguration"); 21 MasterConfig mc = master_configuration.Item.ToCodeFirstItem<MasterConfig>(); 22 23 string FontAwesomeLibrary = mc.GeneralConfiguration.fontawesomeStyle; 24 bool HideIcon = ButtonConfiguration.HideIcon; 25 string CustomIconClass = !string.IsNullOrWhiteSpace(ButtonConfiguration.CustomIcon) ? ButtonConfiguration.CustomIcon : !string.IsNullOrWhiteSpace(btnIcon) ? btnIcon : "fa-chevron-right"; 26 string IconPositionClass = HideIcon ? "default-btn--no-icon" : mc.GeneralConfiguration.IconPosition == "left" ? "default-btn--icon-left" : ""; 27 28 string target = newWindow ? "_blank" : "_self"; 29 string ariaText = !string.IsNullOrWhiteSpace(ariaLabel) ? "aria-label='" + ariaLabel + "'" : ""; 30 31 string styleBlock = GenerateButtonConfigVariables(ButtonConfiguration, mc, Pageview.AreaID); 32 33 if (!string.IsNullOrWhiteSpace(btnLink) && !string.IsNullOrWhiteSpace(btnText)) 34 { 35 <a href="@btnLink" class="btn default-btn default-btn--@buttonID @IconPositionClass @btnClass @btnExtraClass" target="@target" @ariaText style="@styleBlock"> 36 <span class="btn__text @btnTextClass">@btnText</span> 37 @if (!HideIcon) 38 { 39 <i class="btn__icon @FontAwesomeLibrary @CustomIconClass @btnIconClass"></i> 40 } 41 </a> 42 } 43 } 44 45 @helper RenderFontConfig(Dictionary<string, string> FontConfig) 46 { 47 <text>color: @FontConfig["textColor"] !important;</text> 48 49 if (!string.IsNullOrWhiteSpace(FontConfig["textColor"])) 50 { 51 <text> 52 color: @FontConfig["textColor"] !important; 53 </text> 54 } 55 56 if (!string.IsNullOrWhiteSpace(FontConfig["fontSize"])) 57 { 58 <text>font-size: @FontConfig["fontSize"] !important;</text> 59 } 60 if (!string.IsNullOrWhiteSpace(FontConfig["lineHeight"])) 61 { 62 <text>line-height: @FontConfig["lineHeight"] !important;</text> 63 } 64 if (!string.IsNullOrWhiteSpace(FontConfig["fontFamily"])) 65 { 66 <text>font-family: @FontConfig["fontFamily"] !important;</text> 67 } 68 if (!string.IsNullOrWhiteSpace(FontConfig["fontWeight"])) 69 { 70 <text>font-weight: @FontConfig["fontWeight"] !important;</text> 71 } 72 if (!string.IsNullOrWhiteSpace(FontConfig["fontStyle"])) 73 { 74 if (FontConfig["fontStyle"] != "none") 75 { 76 <text>text-transform: @FontConfig["fontStyle"] !important;</text> 77 } 78 } 79 } 80 81 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 82 @using Dynamicweb; 83 @using Dynamicweb.Content.Items; 84 @using Bluedesk.DynamicWeb.ItemTypes; 85 86 @functions { 87 88 Dictionary<string, string> GetFontConfiguration(string TextColor, FontConfigurationItemTab FontConfiguration) 89 { 90 var colorService = new ColorSwatchService(); 91 TextColor = !string.IsNullOrWhiteSpace(TextColor) ? TextColor : "" ; 92 TextColor = !TextColor.Contains("#") ? colorService.GetHexColor(Pageview.AreaID, TextColor) : TextColor; 93 Dictionary<string, string> FontConfig = new Dictionary<string, string>() { 94 { "textColor" , TextColor }, 95 { "fontSize" , FontConfiguration?.FontSize }, 96 { "lineHeight", FontConfiguration?.LineHeight}, 97 { "fontFamily" , FontConfiguration?.FontConfiguration?.FontFamily }, 98 { "fontWeight" , FontConfiguration?.FontWeight }, 99 { "fontStyle" , FontConfiguration?.FontStyle } 100 }; 101 return FontConfig; 102 } 103 104 public string GenerateButtonConfigVariables(ButtonConfiguration BC, MasterConfig mc, int areaId) 105 { 106 string ButtonLabelAlignment = BC.ButtonLabelAlignment; 107 switch (ButtonLabelAlignment) 108 { 109 case "align-left": 110 ButtonLabelAlignment = "flex-start"; 111 break; 112 case "align-center": 113 ButtonLabelAlignment = "center"; 114 break; 115 case "align-right": 116 ButtonLabelAlignment = "flex-end"; 117 break; 118 case "align-full": 119 ButtonLabelAlignment = "space-between"; 120 break; 121 default: 122 ButtonLabelAlignment = "flex-start"; 123 break; 124 } 125 126 var btnStyleBlock = new System.Text.StringBuilder(); 127 128 // General Config 129 btnStyleBlock.Append(GenerateCssVar("btn-min-height", $"{mc.GeneralConfiguration.ButtonHeight}px")); 130 btnStyleBlock.Append(GenerateCssVar("btn-border-radius", $"{mc.GeneralConfiguration.RoundedCornerValue}px")); 131 132 // Button Config 133 btnStyleBlock.Append(GenerateCssVar("btn-border-width", $"{BC.BorderSize.ToString()}px")); 134 btnStyleBlock.Append(GenerateCssVar("btn-label-alignment", ButtonLabelAlignment)); 135 136 // Button Config Tab 137 btnStyleBlock.Append(GenerateCssVar("btn-bg-color", BC.ButtonColorConfiguration.BackgroundColor.GetColorCode(areaId))); 138 btnStyleBlock.Append(GenerateCssVar("btn-font-color", BC.ButtonColorConfiguration.FontColor.GetColorCode(areaId))); 139 btnStyleBlock.Append(GenerateCssVar("btn-border-color", BC.ButtonColorConfiguration.BorderColor.GetColorCode(areaId))); 140 141 // Button Config Hover tab 142 btnStyleBlock.Append(GenerateCssVar("btn-bg-color-hover", BC.ButtonHoverColorConfiguration.BackgroundColor.GetColorCode(areaId))); 143 btnStyleBlock.Append(GenerateCssVar("btn-font-color-hover", BC.ButtonHoverColorConfiguration.FontColor.GetColorCode(areaId))); 144 btnStyleBlock.Append(GenerateCssVar("btn-border-color-hover", BC.ButtonHoverColorConfiguration.BorderColor.GetColorCode(areaId))); 145 146 // Button Config Font Config 147 btnStyleBlock.Append(GenerateCssVar("btn-font-size", BC.FontConfiguration.FontSize)); 148 btnStyleBlock.Append(GenerateCssVar("btn-font-config-color", BC.FontConfiguration.Color.GetColorCode(areaId))); 149 btnStyleBlock.Append(GenerateCssVar("btn-font-line-height", BC.FontConfiguration.LineHeight)); 150 btnStyleBlock.Append(GenerateCssVar("btn-font-family", BC.FontConfiguration.FontConfiguration.FontFamily)); 151 btnStyleBlock.Append(GenerateCssVar("btn-font-weight", BC.FontConfiguration.FontWeight)); 152 btnStyleBlock.Append(GenerateCssVar("btn-font-transform", BC.FontConfiguration.FontStyle)); 153 154 return btnStyleBlock.ToString(); 155 } 156 157 public string GenerateCssVar(string name, string value) 158 { 159 if (!string.IsNullOrWhiteSpace(value)) { 160 return $"--{name}: {value};"; 161 } else { 162 return ""; 163 } 164 } 165 } 166 167 168 @* 169 @{ 170 var image = GetString("ParagraphImageClean"); 171 var parameters = GetString("ParagraphImage.FocalPointParameters"); 172 var imageFocalX = GetString("ParagraphImage.FocalX"); 173 var imageFocalY = GetString("ParagraphImage.FocalY"); 174 var imageHasFocalPoint = GetBoolean("ParagraphImage.ImageHasFocalPoint"); 175 } 176 <img src="/Admin/Public/GetImage.ashx?Image=@image&Format=jpg&Width=50&height=200&crop=7&@parameters" />*@ 177 @{ 178 179 JumbotronContainer _data = ItemManager.Storage.GetById<JumbotronContainer>(Pageview.CurrentParagraph.ItemId ?? "0"); 180 181 var colorService = new ColorSwatchService(); 182 183 string backgroundClass = !string.IsNullOrWhiteSpace(_data.JumbotronConfiguration.BackgroundClass) ? string.Format("bg-{0}", _data.JumbotronConfiguration.BackgroundClass) : ""; 184 string JumbotronHeight = _data.JumbotronHeight + "px"; 185 186 string BackgroundHorizontalPosition = ""; 187 string BackgroundVerticalPosition = ""; 188 189 string QuickmenuWidth = _data.QuickmenuWidth + "px"; 190 int JumbotronListCount = _data.JumbotronList.Count; 191 192 string JumbotronCarouselClass = JumbotronListCount != 1 ? "jumbotron__carousel" : "jumbotron__no-carousel"; 193 string JumbotronCarouselMobClass = JumbotronListCount != 1 ? "jumbotron__carousel-mob" : "jumbotron__no-carousel-mob"; 194 195 var paragraphID = Pageview.CurrentParagraph.ID; 196 var JumbotronBackgroundClassName = ""; 197 198 var subheaderFontConfig = GetFontConfiguration(_data.JumbotronConfiguration.ShoutboxSubheaderTextColor, _data.JumbotronConfiguration.FontConfigurationSubheader); 199 var headerFontConfig = GetFontConfiguration(_data.JumbotronConfiguration.ShoutboxHeaderTextColor, _data.JumbotronConfiguration.FontConfigurationHeader); 200 var contentFontConfig = GetFontConfiguration(_data.JumbotronConfiguration.ShoutboxContentTextColor, _data.JumbotronConfiguration.FontConfigurationContent); 201 202 string ShoutboxBackgroundColor = _data.JumbotronConfiguration.ShoutboxBackgroundColor; 203 string ShoutBoxGradient = _data.JumbotronConfiguration.ShoutboxBackgroundGradient; 204 205 string ShoutboxBackgroundImage = _data.JumbotronConfiguration.ShoutboxBackgroundImage; 206 207 string QuickmenuBackgoundImage = _data.JumbotronConfiguration.QuickmenuBackgroundImage; 208 209 ShoutboxBackgroundColor = colorService.GetHexColor(Pageview.AreaID, ShoutboxBackgroundColor); 210 211 212 } 213 214 <!--- BEGIN SVG SHAPE --> 215 216 <style> 217 .jumbotron-mask { 218 /* 219 -webkit-clip-path: url(#myClip); 220 clip-path: url(#myClip); 221 */ 222 } 223 </style> 224 225 <!--- END SVG SHAPE --> 226 <!-- 227 ***************************** 228 **** BEGIN DESKTOP SETUP **** 229 ***************************** 230 --> 231 232 <section class="jumbotron__playground jumbotron-mask jumbotron__playground-@paragraphID jumbotron--desktop @_data.CssClass @backgroundClass"> 233 234 <section class="@JumbotronCarouselClass"> 235 236 @foreach (var _item in _data.JumbotronList) 237 { 238 239 BackgroundHorizontalPosition = _item.BackgroundHorizontalPosition; 240 BackgroundVerticalPosition = _item.BackgroundVerticalPosition != "center" ? _item.BackgroundVerticalPosition : "middle"; 241 JumbotronBackgroundClassName = "jumbotron__image_background_" + paragraphID + "_" + _item.Id; 242 string jumbotronImage = _item.Image.Image.Replace("?x","&x"); 243 <div class="jumbotron @_item.CssClass" id="@_item.Id"> 244 245 <style> 246 247 @@media screen and (min-width: 994px) { 248 .@JumbotronBackgroundClassName { 249 background-image: url('/Admin/Public/GetImage.ashx?Image=@jumbotronImage&Crop=7&Format=webp&Width=1200&height=@_data.JumbotronHeight&Compression=80'); 250 } 251 } 252 253 @@media screen and (min-width: 1200px) { 254 .@JumbotronBackgroundClassName { 255 background-image: url('/Admin/Public/GetImage.ashx?Image=@jumbotronImage&Crop=7&Format=webp&Width=2000&height=@_data.JumbotronHeight&Compression=80'); 256 } 257 } 258 259 </style> 260 261 <figure class="jumbotron__image rellaxOff @BackgroundHorizontalPosition @BackgroundVerticalPosition @JumbotronBackgroundClassName"></figure> 262 263 @RenderShoutbox(_data, _item) 264 </div> 265 } 266 267 </section> 268 269 <!-- BEGIN QUICKMENU --> 270 271 @RenderQuickmenu(_data) 272 273 <!-- END QUICKMENU --> 274 275 <div class="jumbotron__shaper-container"><!--// 276 <svg width="100%" height="500" viewBox="0 0 1600 600" preserveAspectRatio="none"> 277 <defs> 278 <style> 279 .cls-1 { 280 fill: #cccccb; 281 } 282 283 .cls-2 { 284 fill: #fff; 285 opacity: 0.2; 286 } 287 288 </style> 289 </defs> 290 <title></title> 291 <path class="jumbotron__shaper-homepage" d="M2.59,495,237,553l122-48,132,54,360,16,262-48,176-90,154,120,112,12,206-102,159.79,65v71H1.56S1.31,493.72,2.59,495Z" /> 292 <polygon class="cls-2" points="359 505 317 599 491 559 359 505" /> 293 <polygon class="cls-2" points="1289 437 1443 557 1177 601 1289 437" /> 294 <polygon class="cls-2" points="1761 467 1696.44 604.28 1920.8 603 1920.8 532.03 1761 467" /> 295 </svg> 296 <svg width="100%" height="600" viewBox="0 0 2000 600" preserveAspectRatio="none"> 297 <clipPath id="myClip"> 298 <path class="cls-1" d="M1999.57,425c-123.24,53.94-329.82,96.6-581.35,119.35q33.6-6.59,65.7-14.19c104.82-24.86,197.33-58,276-98.78,21.37-11.08,49.25-53.51,49.25-53.51C1609,504.41,1328.64,545.78,1128.7,558.21c-31.7,2-62.42,3.29-91.8,4.12q-18.23.13-36.6.13c-81.34,0-160.65-1.95-237.08-5.65-16.15-1.19-25.6-1.31-25.6-1.31C416.39,538.15,148.8,489.67,1,425H.3V600h2000V425Z"></path> 299 </clipPath> 300 </svg> 301 //--> 302 303 <!--// 304 <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" height="0" width="0" viewBox="0 0 2000 600" preserveAspectRatio=""> 305 <clipPath id="myClip"> 306 <path class="st0" d="M0,0v325h0.2C37.1,389.7,104,438.2,184.3,455.5c0,0,2.4,0.1,6.4,1.3c19.1,3.7,38.9,5.7,59.3,5.7 307 c3.1,0,6.1,0,9.2-0.1c7.3-0.8,15-2.1,23-4.1c50-12.4,120.1-53.8,170.1-180.3c0,0-7,42.4-12.3,53.5c-19.7,40.8-42.8,73.9-69,98.8 308 c-5.4,5.1-10.8,9.8-16.4,14.2C417.4,421.6,469,378.9,499.8,325h0.2V0H0z" /> 309 </clipPath> 310 </svg> 311 //--> 312 313 <!--<img src="https://images.unsplash.com/photo-1592006256125-1e7622ead3b0?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" alt="Photographer in a market." height="1000" width="1000" /> 314 <svg width="0" height="0"> 315 <clipPath id="svgClip" clipPathUnits="objectBoundingBox"> 316 <path d="M0.75815095, 0.0579477769 C0.879893708, 0.187288937 0.902165272, 0.677587654 0.799370955, 0.785996249 C0.627963035, 0.966765889 0.26163708, 0.91434951 0.111342491,0.755791573 C-0.0332137967,0.603287436 -0.035795248,0.382887577 0.0965066612,0.173955315 C0.200239457,0.0101396315 0.648923894,-0.0580965318 0.75815095,0.0579477769 Z"></path> 317 </clipPath> 318 </svg> 319 <style> 320 .jumbotron-mask { 321 clip-path: url(#svgClip); 322 width: 18em; 323 height: 18em; 324 object-fit: cover; 325 display: block; 326 margin-right: auto; 327 margin-left: auto; 328 } 329 </style>--> 330 </div> 331 332 </section> 333 334 <!-- 335 *************************** 336 **** END DESKTOP SETUP **** 337 *************************** 338 --> 339 <!-- 340 **************************** 341 **** BEGIN MOBILE SETUP **** 342 **************************** 343 --> 344 345 <section class="jumbotron__playground jumbotron__playground-@paragraphID jumbotron--mobile @_data.CssClass"> 346 347 <section class="@JumbotronCarouselMobClass"> 348 349 @foreach (var _item in _data.JumbotronList) 350 { 351 352 BackgroundHorizontalPosition = _item.BackgroundHorizontalPosition; 353 BackgroundVerticalPosition = _item.BackgroundVerticalPosition != "center" ? _item.BackgroundVerticalPosition : "middle"; 354 string jumbotronImage = _item.Image.Image.Replace("?x","&x"); 355 <div class="jumbotron @_item.CssClass"> 356 357 <!-- BEGIN IMAGE --> 358 359 <figure class="jumbotron__image-container"> 360 <picture class="jumbotron__image w-full h-full"> 361 <source media="(max-width: 400px)" srcset="/Admin/Public/GetImage.ashx?Image=@jumbotronImage&Crop=7&Format=webp&Quality=90&Width=400&Compression=80"> 362 <source media="(max-width: 500px)" srcset="/Admin/Public/GetImage.ashx?Image=@jumbotronImage&Crop=7&Format=webp&Quality=90&Width=500&Compression=80"> 363 <source media="(max-width: 600px)" srcset="/Admin/Public/GetImage.ashx?Image=@jumbotronImage&Crop=7&Format=webp&Quality=90&Width=600&Compression=80"> 364 <source media="(max-width: 700px)" srcset="/Admin/Public/GetImage.ashx?Image=@jumbotronImage&Crop=7&Format=webp&Quality=90&Width=700&Compression=80"> 365 <source media="(max-width: 994px)" srcset="/Admin/Public/GetImage.ashx?Image=@jumbotronImage&Crop=7&Format=webp&Quality=90&Width=994&Compression=80"> 366 <img src="/Admin/Public/GetImage.ashx?Image=@jumbotronImage&Crop=7&Format=webp&Width=400&Quality=90&Compression=80" width="1980" height="500" alt="@_item.Image.ImageAlt" /> 367 </picture> 368 </figure> 369 370 <!-- END IMAGE --> 371 <!-- BEGIN SHOUTBOX --> 372 373 @RenderShoutbox(_data, _item) 374 375 <!-- END SHOUTBOX --> 376 </div> 377 } 378 379 </section> 380 381 <!-- BEGIN QUICKMENU --> 382 383 @RenderQuickmenu(_data) 384 385 <!-- END QUICKMENU --> 386 387 </section> 388 389 <!-- 390 ************************ 391 *** END MOBILE SETUP *** 392 ************************ 393 --> 394 395 <style> 396 .jumbotron__playground, 397 .jumbotron { 398 height: auto; 399 } 400 401 @@media screen and (min-width: 991px){ 402 .jumbotron__playground-@paragraphID .jumbotron__carousel, 403 .jumbotron__playground-@paragraphID .jumbotron { 404 height: @JumbotronHeight; 405 overflow: hidden; 406 } 407 408 .jumbotron__playground-@paragraphID .jumbotron__container { 409 width: 100%; 410 } 411 412 @*@if(!_data.JumbotronConfiguration.FullWidth){ 413 <text> 414 .jumbotron__playground-@paragraphID .jumbotron__container { 415 max-width: @_data.JumbotronConfiguration.ContainerSize; 416 } 417 </text> 418 }*@ 419 420 .jumbotron__playground-@paragraphID .quickmenu { 421 width: @QuickmenuWidth; 422 } 423 424 .jumbotron__playground-@paragraphID .jumbotron__no-carousel, 425 .jumbotron__playground-@paragraphID .jumbotron__carousel { 426 width: calc(100% - @QuickmenuWidth); 427 428 } 429 430 .jumbotron__playground-@paragraphID .jumbotron__subheading { 431 @RenderFontConfig(subheaderFontConfig) 432 } 433 434 .jumbotron__playground-@paragraphID .jumbotron__heading { 435 @RenderFontConfig(headerFontConfig) 436 } 437 438 .jumbotron__playground-@paragraphID .jumbotron__shoutbox-intro p, 439 .jumbotron__playground-@paragraphID .jumbotron__shoutbox-intro li { 440 @RenderFontConfig(contentFontConfig) 441 } 442 443 .jumbotron__playground-@paragraphID .jumbotron__shoutbox { 444 background-color: @ShoutboxBackgroundColor; 445 @if (!string.IsNullOrWhiteSpace(ShoutBoxGradient)) { 446 447 <text> @ShoutBoxGradient </text> 448 449 } 450 @if (!string.IsNullOrWhiteSpace(ShoutboxBackgroundImage)) { 451 452 <text> 453 background-image: url('@ShoutboxBackgroundImage'); 454 </text> 455 456 } 457 } 458 459 .jumbotron__playground-@paragraphID .quickmenu { 460 @if (!string.IsNullOrWhiteSpace(QuickmenuBackgoundImage)) { 461 462 <text> 463 background-image: url('@QuickmenuBackgoundImage'); 464 </text> 465 466 } 467 } 468 469 470 } 471 </style> 472 473 @helper RenderShoutbox(JumbotronContainer _data, JumbotronListItem _item) 474 { 475 string ShoutboxFullHeightClass = _data.ShoutboxFullHeight ? "fullheight" : ""; 476 string ShoutboxBackgroundTransparentClass = _data.ShoutboxBackgroundTransparent ? "transparent" : ""; 477 478 string ShoutboxHorizontalPositionClass = _data.ShoutboxHorizontalPosition; 479 string ShoutboxVerticalPositionClass = _data.ShoutboxVerticalPosition != "center" ? @_data.ShoutboxVerticalPosition : "middle"; 480 481 <section class="jumbotron__container container @ShoutboxHorizontalPositionClass @ShoutboxVerticalPositionClass "> 482 483 @if (_item.HasShoutbox) 484 { 485 <div class="jumbotron__shoutbox @ShoutboxBackgroundTransparentClass @ShoutboxFullHeightClass"> 486 <section class="jumbotron__shoutbox-header"> 487 488 @_item.SubHeader.HeaderFormatted("jumbotron__subheading") 489 @_item.Header.HeaderFormatted("jumbotron__heading") 490 491 @if (!string.IsNullOrWhiteSpace(_item.Content.Text)) 492 { 493 <div class="jumbotron__shoutbox-intro">@_item.Content.Text</div> 494 } 495 @{var _buttonConfiguration = ItemManager.Storage.GetById<ButtonConfiguration>(_item.Button.ButtonConfigurationID); 496 } 497 @RenderButton(_buttonConfiguration, _item.Button.GetLink(Pageview), _buttonConfiguration.ButtonClass, _item.Button.ButtonText, _item.Button.ButtonAriaLabel, _item.Button.NewWindow, "", "jumbotron__shoutbox-cta", "jumbotron__shoutbox-cta-label", "jumbotron__shoutbox-cta-icon") 498 499 </section> 500 </div> 501 } 502 </section> 503 } 504 505 @helper RenderQuickmenu(JumbotronContainer _data) 506 { 507 int quickmenuWidth = _data.QuickmenuWidth; 508 509 if (quickmenuWidth > 0) 510 { 511 <div class="quickmenu"> 512 <h2 class="quickmenu__header">@_data.QuickmenuHeader</h2> 513 <nav class="quickmenu__list"> 514 @foreach (var _link in _data.QuickmenuLinks) 515 { 516 var highlightedClass = _link.Highlighted ? "highlighted" : ""; 517 var targetLink = _link.NewWindow ? "target='_blank'" : ""; 518 519 <a href="@_link.Link" class="quickmenu__link @highlightedClass" @targetLink> @_link.Name </a> 520 } 521 </nav> 522 </div> 523 } 524 } 525

Zaagmachines, slijpmachines, schuurmachines, boor en breekhamers, tackers, lasers, werfradio's. Wij hebben van de perfecte Makita machine voor uw wensen in onze toonzaal klaarstaan.

Naast power tools heeft Makita ook een heel aanbod tuimachines voor elke klus buiten tot een goed einde te brengen.

Kom ons tuinaanbod ontdekken in onze winkel of blader door de online cataloog.

Naar boven
Cookies

Deze website maakt gebruik van cookies om uw gedrag bij te houden en uw ervaring op de site te verbeteren.