public static CustomMeta GetPageCustomMeta(Page page) { using (IPageMeta meta = GetPageMeta(page)) { if (meta != null) { return(meta.CustomMeta); } return(null); } }
/// <summary> /// Get all urls of published pages /// </summary> /// <param name="includeExtensions"></param> /// <param name="pathStarts"></param> /// <param name="publicationID"></param> /// <returns></returns> public string[] GetAllPublishedPageUrls(string[] includeExtensions, string[] pathStarts) { Query pageQuery = new Query(); ItemTypeCriteria isPage = new ItemTypeCriteria(64); // TODO There must be an enum of these somewhere PublicationCriteria currentPublication = new PublicationCriteria(PublicationId); //Todo: add logic to determine site on url Criteria pageInPublication = CriteriaFactory.And(isPage, currentPublication); if (includeExtensions.Length > 0) { PageURLCriteria[] extensionsCriteria = new PageURLCriteria[includeExtensions.Length]; int criteriaCount = 0; foreach (string pageExtension in includeExtensions) { extensionsCriteria.SetValue(new PageURLCriteria("%" + pageExtension, Criteria.Like), criteriaCount); criteriaCount++; } Criteria allExtensions = CriteriaFactory.Or(extensionsCriteria); pageInPublication = CriteriaFactory.And(pageInPublication, allExtensions); } if (pathStarts.Length > 0) { PageURLCriteria[] pathCriteria = new PageURLCriteria[pathStarts.Length]; int criteriaCount = 0; foreach (string requiredPath in pathStarts) { pathCriteria.SetValue(new PageURLCriteria(requiredPath + "%", Criteria.Like), criteriaCount); criteriaCount++; } Criteria allPaths = CriteriaFactory.Or(pathCriteria); pageInPublication = CriteriaFactory.And(pageInPublication, allPaths); } Query findPages = new Query(pageInPublication); string[] pageUris = findPages.ExecuteQuery(); // Need to get PageMeta data to find all the urls List <string> pageUrls = new List <string>(); foreach (string uri in pageUris) { TcmUri tcmUri = new TcmUri(uri); PageMetaFactory metaFactory = GetPageMetaFactory(tcmUri.PublicationId); IPageMeta currentMeta = metaFactory.GetMeta(uri); pageUrls.Add(currentMeta.UrlPath); } return(pageUrls.ToArray()); }
public DateTime GetLastPublishedDateByUrl(string url) { int pubId = PublicationId; LoggerService.Debug("GetLastPublishedDateByUrl found publication id {0}, url = {1}", pubId, url); using (var pMetaFactory = new PageMetaFactory(pubId)) { IPageMeta pageInfo = pMetaFactory.GetMetaByUrl(pubId, url); // TODO: Temporarily removed using statement, because IPageMeta is not IDisposable (yet) in CDaaS build #422 { return(pageInfo?.LastPublicationDate ?? DateTime.Now); } } }
private static SitemapItem CreateSitemapItem(IPageMeta pageMeta, string taxonomyId) { string sequencePrefix; return(new SitemapItem { Id = $"t{taxonomyId}-p{pageMeta.Id}", Type = SitemapItem.Types.Page, OriginalTitle = pageMeta.Title, Title = StripSequencePrefix(pageMeta.Title, out sequencePrefix), Url = StripFileExtension(pageMeta.UrlPath), PublishedDate = pageMeta.LastPublicationDate, Visible = !string.IsNullOrEmpty(sequencePrefix) }); }
public DateTime GetLastPublishedDateByUrl(string url) { PageMetaFactory pMetaFactory = new PageMetaFactory(PublicationId); var pageInfo = pMetaFactory.GetMetaByUrl(url); if (pageInfo == null || pageInfo.Count <= 0) { return(DateTime.Now); } else { IPageMeta pInfo = pageInfo[0] as IPageMeta; return(pInfo.LastPublicationDate); } }
public DateTime GetLastPublishedDateByUrl(string url) { int pubId = PublicationId; LoggerService.Debug("GetLastPublishedDateByUrl found publication id {0}, url = {1}", pubId, url); PageMetaFactory pMetaFactory = new PageMetaFactory(pubId); IPageMeta pageInfo = pMetaFactory.GetMetaByUrl(pubId, url); if (pageInfo == null) { return(DateTime.Now); } else { return(pageInfo.LastPublicationDate); } }
public static IPageMeta GetPageMetaFromSEO(HttpRequestBase request, string url) { PageMetaFactory pageMetaFactory = new PageMetaFactory(SiteGlobal.PublicationId); IPageMeta pageMeta = pageMetaFactory.GetMetaByUrl(SiteGlobal.PublicationId, url); if (pageMeta == null) { // Check if it is a Vanity URL var publicationCriteria = new PublicationCriteria(SiteGlobal.PublicationId); var pageCriteria = new ItemTypeCriteria((int)TridionItemType.Page); var vanityUrlCriteria = new CustomMetaValueCriteria(new CustomMetaKeyCriteria("SEOUrl", Criteria.Equal), url); // -- Query query = new Query(); query.Criteria = CriteriaFactory.And(new Criteria[] { publicationCriteria, pageCriteria, vanityUrlCriteria }); IEnumerable <string> pages = query.ExecuteQuery(); //If no result, we try taking the ApplicationPath ['/en'] fro the url if (!pages.Any() && url.ToLower().StartsWith(request.ApplicationPath.ToLower())) { var urlWithoutAppPath = url.Substring(request.ApplicationPath.Length); var vanityUrlCriteria2 = new CustomMetaValueCriteria(new CustomMetaKeyCriteria("SEOUrl", Criteria.Equal), urlWithoutAppPath); query.Criteria = CriteriaFactory.And(new Criteria[] { publicationCriteria, pageCriteria, vanityUrlCriteria2 }); pages = query.ExecuteQuery(); //If no result, we try taking the '/' from the begining of the url. if (!pages.Any()) { urlWithoutAppPath = urlWithoutAppPath.TrimStart('/'); vanityUrlCriteria2 = new CustomMetaValueCriteria(new CustomMetaKeyCriteria("SEOUrl", Criteria.Equal), urlWithoutAppPath); query.Criteria = CriteriaFactory.And(new Criteria[] { publicationCriteria, pageCriteria, vanityUrlCriteria2 }); pages = query.ExecuteQuery(); } } if (pages.Any()) { pageMeta = pageMetaFactory.GetMeta(pages.First()); } } return(pageMeta); }
private static SitemapItem CreateSitemapItem(IPageMeta pageMeta, string taxonomyId) { string sequencePrefix; return new SitemapItem { Id = string.Format("t{0}-p{1}", taxonomyId, pageMeta.Id), Type = SitemapItem.Types.Page, OriginalTitle = pageMeta.Title, Title = StripSequencePrefix(pageMeta.Title, out sequencePrefix), Url = StripFileExtension(pageMeta.UrlPath) , PublishedDate = pageMeta.LastPublicationDate, Visible = !string.IsNullOrEmpty(sequencePrefix) }; }