/// <summary>
        /// Core validation function
        /// </summary>
        /// <param name="page"></param>
        /// <param name="node"></param>
        /// <returns></returns>
        public PageValidationResult ValidatePage(PageSiteNode node, Page page)
        {
            PageValidationResult res = new PageValidationResult();

            res.Keyword      = GetPageKeyword(node);
            res.PageSiteNode = node;
            res.PageNode     = GetPageNode(node);
            res.Page         = page;

            //Validate for empty keyword, if empty. IT's added and we return!
            res = ValidateKeywordEmpty(res);
            if (res.FatalError)
            {
                return(res);
            }

            res = CheckForbiddenMetaTags(res);

            ///Calling the validation methods
            res = KeywordIsInPageTitle(res);
            res = ValidateKeywordCharacters(res);
            res = KeywordIsInHeader(res);
            res = KeywordIsInUrl(res);
            res = KeywordIsInMetaTitle(res);
            res = KeywordIsInMetaDescription(res);
            res = CheckContentHeaders(res);

            return(res);
        }
Пример #2
0
        protected virtual bool DetermineHomepage(PageSiteNode node)
        {
            bool flag = false;

            flag = (node == null || this.IsHomepage ? this.IsHomepage : PageSiteNodeExtensions.IsHomePage(node));
            return(flag);
        }
    protected void lvPages_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType != ListViewItemType.DataItem)
        {
            return;
        }

        PagesConfig pagesConfig = Config.Get <PagesConfig>();

        PageSiteNode node = (PageSiteNode)e.Item.DataItem;
        PageNode     page = pageManager.GetPageNode(node.Id);

        if (!node.ShowInNavigation || string.IsNullOrEmpty(node.Title))
        {
            e.Item.Visible = false;
            return;
        }

        HyperLink hlPage = (HyperLink)e.Item.FindControl("hlPage");

        hlPage.Text        = node.Title;
        hlPage.NavigateUrl = page.GetFullUrl(Thread.CurrentThread.CurrentCulture, false);

        if (node.HasChildNodes)
        {
            ListView lvPages = e.Item.FindControl("lvPages") as ListView;
            if (lvPages != null)
            {
                lvPages.DataSource = node.ChildNodes;
                lvPages.DataBind();
            }
        }
    }
        /// <summary>
        /// Gets page node
        /// </summary>
        /// <param name="pageSiteNode">Page site node</param>
        /// <returns>PageNode</returns>
        private PageNode GetPageNode(PageSiteNode pageSiteNode)
        {
            PageManager pageManager = PageManager.GetManager();

            PageNode pageNode = pageManager.GetPageNode(pageSiteNode.Id);

            return(pageNode);
        }
        public bool IsNodeAccessPrevented(PageSiteNode pageNode)
        {
            bool isRestricted = false;

            if (DummySitemapFilter.restrictedNodes.Contains(pageNode.Id))
            {
                isRestricted = true;
            }

            return(isRestricted);
        }
Пример #6
0
        protected virtual string GetDescription(PageSiteNode node)
        {
            string desc = "This is an example description. This will not show on a published page.";

            if (!this.UsePageDescription)
            {
                desc = this.Description;
            }
            else if (node != null)
            {
                desc = node.Description;
            }
            return(desc.IsNullOrWhitespace() ? string.Empty : desc.Trim());
        }
        /// <summary>
        /// Gets the page keyword
        /// </summary>
        /// <returns>Keyword</returns>
        private string GetPageKeyword(PageSiteNode pageSiteNode)
        {
            //Receive page data
            PageNode pageNode = GetPageNode(pageSiteNode);

            if (pageNode == null)
            {
                return(String.Empty);
            }

            string keyword = GetPageKeyword(pageNode);

            return(keyword);
        }
Пример #8
0
        protected virtual string GetHeading(PageSiteNode node)
        {
            string heading = "Example page heading!";

            if (!this.UsePageTitle)
            {
                heading = this.Heading;
            }
            else if (node != null)
            {
                var transaction = Guid.NewGuid();
                var pageManager = PageManager.GetManager();
                var pageData    = pageManager.GetPageData(node.PageId);

                heading = pageData.HtmlTitle;
            }
            return(heading.IsNullOrWhitespace() ? string.Empty : heading.Trim());
        }
