Error executing template "Designs/RoadPro/_parsed/Index.parsed.cshtml"
System.ArgumentException: Object type cannot be converted to target type.
   at RazorEngine.Compilation.CrossAppDomainCleanUp.CleanupHelper.Init(AppDomain domain, IPrinter printer)
   at RazorEngine.Compilation.CrossAppDomainCleanUp.InitHelper.CreateHelper()
   at RazorEngine.Compilation.ExecutionContextLessThread.CallHelperSafeHelper`2.AsAction()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at RazorEngine.Compilation.ExecutionContextLessThread.DefaultCallFunc[O](Func`1 f)
   at RazorEngine.Compilation.CrossAppDomainCleanUp..ctor(AppDomain toWatch, IPrinter printer)
   at RazorEngine.Compilation.CrossAppDomainCleanUp.CreateInitial()
   at System.Lazy`1.CreateValue()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Lazy`1.get_Value()
   at RazorEngine.Compilation.CrossAppDomainCleanUp.RegisterCleanup(String item, Boolean throwOnDefault)
   at RazorEngine.Templating.InvalidatingCachingProvider.CacheTemplate(ICompiledTemplate template, ITemplateKey templateKey)
   at RazorEngine.Templating.RazorEngineService.CompileAndCacheInternal(ITemplateKey key, Type modelType)
   at RazorEngine.Templating.RazorEngineService.GetCompiledTemplate(ITemplateKey key, Type modelType, Boolean compileOnCacheMiss)
   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()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Lazy`1.get_Value()
   at RazorEngine.Compilation.CrossAppDomainCleanUp.RegisterCleanup(String item, Boolean throwOnDefault)
   at RazorEngine.Templating.InvalidatingCachingProvider.CacheTemplate(ICompiledTemplate template, ITemplateKey templateKey)
   at RazorEngine.Templating.RazorEngineService.CompileAndCacheInternal(ITemplateKey key, Type modelType)
   at RazorEngine.Templating.RazorEngineService.GetCompiledTemplate(ITemplateKey key, Type modelType, Boolean compileOnCacheMiss)
   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 RazorTemplateBase<RazorTemplateModel<Template>> 2 @using Dynamicweb.Rendering 3 @using Dynamicweb.Content 4 @using System.Text.RegularExpressions 5 @using System.Web.UI.HtmlControls 6 @{ string designName = GetString("Template:DesignBaseUrl").Replace("/Files/Templates/Designs/", "").Replace("/", "");}@functions{ 7 public static string GetImage(string sourceString, int imageWidth, int imageHeight, int imageWidthTablet = 0, int imageHeightTablet = 0, int imageWidthMobile = 0, int imageHeightMobile = 0, string imageFormat = "jpg", int imageCompression = 0, int imageCrop = 5, string background = "", string designName = "RoadPro") 8 { 9 Dynamicweb.Frontend.PageView currentPageview = Dynamicweb.Frontend.PageView.Current(); 10 string currDevice = currentPageview.Device.ToString(); 11 string alternativeImage = !String.IsNullOrEmpty(currentPageview.Area.Item["NoImage"].ToString()) ? currentPageview.Area.Item["NoImage"].ToString() : "/Files/Templates/Designs/"+ designName + "/images/alternativeImage.jpg"; 12 string widthString = ""; 13 string heightString = ""; 14 string getImageFormat = imageFormat != "jpg" ? "&amp;Format=" + imageFormat : ""; 15 string getImageCompression = imageCompression != 0 ? "&amp;Compression=" + imageCompression : ""; 16 string bgColor = !string.IsNullOrEmpty(background) ? "&amp;Background="+background : ""; 17 int getImageWidth = imageWidth != 0 ? imageWidth : 0; 18 int getImageHeight = imageHeight != 0 ? imageHeight : 0; 19 20 if (currDevice == Dynamicweb.Frontend.Devices.DeviceType.Tablet.ToString()) 21 { 22 getImageWidth = imageWidthTablet != 0 ? imageWidthTablet : getImageWidth; 23 getImageHeight = imageHeightTablet != 0 ? imageHeightTablet : getImageHeight; 24 } 25 else if (currDevice == Dynamicweb.Frontend.Devices.DeviceType.Mobile.ToString()) 26 { 27 getImageWidth = imageWidthMobile != 0 ? imageWidthMobile : getImageWidth; 28 getImageHeight = imageHeightMobile != 0 ? imageHeightMobile : getImageHeight; 29 } 30 31 if (getImageWidth != 0) 32 { 33 widthString = "&amp;Width=" + getImageWidth; 34 } 35 if (getImageHeight != 0) 36 { 37 heightString = "&amp;Height=" + getImageHeight; 38 } 39 40 string output = "/Admin/Public/GetImage.ashx?Image=" + sourceString + widthString + heightString + "&amp;altFmImage_path=" + alternativeImage + getImageFormat + getImageCompression + "&amp;Crop=" + imageCrop + bgColor; 41 return output; 42 } 43 } 44 @functions{ 45 public string GetCurrentUrl() 46 { 47 string currentUrl = Pageview.GlobalTags.GetTagByName("Global:Request.Scheme").Value.ToString() + "://" + Pageview.GlobalTags.GetTagByName("Global:Request.Host").Value.ToString() + Pageview.GlobalTags.GetTagByName("Global:Pageview.Url").Value.ToString(); 48 49 return currentUrl; 50 } 51 } 52 @inherits RazorTemplateBase<RazorTemplateModel<Template>> 53 @using Dynamicweb.Rendering; 54 @using System.Text.RegularExpressions 55 56 @helper OgMeta(string designName) 57 { 58 59 if (string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Params["ProductID"]) && string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Params["itemId"]) && Pageview.GlobalTags.GetTagByName("Global:Pageview.Url").Value.IndexOf("blog-posts") == -1) 60 { 61 @SnippetStart("OGMeta")<meta property="og:title" content='@GetString("Title")'> 62 <meta property="og:image" content='@Pageview.GlobalTags.GetTagByName("Global:Request.Scheme").Value.ToString()://@Pageview.GlobalTags.GetTagByName("Global:Request.Host").Value.ToString()/Files/Templates/Designs/@designName/images/logo.png'> 63 <meta property="og:site_name" content='@GetString("Item.Area.CompanyName")'> 64 <meta property="og:url" content='@Pageview.GlobalTags.GetTagByName("Global:Request.Scheme").Value.ToString()://@Pageview.GlobalTags.GetTagByName("Global:Request.Host").Value.ToString()@Pageview.GlobalTags.GetTagByName("Global:Pageview.Url").Value.ToString()'> 65 <meta property="og:description" content='@StripHtml(GetString("Meta.Description"))'> 66 <meta property="og:type" content="article"> 67 <meta property="og:locale" content='@Pageview.GlobalTags.GetTagByName("Global:Area.LongLang").Value.ToString().Replace("-", "_")'> 68 <meta name="p:domain_verify" content="a2ffaab1ea6982672502d1924b26782f"> 69 @SnippetEnd("OGMeta") 70 } 71 } 72 @helper HtmlHead(string designName) 73 { 74 string designFolder = GetString("Template:DesignBaseUrl"); 75 string robots = ""; 76 string ipCountry = Dna.IP.Frontend.GetCountryCode(); 77 var googleReCaptchaSiteKey = GetString("Item.Area.GoogleReCaptchaSiteKey"); 78 string countryCodeModule = !string.IsNullOrEmpty(ipCountry) ? ipCountry : "US"; 79 string userCountryCode = (Pageview.User != null && !string.IsNullOrEmpty(GetString("Ecom:Order.Customer.Country.Code"))) ? GetString("Ecom:Order.Customer.Country.Code") : ipCountry; 80 string userState = Pageview.User != null ? Pageview.User.State : string.Empty; 81 robots = (GetBoolean("Item.Area.DemoBanner") || GetBoolean("Item.Area.NoIndex")) ? CommaSplittedString(robots, "noindex") : ""; 82 robots = (GetBoolean("Item.Area.DemoBanner") || GetBoolean("Item.Area.NoFollow")) ? CommaSplittedString(robots, "nofollow") : ""; 83 var facebookMetaPixel = GetString("Item.Area.FacebookMetaPixel"); //CUSTOM CODE 84 85 <head> 86 <title>@GetValue("Title")</title> 87 <meta http-equiv="content-type" content="text/html; charset=utf-8"> 88 <meta name="viewport" content="initial-scale=1.0, width=device-width, user-scalable=no"> 89 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 90 <meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE"> 91 @if (!string.IsNullOrEmpty(robots)) 92 { 93 <meta name="robots" content="@robots"> 94 } 95 @OgMeta(designName) 96 @RenderSnippet("OGMeta") 97 @GetString("MetaTags") 98 @GetString("CopyRightNotice") 99 @GetString("Stylesheets") 100 101 <link rel="shortcut icon" href="@(designFolder)images/favicon.ico" type="image/x-icon"> 102 @{ 103 var minify = GetBoolean("Item.Area.Minify_CSS_And_JavaScript"); 104 var styleBundle = Dna.Optimizer.Renderer.RenderStyles(string.Format("{0}css",designFolder),"-main-styles",new[]{"exceptions"}, null, minify,true); 105 var scriptBundle = Dna.Optimizer.Renderer.RenderScripts(string.Format("{0}js",designFolder),"-main-scripts",new[]{"exceptions"}, null, minify,true); 106 } 107 <link rel="stylesheet" href="@styleBundle"> 108 <script src="@scriptBundle"></script> 109 @GetString("Javascripts") 110 @RenderSnippet("externalScripts") 111 @SnippetStart("externalScripts") @SnippetEnd("externalScripts") 112 <!--[if lte IE 9]> 113 <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script> 114 <script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.1.0/respond.min.js"></script> 115 <![endif]--> 116 <script> 117 @RenderSnippet("jsVariables") 118 @SnippetStart("jsVariables") @SnippetEnd("jsVariables") 119 120 var obj_pages = { 121 str_miniCart: '@Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(GetString("Item.Area.MiniCart"))', 122 str_login: '@Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(GetString("Item.Area.Login"))', 123 str_globalTranslates: '@Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(GetString("Item.Area.GlobalTranslates"))', 124 str_contactPopup : '@Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(GetString("Item.Area.ContactUs_Popup"))', 125 str_cartInformation: '@Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(GetString("Item.Area.Cart_Information"))', 126 str_typeAhead : '@Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(GetString("Item.Area.TypeAhead"))' 127 }, 128 obj_user = { 129 str_country: '@userCountryCode', 130 str_state: '@userState' 131 }, 132 obj_settings = { 133 str_contactTimeout: '@GetString("Item.Area.Time")', 134 str_cartQty: '@GetString("Ecom:Order.OrderLines.TotalProductQuantity")' 135 }, 136 obj_translates = { 137 str_seeAll: '@Translate("seeAllThe", "See all the")', 138 str_results: '@Translate("results", "results")' 139 }; 140 $(function () { 141 @UserDoesNotExist() 142 @RenderSnippet("jsOnLoadVariables") 143 @SnippetStart("jsOnLoadVariables") @SnippetEnd("jsOnLoadVariables") 144 @RenderSnippet("jsOnLoad") 145 @SnippetStart("jsOnLoad") @SnippetEnd("jsOnLoad") 146 }); 147 148 @if(!string.IsNullOrWhiteSpace(GetString("Item.Area.GoogleAnalytics"))) 149 { 150 <text> 151 (function (i, s, o, g, r, a, m) { 152 i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { 153 (i[r].q = i[r].q || []).push(arguments) 154 }, i[r].l = 1 * new Date(); a = s.createElement(o), 155 m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) 156 })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); 157 ga('create', '@GetString("Item.Area.GoogleAnalytics")', 'auto'); 158 ga('send', 'pageview'); 159 </text> 160 } 161 @SnippetStart("eCommerceTracking")@SnippetEnd("eCommerceTracking") 162 @RenderSnippet("eCommerceTracking") 163 </script> 164 165 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.HeadScripts"))) 166 { 167 @GetString("Item.Area.HeadScripts") 168 } 169 @if (!string.IsNullOrEmpty(googleReCaptchaSiteKey)) 170 { 171 <script src="https://www.google.com/recaptcha/api.js" async="" defer=""></script> 172 } 173 @*START CUSTOM CODE*@ 174 @if (!string.IsNullOrEmpty(facebookMetaPixel)) 175 { 176 <!-- Meta Pixel Code --> 177 <script> 178 !function(f,b,e,v,n,t,s) 179 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 180 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 181 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 182 n.queue=[];t=b.createElement(e);t.async=!0; 183 t.src=v;s=b.getElementsByTagName(e)[0]; 184 s.parentNode.insertBefore(t,s)}(window, document,'script', 185 'https://connect.facebook.net/en_US/fbevents.js'); 186 fbq('init', '@facebookMetaPixel'); 187 fbq('track', 'PageView'); 188 </script> 189 <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=@facebookMetaPixel&ev=PageView&noscript=1"></noscript> 190 <!-- End Meta Pixel Code --> 191 } 192 @*END CUSTOM CODE*@ 193 </head> 194 } 195 @helper UserDoesNotExist() 196 { 197 if (Dynamicweb.Environment.ExecutingContext.IsFrontEnd() && !Dynamicweb.Security.UserManagement.User.IsExtranetUserLoggedIn()) 198 { 199 if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Params["Password"]) && !string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Params["Username"])) 200 { 201 @SnippetStart("jsOnLoad") 202 @:var showLogin = true; 203 @:alert("@Translate("yourUserNameOrPasswordDidntMatch", "Your user name or password didn't match. Please try again.")"); 204 @SnippetEnd("jsOnLoad") 205 } 206 } 207 } 208 @helper Logo(string cssclass, string companyName, string designName) 209 { 210 string logo = !string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Params["print"]) ? "/Admin/Public/GetImage.ashx?Image=/Files/Templates/Designs/"+designName+"/images/logo.png&Width=220" : "/Files/Templates/Designs/"+designName+"/images/logo.png"; 211 212 <figure class="logo @cssclass"> 213 <a href="/"> 214 <img class="img-responsive" src="@logo" alt="@companyName" title="@companyName"> 215 </a> 216 </figure> 217 } 218 @helper DemoBanner() 219 { 220 if (GetBoolean("Item.Area.Banner") && System.Web.HttpContext.Current.Request.Cookies["demoMode"] == null) 221 { 222 <div class="demoMode">Demo</div> 223 } 224 } 225 @helper Copyright() 226 { 227 string privacyPolicy = GetString("Item.Area.PrivacyPolicy"); 228 string accessibility = GetString("Item.Area.Accessibility"); 229 <div class="col-xs-12 text-center copyright">&copy; @DateTime.Now.Year @GetString("Item.Area.CompanyName") @GetString("Item.Area.Copyright") <a href="\@privacyPolicy">@Translate("privacyPolicy","Privacy Policy")</a> <a href="\@accessibility">@Translate("Accessibility")</a></div> 230 } 231 @functions { 232 private string CommaSplittedString(string CommaSplittedString, string NewString) 233 { 234 235 if (!string.IsNullOrEmpty(CommaSplittedString)) 236 { 237 CommaSplittedString += ", "; 238 } 239 CommaSplittedString += NewString; 240 241 return CommaSplittedString; 242 } 243 public static string StripHtml(string source) 244 { 245 return Regex.Replace(source, "<.*?>", string.Empty); 246 } 247 } 248 @{ 249 string device = Pageview.Device.ToString(); 250 string homeOrSubpage = GetString("DwAreaFirstPageID") == GetString("Global.PageId") ? "home" : "subpage"; 251 string print = !string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Params["print"]) ? "printOrPdf" : ""; 252 string resultsPage = GetString("Item.Area.SearchResults"); 253 string itemResultsPage = GetString("Item.Area.ArticleList"); 254 string bannerLink = GetString("Item.Area.BannerLink"); 255 string bannerText = GetString("Item.Area.BannerText"); 256 string countryCode = Dna.IP.Frontend.GetCountryCode(); 257 string longLang = Pageview.GlobalTags.GetTagByName("Global:Area.LongLang").Value.ToString(); 258 string email = GetString("Item.Area.Email"); 259 string phone = GetString("Item.Area.Phone"); 260 bool userIsLoggedIn = Dynamicweb.Security.UserManagement.User.IsExtranetUserLoggedIn(); 261 bool isPrint = !string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Params["print"]); 262 bool bol_backofficeLogged = Dynamicweb.Security.UserManagement.User.GetCurrentBackendUser() != null ? true : false; 263 List<LoopItem> socialMedia = GetLoop("Item.Area.SocialNetworks"); 264 List<LoopItem> websiteLanguages = GetLoop("WebsiteLanguages"); 265 266 @*START CUSTOM CODE*@ 267 var linkedInPartnerId = GetString("Item.Area.LinkedInPartnerId"); 268 @*END CUSTOM CODE*@ 269 270 var signInPage = GetPageIdByNavigationTag("SignIn"); 271 272 }<!DOCTYPE HTML> 273 <!--[if lt IE 8 ]><html class="ie7" lang="@(longLang)"><![endif]--><!--[if IE 8 ]><html class="ie8" lang="@(longLang)"><![endif]--><!--[if IE 9 ]><html class="ie9" lang="@(longLang)"><![endif]--><!--[if (gt IE 9)|!(IE)]><!--> 274 <html lang="@(longLang)"><!--<![endif]--> 275 @HtmlHead(designName) 276 <body class="@device logged_@userIsLoggedIn.ToString() @homeOrSubpage @print" data-countrycode="@countryCode"> 277 278 <!-- Google Tag Manager (noscript) --> 279 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P9CXRXK" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 280 <!-- End Google Tag Manager (noscript) --> 281 282 <div class="wrap"> 283 <header id="headerContainer" class="container-fluid noPadding"> 284 <h1 class="hidden">@GetString("Title")</h1> 285 <div id="bannerMenuContainer"> 286 <div class="container"> 287 <div class="col-md-6 col-xs-12 noPadding"> 288 <div class="brandMenuContainer"> 289 @GetValue("DwNavigation(brandMenu)") 290 </div> 291 <div class="seeMoreBrands"> 292 <span>@Translate("seeMoreBrands", "See more")...</span> 293 @GetValue("DwNavigation(seeMoreMenu)") 294 </div> 295 296 </div> 297 298 @*Newsletter sign in button*@ 299 <div class="col-md-6 col-xs-12 noPadding" id="signupNewsletter"> 300 <a type="button" class="btn btn btn-bg" href="@(Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(signInPage))">@Translate("Sign up")</a> 301 </div> 302 303 </div> 304 </div> 305 <div id="topHeaderContainer" class="col-xs-12 noPadding"> 306 <div class="container"> 307 @Logo("col-md-4 col-xs-6 noPadding-xs", GetString("Item.Area.CompanyName"), designName) 308 <div id="topHeaderControls" class="col-md-8 col-xs-6 noPadding-xs"> 309 @if (!string.IsNullOrEmpty(GetString("DwNavigation(serviceMenu)")) && !isPrint) 310 { 311 <nav id="serviceMenuContainer" class="navbar navbar-default"> 312 @if (userIsLoggedIn) 313 { 314 string userName = !string.IsNullOrWhiteSpace(Pageview.User.Name) ? Pageview.User.Name : string.Format("{0}{1}", Pageview.User.FirstName, Pageview.User.LastName); 315 316 <div class="col-xs-12 noPadding welcomeBack text-right"> 317 <span>@Translate("welcomeBack", "Welcome Back,") @(!string.IsNullOrWhiteSpace(userName) ? userName : Pageview.User.UserName)</span> 318 <a id="logout" href="/Admin/Public/ExtranetLogoff.aspx">@Translate("logout", "Logout")</a> 319 </div> 320 } 321 @GetValue("DwNavigation(serviceMenu)") 322 </nav> 323 } 324 325 <form action="/Default.aspx" id="searchForm" class="pull-right"> 326 <input class="resultPage" type="hidden" name="ID" value="@resultsPage"> 327 <input type="hidden" name="ProductID" value=""> 328 <fieldset class="TextInput mandatory"> 329 <label for="searchSubmit" class="hide">@Translate("search", "Search")</label> 330 <select class="pull-right col-xs-6 noPaddingRight searchType"> 331 <option class="productSearch" value="product" data-result="@resultsPage">@Translate("productSearch", "Product")</option> 332 <option class="articleSearch" value="article" data-result="@itemResultsPage">@Translate("articleSearch", "Article")</option> 333 </select> 334 <input class="col-xs-6 noPadding" placeholder='@Translate("search", "Search")' id="searchSubmit" data-error='@Translate("searchText", "Search for something")' type="text" name="q" value=""> 335 </fieldset> 336 <button type="submit"> 337 <i class="fa fa-search"></i> 338 </button> 339 <div id="autocompleteWrap">&nbsp;</div> 340 341 @SnippetStart("jsOnLoad") 342 onLoadSearch(); 343 @SnippetEnd("jsOnLoad") 344 </form> 345 346 </div> 347 </div> 348 </div> 349 @* Languages *@ 350 @if (websiteLanguages.Count > 1) 351 { 352 <nav class="languages pull-right noPadding col-md-2"> 353 <ul class="pull-right"> 354 @foreach (LoopItem siteLanguage in websiteLanguages) 355 { 356 string pageId = siteLanguage.GetString("ID"); 357 var siteCulture = siteLanguage.GetString("Culture"); 358 string[] cultureInfo = siteLanguage.GetString("Culture").Split('-'); 359 360 <li> 361 <a href="/Default.aspx?AreaId=@pageId" title="@siteCulture"> 362 <img src="/Files/Templates/Designs/RoadPro/images/icons/@cultureInfo%5B0%5D_flag.png" alt="@siteCulture" title="@siteCulture"> 363 </a> 364 </li> 365 } 366 </ul> 367 </nav> 368 } 369 <div id="menuMainContainer" class="col-xs-12 noPadding"> 370 <div id="mainNavContainer" class="col-xs-12 noPadding"> 371 <div class="container"> 372 @if (!string.IsNullOrEmpty(GetString("DwNavigation(menuMain)"))) 373 { 374 <nav class="navbar navbar-default"> 375 <div class="navbar-header"> 376 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 377 <i class="fa fa-bars"></i> 378 </button> 379 </div> 380 <div id="navbar" class="navbar-collapse collapse noPadding"> 381 @GetValue("DwNavigation(menuMain)") 382 </div> 383 </nav> 384 } 385 </div> 386 </div> 387 </div> 388 @* RenderSnippet("loginForm") *@ 389 </header> 390 <aside id="videoConatiner"> 391 @{ 392 string video = GetString("Item.Page.VideoId"), 393 link = GetString("Item.Page.VideoLink"), 394 image = GetString("Item.Page.BackgroundImage"); 395 396 bool disabledAudio = GetBoolean("Item.Page.VideoDisableAudioControl"); 397 398 if (!String.IsNullOrWhiteSpace(image) || !String.IsNullOrWhiteSpace(video)) 399 { 400 @*<i class="fa fa-play-circle-o slideshowVideoIcon hidden-lg hidden-md hidden-xs"></i>*@ 401 <!--<a href="@link" target="_blank"> --> 402 <section id="topMediaContainer" data-image="@image" data-video="@video" data-disabledaudio="@disabledAudio"> 403 @if (!String.IsNullOrWhiteSpace(image)) 404 { 405 <img src="@image" class="hidden"> 406 } 407 @if (!String.IsNullOrWhiteSpace(video)) 408 { 409 <span class="hidden">@video</span> 410 } 411 </section> 412 <!-- </a> --> 413 @SnippetStart("jsOnLoad") 414 @:onLoadTopMediaContainer(); 415 @SnippetEnd("jsOnLoad") 416 } 417 } 418 </aside> 419 <section id="contentWrapper"> 420 @inherits RazorTemplateBase<RazorTemplateModel<Template>> 421 @using Dynamicweb.Rendering; 422 423 @inherits RazorTemplateBase<RazorTemplateModel<Template>> 424 @using Dynamicweb.Rendering; 425 @helper Breadcrumb() { 426 if (!string.IsNullOrEmpty(GetString("DwNavigation(breadCrumbsMenu2)"))) 427 { 428 <div class="col-xs-12 noPadding"> 429 <nav id="breadMenuContainer" class="col-xs-12 noPadding"> 430 <ul id="breadCrumbsMenu"> 431 <li><a href="/">@Translate("home", "Home")</a></li> 432 @GetValue("DwNavigation(breadCrumbsMenu2)") 433 @if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Params["productid"])) 434 { 435 <li> 436 @GetString("Title") 437 </li> 438 } 439 </ul> 440 </nav> 441 </div> 442 } 443 } 444 445 @helper PageTitle() { 446 string heading = GetString("Item.Page.PageHeading"), 447 title = !String.IsNullOrEmpty(heading) ? heading : GetString("DwPageName") ; 448 449 <div class="h1">@title</div> 450 } 451 452 @helper CentralContent(string rightClass = "col-xs-12 noPadding") { 453 if (!string.IsNullOrEmpty(GetString("DwContent(centralContent)"))) 454 { 455 <section id="centralContainer" class="@rightClass"> 456 <div id="centralContent" class="row">@GetValue("DwContent(centralContent)")</div> 457 </section> 458 } 459 } 460 461 <div class="container"> 462 @Breadcrumb() 463 @if (!GetBoolean("Item.Page.Hide3rdLevelMenu.Value") && !string.IsNullOrEmpty(GetString("DwNavigation(subMenu)"))) 464 { 465 string parentPageName = Pageview.Page.Parent.MenuText; 466 <h2 class="h1">@parentPageName</h2> 467 <nav class="navbar navbar-default" id="subMenuNav"> 468 <div class="navbar-header"> 469 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar4" aria-expanded="false" aria-controls="navbar4"> 470 <i class="fa fa-bars"></i> 471 </button> 472 </div> 473 <div id="navbar4" class="navbar-collapse collapse"> 474 @GetValue("DwNavigation(subMenu)") 475 </div> 476 </nav> 477 <div class="h2 col-xs-12 noPadding">@GetString("DwPageName")</div> 478 } 479 else 480 { 481 @PageTitle() 482 } 483 484 @if (GetBoolean("Item.Page.ShowLeftMenu.Value") &&!string.IsNullOrEmpty(GetString("DwNavigation(leftMenu)"))) 485 { 486 <nav id="leftMenuContainer" class="col-sm-3 noPadding"> 487 @GetValue("DwNavigation(leftMenu)") 488 </nav> 489 490 <div class="col-xs-12 col-sm-9 noPadding"> 491 @CentralContent() 492 </div> 493 } 494 else 495 { 496 @CentralContent() 497 } 498 </div> 499 </section> 500 @if( !isPrint ) { 501 <footer id="footer" class="container-fluid noPadding"> 502 <div id="footerLargeMenuContainer" class="container-fluid noPadding"> 503 <div class="container"> 504 <div class="col-sm-4 co-xs-12"> 505 <figure id="footer-logo"> 506 <a href="/"> 507 <img class="img-responsive" src="/Files/Templates/Designs/RoadPro/images/logoWhite.png" alt="@GetString(" item.area.companyname")"="" title="@GetString(" item.area.companyname")"=""> 508 </a> 509 </figure> 510 </div> 511 @if (!string.IsNullOrEmpty(GetString("DwNavigation(footerMenu)"))) 512 { 513 <nav id="footerMenuContainer" class="col-xs-12 col-sm-4"> 514 @GetValue("DwNavigation(footerMenu)") 515 </nav> 516 } 517 <div class="col-sm-4 socialContainer"> 518 <h2>@Translate("followUs", "Follow us")</h2> 519 @* Social Media *@ 520 @if (socialMedia.Any()) 521 { 522 @SnippetStart("socialMedia") 523 <ul class="noPadding clearfix" id="socialMedia"> 524 @foreach (LoopItem socialItem in socialMedia) 525 { 526 string className = socialItem.GetString("Item.Area.SocialNetworks.Icon"), 527 socialName = socialItem.GetString("Item.Area.SocialNetworks.Name"), 528 socialLink = socialItem.GetString("Item.Area.SocialNetworks.Link"); 529 530 socialLink = !string.IsNullOrEmpty(socialLink) ? socialLink : "#"; 531 532 //START CUSTOM CODE 533 if (socialName == "TikTok") 534 { 535 var iconLink = "/Files"+className; 536 537 <li> 538 <a title="@socialName" class="fa" target="_blank" href="@socialLink"> 539 <div style="background-color: white;mask: url('@iconLink') no-repeat center / contain; -webkit-mask: url('@iconLink') no-repeat center / contain; width:30px;height: 18.5px;"></div> 540 </a> 541 </li> 542 } 543 else 544 { 545 <li><a title="@socialName" class="@className fa" target="_blank" href="@socialLink"></a></li> 546 } 547 //END CUSTOM CODE 548 } 549 </ul> 550 @SnippetEnd("socialMedia") 551 @RenderSnippet("socialMedia") 552 } 553 <span class="col-xs-12 noPadding footerEmail footerIcon"><i class="fa fa-envelope"></i> <a href="mailto:@email"> @email </a></span> 554 <span class="col-xs-12 noPadding footerIcon"><i class="fa fa-phone"></i> <a href="tel:@phone"> @phone </a></span> 555 </div> 556 </div> 557 </div> 558 @Copyright() 559 @DemoBanner() 560 </footer> 561 } 562 </div> 563 @if(bol_backofficeLogged) { 564 <div id="urlPath" class="text-center col-xs-12"> 565 @Pageview.GlobalTags.GetTagByName("Global:Request.PathAndQuery").Value <br> 566 @Pageview.GlobalTags.GetTagByName("Global:Request.Url").Value 567 </div> 568 } 569 570 @{ 571 var G4Id = GetString("Item.Area.GoogleAnalyticsGA4"); 572 if (!String.IsNullOrWhiteSpace(G4Id)) 573 { 574 <text> 575 <!-- Global Site Tag (gtag.js) - Google Analytics --> 576 <script async="" src="https://www.googletagmanager.com/gtag/js?id=@G4Id"></script> 577 <script> 578 window.dataLayer = window.dataLayer || []; 579 function gtag(){dataLayer.push(arguments);} 580 gtag('js', new Date()); 581 gtag('config', '@G4Id'); 582 </script> 583 </text> 584 } 585 } 586 @*START CUSTOM CODE*@ 587 @if (!string.IsNullOrEmpty(linkedInPartnerId)) 588 { 589 <script type="text/javascript"> 590 _linkedin_partner_id = "@linkedInPartnerId"; 591 window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; 592 window._linkedin_data_partner_ids.push(_linkedin_partner_id); 593 </script> 594 <script type="text/javascript"> 595 (function(l) { 596 if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; 597 window.lintrk.q=[]} 598 var s = document.getElementsByTagName("script")[0]; 599 var b = document.createElement("script"); 600 b.type = "text/javascript";b.async = true; 601 b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 602 s.parentNode.insertBefore(b, s);})(window.lintrk); 603 </script> 604 <noscript> 605 <img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=@linkedInPartnerId&fmt=gif"> 606 </noscript> 607 } 608 @*END CUSTOM CODE*@ 609 610 @*Newsletter sign in popup*@ 611 @{ 612 if (GetString("DwAreaFirstPageID") == GetString("Global.PageId")) 613 { 614 <div id="signupNewsletterPopupTrigger"></div> 615 <div class="col-xs-12 hidden" id="signupNewsletterPopup"> 616 <p>@Translate("Join our email list!")</p> 617 <a type="button" class="btn btn btn-bg" href="@(Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(signInPage))">@Translate("Sign up")</a> 618 </div> 619 620 @SnippetStart("jsOnLoad") 621 @:onLoadNewsletterPopup(); 622 @SnippetEnd("jsOnLoad") 623 } 624 } 625 626 </body> 627 </html> 628 @SnippetStart("loginForm") 629 @{ 630 string createAccountPage = GetString("Item.Area.CreateAccount"); 631 string loginPage = GetString("Item.Area.Login"); 632 } 633 <form id="masterExtUserForm" class="col-xs-12 DMForms userRelatedForms hidden" action="/" method="post"> 634 <input type="hidden" name="redirect" value='@Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?ID=" + Pageview.Page.ID.ToString())'> 635 <input type="hidden" name="ID" value="@(GetGlobalValue(" global:page.id"))"=""> 636 637 <fieldset class="mandatory TextInput"> 638 <label for="Username">@Translate("usernameEmail","Username / Email")</label> 639 <input type="email" id="Username" name="username" value="" tabindex="1"> 640 </fieldset> 641 <fieldset class="mandatory TextInput"> 642 <label for="Password">@Translate("password","Password")</label> 643 <input autocomplete="off" type="password" id="Password" name="password" value="" tabindex="2"> 644 </fieldset> 645 646 <div class="col-xs-12 noPadding"> 647 <input tabindex="3" class="btn btn-bg" name="LoginAction" type="submit" value='@Translate("Login", "Login")'> 648 </div> 649 <div class="forgotButtons col-xs-12 noPadding"> 650 <a id="forgotPassword" href="@loginPage&amp;LoginAction=Recovery">@Translate("forgotYourPassword","Forgot your password?")</a> 651 </div> 652 <div id="dontHaveAnAccount" class="col-xs-12 noPadding"> 653 <div> 654 @Translate("dontHaveAnAccount","Don't have an account?") 655 <a href="@createAccountPage">@Translate("createAccount", "Create account")</a> 656 </div> 657 </div> 658 </form> 659 @SnippetEnd("loginForm")