Ejemplo n.º 1
0
 public static CustomMeta GetPageCustomMeta(Page page)
 {
     using (IPageMeta meta = GetPageMeta(page))
     {
         if (meta != null)
         {
             return(meta.CustomMeta);
         }
         return(null);
     }
 }
Ejemplo n.º 2
0
        /// <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);
                }
            }
        }
Ejemplo n.º 4
0
        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)
            });
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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)
            };
        }