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()
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" ? "&Format=" + imageFormat : "";
15 string getImageCompression = imageCompression != 0 ? "&Compression=" + imageCompression : "";
16 string bgColor = !string.IsNullOrEmpty(background) ? "&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 = "&Width=" + getImageWidth;
34 }
35 if (getImageHeight != 0)
36 {
37 heightString = "&Height=" + getImageHeight;
38 }
39
40 string output = "/Admin/Public/GetImage.ashx?Image=" + sourceString + widthString + heightString + "&altFmImage_path=" + alternativeImage + getImageFormat + getImageCompression + "&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">© @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"> </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&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")