/// <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); }
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); }
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); }
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()); }
// 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); }
/// <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)); }
/// <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; }