/// <summary> /// Sets the site ID before save /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event arguments</param> private void Control_OnBeforeSave(object sender, EventArgs e) { AmpFilterInfo elementInfo = (AmpFilterInfo)Control.EditedObject; elementInfo.SiteID = SiteContext.CurrentSiteID; if (elementInfo.UseDefaultStylesheet) { elementInfo.StylesheetID = 0; } }
/// <summary> /// Returns CSS stylesheet for current page. /// Stylesheet can be: /// - normal CSS of current page /// - default CSS for all AMP pages /// - CSS set as AMP stylesheet for current page /// </summary> private string GetStylesheetText() { string cssText = ""; // Checking which CSS file to use ObjectQuery <AmpFilterInfo> q = AmpFilterInfoProvider.GetAmpFilters().WhereEquals("PageNodeGuid", DocumentContext.CurrentPageInfo.NodeGUID.ToString()); AmpFilterInfo ampFilterInfo = q.FirstOrDefault(); bool useDefaultStylesheet = ampFilterInfo?.UseDefaultStylesheet ?? true; if (useDefaultStylesheet) { // Get the ID of default AMP CSS string defaultID = Settings.AmpFilterDefaultCSS; var cssID = ValidationHelper.GetInteger(defaultID, 0); // Default AMP CSS is not set, using ordinary CSS of current page if (cssID == 0) { cssText = DocumentContext.CurrentDocumentStylesheet?.StylesheetText; } else { // Use default AMP CSS stylesheet var cssInfo = CssStylesheetInfoProvider.GetCssStylesheetInfo(cssID); if (cssInfo != null) { cssText = cssInfo.StylesheetText; } } } else { // Use specific AMP CSS set for this page int stylesheetID = ampFilterInfo?.StylesheetID ?? 0; var cssInfo = CssStylesheetInfoProvider.GetCssStylesheetInfo(stylesheetID); if (cssInfo != null) { cssText = cssInfo.StylesheetText; } } // Resolve macros cssText = MacroResolver.Resolve(cssText); // Resolve client URL return(HTMLHelper.ResolveCSSClientUrls(cssText, CMSHttpContext.Current.Request.Url.ToString())); }