コード例 #1
0
        private static string ResolvePageLink(Tridion.ContentManager.TcmUri tcmUri, Localization localization)
        {
            PageLink linker = new PageLink(GetPublicationUri(tcmUri, localization));
            Link     link   = linker.GetLink(tcmUri.ItemId);

            return(link.IsResolved ? link.Url : null);
        }
コード例 #2
0
        private static string ResolvePageLink(TcmUri tcmUri, int localizationId = 0)
        {
            int      publicationId = localizationId == 0 ? tcmUri.PublicationId : localizationId;
            PageLink linker        = new PageLink(publicationId);
            Link     link          = linker.GetLink(tcmUri.ItemId);

            return(link.IsResolved ? link.Url : null);
        }
コード例 #3
0
 public string ResolvePageLink(string tcmUri)
 {
     TcmUri pageUri = new TcmUri(tcmUri);
     using (var pageLink = new PageLink(pageUri.PublicationId))
     {
         var link = pageLink.GetLink(pageUri.ItemId);
         if (link != null)
         {
             return link.Url;
         }
         else
         {
             return String.Empty;
         }
     }
 }
コード例 #4
0
        public string ResolvePageLink(string tcmUri)
        {
            TcmUri pageUri = new TcmUri(tcmUri);

            using (var pageLink = new PageLink(pageUri.PublicationId))
            {
                var link = pageLink.GetLink(pageUri.ItemId);
                if (link != null)
                {
                    return(link.Url);
                }
                else
                {
                    return(String.Empty);
                }
            }
        }
コード例 #5
0
        public void TryRedirect(Object s, EventArgs e)
        {
            HttpContext context = HttpContext.Current;

            int    publicationId = int.Parse(ConfigurationManager.AppSettings["GlobalPubId"]);
            string redirectField = ConfigurationManager.AppSettings["RedirectUrlField"];

            string url = context.Request.Url.PathAndQuery;
            int    pos = url.IndexOf("?");

            if (pos > 0)
            {
                url = url.Substring(0, pos);
            }

            PublicationCriteria     publicationCriteria = new PublicationCriteria(publicationId);
            ItemTypeCriteria        itemCriteria        = new ItemTypeCriteria(64);
            CustomMetaValueCriteria cmvCriteria         = new CustomMetaValueCriteria(new CustomMetaKeyCriteria(redirectField), url);
            AndCriteria             andCriteria         = new AndCriteria(new Criteria[] { publicationCriteria, itemCriteria, cmvCriteria });

            Query query = new Query(andCriteria);

            string[] results = query.ExecuteQuery();

            if (results.Length > 0)
            {
                PageLink pageLink = new PageLink(publicationId);
                Link     link     = pageLink.GetLink(results[0]);

                if (link.IsResolved)
                {
                    // Redirect
                    HttpResponse response = context.Response;
                    response.Clear();
                    response.RedirectLocation  = link.Url;
                    response.StatusCode        = 301;
                    response.StatusDescription = "301 Moved Permanently";
                    response.Write("Page has moved to " + link.Url);
                    response.End();
                }
            }
        }
コード例 #6
0
ファイル: Module.cs プロジェクト: Nivlong/tridion-practice
        public void TryRedirect(Object s, EventArgs e)
        {
            HttpContext context = HttpContext.Current;

            int publicationId = int.Parse(ConfigurationManager.AppSettings["GlobalPubId"]);
            string redirectField = ConfigurationManager.AppSettings["RedirectUrlField"];

            string url = context.Request.Url.PathAndQuery;
            int pos = url.IndexOf("?");
            if (pos > 0) url = url.Substring(0, pos);

            PublicationCriteria publicationCriteria = new PublicationCriteria(publicationId);
            ItemTypeCriteria itemCriteria = new ItemTypeCriteria(64);
            CustomMetaValueCriteria cmvCriteria = new CustomMetaValueCriteria(new CustomMetaKeyCriteria(redirectField), url);
            AndCriteria andCriteria = new AndCriteria(new Criteria[] { publicationCriteria, itemCriteria, cmvCriteria });

            Query query = new Query(andCriteria);

            string[] results = query.ExecuteQuery();

            if (results.Length > 0)
            {
                PageLink pageLink = new PageLink(publicationId);
                Link link = pageLink.GetLink(results[0]);

                if (link.IsResolved)
                {
                    // Redirect
                    HttpResponse response = context.Response;
                    response.Clear();
                    response.RedirectLocation = link.Url;
                    response.StatusCode = 301;
                    response.StatusDescription = "301 Moved Permanently";
                    response.Write("Page has moved to " + link.Url);
                    response.End();
                }
            }
        }
コード例 #7
0
 private static string ResolvePageLink(TcmUri tcmUri, int localizationId = 0)
 {
     int publicationId = localizationId == 0 ? tcmUri.PublicationId : localizationId;
     PageLink linker = new PageLink(publicationId);
     Link link = linker.GetLink(tcmUri.ItemId);
     return link.IsResolved ? link.Url : null;
 }
コード例 #8
0
ファイル: LinkResolver.cs プロジェクト: MrSnowflake/tri
 private static string ResolvePageLink(string uri, int localizationId = 0)
 {
     //TODO should we have a single (static) link object?
     var linker = new PageLink(localizationId == 0 ? GetPublicationIdFromUri(uri) : localizationId);
     var link = linker.GetLink(GetItemIdFromUri(uri));
     return link.IsResolved ? link.Url : null;
 }