/// <summary> /// Called before an action result executes. /// </summary> /// <param name="filterContext">The filter context.</param> public void OnResultExecuting(ResultExecutingContext filterContext) { HomePage homePage = _siteConfiguration.GetStartPage(); if (homePage != null) { SettingsBlock settings = homePage.Settings; // This can actually be null if we have a problem with our language settings if (settings != null) { var chrome = new Chrome(); chrome.TopLeftMenu = homePage.TopLeftMenu; chrome.TopRightMenu = homePage.TopRightMenu; chrome.FooterMenu = GetFooterMenuContent(homePage); chrome.SocialMediaIcons = homePage.SocialMediaIcons; chrome.LoginPage = settings.LoginPage; chrome.AccountPage = settings.AccountPage; chrome.CheckoutPage = settings.CheckoutPage; chrome.SearchPage = settings.SearchPage; if (homePage.LogoImage != null) { chrome.LogoImageUrl = _urlResolver.GetUrl(homePage.LogoImage); } else { chrome.LogoImageUrl = new Url("/Content/Images/commerce-shop-logo.png"); } chrome.HomePageUrl = _urlResolver.GetUrl(homePage.ContentLink); // Note! The natural place for the footer content is in the settings block // with the rest of the content, but that makes it impossible to edit the // content area on the page. So we keep it directly on the start page. chrome.GlobalFooterContent = homePage.GlobalFooterContent; // Set up languages for Chrome var contentLoader = ServiceLocator.Current.GetInstance<IContentLoader>(); var startPage = contentLoader.Get<HomePage>(ContentReference.StartPage); chrome.Language = startPage.LanguageBranch; chrome.Languages = GetLanguageInfo(startPage); filterContext.Controller.ViewBag.Chrome = chrome; } } }
protected virtual Chrome PopulateChrome(HomePage homePage, SettingsBlock settings) { var chrome = new Chrome(); chrome.TopLeftMenu = homePage.TopLeftMenu; chrome.TopRightMenu = homePage.TopRightMenu; chrome.FooterMenu = GetFooterMenuContent(homePage); chrome.SocialMediaIcons = homePage.SocialMediaIcons; chrome.LoginPage = settings.LoginPage; chrome.AccountPage = settings.AccountPage; chrome.CheckoutPage = settings.CheckoutPage; chrome.SearchPage = settings.SearchPage; if (homePage.LogoImage != null) { chrome.LogoImageUrl = _urlResolver.GetUrl(homePage.LogoImage); } else { chrome.LogoImageUrl = new Url("/Content/Images/commerce-shop-logo.png"); } chrome.HomePageUrl = _urlResolver.GetUrl(homePage.ContentLink); // Note! The natural place for the footer content is in the settings block // with the rest of the content, but that makes it impossible to edit the // content area on the page. So we keep it directly on the start page. chrome.GlobalFooterContent = homePage.GlobalFooterContent; // Set up languages for Chrome var contentLoader = ServiceLocator.Current.GetInstance<IContentLoader>(); var startPage = contentLoader.Get<HomePage>(ContentReference.StartPage); chrome.Language = startPage.LanguageBranch; chrome.Languages = GetLanguageInfo(startPage); chrome.ColorScheme = settings.Scheme; return chrome; }