Branding and charging combined

Our customer De Jong Reclame Heerhugowaard found that specially designed PREMARK™ logos were the perfect solution to mark e-parking spaces.

As hybrid and electric cars are becoming increasingly popular, the necessity for electric charging stations is automatically also growing. Our wide range of products makes it easy to mark these spaces in a way that is both easily recognisable and supports your company brand. These markings applied by De Jong Reclame Heerhugowaard for Dutch company EDGe Mobility is a great example of just that.

EDGe Mobility is a national network of car companies specialised in electric driving. Each of these independent companies are certified and deliver services according to the EGDe Mobility standards. For example, they carry out maintenance, repairs and resolve malfunctions on electric vehicles. You can also go there for charging advice and have the status of your battery checked.

At the moment, there are about 50 companies certified to the EDGe Mobility standards spread across the Netherlands. On each of these locations, our customer De Jong Reclame have recently installed PREMARK™ markings in the form of ‘Edge Mobility’-logos in front of the charging stations.

In this way, EDGe Mobility cleverly brands their business and creates a consistent image on all their locations, while clearly identifying where the e-charging spaces are to be found.

Want more inspiration for your e-parking solution? Check out our electric parking brochure - or contact your local Geveko Markings Expert today!

 

Error executing template "Designs/Swift/Paragraph/Swift_ArticleList.cshtml"
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Dynamicweb.Content.Items.Queries.Repository.IsPageAllowed(Page page)
   at Dynamicweb.Content.Items.Queries.Repository.GetPagesByIds(IEnumerable`1 parentIds, Boolean includeChildItems, Boolean checkPermissions, List`1& childPages)
   at Dynamicweb.Content.Items.Queries.Repository.SelectByParentPageIds(IEnumerable`1 parentIds, Query query, Boolean includeParagraphs, Boolean includeChildItems, Boolean checkPermissions, Boolean includeInheritedItems)
   at Dynamicweb.ItemPublisher.Frontend.GetItems()
   at Dynamicweb.ItemPublisher.Frontend.List()
   at Dynamicweb.ItemPublisher.Frontend.GetContent()
   at Dynamicweb.ItemPublisher.Frontend.GetContentBySettings(String settings)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Dynamicweb.Extensibility.AddIns.AddInManager.InvokeFunction(Object instance, String functionName, Object[] arguments)
   at Dynamicweb.Rendering.TemplateBase`1.RenderItemList(Object settings)
   at CompiledRazorTemplates.Dynamic.RazorEngine_0df2fd1d68f24f8c83d31006481af027.GetArticles(String itemType) in D:\dynamicweb.net\Solutions\CO3\geveko.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_ArticleList.cshtml:line 16
   at CompiledRazorTemplates.Dynamic.RazorEngine_0df2fd1d68f24f8c83d31006481af027.Execute() in D:\dynamicweb.net\Solutions\CO3\geveko.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_ArticleList.cshtml:line 52
   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.ParagraphViewModel> 2 3 @functions 4 { 5 private object GetArticles(string itemType) 6 { 7 string listSource = Model.Item.GetRawValueString("ListSource", Model.PageID.ToString()); 8 string articleListSortOrder = Model.Item.GetRawValueString("ArticleListSortOrder", "Descending"); 9 var parent = Dynamicweb.Context.Current.Request.QueryString.Get("list"); 10 var query = string.IsNullOrEmpty(parent) ? listSource : parent; 11 var includeAllChildren = Model.Item.GetRawValueString("ListDepth", "all") == "all" ? true : false; 12 var listContext = Model.Item?.GetList("ListContext")?.GetRawValue().OfType<string>(); 13 var filterString = string.Join(" or ", listContext.Select(item => $"Tags == \"{item}\" or Tags ends with \",{item}\" or Tags starts with \"{item},\" or Tags contains \",{item},\"")); 14 int maxItemsInList = !string.IsNullOrEmpty(Model.Item.GetInt32("MaxItemsInList").ToString()) ? Model.Item.GetInt32("MaxItemsInList") : 10; 15 16 return RenderItemList(new 17 { 18 ItemType = itemType, 19 ListTemplate = "ItemPublisher/List/List.cshtml", 20 ItemFieldsList = "*", 21 ListSourceType = "Page", 22 ListSourcePage = query, 23 ListPageSize = maxItemsInList, 24 IncludeParagraphItems = true, 25 ListOrderBy = "PublishedDate", 26 ListSecondOrderBy = "Updated", 27 ListOrderByDirection = articleListSortOrder, 28 IncludeAllChildItems = includeAllChildren, 29 Filter = itemType == "Swift_Article" ? filterString : null // Filter only if "articles only" 30 }); 31 } 32 } 33 34 @{ 35 string listBehaviour = Model.Item.GetRawValueString("ListBehaviour", "articles"); 36 string articleListLayout = Model.Item.GetRawValueString("ArticleListLayout", "grid"); 37 string columnTheme = Model.Item.GetRawValueString("ColumnTheme", string.Empty).ToString().Replace(" ", "").Trim().ToLower(); 38 string columnThemeClass = columnTheme != string.Empty ? " theme " + columnTheme + " p-3" + (articleListLayout == "carousel" ? " px-lg-4" : string.Empty) : string.Empty; 39 40 int maxItemsInList = !string.IsNullOrEmpty(Model.Item.GetInt32("MaxItemsInList").ToString()) ? Model.Item.GetInt32("MaxItemsInList") : 10; 41 42 <div class="h-100@(columnThemeClass) item_@Model.Item.SystemName.ToLower()"> 43 <div id="@Model.ID" class="user-select-none" style="scroll-margin-top:var(--header-height,150px)"></div> 44 45 @switch (articleListLayout) 46 { 47 case "grid": 48 49 { 50 if (listBehaviour == "articles") 51 { 52 @GetArticles("Swift_Article") 53 } 54 if (listBehaviour == "lists") 55 { 56 @GetArticles("Swift_ArticleListPage") 57 } 58 } 59 60 break; 61 62 case "carousel": 63 var carouselSettings = Model.Item.GetRawValueString("CarouselSettings", "4"); 64 string slidesPerPage = $"slider-item-show{carouselSettings}"; 65 string navigationStyle = $"{Model.Item.GetRawValueString("NavigationStyle", "slider-nav-round")}"; 66 string navigationPlacement = $"{Model.Item.GetRawValueString("NavigationPlacement", "slider-nav-on-slides")}"; 67 string indicatorStyle = $"{Model.Item.GetRawValueString("IndicatorStyle", string.Empty)}"; 68 string revealSlides = Model.Item.GetRawValueString("RevealSlides", "reveal") == "reveal" ? "slider-item-reveal" : string.Empty; 69 string sliderItemsGap = Model.Item.GetRawValueString("SliderItemsGap", "slider-item-gap") == "slider-item-nogap" ? "slider-item-nogap" : string.Empty; 70 string navigationAlwaysVisible = (Model.Item.GetBoolean("NavigationAlwaysVisible")) ? "slider-nav-visible" : string.Empty; 71 string navigationVisibleOnTouch = (Model.Item.GetBoolean("NavigationVisibleOnTouch")) ? "slider-nav-touch" : string.Empty; 72 string navigationShowScrollbar = (Model.Item.GetBoolean("NavigationShowScrollbar")) ? "slider-nav-scrollbar" : string.Empty; 73 string scrollBarForceMobile = (Model.Item.GetBoolean("NavigationShowScrollbar")) ? "--swiffy-slider-track-height:0.5rem !important;" : string.Empty; 74 string navigationSmall = (Model.Item.GetBoolean("NavigationSmall")) ? "slider-nav-sm" : string.Empty; 75 string navigationInvertColors = (Model.Item.GetBoolean("NavigationInvertColors")) ? "slider-nav-dark" : string.Empty; 76 string navigationSlideEntirePage = (Model.Item.GetBoolean("NavigationSlideEntirePage")) ? "slider-nav-page" : string.Empty; 77 string navigationNoLoop = (Model.Item.GetBoolean("NavigationNoLoop")) ? "slider-nav-noloop" : string.Empty; 78 string indicatorsOutsideSlider = (Model.Item.GetBoolean("IndicatorsOutsideSlider") && indicatorStyle != string.Empty) ? "slider-indicators-outside" : string.Empty; 79 string indicatorsHighlightActive = (Model.Item.GetBoolean("IndicatorsHighlightActive")) ? "slider-indicators-highlight" : string.Empty; 80 string indicatorsInvertColors = (Model.Item.GetBoolean("IndicatorsInvertedColors")) ? "slider-indicators-dark" : string.Empty; 81 string indicatorsVisibleOnSmallDevices = (Model.Item.GetBoolean("IndicatorsVisibleOnSmallDevices")) ? "slider-indicators-sm" : string.Empty; 82 string animation = Model.Item.GetRawValueString("Animation", string.Empty) != string.Empty ? $"slider-nav-animation {Model.Item.GetRawValueString("Animation")}" : string.Empty; 83 string autoplay = (Model.Item.GetBoolean("Autoplay")) ? "slider-nav-autoplay" : string.Empty; 84 string autoplayInterval = Model.Item.GetRawValueString("AutoplayInterval", string.Empty); 85 bool hideSliderNavigation = false; 86 87 if (navigationStyle == "slider-nav-none") 88 { 89 hideSliderNavigation = true; 90 } 91 92 <div id="Slider_@Model.ID" class="swiffy-slider @(slidesPerPage) @(navigationStyle) @(revealSlides) @(navigationPlacement) @(navigationAlwaysVisible) @(navigationVisibleOnTouch) @(sliderItemsGap) @(indicatorStyle) @(navigationShowScrollbar) @(navigationSmall) @(navigationInvertColors) @(indicatorsOutsideSlider) @(navigationNoLoop) @(indicatorsHighlightActive) @(indicatorsInvertColors) @(indicatorsVisibleOnSmallDevices) @(navigationSlideEntirePage) @(animation) @(autoplay) item_@Model.Item.SystemName.ToLower()" style="--swiffy-slider-nav-light:var(--swift-foreground-color);--swiffy-slider-nav-dark:var(--swift-background-color);visibility:hidden;opacity:0;@(scrollBarForceMobile)" data-slider-nav-autoplay-interval="@(autoplayInterval)"> 93 <div class="slider-container pb-3 py-lg-3 px-lg-3 mt-lg-n3 mx-lg-n3"> 94 @{ 95 if (listBehaviour == "articles") 96 { 97 @GetArticles("Swift_Article") 98 } 99 if (listBehaviour == "lists") 100 { 101 @GetArticles("Swift_ArticleListPage") 102 } 103 } 104 </div> 105 106 @if (!hideSliderNavigation) 107 { 108 <button type="button" title="@Translate("Previous slide")" class="slider-nav" style="z-index:1;"> 109 <span class="visually-hidden">@Translate("Previous slide")</span> 110 </button> 111 <button type="button" title="@Translate("Next slide")" class="slider-nav slider-nav-next" style="z-index:1;"> 112 <span class="visually-hidden">@Translate("Next slide")</span> 113 </button> 114 } 115 @if (indicatorStyle != "slider-indicators-hidden") 116 { 117 <div class="slider-indicators" style="z-index:1;"></div> 118 } 119 120 <script type="module" src="/Files/Templates/Designs/Swift/Assets/js/swiffy-slider.js"></script> 121 <script> 122 window.addEventListener("load", () => { 123 swift.AssetLoader.Load('/Files/Templates/Designs/Swift/Assets/css/swiffy-slider.min.css', 'css'); 124 window.swiffyslider.initSlider(document.querySelector('#Slider_@Model.ID')); 125 document.querySelector('#Slider_@Model.ID').style.opacity = 1; 126 document.querySelector('#Slider_@Model.ID').style.visibility = "visible"; 127 }); 128 129 document.addEventListener("updated.swift.pageupdater", function (data) { 130 swift.AssetLoader.Load('/Files/Templates/Designs/Swift/Assets/css/swiffy-slider.min.css', 'css'); 131 window.swiffyslider.initSlider(document.querySelector('#Slider_@Model.ID')); 132 document.querySelector('#Slider_@Model.ID').style.opacity = 1; 133 document.querySelector('#Slider_@Model.ID').style.visibility = "visible"; 134 }); 135 </script> 136 137 @if (indicatorStyle != "slider-indicators-hidden") 138 { 139 <script type="module"> 140 const slider = document.querySelector('#Slider_@Model.ID'); 141 const sliderContainer = slider.querySelector('.slider-container'); 142 let slides = sliderContainer.querySelectorAll('article'); 143 const sliderIndicators = slider.querySelector('.slider-indicators'); 144 145 slides.forEach((slide,index) => { 146 const indicator = document.createElement('template'); 147 indicator.innerHTML = ` 148 <button type="button" class="${index == 0 ? "active" : ""}" title='@Translate("Go to slide") ${index + 1}'> 149 <span class="visually-hidden">@Translate("Go to slide") ${index + 1}</span> 150 </button> 151 `; 152 sliderIndicators.appendChild(indicator.content); 153 }); 154 </script> 155 } 156 </div> 157 158 break; 159 } 160 </div> 161 } 162
En cliquant sur 'Tout accepter', vous consentez à ce que nous puissions collecter des informations vous concernant à diverses fins, notamment : les statistiques et le marketing.