Exception in template (Designs/Nissens_website/_parsed/ProductPage.parsed.cshtml): System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.feabddea.Execute()
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context)
at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
at Dynamicweb.Rendering.Template.Output()
<!DOCTYPE html>
<html>
@using Dynamicweb;
@using System.Globalization;
@functions
{
public bool IsSecret()
{
var secret = System.Web.HttpContext.Current.Request["secretindexbuildkey"];
if (!string.IsNullOrEmpty(secret))
{
var masterAreaId = Dynamicweb.Base.ChkInteger(Pageview.Area.get_Value("AreaMasterAreaID"));
var item = masterAreaId == 0
? Pageview.Area.Item
: Dynamicweb.Frontend.Area.GetAreaById(masterAreaId).Item;
var areaSecret = item["SecretKey"].ToString();
var isSecret = areaSecret == secret;
return isSecret;
}
return false;
}
public string Jsonify(object obj)
{
return Newtonsoft.Json.JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.Indented);
}
public int GetMasterAreaId()
{
var masterAreaId = (int)Pageview.Area.get_Value("areamasterareaid");
masterAreaId = masterAreaId > 0 ? masterAreaId : Pageview.AreaID;
return masterAreaId;
}
public IDictionary<int, CultureInfo> GetAreaCultureMap()
{
var masterAreaId = GetMasterAreaId();
var languageAreas = Pageview.AreaCollection.Values.OfType<Dynamicweb.Frontend.Area>()
.Where(a => (bool)a.get_Value("areaactive"))
.Where(a => a.ID == masterAreaId || ((int)a.get_Value("areamasterareaid")) == masterAreaId);
var map = languageAreas
.ToDictionary(a => a.ID,
a => new CultureInfo(a.get_Value("areaculture").ToString()));
return map;
}
public int GetPageIdFromLink(string link)
{
if (string.IsNullOrEmpty(link))
{
return 0;
}
var id = link.Split('=').Last();
int pageId;
if (!int.TryParse(id, out pageId))
{
return 0;
}
return pageId;
}
public Dynamicweb.Frontend.Page GetPageForCurrentCulture(int pageId)
{
var map = GetAreaCultureMap();
if (!map.ContainsKey(Pageview.AreaID))
{
return null;
}
var culture = map[Pageview.AreaID];
var localPage = GetPageForCulture(pageId, culture.ToString());
return localPage;
}
public string GetValueFromMasterAreaItem(string key)
{
var masterArea = Dynamicweb.Frontend.Area.GetAreaById(GetMasterAreaId());
var value = masterArea.Item[key];
if (value == null)
{
return null;
}
return value.ToString();
}
public Dynamicweb.Frontend.Page GetCurrentPageForCulture(string culture)
{
return GetPageForCulture(Pageview.ID, culture);
}
public Dynamicweb.Frontend.Page GetPageForCulture(int pageId, string culture)
{
var specifiedPage = Dynamicweb.Frontend.Page.FindPage(pageId);
if (specifiedPage == null)
{
return null;
}
var masterPageId = (int)specifiedPage.get_Value("pagemasterpageid");
var masterPage = Dynamicweb.Frontend.Page.FindPage(masterPageId > 0 ? masterPageId : specifiedPage.ID);
if (masterPage == null)
{
return null;
}
var cultureMap = GetAreaCultureMap();
var hasCultureArea = cultureMap.Any(pair => pair.Value.Name.ToLower().StartsWith(culture.ToLower()));
if (!hasCultureArea)
{
return null;
}
var cultureAreaId = cultureMap.First(pair => pair.Value.Name.ToLower().StartsWith(culture.ToLower())).Key;
var languageAreas = ((IEnumerable<Dynamicweb.Frontend.Page>)masterPage.Values["Languages"]);
if (languageAreas == null)
{
return null;
}
var culturePage = languageAreas.FirstOrDefault(p => p.AreaID == cultureAreaId);
return culturePage;
}
public string StripHTML(string input)
{
return System.Text.RegularExpressions.Regex.Replace(input, "<.*?>", String.Empty);
}
}
@{
var cacheBust = "v=27";
string currentLanguage = GetGlobalValue("Global:Area.Lang");
}
<head>
<script id="CookieConsent" src="https://policy.app.cookieinformation.com/uc.js" data-culture="@currentLanguage.ToUpper()" type="text/javascript"></script>
<script>
window.addEventListener('CookieInformationConsentGiven', function () {
if (CookieInformation.getConsentGivenFor('cookie_cat_statistic')) {
}
}, false);
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-TFTQ9T6');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-TTS6PGH');</script>
<!-- End Google Tag Manager -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>@GetValue("Title")</title>
@GetValue("MetaTags")
@GetValue("CopyRightNotice")
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="/Files/Templates/Designs/Nissens_website/./css/styles.css?@cacheBust" type="text/css" rel="stylesheet">
<link href="/Files/Templates/Designs/Nissens_website/./css/cookie/cookieinformation.min.css?@cacheBust" type="text/css" rel="stylesheet">
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/modernizr/modernizr-custom.js?@cacheBust"></script>
<link rel="apple-touch-icon" sizes="180x180" href="/Files/Templates/Designs/Nissens_website/apple-touch-icon.png">
<link rel="icon" type="image/png" href="/Files/Templates/Designs/Nissens_website/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/Files/Templates/Designs/Nissens_website/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/Files/Templates/Designs/Nissens_website/manifest.json">
<link rel="mask-icon" href="/Files/Templates/Designs/Nissens_website/safari-pinned-tab.svg" color="#266795">
<meta name="facebook-domain-verification" content="c6s2qd949f1oz67l34swgaln7waxhh">
<meta name="theme-color" content="#ffffff">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,700,700i&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese" rel="stylesheet">
@{
var CountryCode = GetGlobalValue("Global:Area.Culture.CountryCode");
}
<script>
console.log("@CountryCode")
</script>
@*Danish Facebook Pixel*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "DK") {
<meta name="facebook-domain-verification" content="fwanltzh81rk2sjdpji4621b4jppic">
}
@*Czech Facebook Pixel*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "CZ") {
<meta name="facebook-domain-verification" content="tqoppv2jznvlt3qkp9orskjznd1euq">
}
@*Chinese Facebook Pixel*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "CN") {
<meta name="facebook-domain-verification" content="723tz6xdd0aumdhzplb33rzmzd8mfr">
}
@*Spanish Facebook Pixel*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "ES") {
<meta name="facebook-domain-verification" content="u0k1h04zr4ep7ql644b7pg0xpeyy6u">
}
@*French Facebook Pixel*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "FR") {
<meta name="facebook-domain-verification" content="d1u358w4yttbf6wypdnqlnnyxux9nx">
}
@*Italian Facebook Pixel*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "IT") {
<meta name="facebook-domain-verification" content="snifkakk8lnxz4fjk8an4cqir004ft">
}
@*Polish Facebook Pixel*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "PL") {
<meta name="facebook-domain-verification" content="r7a8x4qgk5zs4pfwd4lpn7mgk9drg2">
}
@*Slovakia Facebook Pixel*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "SK") {
<meta name="facebook-domain-verification" content="xvsqevzqrfogyl7lorhkdvvmd9mnup">
}
@*Russian Facebook Pixel*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "RU") {
<meta name="facebook-domain-verification" content="qc2ozypcggx0hc5v9pr65ayeciteos">
}
@*English Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "US") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '11']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@*Danish Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "DK") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '13']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@*Czech Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "CZ") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@*Chinese Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "CN") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '19']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@*Spanish Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "ES") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '14']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@*French Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "FR") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '15']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@*Italian Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "IT") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '16']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@*Polish Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "PL") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '12']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@*Slovakia Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "SK") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '17']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@*Russian Matomo*@
@if (GetGlobalValue("Global:Area.Culture.CountryCode") == "RU") {
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://nissens.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '18']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='//cdn.matomo.cloud/nissens.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
}
@GetValue("Stylesheets")
@GetValue("Javascripts")
</head>
@{
var ar = Dynamicweb.Content.Area.GetAreaById(Pageview.AreaID);
var currentLanguages = (ar != null) ? ar.Culture.ToLower() : string.Empty;
}
<body class="@currentLanguages">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TFTQ9T6" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TTS6PGH" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TFTQ9T6" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<script type="text/javascript" src="https://secure.leadforensics.com/js/101799.js"></script>
<noscript><img src="https://secure.leadforensics.com/101799.png" style="display:none;"></noscript>
@helper renderGridOverview(System.Collections.Generic.IEnumerable<Dynamicweb.Content.Items.Item> itemsInGridOverview, string numberOfColumns, bool extraField)
{
var columnClass = "";
if(numberOfColumns == "2Columns")
{
columnClass = "";
}
if(numberOfColumns == "2ColumnsGreyBackground")
{
columnClass = "alt-view";
}
if(numberOfColumns == "3Columns")
{
columnClass = "three-columns";
}
<section class="module-overview @columnClass">
<div class="hd-container">
<ul>
@foreach(var item in itemsInGridOverview)
{
var headline = (item["Headline"] as string) ?? string.Empty;
var text = (item["Text"] as string) ?? string.Empty;
var image = (item["Image"] as string) ?? string.Empty;
var link = (item["Link"] as string) ?? string.Empty;
var linkText = (item["LinkText"] as string) ?? string.Empty;
var newWindowItem = item["OpenInNewWindow"] as bool?;
var hover = (!string.IsNullOrEmpty(link)) ? "hover-link" : string.Empty;
var newWindow = (bool) newWindowItem;
var OpenInNewWindow = (newWindow) ? "_blank" : string.Empty;
if(!string.IsNullOrEmpty(link))
{
<li>
<a href="@link" class="product-list-item @hover" target="@OpenInNewWindow">
@if(!string.IsNullOrEmpty(image))
{
<div class="img">
<img data-src="@image" src="@image" alt="" class="lazy-loaded">
</div>
}
<div class="txt">
<div>
<h3>@headline</h3>
@text
</div>
</div>
<span class="btn">@linkText<span class="icon-arrow-line-right"></span></span>
</a>
</li>
}
else
{
<li>
<div class="product-list-item txt-only">
@if(!string.IsNullOrEmpty(image)){
<div class="img" style="background-image: url(@image)"></div>
}
<div class="txt">
<div>
<h3>@headline</h3>
@text
</div>
</div>
</div>
</li>
}
}
@if(extraField)
{
if(numberOfColumns == "3Columns")
{
var numberOfEmptyFields = itemsInGridOverview.Count() % 3;
if(numberOfEmptyFields == 1)
{
numberOfEmptyFields = 2;
}
else if(numberOfEmptyFields == 2)
{
numberOfEmptyFields = 1;
}
for(int i = 0; i < numberOfEmptyFields; i++)
{
<li class="empty-element">
<div>
</div>
</li>
}
}
else{
var numberOfEmptyFields = itemsInGridOverview.Count() % 2;
for(int i = 0; i < numberOfEmptyFields; i++)
{
<li class="empty-element">
<div>
</div>
</li>
}
}
}
</ul>
</div>
</section>
}
@using Dynamicweb.Content;
@using Dynamicweb.Content.Items;
@using System;
@using System.Collections;
@using System.Collections.Generic;
@using System.Globalization;
@using System.Text.RegularExpressions;
@{
var color = "#FFF";
var hoverColor = "#02afef";
var firstAreaPage = Pageview.Area.get_Value("areafirstactivepage");
var navAreaMainPages = ((IEnumerable)Pageview.Area.get_Value("AreaMainPages")).Cast<int>
().Select(pid => pid);
var navPages = Page.GetPages(navAreaMainPages.ToArray());
string contactUsDefaultLink = null;
string contactUsDefaultName = "Contact Us";
var area = Area.GetAreaById(Pageview.AreaID);
var currentArea = area;
var currentFlag = area.Flag32x32;
var twoLetterName = new RegionInfo(area.CultureInfo.LCID).TwoLetterISORegionName;
if (!area.IsMaster)
{
var oldArea = area;
area = area.MasterArea;
if (area == null)
{
area = oldArea;
}
}
var page = Page.GetPageById(Pageview.ID);
var areaLanguages = new List<Area>();
areaLanguages.Add(area);
areaLanguages.AddRange(area.Languages);
var languageMenu = new List<Tuple<string, string, string>>();
var cultureMap = GetAreaCultureMap();
foreach (var languageAreaId in cultureMap.Keys.OrderBy(k => k))
{
var culture = cultureMap[languageAreaId];
var name = culture.NativeName;
try
{
name = (culture.IsNeutralCulture) ? culture.NativeName : culture.Parent.NativeName;
}
catch { }
name = culture.TextInfo.ToTitleCase(name);
var flag = areaLanguages.First(a => a.ID == languageAreaId).Flag32x32;
string link;
var langPage = GetPageForCulture(Pageview.ID, culture.Name);
if (langPage != null)
{
link = "/Default.aspx?ID=" + langPage.ID;
}
else
{
var firstPageId = Dynamicweb.Frontend.Area.GetAreaById(languageAreaId).get_Value("areafirstactivepage");
link = "/Default.aspx?ID=" + firstPageId;
}
if (Dynamicweb.Content.Area.GetAreaById(languageAreaId).IsMaster)
{
link += "?explicitLanguage=1";
}
languageMenu.Add(new Tuple<string, string, string>(name, link, flag));
}
@*var latinAlphabet = languageMenu.Where(x => Regex.IsMatch(x.Item1, @"^[\p{L}]+$")).OrderBy(x => x.Item1).ToList();
var noneLatinAlphabet = languageMenu.Where(x => !Regex.IsMatch(x.Item1, @"^[a-zA-Z]+$")).OrderBy(x => x.Item1).ToList();
latinAlphabet.AddRange(noneLatinAlphabet);
languageMenu = latinAlphabet;
@*var languageName = languageMenu.Select(x => x.Item1).ToList();
languageMenu = Heyday.Nissens.Helpers.HelperFunction.OrderByLatinAlphabet(languageName);*@
languageMenu = languageMenu.OrderBy(x => x.Item1).ToList();
var websiteItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(area.ItemType, area.ItemId);
}
@if (!IsSecret())
{
<header id="top">
<nav id="top-nav">
<div class="container">
@{
var headerLogoImage = websiteItem["HeaderLogoImage"].ToString();
var frontpageUrl = "/Default.aspx?ID=" + firstAreaPage;
}
<a class="logo" href="@frontpageUrl" style="background-image:url(@System.Web.HttpUtility.UrlPathEncode(headerLogoImage))">
<span class="company-name">Nissens</span>
</a>
<ul id="primary-nav">
@{
int index = 1;
foreach (var item in navPages.Where(x => x.ItemType == "Automotive"))
{
string markedClassName = "on";
string currentPageStyle = null;
if (page.ID == item.ID || page.ParentPageID == item.ID)
{
currentPageStyle = markedClassName;
}
<li>
<a class="toggle-megadropdown @currentPageStyle" data-dropdown-id="#megadropdown-0@(index)" href="#">@item.MenuText</a>
</li>
index++;
}
@*if (navPages.FirstOrDefault(n => n.ItemType == "Automotive") != null)
{
string markedClassName = "on";
string currentPageStyle = null;
var automotive = navPages.FirstOrDefault(n => n.ItemType == "Automotive");
if (page.ID == automotive.ID || page.ParentPageID == automotive.ID)
{
currentPageStyle = markedClassName;
}
<li>
<a class="toggle-megadropdown @currentPageStyle" data-dropdown-id="#megadropdown-01" href="#">@automotive.MenuText</a>
</li>
}*@
foreach (var rootPage in navPages)
{
string currentPageStyle = null;
string markedClassName = "on";
if (rootPage.ItemType == "PowerGeneration")
{
if (page.ID == rootPage.ID || page.ParentPageID == rootPage.ID)
{
currentPageStyle = markedClassName;
}
@* <li>
<a class="toggle-megadropdown @currentPageStyle" data-dropdown-id="#megadropdown-03" href="#">@rootPage.MenuText</a>
</li> *@
}
if (rootPage.ItemType == "OnAndOffroad")
{
if (page.ID == rootPage.ID || page.ParentPageID == rootPage.ID)
{
currentPageStyle = markedClassName;
}
@* <li>
<a class="toggle-megadropdown @currentPageStyle" data-dropdown-id="#megadropdown-04" href="#">@rootPage.MenuText</a>
</li> *@
}
if (rootPage.ItemType == "AboutNissens")
{
/*if (page.ID == rootPage.ID || page.ParentPageID == rootPage.ID)
{
currentPageStyle = markedClassName;
}*/
<li>
<!--a class="@currentPageStyle" href="/Default.aspx?ID=@rootPage.ID">@rootPage.MenuText</a-->
<a class="toggle-megadropdown @currentPageStyle" data-dropdown-id="#megadropdown-05" href="#">@rootPage.MenuText</a>
</li>
}
<!-- if (rootPage.ItemType == "ContactMenuItem")
{
//if (page.ID == rootPage.ID || page.ParentPageID == rootPage.ID)
//{
// currentPageStyle = markedClassName;
//}
contactUsDefaultLink = rootPage.ID.ToString();
<li>
@*<a class="@currentPageStyle" href="/Default.aspx?ID=@rootPage.ID">@rootPage.MenuText</a>*@
<a class="toggle-megadropdown @currentPageStyle" data-dropdown-id="#megadropdown-06" href="#">@rootPage.MenuText</a>
@*<a class="@currentPageStyle" href="@contactUsLink">@contactUsName</a>*@
</li>
} -->
if (rootPage.ItemType == "ContactSinglePage")
{
//if (page.ID == rootPage.ID || page.ParentPageID == rootPage.ID)
//{
// currentPageStyle = markedClassName;
//}
contactUsDefaultLink = rootPage.ID.ToString();
<li>
<a class="@currentPageStyle" href="/Default.aspx?ID=@rootPage.ID">@rootPage.MenuText</a>
@*<a class="toggle-megadropdown @currentPageStyle" data-dropdown-id="#megadropdown-07" href="#">@rootPage.MenuText</a>*@
@*<a class="@currentPageStyle" href="@contactUsLink">@contactUsName</a>*@
</li>
}
}
}
</ul>
<div id="search-nav">
<button type="button" class="toggle-megadropdown" data-dropdown-id="#megadropdown-search">
<span class="icon-search"></span>
</button>
</div>
<div id="language-nav">
<button type="button" class="toggle-megadropdown" data-dropdown-id="#megadropdown-language">
<span class="flag"><img src="@currentFlag" alt=""></span>
</button>
</div>
<button type="button" class="burger-btn">
<span></span>
<span></span>
<span></span>
<span></span>
</button>
</div>
</nav>
<nav id="megadropdown-nav" class="hidden-print">
<div class="content">
<!--mobile-megadropdown-nav #1 start...-->
<div id="mobile-megadropdown-nav">
<div class="language-nav">
<button type="button" class="toggle-megadropdown" data-dropdown-id="#megadropdown-language">
<span class="country">
<!--DEV NOTE: add the active site language below-->
<span class="flag"><img src="@currentFlag" alt=""></span>
<span class="name">@twoLetterName</span>
</span>
<span class="icon-arrow-down"></span>
</button>
</div>
<div class="primary-nav">
<ul>
@{
int indexForMobile = 1;
foreach (var rootPage in navPages.Where(x => x.ItemType == "Automotive"))
{
<li>
<a class="toggle-megadropdown" data-dropdown-id="#megadropdown-0@(indexForMobile)" href="#">@rootPage.MenuText</a>
</li>
indexForMobile++;
}
foreach (var rootPage in navPages)
{
if (rootPage.ItemType == "AboutNissens")
{
<li>
@*<a href="/Default.aspx?ID=@rootPage.ID">@rootPage.MenuText</a>*@
<a class="toggle-megadropdown" data-dropdown-id="#megadropdown-05" href="#">@rootPage.MenuText</a>
</li>
}
if (rootPage.ItemType == "ContactMenuItem")
{
<li>
@*<a href="/Default.aspx?ID=@rootPage.ID">@rootPage.MenuText</a>*@
<a class="toggle-megadropdown" data-dropdown-id="#megadropdown-06" href="#">@rootPage.MenuText</a>
</li>
}
}
}
</ul>
</div>
</div>
<!--...mobile-megadropdown-nav #1 end-->
<!--Variables used on megadropdown -->
@{
var links = new Dictionary<string, string[]>();
var contactUsLink = "";
var contactUsName = "";
var suppliersPartnersLink = "";
var suppliersPartnersName = "";
}
@{
@*Dictionary<string, string[]> links = new Dictionary<string, string[]>();*@
var backgroundImage = new string[3];
var rootPageID = 0;
contactUsLink = string.Empty;
contactUsName = string.Empty;
var repo = ItemManager.Storage.Open("ProductGroup");
var groupingItems = repo.SelectByAreaId(Pageview.AreaID);
var navIndex = 1;
foreach (var rootPage in navPages)
{
var productOverview = new Dictionary<string, List<Tuple<string, string, string>>>();
if (rootPage.ItemType == "Automotive")
{
var rootItem = ItemManager.Storage.GetById(rootPage.ItemType, rootPage.ItemId);
var chosenColor = (rootItem["TextColorInHex"] as string) ?? string.Empty;
var chosenHover = (rootItem["HoverColorInHex"] as string) ?? string.Empty;
if (!string.IsNullOrWhiteSpace(chosenColor))
{
color = chosenColor.StartsWith("#") ? chosenColor : "#" + chosenColor;
}
if (!string.IsNullOrWhiteSpace(chosenHover))
{
hoverColor = chosenHover.StartsWith("#") ? chosenHover : "#" + chosenHover;
}
for (var i = 1; i <= 4; i++)
{
var link = rootItem["Link_" + i] as string;
var linkName = rootItem["Link_" + i + "Name"] as string;
var linkImage = rootItem["Link" + i + "Image"] as string;
var linkTarget = rootItem["Link_" + i + "_OpenInNewWindow"];
var OpenInNewWindow = "";
if (linkTarget.ToString().ToLower() == "true")
{
OpenInNewWindow = "_blank";
}
if (!string.IsNullOrEmpty(link))
{
links.Add(i.ToString(), new[] { link, linkName, linkImage, OpenInNewWindow });
}
}
contactUsLink = (rootItem["ContactUsLink"] as string) ?? "/Default.aspx?ID=" + contactUsDefaultLink;
contactUsName = (rootItem["ContactUs"] as string) ?? contactUsDefaultName;
suppliersPartnersLink = (rootItem["SuppliersPartnersLink"] as string);
suppliersPartnersName = (rootItem["SuppliersPartners"] as string);
for (var i = 1; i <= 3; i++)
{
var backgroundImageItem = (rootItem["BackgroundImage" + i] as string) ?? string.Empty;
backgroundImage[i - 1] = backgroundImageItem;
}
var pages = rootPage.Subpages;
foreach (var subPage in pages)
{
if (subPage.ItemType == "ProductPage")
{
rootPageID = rootPage.ID;
var id = subPage.ID;
var name = subPage.MenuText;
var link = "/Default.aspx?ID=" + id;
var productCategory = ItemManager.Storage.GetById(subPage.ItemType, subPage.ItemId);
string image = productCategory["Image"] as string;
string groupingOb = (productCategory["Grouping"] as string) ?? string.Empty;
var grouping = groupingItems.FirstOrDefault(g => g["Name"].ToString() == groupingOb);
if (grouping != null)
{
var group = grouping["Label"].ToString();
if (!productOverview.ContainsKey(group))
{
productOverview.Add(group, new List<Tuple<string, string, string>>());
}
productOverview[group].Add(new Tuple<string, string, string>(name, link, image));
}
}
}
<div id="megadropdown-0@(navIndex)" class="is-mega-dropdown">
<div class="container">
<div class="megadropdown-row automotive">
@{int j = 0;}
@foreach (var dicti in productOverview)
{
<div class="megadropdown-col col-sm-12 col-xs-12" style="color: @color !important; background-image: url(@System.Web.HttpUtility.UrlPathEncode(backgroundImage[j]));">
<h3>
@dicti.Key
<button type="button"></button>
</h3>
<ul>
@foreach (var item in dicti.Value)
{
<li>
<a onmouseover='this.style.color="@hoverColor"' onmouseout='this.style.color="@color"' href="@item.Item2">@item.Item1</a>
</li>
}
</ul>
</div>
j++;
}
@{
var backgroundImageLink = websiteItem["BackgroundImage"] as string;
var backgroundImageLink1 = websiteItem["NavItem_5_Background_Image"] as string;
}
</div>
<div class="megadropdown-row buttons">
@foreach (var link in links.Values)
{
<div class="col-one-fifth">
<a href="@link[0]" class="md-btn alt" style="background-image: url(@System.Web.HttpUtility.UrlPathEncode(link[2]));" target="@link[3]">
<span>@link[1]<span class="icon-arrow-line-right">@link[0]</span></span>
</a>
</div>
}
<div class="col-one-fifth col-five-fifth-xs">
<a href="@contactUsLink" class="md-btn contact-us"><span>@contactUsName<span class="icon-arrow-line-right"></span></span></a>
</div>
</div>
</div>
</div>
navIndex++;
}
}
}
<!--//megadropdown #1 end-->
<!--megadropdown #2 start...-->
<div id="megadropdown-03" class="is-mega-dropdown">
<div class="container">
<div class="megadropdown-row categories">
@{
links = new Dictionary<string, string[]>();
foreach (var rootPage in navPages)
{
if (rootPage.ItemType == "PowerGeneration")
{
var rootItem = ItemManager.Storage.GetById(rootPage.ItemType, rootPage.ItemId);
for (var i = 1; i <= 4; i++)
{
var link = (rootItem["Link_" + i] as string) ?? string.Empty;
var linkName = (rootItem["Link_" + i + "Name"] as string) ?? string.Empty;
var linkImage = (rootItem["Link" + i + "Image"] as string) ?? string.Empty;
var linkTarget = (rootItem["Link_" + i + "_OpenInNewWindow"]) ?? string.Empty;
var OpenInNewWindow = "";
if (linkTarget.ToString().ToLower() == "true")
{
OpenInNewWindow = "_blank";
}
if (!string.IsNullOrEmpty(link))
{
links.Add(i.ToString(), new[] { link, linkName, linkImage, OpenInNewWindow });
}
}
contactUsLink = (rootItem["ContactUsLink"] as string) ?? "/Default.aspx?ID=" + contactUsDefaultLink;
contactUsName = (rootItem["ContactUs"] as string) ?? contactUsDefaultName;
var pages = rootPage.Subpages;
foreach (var subPage in pages.OrderBy(p => p.Sort))
{
if (subPage.ItemType == "MenuItem")
{
var id = subPage.ID;
var name = subPage.MenuText;
var link = "/Default.aspx?ID=" + id;
var menuItem = ItemManager.Storage.GetById(subPage.ItemType, subPage.ItemId);
string image = menuItem["Image"] as string;
<div class="col-sm-3 col-xs-6">
<a href="@link" class="category-menu-btn">
<span class="h3">@name</span>
<div class="image">
<img src="@image" alt="">
</div>
</a>
</div>
}
}
}
}
}
</div>
<div class="megadropdown-row buttons">
@foreach (var link in links.Values)
{
<div class="col-one-fifth">
<a href="@link[0]" class="md-btn alt" style="background-image: url(@System.Web.HttpUtility.UrlPathEncode(link[2]));" target="@link[3]">
<span>@link[1]<span class="icon-arrow-line-right">@link[0]</span></span>
</a>
</div>
}
<div class="col-one-fifth col-five-fifth-xs">
<a href="@contactUsLink" class="md-btn contact-us"><span>@contactUsName<span class="icon-arrow-line-right"></span></span></a>
</div>
</div>
</div>
</div>
<!--//megadropdown #2 end-->
<!--megadropdown #3 start...-->
<div id="megadropdown-04" class="is-mega-dropdown">
<div class="container">
<div class="megadropdown-row categories">
@{
links = new Dictionary<string, string[]>();
foreach (var rootPage in navPages)
{
if (rootPage.ItemType == "OnAndOffroad")
{
var rootItem = ItemManager.Storage.GetById(rootPage.ItemType, rootPage.ItemId);
for (var i = 1; i <= 4; i++)
{
var link = (rootItem["Link_" + i] as string) ?? string.Empty;
var linkName = (rootItem["Link_" + i + "Name"] as string) ?? string.Empty;
var linkImage = (rootItem["Link" + i + "Image"] as string) ?? string.Empty;
var linkTarget = (rootItem["Link_" + i + "_OpenInNewWindow"]) ?? string.Empty;
var OpenInNewWindow = "";
if (linkTarget.ToString().ToLower() == "true")
{
OpenInNewWindow = "_blank";
}
if (!string.IsNullOrEmpty(link))
{
links.Add(i.ToString(), new[] { link, linkName, linkImage, OpenInNewWindow });
}
}
contactUsLink = (rootItem["ContactUsLink"] as string) ?? "/Default.aspx?ID=" + contactUsDefaultLink;
contactUsName = (rootItem["ContactUs"] as string) ?? contactUsDefaultName;
var pages = rootPage.Subpages;
foreach (var subPage in pages.OrderBy(p => p.Sort))
{
if (subPage.ItemType == "MenuItem")
{
var id = subPage.ID;
var name = subPage.MenuText;
var link = "/Default.aspx?ID=" + id;
var productCategory = ItemManager.Storage.GetById(subPage.ItemType, subPage.ItemId);
string image = productCategory["Image"] as string;
<div class="col-one-fourth">
<a href="@link" class="category-menu-btn">
<span class="h3">@name</span>
<div class="image">
<img src="@image" alt="">
</div>
</a>
</div>
}
}
}
}
}
</div>
<div class="megadropdown-row buttons">
@foreach (var link in links.Values)
{
<div class="col-one-fifth">
<a href="@link[0]" class="md-btn alt" style="background-image: url(@System.Web.HttpUtility.UrlPathEncode(link[2]));" target="@link[3]">
<span>@link[1]<span class="icon-arrow-line-right">@link[0]</span></span>
</a>
</div>
}
<div class="col-one-fifth col-five-fifth-xs">
<a href="@contactUsLink" class="md-btn contact-us"><span>@contactUsName<span class="icon-arrow-line-right"></span></span></a>
</div>
</div>
</div>
</div>
<!--//megadropdown #3 end-->
<!--megadropdown #4 start...-->
<div id="megadropdown-05" class="is-mega-dropdown">
<div class="container">
<div class="megadropdown-row categories">
@{
links = new Dictionary<string, string[]>();
foreach (var rootPage in navPages)
{
if (rootPage.ItemType == "AboutNissens")
{
var rootItem = ItemManager.Storage.GetById(rootPage.ItemType, rootPage.ItemId);
for (var i = 1; i <= 4; i++)
{
var link = (rootItem["Link_" + i] as string) ?? string.Empty;
var linkName = (rootItem["Link_" + i + "Name"] as string) ?? string.Empty;
var linkImage = (rootItem["Link" + i + "Image"] as string) ?? string.Empty;
var linkTarget = (rootItem["Link_" + i + "_OpenInNewWindow"]) ?? string.Empty;
var OpenInNewWindow = "";
if (linkTarget.ToString().ToLower() == "true")
{
OpenInNewWindow = "_blank";
}
if (!string.IsNullOrEmpty(link))
{
links.Add(i.ToString(), new[] { link, linkName, linkImage, OpenInNewWindow });
}
}
contactUsLink = (rootItem["ContactUsLink"] as string) ?? "/Default.aspx?ID=" + contactUsDefaultLink;
contactUsName = (rootItem["ContactUs"] as string) ?? contactUsDefaultName;
var pages = rootPage.Subpages;
foreach (var subPage in pages.OrderBy(p => p.Sort))
{
if (subPage.ItemType == "MenuItem")
{
var id = subPage.ID;
var name = subPage.MenuText;
var link = "/Default.aspx?ID=" + id;
var productCategory = ItemManager.Storage.GetById(subPage.ItemType, subPage.ItemId);
string image = productCategory["Image"] as string;
<div class="col-sm-4 col-xs-6">
<a href="@link" class="category-menu-btn">
<span class="h3">@name</span>
<div class="image">
<img src="@image" alt="">
</div>
</a>
</div>
}
}
}
}
}
</div>
<div class="megadropdown-row buttons">
@foreach (var link in links.Values)
{
<div class="col-one-fifth">
<a href="@link[0]" class="md-btn alt" style="background-image: url(@System.Web.HttpUtility.UrlPathEncode(link[2]));" target="@link[3]">
<span>@link[1]<span class="icon-arrow-line-right">@link[0]</span></span>
</a>
</div>
}
<div class="col-one-fifth col-five-fifth-xs">
<a href="@contactUsLink" class="md-btn contact-us"><span>@contactUsName<span class="icon-arrow-line-right"></span></span></a>
</div>
</div>
</div>
</div>
<!--//megadropdown #4 end-->
<!--megadropdown #5 start...-->
<div id="megadropdown-06" class="is-mega-dropdown">
<div class="container">
<div class="megadropdown-row categories">
@{
links = new Dictionary<string, string[]>();
foreach (var rootPage in navPages)
{
if (rootPage.ItemType == "ContactMenuItem")
{
var pages = rootPage.Subpages;
foreach (var subPage in pages.OrderBy(p => p.Sort))
{
if (subPage.ItemType == "MenuItem")
{
var id = subPage.ID;
var name = subPage.MenuText;
var link = "/Default.aspx?ID=" + id;
var productCategory = ItemManager.Storage.GetById(subPage.ItemType, subPage.ItemId);
string image = productCategory["Image"] as string;
<div class="col-sm-4 col-xs-6">
<a href="@link" class="category-menu-btn">
<span class="h3">@name</span>
<div class="image">
<img src="@image" alt="">
</div>
</a>
</div>
}
/*<div class="col-one-fifth">
<a href="@link" class="category-menu-btn">
<span class="h3">@name</span>
<div class="image">
<img src="@image" alt="">
</div>
</a>
</div>*/
}
}
}
}
</div>
</div>
</div>
<!--#megadropdown-search start...-->
<div id="megadropdown-search" class="is-mega-dropdown">
<div class="container">
@{
var searchPageId = websiteItem["SearchResultPage"].ToString().Split('=').Last();
var searchCulture = Pageview.Area.get_Value("areaculture").ToString();
var searchPageLocal = GetPageForCulture(Dynamicweb.Base.ChkInteger(searchPageId), searchCulture);
if (searchPageLocal == null)
{
searchPageLocal = Pageview.Page;
}
var placeholderText = Translate("SearchPlaceholder", "What are you looking for?");
}
<form action="/Default.aspx">
<input type="hidden" value="@searchPageLocal.ID" name="ID">
<input type="hidden" value="@Pageview.AreaID" name="Context">
<input type="text" name="freetext" class="search" role="search" placeholder="@placeholderText" aria-label="Search">
<button type="submit"><span class="icon-arrow-line-right"></span></button>
</form>
</div>
</div>
<!--//#megadropdown-search end-->
<!--#megadropdown-language start...-->
<div id="megadropdown-language" class="is-mega-dropdown">
<div class="container">
<ul>
@{
foreach (var lang in languageMenu)
{
var activeFlag = (currentFlag == lang.Item3) ? "on" : "";
<li class="@activeFlag">
<a href="@lang.Item2" class="country">
<span class="flag"><img src="@lang.Item3" alt=""></span>
<span class="name">@lang.Item1</span>
</a>
</li>
}
}
</ul>
</div>
</div>
<!--//#megadropdown-language end-->
</div>
</nav>
<!--#secondary-nav start...-->
<nav id="secondary-nav">
<ul>
@foreach (var paragraph in Paragraph.GetParagraphsByPageID(page.ID))
{
if (paragraph.ItemType != "Paragraph_Menu_Item" || !paragraph.ShowParagraph)
{
continue;
}
<li>
<a href="/Default.aspx?ID=@page.ID/#@paragraph.ID">@paragraph.Header</a>
</li>
}
</ul>
</nav>
</header>
}
@using System.Web;
@using Dynamicweb
@{
var longCookie = HttpContext.Current.Request.Cookies["Heyday.NissensLanguagePicker"];
var hasExplicitLanguage = (HttpContext.Current.Request.Cookies["Heyday.LanguageDetected"] != null) ? true : HttpContext.Current.Request.Url.Query.Contains("explicitLanguage");
var areaIsMaster = Dynamicweb.Content.Area.GetAreaById(Pageview.AreaID).IsMaster;
var isFrontpage = GetString("DwPageName") == "Frontpage";
}
@if(areaIsMaster && longCookie == null && !hasExplicitLanguage && isFrontpage)
{
var cultureMaps = GetAreaCultureMap();
var languagesMenu = new List<Tuple<string, string, string>>();
foreach(var languageAreaId in cultureMaps.Keys.OrderBy(k => k))
{
var languageArea = Dynamicweb.Frontend.Area.GetAreaById(languageAreaId);
var culture = cultureMaps[languageAreaId];
var name = culture.NativeName;
try
{
name = (culture.IsNeutralCulture) ? culture.NativeName : culture.Parent.NativeName;
}
catch{}
//Setting TitleCase on the name string
name = culture.TextInfo.ToTitleCase(name);
var flag = areaLanguages.First(a => a.ID == languageAreaId).Flag32x32;
string link;
var langPage = GetPageForCulture(Pageview.ID, culture.Name);
if (langPage != null)
{
link = "/Default.aspx?ID=" + langPage.ID;
}
else
{
var firstPageId = Dynamicweb.Frontend.Area.GetAreaById(languageAreaId).get_Value("areafirstactivepage");
link = "/Default.aspx?ID=" + firstPageId;
}
languagesMenu.Add(new Tuple<string, string, string>(name, link, flag));
}
<div class="language-picker" id="test2022">
<div class="language-picker__content">
<div class="language-picker__inner-content">
<div class="language-picker__content-list">
@foreach(var language in languagesMenu.OrderBy(x => x.Item1).ToList())
{
var flag = language.Item3;
if (string.IsNullOrEmpty(flag))
{
continue;
}
var lastIndexOf = flag.LastIndexOf('/');
if (lastIndexOf <= 0)
{
continue;
}
HttpContext.Current.Session["Heyday.LanguageDetected"] = true;
<div class="language-picker__item">
<a href="#" data-href="@language.Item2"><img src="@flag" alt="@flag.Substring(lastIndexOf, flag.Length - lastIndexOf)">@language.Item1</a>
</div>
}
</div>
</div>
</div>
</div>
}
<main>
<!--Module product...-->
<section class="module-product">
<div class="hd-container">
<div class="row product-info">
<div class="col-sm-6">
<div class="module-gallery" data-show-items="1">
@{
var imageUrl = @GetString("Item.Image.Value");
}
<div class="product-image">
<img class="lazyOwl" data-src="@imageUrl" alt="">
</div>
</div>
</div>
<div class="col-sm-6">
<div class="module-text" data-read-more="false" data-read-more-text="More..." data-read-less-text="Close">
<!--NOTE: data-read-more="true" should be added via backend, if needed-->
<strong>@GetString("Item.ParagraphHeader.Value")</strong>
@GetString("Item.Headline")
@*<ol class="breadcrumb">
<li><a href="#">Home</a></li>
<li><a href="#">Library</a></li>
<li class="active">Data</li>
</ol>*@
<div class="text-block">
@GetString("Item.Text")
</div>
</div>
</div>
</div>
<div class="row product-further-info">
<div class="col-sm-12">
@{
if (GetLoop("Item.GridOverview1").Any())
{
var grid1 = GetLoop("Item.GridOverview1")
.Select(l => Dynamicweb.Content.Items.ItemManager.Storage.GetById(l.GetString("Item.GridOverview1.SystemName"),
l.GetString("Item.GridOverview1.Id")));
<div class="row title">
<div class="col-sm-12">
<h2 style="text-align: center">
<strong>@Translate("Gridoverview1", "Gridoverview1")</strong>
</h2>
</div>
</div>
@renderGridOverview(grid1, GetString("Item.NumberOfColumns1"), false)
}
if (GetLoop("Item.GridOverview2").Any())
{
var grid2 = GetLoop("Item.GridOverview2")
.Select(l => Dynamicweb.Content.Items.ItemManager.Storage.GetById(l.GetString("Item.GridOverview2.SystemName"),
l.GetString("Item.GridOverview2.Id")));
<div class="row title">
<div class="col-sm-12">
<h2 style="text-align: center">
<strong>@Translate("Gridoverview2", "Gridoverview2")</strong>
</h2>
</div>
</div>
@renderGridOverview(grid2, GetString("Item.NumberOfColumns2"), false)
}
}
@if (!string.IsNullOrWhiteSpace(@GetString("Item.TechnicalDetails.Value")))
{
<div class="accordion">
<h4>@Translate("TechnicalDetailsOne", "Technical Details")</h4>
<div class="txt">
<div class="inner-txt">
@GetString("Item.TechnicalDetails.Value")
</div>
</div>
</div>
}
@{
// Children of the node
var downloadItems = Dynamicweb.Content.Items.ItemManager.Storage.GetByParentPageId("Download", Pageview.ID).ToList();
// List of downloads defined on the page itself (page of "productCategory" itemtype)
int donwloadLinksListId = GetInteger("Item.DownloadLinks.Value");
var downloadLinksEntries = Dynamicweb.Content.Items.ItemList.GetItemListById(donwloadLinksListId).Relations;
var downloadLinks = downloadLinksEntries.Select(x => x as Dynamicweb.Content.Items.Item).ToList();
}
@if (downloadItems.Any() || downloadLinks.Any())
{
<div class="accordion">
<h4>@Translate("Download", "Download")</h4>
<div class="txt greyColor">
<div class="inner-txt">
<ul>
@if (downloadLinks.Any())
{
foreach (var downloadLink in downloadLinks)
{
object name = string.Empty;
object link = string.Empty;
object image = string.Empty;
object language = string.Empty;
object openInNewTab = string.Empty;
downloadLink.TryGetValue("Name", ref name);
downloadLink.TryGetValue("Link", ref link);
downloadLink.TryGetValue("Image", ref image);
downloadLink.TryGetValue("Language", ref language);
downloadLink.TryGetValue("OpenLinkInNewTab", ref openInNewTab);
if (string.IsNullOrEmpty(link.ToString()))
{
link = "javascript:void(0);";
}
string target = "_self";
if ((bool)openInNewTab)
{
target = "_blank";
}
<li>
<a href="@link" target="@(target)" class="download-item">
<div class="img">
<img data-src="@image" src="/Files/Templates/Designs/Nissens-website/images/blank.png" alt="">
</div>
<div class="txt">
<p>
@name
<span class="language">@language</span>
</p>
</div>
</a>
</li>
}
}
@foreach (var item in downloadItems)
{
object image = string.Empty;
object name = string.Empty;
object file = string.Empty;
object language = string.Empty;
item.TryGetValue("Image", ref image);
item.TryGetValue("Name", ref name);
item.TryGetValue("File", ref file);
item.TryGetValue("Language", ref language);
if (string.IsNullOrEmpty(file.ToString()))
{
file = "javascript:void(0);";
}
<li>
<a href="@file" class="download-item">
<div class="img">
<img data-src="@image" src="/Files/Templates/Designs/Nissens-website/images/blank.png" alt="">
</div>
<div class="txt">
<p>
@name
<span class="language">@language</span>
</p>
</div>
</a>
</li>
}
</ul>
</div>
</div>
</div>
}
</div>
</div>
</div>
</section>
<!--3D banner...-->
@if (!string.IsNullOrWhiteSpace(GetString("Item.AnimationsItem")))
{
<section class="module-3d-banner">
<img src="/Files/Templates/Designs/Nissens_website/Files/Templates/Designs/Nissens-website/images/banner-3d-reliability-performance-b.png" alt="">
</section>
}
<!--Hero banner...-->
@if (!string.IsNullOrWhiteSpace(GetString("Item.ProductBenefits")))
{
<section class="module-hero-banner" data-text-align="Center" data-size="Medium">
@{
imageUrl = @GetString("Item.ProductBenefits.Image.Value");
}
<div class="col">
<div class="txt">
@GetString("Item.ProductBenefits.Headline.Value")
@GetString("Item.ProductBenefits.Text.Value")
<img src="@imageUrl" alt="">
</div>
</div>
</section>
}
<!--Text (Title + 1 col text)...-->
@if (!string.IsNullOrWhiteSpace(GetString("Item.VideoLink")))
{
<section class="section-grid bottom-line-white-gray" style="background-color: #e3e7ea;">
<!--+ left top-->
<span class="plus-bg-left-top"></span>
<div class="hd-container">
<div class="row">
<div class="col-sm-12">
<!--Module video (NOTE: .show-in-overlay should be added via backend)...-->
@{
var videoUrl = @GetString("Item.VideoLink.VideoLink.Value");
var videoImage = videoUrl.Contains("youku") ? @GetString("Item.VideoLink.Image.Value") : "";
}
<div class="module-video">
<div class="video-container">
<div class="video-player"></div>
<a class="video-overlay" href="@videoUrl" style="background-image:url('@videoImage');">
<div>
<span class="play-btn"><span class="icon-arrow-right"></span></span>
<div class="title">
@GetString("Item.VideoLink.Headline.Value")
<!-- <p class="duration">Duration @GetString("Item.VideoLink.Duration.Value")</p> -->
</div>
</div>
</a>
</div>
</div>
<!--//Module video-->
</div>
</div>
</div>
</section>
if (videoUrl.Contains("youku"))
{
<script type="text/javascript" src="//player.youku.com/jsapi"></script>
}
}
<!--Related Products - Spotboxes...-->
@if (!string.IsNullOrWhiteSpace(GetString("Item.RelatedItems")))
{
<section class="module-spotboxes">
<div class="hd-container">
<div class="row">
<div class="col-xs-12">
<h3>@Translate("RelatedProducts", "Related Products")</h3>
</div>
</div>
<div class="row">
@foreach (var related in GetLoop("Item.RelatedItems"))
{
imageUrl = @related.GetString("Item.RelatedItems.Image.Value");
var linkUrl = @related.GetString("Item.RelatedItems.Url");
var teaserText = related.GetString("Item.RelatedItems.Text.Value");
teaserText = StripHTML(teaserText);
<div class="col-xs-4">
<div class="module-spot related-product">
<a class="spot-image-container" href="@linkUrl">
<img src="@imageUrl" alt="">
</a>
<div class="spot-text-container">
<a href="@linkUrl" class="hd-btn secondary inverted">@related.GetString("Item.RelatedItems.PageName")</a>
<p>@Dynamicweb.Base.TeaserString(teaserText, 100, "...")</p>
</div>
</div>
</div>
}
</div>
</div>
</section>
}
<!--Hero banner...-->
@if (!string.IsNullOrWhiteSpace(GetString("Item.Banner")))
{
imageUrl = @GetString("Item.Banner.Image.Value");
var linkUrl = @GetString("Item.Banner.Link.Value");
<section class="module-hero-banner bottom-line-white-blue" data-text-align="Center" data-size="Medium" style="color: white;">
<!--+ left top-->
<span class="plus-bg-left-top"></span>
<div class="col" style="background-image:url(@imageUrl);">
<div class="txt">
@GetString("Item.Banner.Headline.Value")
@GetString("Item.Banner.Text.Value")
<a href="@linkUrl" class="hd-btn">@GetString("Item.Banner.LinkText.Value")</a>
</div>
</div>
</section>
}
</main>
<!-- Start of HubSpot Embed Code -->
<script type="text/javascript" id="hs-script-loader" async="" defer="" src="//js.hs-scripts.com/4486890.js"></script>
<!-- End of HubSpot Embed Code -->
<div id="fullpage-overlay">
<div class="content">
<iframe id='fullpage-player' src="about:blank"></iframe>
<button id="close-fullpage-overlay" class="close-btn" type="button"><span class="icon-close"></span></button>
</div>
</div>
@{
var areaMainPages = ((System.Collections.ArrayList)Pageview.Area.get_Value("AreaMainPages")).Cast<int>().Select(pid => Dynamicweb.Content.Page.GetPageById(pid));
}
@if (!IsSecret())
{
<footer id="bottom" class="hidden-print">
<div class="social-bar">
<a href="https://www.facebook.com/nissensautomotive/" target="_blank" title="Facebook" class="social-icon">
<span class="icon-facebook">Facebook</span>
</a>
@*Hide YouTube if site lang is chinese*@
@if (GetGlobalValue("Global:Area.LongLang") != "zh-CN")
{
<a href="https://www.youtube.com/user/NissensAS" target="_blank" title="YouTube" class="social-icon">
<span class="icon-youtube">Youtube</span>
</a>
}
<a href="https://www.linkedin.com/company/20196" target="_blank" title="LinkedIn" class="social-icon">
<span class="icon-linkedin">LinkedIn</span>
</a>
</div>
<div class="bg"></div>
<div class="footer-container">
<div class="row">
<div>
<a class="logo-white" href="/">
@{
@*var footerImage = @GetString("Item.Area.FooterImage.Value");*@
var footerImage = websiteItem["FooterImage"];
}
<img src="@footerImage" alt="">
</a>
</div>
@{
var currentRegion = new System.Globalization.RegionInfo(GetAreaCultureMap()[Pageview.AreaID].LCID);
var aboutPage = areaMainPages.FirstOrDefault(p => p.ItemType == "AboutNissens");
var divisions = Dynamicweb.Content.Items.ItemManager.Storage.GetByParentPageId("Department", aboutPage.ID);
Dynamicweb.Content.Items.Item regionalDivision = null;
foreach (var item in divisions)
{
var country = item["Country"] as string;
if (!string.IsNullOrEmpty(country) && country == currentRegion.Name)
{
regionalDivision = item;
break;
}
}
if (regionalDivision == null)
{
regionalDivision = divisions.FirstOrDefault();
}
if (regionalDivision != null)
{
var name = regionalDivision["Name"].ToString();
var address1 = regionalDivision["Address_1"].ToString();
var address2 = regionalDivision["Address_2"].ToString();
var zip = regionalDivision["ZipCode"].ToString();
var city = regionalDivision["City"].ToString();
var phone = regionalDivision["Phone"].ToString();
var phoneLink = "tel:" + phone;
var fax = regionalDivision["Fax"].ToString();
var email = regionalDivision["Email"].ToString();
var emailLink = "mailto:" + email;
var newLink = regionalDivision["Links"].ToString();
<div>
<h4 class="company-name">@name</h4>
<p>
<span>@address1</span><br>
@if (!string.IsNullOrEmpty(address2))
{
<span>@address2</span><br>
}
@if (!string.IsNullOrEmpty(city))
{
<span>@zip @city</span><br>
}
@if (!string.IsNullOrEmpty(phone))
{
<span>Tel.: @phone</span><br>
}
@if (!string.IsNullOrEmpty(fax))
{
<span>Fax: @fax</span><br>
}
@if (!string.IsNullOrEmpty(email))
{
<span><a href="@emailLink">E-mail: @email</a></span>
}
</p>
<div class="nissen-links">
@if (!string.IsNullOrEmpty(newLink))
{
<span>@newLink</span>
}
</div>
</div>
<div style="margin-top:61px;">
@{
//Legal Disclaimer
var disclaimerPage = areaMainPages.FirstOrDefault(p => p.ItemType == "LegalDisclaimer");
if (disclaimerPage != null)
{
var disclaimerItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(disclaimerPage.ItemType, disclaimerPage.ItemId);
if (disclaimerItem != null)
{
<p class="LegalDisclaimer" style="margin: 0;">
<a href="/Default.aspx?ID=@disclaimerPage.ID" class="hd-btn tertiary">@disclaimerItem["FooterText"]</a>
</p>
}
}
//Term and Conditions
var termsAndConditions = areaMainPages.FirstOrDefault(p => p.ItemType == "TermsAndConditions");
if (termsAndConditions != null)
{
var termsAndConditionsItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(termsAndConditions.ItemType, termsAndConditions.ItemId);
if (termsAndConditionsItem != null)
{
var automotiveDownload = termsAndConditionsItem["TermsAndConditions_AutomotiveLink"];
if (automotiveDownload != null && !string.IsNullOrWhiteSpace(termsAndConditionsItem["TermsAndConditions_AutomotiveText"].ToString()))
{
<p class="LegalDisclaimer" style="margin: 0;">
<a href="@automotiveDownload" download="" class="hd-btn tertiary">@termsAndConditionsItem["TermsAndConditions_AutomotiveText"]</a>
</p>
}
var coolingSolutionsDownload = termsAndConditionsItem["TermsAndConditions_Cooling_SolutionsLink"];
if (coolingSolutionsDownload != null && !string.IsNullOrWhiteSpace(termsAndConditionsItem["TermsAndConditions_Cooling_SolutionsText"].ToString()))
{
<p class="LegalDisclaimer" style="margin: 0;">
<a href="@coolingSolutionsDownload" download="" class="hd-btn tertiary">@termsAndConditionsItem["TermsAndConditions_Cooling_SolutionsText"]</a>
</p>
}
}
}
//Data privacy policy
var datapolicyPage = areaMainPages.FirstOrDefault(p => p.ItemType == "Data_Privacy_Policy");
if (datapolicyPage != null)
{
var datapolicyItem = Dynamicweb.Content.Items.ItemManager.Storage.GetById(datapolicyPage.ItemType, datapolicyPage.ItemId);
if (datapolicyItem != null)
{
<p class="LegalDisclaimer" style="margin: 0;">
<a style="margin: 0; padding-bottom: 0;" href="/Default.aspx?ID=@datapolicyPage.ID" class="hd-btn tertiary">@datapolicyItem["FooterText"]</a>
</p>
<br>
@datapolicyItem["ExtraField"];
}
}
}
@if (@GetString("DwPageName") == "About Nissens Automotive"){
if (GetGlobalValue("Global:Area.LongLang") == "en-GB")
{
<p class="LegalDisclaimer" style="margin: 0;">
<a style="margin: 0; padding-bottom: 0;" href="/en-gb/investor-relations.aspx" class="hd-btn tertiary">Investor Relations</a>
</p>
}
}
@if (@GetString("DwPageName") == "Om Nissens Automotive"){
if (GetGlobalValue("Global:Area.LongLang") == "da-DK")
{
<p class="LegalDisclaimer" style="margin: 0;">
<a style="margin: 0; padding-bottom: 0;" href="/da-dk/investor-relations.aspx" class="hd-btn tertiary">Investor Relations</a>
</p>
}
}
@if (GetGlobalValue("Global:Area.LongLang") == "sk-SK")
{
<p class="LegalDisclaimer" style="margin: 0;">
kontakt na zodpovednú osobu v súvislosti so zákonom o ochrane osobých údajov je <a href="mailto:dpo10@proenergy.sk">dpo10@proenergy.sk</a>
</p>
}
</div>
}
}
<!--div>
@foreach (var p in areaMainPages)
{
var rootPage = p;
if(rootPage.ItemType == "AboutNissens")
{
<a href="/Default.aspx?ID=@p.ID" class="hd-btn tertiary"><h4>@rootPage.MenuText</h4></a>
<ul>
@foreach(var paragraph in Dynamicweb.Content.Paragraph.GetParagraphsByPageID(p.ID))
{
//Husk lige ændre så der kommer et link ind
<li><a href="/Default.aspx?ID=@p.ID/#@paragraph.ID">@paragraph.Header</a></li>
}
</ul>
}
}
</div-->
<div class="col-shop">
@*
<a href="#" class="hd-btn newsletter" style="display: none;">Sign up for Newsletter</a>
<h4>@Translate("Division","Division")</h4>
<ul>
@{
foreach (var p in areaMainPages)
{
var rootPage = p;
if(rootPage.ItemType == "Automotive" || rootPage.ItemType == "PowerGeneration" ||
rootPage.ItemType == "OnAndOffroad")
{
<li>
</li><li><a href="/Default.aspx?ID=@p.ID">@rootPage.MenuText</a></li>
}
}
}
</ul>
*@
@{
var automotivePage = areaMainPages.FirstOrDefault(p => p.ItemType == "Automotive");
var automotivePageId = automotivePage != null ? automotivePage.ID : 0;
if (Pageview.ID == automotivePageId || Dynamicweb.Content.Page.GetPageById(Pageview.ID).ParentPageID == automotivePageId)
{
<a href="http://webshop.nissens.com/" class="hd-btn tertiary">@Translate("NissensWebshopFooter", "Product Catalogue & Webshop")</a>
}
}
</div>
</div>
</div>
</footer>
}
@if(HttpContext.Current.Request.Cookies["NissensCookieDisclaimer"] == null)
{
var disclaimerPage = ((System.Collections.ArrayList)Pageview.Area.get_Value("AreaMainPages")).Cast<int>().Select(pid => Dynamicweb.Content.Page.GetPageById(pid)).FirstOrDefault(p => p.ItemType == "LegalDisclaimer");
<div id="cookieDisclaimer">
<div class="container">
<div class="row">
<div class="col-sm-8">
<p>
@Translate("CookieDisclaimer", "We use cookies on this website. If you proceed on our website, you accept this.")
@if (disclaimerPage != null)
{
<a style="text-decoration: underline;" href="/Default.aspx?ID=@disclaimerPage.ID">@Translate("CookieDisclaimerReadMoreLink", "You can read more about cookies here.")</a>
}
</p>
</div>
<div class="col-sm-4">
<button type="button" class="hd-btn primary-color ok">@Translate("CookieDisclaimerOKBtn", "OK")</button>
</div>
</div>
</div>
</div>
}
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/jquery/jquery.min.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/polyfills/jquery.placeholder.min.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/polyfills/matchMedia.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/polyfills/matchMedia.addListener.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/polyfills/polyfills.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/enquire.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/gsap/TweenMax.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/gsap/ScrollMagic.min.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/gsap/animation.gsap.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/gsap/ScrollToPlugin.min.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/fastclick.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/lazy-loading-xt/jquery.lazyloadxt.min.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/owl-carousel/owl.carousel.min.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/lib/js.cookie.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/ground/ground.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/cookieDisclaimer.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/navigation/top.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/banner/hero.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/gallery/gallery.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/text/text.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/video/video.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/product/product.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/spot/spot.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/contact/contact.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/animation/animation.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/oilfinder/oilfinder.js?@cacheBust"></script>
<script src="/Files/Templates/Designs/Nissens_website/./scripts/module/languagePicker/languagePicker.js?@cacheBust"></script>
</body>
</html>