Пример #9
0
        // Checks whether we are under a top-level page with a certain title.
        private bool IsPageUnder(IWorkflowResolutionContext context, string topLevelTitle)
        {
            if (typeof(PageNode).IsAssignableFrom(context.ContentType) &&
                context.ContentId != Guid.Empty)
            {
                var          siteMap      = SitefinitySiteMap.GetCurrentProvider() as SiteMapBase;
                PageSiteNode pageSiteNode = (PageSiteNode)siteMap.FindSiteMapNodeFromKey(context.ContentId.ToString());

                while (pageSiteNode != null)
                {
                    if (pageSiteNode.Title == topLevelTitle && pageSiteNode.ParentNode == pageSiteNode.RootNode)
                    {
                        return(true);
                    }

                    pageSiteNode = pageSiteNode.ParentNode as PageSiteNode;
                }
            }

            return(false);
        }
        /// <summary>
        /// Gets used languages for the page, excluding invariant language
        /// </summary>
        /// <param name="sitemapNode">The sitemap node.</param>
        /// <param name="availableLanguages">The available languages.</param>
        private List <CultureInfo> GetLanguagesForPage(PageSiteNode sitemapNode, IEnumerable <CultureInfo> availableLanguages)
        {
            var usedLanguages = new List <CultureInfo>();

            if (sitemapNode != null)
            {
                availableLanguages.ToList().ForEach(ci =>
                {
                    if (!ci.Equals(CultureInfo.InvariantCulture))
                    {
                        bool isHidden = sitemapNode.IsHidden(ci);

                        if (!isHidden)
                        {
                            usedLanguages.Add(ci);
                        }
                    }
                });
            }

            return(usedLanguages);
        }
        private IEnumerable<CultureInfo> GetLanguagesList(PageManager pm, Guid homePageId, PageSiteNode siteMapNode)
        {
            ////Get languages to list
            List<CultureInfo> languages = new List<CultureInfo>();
            var settings = Telerik.Sitefinity.Services.SystemManager.CurrentContext.AppSettings;
            if (this.MissingTranslationAction == NoTranslationAction.HideLink)
            {
                languages.AddRange(this.usedLanguages);
            }
            else
            {
                languages.AddRange(settings.DefinedFrontendLanguages);
                if (homePageId != Guid.Empty)
                {
                    this.homePageNode = pm.GetPageNode(homePageId);
                }
            }

            ////Remove current language, if necessary
            IList<CultureInfo> shownLanguages;
            CultureInfo currentLanguage = Thread.CurrentThread.CurrentUICulture;
            if (this.IncludeCurrentLanguage)
            {
                shownLanguages = languages;

                // In design mode, if the page is not yet published, we want to display the current language if the user has selected the option.
                if (SystemManager.IsDesignMode &&
                    siteMapNode != null &&
                    !siteMapNode.IsPublished(currentLanguage))
                {
                    shownLanguages.Add(currentLanguage);
                }
            }
            else
            {
                shownLanguages = languages.Where(ci => !ci.Equals(currentLanguage)).ToList();
            }

            return shownLanguages;
        }
        /// <summary>
        /// Gets used languages for the page, excluding invariant language
        /// </summary>
        /// <param name="sitemapNode">The sitemap node.</param>
        /// <param name="availableLanguages">The available languages.</param>
        private List<CultureInfo> GetLanguagesForPage(PageSiteNode sitemapNode, IEnumerable<CultureInfo> availableLanguages)
        {
            var usedLanguages = new List<CultureInfo>();

            if (sitemapNode != null)
            {
                availableLanguages.ToList().ForEach(ci =>
                {
                    if (!ci.Equals(CultureInfo.InvariantCulture))
                    {
                        bool isHidden = sitemapNode.IsHidden(ci);

                        if (!isHidden)
                        {
                            usedLanguages.Add(ci);
                        }
                    }
                });
            }

            return usedLanguages;
        }
        private IEnumerable <CultureInfo> GetLanguagesList(PageManager pm, Guid homePageId, PageSiteNode siteMapNode)
        {
            ////Get languages to list
            List <CultureInfo> languages = new List <CultureInfo>();
            var settings = Telerik.Sitefinity.Services.SystemManager.CurrentContext.AppSettings;

            if (this.MissingTranslationAction == NoTranslationAction.HideLink)
            {
                languages.AddRange(this.usedLanguages);
            }
            else
            {
                languages.AddRange(settings.DefinedFrontendLanguages);
                if (homePageId != Guid.Empty)
                {
                    this.homePageNode = pm.GetPageNode(homePageId);
                }
            }

            ////Remove current language, if necessary
            IList <CultureInfo> shownLanguages;
            CultureInfo         currentLanguage = Telerik.Sitefinity.Services.SystemManager.CurrentContext.Culture;

            if (this.IncludeCurrentLanguage)
            {
                shownLanguages = languages;

                // In design mode, if the page is not yet published, we want to display the current language if the user has selected the option.
                if (SystemManager.IsDesignMode &&
                    siteMapNode != null &&
                    !siteMapNode.IsPublished(currentLanguage))
                {
                    shownLanguages.Add(currentLanguage);
                }
            }
            else
            {
                shownLanguages = languages.Where(ci => !ci.Equals(currentLanguage)).ToList();
            }

            return(shownLanguages);
        }
Пример #14
0
 /// <summary>
 /// Retrieves all Sitefinity page custom fields and their values for the given
 /// <paramref name="item"/>.
 /// </summary>
 /// <param name="item">The item.</param>
 /// <param name="includeRelatedData">(Optional) true to include, false to exclude the related data.</param>
 /// <returns>
 /// The custom field values.
 /// </returns>
 public static IDictionary <string, object> GetCustomFieldValues(this PageSiteNode item, bool includeRelatedData = true)
 {
     return(ContentHelper.GetCustomFieldValues(item, "Telerik.Sitefinity.Web.PageSiteNidePropertyDescriptor, Telerik.Sitefinity", includeRelatedData));
 }
Пример #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PageCustomFieldsAccessor"/> class.
 /// </summary>
 /// <param name="node">The sitemap node.</param>
 public PageCustomFieldsAccessor(PageSiteNode node)
     : base()
 {
     this.node = node;
 }