/// <summary>
        /// On Page Pre-render complete event, inject LiveChat script to the page.
        /// Read the License information from Configuration - if user has signed in to their LiveChat account, these values will be set and you should enable LiveChat.
        /// If they haven't signed-in, do not add LiveChat script to the page.
        /// </summary>
        private void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent @event)
        {
            var    config  = Telerik.Sitefinity.Configuration.Config.Get <LiveChatConfig>();
            string license = config.LicenseID;
            string email   = config.Email;

            if (license != "0" || email != "0")
            {
                // Apply LicenseID to Script
                string livechatURL            = "https://www.livechatinc.com/chat-with/" + license;
                string liveChatScriptTemplate = @"
                                        <script type = 'text/javascript' >
                                           window.__lc = window.__lc || {{}};
                                                    window.__lc.license = {0};
                                                    (function() {{
                                                        var lc = document.createElement('script'); lc.type = 'text/javascript'; lc.async = true;
                                                        lc.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.livechatinc.com/tracking.js';
                                                        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(lc, s);
                                                    }})();
                                        </script>";
                string liveChatScript         = string.Format(CultureInfo.InvariantCulture, liveChatScriptTemplate, license);

                @event.Page.Header.Controls.Add(new LiteralControl(liveChatScript));
            }
        }
        /// <summary>
        /// The pre render event which is triggered automatically.
        /// </summary>
        /// <param name="e"></param>
        public void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent e)
        {
            //Skip back-end.
            if (e.PageSiteNode.IsBackend)
            {
                return;
            }


            if (!globalConfig.Modules.Hreflang.Active)
            {
                return;
            }

            List <HtmlLink> hrefLangLinks = GetAlternateLinks(e, globalConfig.Modules.Hreflang.IncludeCurrentLanguage);

            try
            {
                foreach (HtmlLink link in hrefLangLinks)
                {
                    e.Page.Header.Controls.Add(link);
                    string q = null;
                    q = q.ToLower();
                }
            } catch (Exception ex) {
                _logiszLogger.LogException("Hreflang", ex);
            }

            Debug();
        }
示例#3
0
        public void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent e)
        {
            Page page = e.Page;

            if (page.IsBackend())
            {
                return;
            }

            if (!Config.Active)
            {
                return;
            }

            Yoast.Models.ValidationResult result = new Yoast.Models.ValidationResult();
            result.pageValidationResult = pageValidationMethods.ValidatePage(e.PageSiteNode, e.Page);

            result.Score = yoastCalculationService.GetPageSEOScore(result);


            //Calculate score

            #region Debug

            Debug(result);

            #endregion
        }
 private static void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent @event)
 {
     if (@event.PageSiteNode.IsBackend && [email protected](requestSpyControl))
     {
         @event.Page.Controls.Add(requestSpyControl);
     }
 }
示例#5
0
        private void OnPagePreRenderCompleted(IPagePreRenderCompleteEvent @event)
        {
            var ampPage = AMPManager
                          .GetManager()
                          .GetAmpPages()
                          .FirstOrDefault(x => x.PageId == @event.PageSiteNode.Id);

            if (ampPage != null)
            {
                var resolvedDataItem = SystemManager.HttpContextItems["detailItem"] as ILocatable;
                if (resolvedDataItem == null)
                {
                    return;
                }

                string resolvedItemUrl = resolvedDataItem.Urls.First(x => x.IsDefault).Url;

                string relativeUrlToAmpPage = "/amp/" + VirtualPathUtility.AppendTrailingSlash(ampPage.UrlName.TrimStart('/')) + resolvedItemUrl.TrimStart('/');
                string absoluteUrlToAmpPage = RouteHelper.ResolveUrl(relativeUrlToAmpPage, UrlResolveOptions.Absolute);

                var linkControl = new HtmlLink();
                linkControl.Attributes.Add("rel", "amphtml");
                linkControl.Href = absoluteUrlToAmpPage;

                @event.Page.Header.Controls.Add(linkControl);
            }
        }
示例#6
0
        /// <summary>
        /// The on pre render event handler
        /// </summary>
        /// <param name="evt"></param>
        public void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent evt)
        {
            //Do nothing if it's not active
            if (!globalConfig.Modules.PageTitleHandler.Active)
            {
                return;
            }

            ExtendPageTitleWithCompanyName(evt.Page);
        }
		private static void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent evt)
		{
			if (evt != null)
			{
				HtmlLink link = new HtmlLink();
				link.Href = FavIconHandler.GetCurrentSiteFav();
				link.Attributes.Add("rel","icon");
				evt.Page.Header.Controls.Add(link);
			}
		}
        private static void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent e)
        {
            if (e.PageSiteNode.IsBackend)
            {
                return;
            }

            // run any gigya related code that needs to be done for every request
            GigyaAccountHelper.ProcessRequestChecks(HttpContext.Current);
        }
示例#9
0
        /// <summary>
        /// page
        /// </summary>
        /// <param name="e"></param>
        public void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent e)
        {
            ILogiszConfigManager _logiszConfigManager = LogiszDependencyContainer.Resolve <ILogiszConfigManager>();

            if (!_logiszConfigManager.GetConfig().Modules.Shortcoder.Active)
            {
                return;
            }

            if (!e.PageSiteNode.IsBackend)
            {
                if (!Path.HasExtension(e.Page.Request.Url.AbsolutePath) ||
                    (Path.HasExtension(e.Page.Request.Url.AbsolutePath) && _tokenize.Contains(Path.GetExtension(e.Page.Request.Url.AbsolutePath).ToLower())))
                {
                    e.Page.Response.Filter = new TokenizedStream(e.Page.Response.Filter);
                }
            }
        }
示例#10
0
        /// <summary>
        /// Hits on page visit
        /// </summary>
        /// <param name="e"></param>
        public void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent e)
        {
            if (!IsActive)
            {
                return;
            }

            //Ensure the model is as new.
            openGraphModel = new OpenGraphModel();

            if (SiteMapBase.GetActualCurrentNode() != null)
            {
                Guid currentPageId = SiteMapBase.GetActualCurrentNode().Id;

                PageNode page = _pageManager.GetPageNode(currentPageId);

                //Validate current page
                if (page == null)
                {
                    return;
                }
                if (page.IsBackend)
                {
                    return;
                }

                openGraphModel.SetActivePage(page);
            }
            else
            {
                //Invalid
                return;
            }

            if (!IsValid)
            {
                _logiszLogger.LogException("Failed to enable opengraph due an error:" + GetErrorMessage());
                return;
            }

            Index();
        }
        private static void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent evt)
        {
            var page = evt.Page;

            if (page != null)
            {
                var headerControls = page.Header.Controls;
                foreach (var control in headerControls)
                {
                    if (control is HtmlMeta metaTag)
                    {
                        if (metaTag.Attributes[MetaAttrKey] == MetaAttrValue)
                        {
                            headerControls.Remove(metaTag);
                            break;
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Gets the hreflangs
        /// </summary>
        /// <param name="e"></param>
        /// <param name="includeCurrentLanguage"></param>
        /// <returns></returns>
        private List <HtmlLink> GetAlternateLinks(IPagePreRenderCompleteEvent e, bool includeCurrentLanguage)
        {
            _logiszDebugger.AddDebugData("Include current language", includeCurrentLanguage.ToString());

            var alternateLinks = new List <HtmlLink>();

            #region Get page node

            PageNode pageNode = pageManager.GetPageNodes().Where(pN => pN.PageId == e.PageSiteNode.PageId).FirstOrDefault();

            #endregion

            #region Try get content item

            bool   foundDetailContentItem = false;
            string urlName = RemoveHostFromUrl(e.Page.Request);
            _logiszDebugger.AddDebugData("Urlname", urlName);

            object      contentObject = null;
            IHasUrlName o             = null;
            Lstring     finalUrlName  = new Lstring();

            //Check if excluded
            if (globalConfig.Modules.Hreflang.PageIsExcluded(urlName))
            {
                _logiszDebugger.AddDebugData("Page is excluded", "True");
                return(null);
            }

            bool pageWithUrlNameExists = (pageManager.GetPageNodes().Where(q => q.UrlName == urlName).Count() != 0);
            _logiszDebugger.AddDebugData("Found page with urlname", pageWithUrlNameExists.ToString());
            if (!pageWithUrlNameExists)
            {
                //No page found, search object.
                foundDetailContentItem = GetObjectByUrlName(pageNode, urlName, out contentObject);
                _logiszDebugger.AddDebugData("Found content item with urlname", foundDetailContentItem.ToString());

                if (contentObject != null)
                {
                    o = (IHasUrlName)contentObject;

                    if (o != null)
                    {
                        finalUrlName = o.UrlName;
                    }

                    //validate type of static modules
                    _logiszDebugger.AddDebugData("Type of content", contentObject.GetType().Name);
                    if (contentObject.GetType() == typeof(NewsItem))
                    {
                        NewsItem n = (NewsItem)contentObject;
                        finalUrlName = n.ItemDefaultUrl;
                    }
                }
            }



            #endregion

            #region Check for detailed page

            //Detailed page
            var cultures  = includeCurrentLanguage ? e.PageSiteNode.AvailableLanguages : e.PageSiteNode.AvailableLanguages.Where(c => c != CultureInfo.CurrentUICulture);
            var ulService = ObjectFactory.Resolve <UrlLocalizationService>();
            if (foundDetailContentItem)
            {
                foreach (var culture in cultures.Where(c => !string.IsNullOrWhiteSpace(c.Name)))
                {
                    var defaultLocation = UrlPath.ResolveUrl(ulService.ResolveUrl(e.PageSiteNode.GetUrl(culture, false), culture), true, true);
                    if (!string.IsNullOrWhiteSpace(defaultLocation))
                    {
                        string languagedUrlName = String.Empty;
                        finalUrlName.TryGetValue(out languagedUrlName, culture);

                        defaultLocation += "/" + languagedUrlName;
                        var alternateControl = new HtmlLink();
                        alternateControl.Attributes.Add("rel", "alternate");
                        alternateControl.Attributes.Add("href", defaultLocation);
                        alternateControl.Attributes.Add("hreflang", culture.TextInfo.CultureName);

                        _logiszDebugger.AddDebugData("Added hreflang tag (" + culture.TextInfo.CultureName + ")", defaultLocation);

                        alternateLinks.Add(alternateControl);
                    }
                }
            }

            #endregion

            #region Static page
            //Static page
            else
            {
                foreach (var culture in cultures.Where(c => !string.IsNullOrWhiteSpace(c.Name)))
                {
                    var defaultLocation = UrlPath.ResolveUrl(ulService.ResolveUrl(e.PageSiteNode.GetUrl(culture, false), culture), true, true);
                    if (!string.IsNullOrWhiteSpace(defaultLocation))
                    {
                        var alternateControl = new HtmlLink();
                        alternateControl.Attributes.Add("rel", "alternate");
                        alternateControl.Attributes.Add("href", defaultLocation);
                        alternateControl.Attributes.Add("hreflang", culture.TextInfo.CultureName);
                        _logiszDebugger.AddDebugData("Added hreflang tag (" + culture.TextInfo.CultureName + ")", defaultLocation);
                        alternateLinks.Add(alternateControl);
                    }
                }
            }

            #endregion

            return(alternateLinks);
        }