Esempio n. 1
0
        public XmlRpcStruct[] getUsersBlogs(string appKey, string username, string password)
        {
            Authenticate(username, password);

            var blogList = BlogManager.GetUserBlogs(username);

            //Create structure for blog list
            var blogs = new List <XmlRpcStruct>();

#if FEATURE_URL_BUILDERS
            var urlOptions = new ItemUrlBuilderOptions();
#else
            var urlOptions = UrlOptions.DefaultOptions;
#endif

            urlOptions.AlwaysIncludeServerUrl = true;

            foreach (var blog in blogList)
            {
                var url = LinkManager.GetItemUrl(blog, urlOptions);

                var rpcstruct = new XmlRpcStruct
                {
                    { "blogid", blog.ID.ToString() }, // Blog Id
                    { "blogName", blog.Title.Raw },   // Blog Name
                    { "url", url }
                };

                blogs.Add(rpcstruct);
            }

            return(blogs.ToArray());
        }
Esempio n. 2
0
        public override string GetItemUrl(Item item, ItemUrlBuilderOptions options)
        {
            Assert.ArgumentNotNull(item, "item");
            Assert.ArgumentNotNull(options, "options");

            // Store real item for later use
            Item realItem = item;

            // Check if item is an wildcard item
            bool isWildcardItem = WildCard.WildCardProvider.IsWildcardItem(item);

            if (isWildcardItem)
            {
                //item = Context.Database.GetItem(WildcardProvider.GetSetting(item.TemplateID).ItemID);
            }

            if (item == null)
            {
                item = realItem;
            }

            string text = base.GetItemUrl(item, options);

            if (isWildcardItem)
            {
                text = WildCard.WildCardProvider.GetWildcardItemUrl(item, realItem, UseDisplayName);
            }

            return(text.ToLower());
        }
        public void OnItemDeleting(object sender, EventArgs args)
        {
            Assert.ArgumentNotNull(sender, "sender");
            Assert.ArgumentNotNull(args, "args");

            Item item = Event.ExtractParameter(args, 0) as Item;

            if (item == null)
            {
                return;
            }

            if (item.Database.Name == "master")
            {
                return;
            }

            //Add condition(s) to include only Templates that hold short-lived content. Eg: Events, Job Posting
            //Ensure that the respective pages follow Google Structured Data Standards (https://developers.google.com/search/docs/data-types/video#broadcast-event , https://developers.google.com/search/docs/data-types/job-posting)
            var urlOptions = new ItemUrlBuilderOptions()
            {
                AlwaysIncludeServerUrl = true
            };
            var deletedLink = item.GetUrl(_linkProvider, urlOptions);

            if (!string.IsNullOrEmpty(deletedLink))
            {
                IndexingAPIHelper.SendIndexingRequest(deletedLink, "URL_DELETED");
            }
        }
        public string GetItemUrl(Item item, bool enableLanguageEmbedding = false)
        {
            if (item == null)
            {
                return(null);
            }

            EnterspeedSitecoreConfiguration configuration = _enterspeedConfigurationService.GetConfiguration();
            EnterspeedSiteInfo siteInfo = configuration.GetSite(item);

            var urlBuilderOptions = new ItemUrlBuilderOptions
            {
                SiteResolving          = true,
                AlwaysIncludeServerUrl = true,
                LowercaseUrls          = true,
                LanguageEmbedding      = enableLanguageEmbedding ? LanguageEmbedding.Always : LanguageEmbedding.Never
            };

            if (siteInfo != null)
            {
                SiteContext siteContext = _siteContextFactory.GetSiteContext(siteInfo.Name);

                urlBuilderOptions.Site = siteContext;
            }

            return(_linkManager.GetItemUrl(item, urlBuilderOptions));
        }
Esempio n. 5
0
        /// <summary>
        /// Process to return RSD page.
        /// </summary>
        /// <param name="context">context</param>
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/xml";
            using (XmlTextWriter rsd = new XmlTextWriter(context.Response.OutputStream, Encoding.UTF8))
            {
                Database web             = Factory.GetDatabase("web");
                Item     currentBlogItem = web.GetItem(new ID(HttpContext.Current.Request.QueryString["blogid"].ToString()));

                BlogHomeItem currentBlog = new BlogHomeItem(currentBlogItem);

                rsd.Formatting = Formatting.Indented;
                rsd.WriteStartDocument();

                // Rsd tag
                rsd.WriteStartElement("rsd");
                rsd.WriteAttributeString("version", "1.0");

                // Service
#if FEATURE_URL_BUILDERS
                var urlOptions = new ItemUrlBuilderOptions();
#else
                var urlOptions = UrlOptions.DefaultOptions;
#endif

                urlOptions.AlwaysIncludeServerUrl = true;
                var url = LinkManager.GetItemUrl(currentBlog, urlOptions);

                rsd.WriteStartElement("service");
                rsd.WriteElementString("engineName", "Sitecore WeBlog Module");
                rsd.WriteElementString("engineLink", WebUtil.GetServerUrl());
                rsd.WriteElementString("homePageLink", url);

                // APIs
                rsd.WriteStartElement("apis");

                // MetaWeblog
                rsd.WriteStartElement("api");
                rsd.WriteAttributeString("name", "MetaWeblog");
                rsd.WriteAttributeString("preferred", "true");
                rsd.WriteAttributeString("apiLink", WebUtil.GetServerUrl() + "/sitecore modules/web/WeBlog/MetaBlogApi.ashx");
                rsd.WriteAttributeString("blogID", currentBlog.ID.ToString());
                rsd.WriteEndElement();

                // End APIs
                rsd.WriteEndElement();

                // End Service
                rsd.WriteEndElement();

                // End Rsd
                rsd.WriteEndElement();

                rsd.WriteEndDocument();
            }
        }
Esempio n. 6
0
 public void GetItemUrlWithItemUrlBuilderOptionsCallsBaseProviderIfCurrentNotSet(
     SwitchingLinkProvider sut,
     Item item,
     ItemUrlBuilderOptions options)
 {
     using (new Db())
     {
         sut.Initialize("name", new NameValueCollection());
         sut.GetItemUrl(item, options).Should().NotBeNull();
     }
 }
 public static string GetUrl(this Item item, LinkProvider linkProvider, ItemUrlBuilderOptions urlBuilderOptions)
 {
     if (item.HasPresentationDetails())
     {
         //Ensure that the targetHostName attribute of Site Definition is set to host name of Content Delivery instance
         using (new SiteContextSwitcher(item.GetSiteContext()))
         {
             return(linkProvider.GetItemUrl(item, urlBuilderOptions));
         }
     }
     return(string.Empty);
 }
Esempio n. 8
0
        /// <summary>
        /// Gets the absolute URL of the item including the server.
        /// </summary>
        /// <param name="item">The item to get the URL for.</param>
        /// <returns>The item URL.</returns>
        protected string GetItemAbsoluteUrl(Item item)
        {
#if FEATURE_URL_BUILDERS
            var urlOptions = new ItemUrlBuilderOptions();
#else
            var urlOptions = UrlOptions.DefaultOptions;
#endif

            urlOptions.AlwaysIncludeServerUrl = true;

            return(LinkManager.GetItemUrl(item, urlOptions));
        }
Esempio n. 9
0
        private string BuildBody(Order order)
        {
            var options = new ItemUrlBuilderOptions
            {
                AlwaysIncludeServerUrl = true
            };

            var homeItemUrl = Context.Database.GetItem(Context.Site.StartPath).Url(options);
            var link        = $"<a href=\"{homeItemUrl}Checkout/Confirmation?trackingNumber={order.TrackingNumber}\">here</a>";
            var result      = $"<h2>Thank You For Your Order!</h2><p>Click {link} for more details.</p>";

            return(result);
        }
        public static string Url(this Item item, ItemUrlBuilderOptions options = null)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            if (options != null)
            {
                return(LinkManager.GetItemUrl(item, options));
            }
            return(!item.Paths.IsMediaItem ? LinkManager.GetItemUrl(item) : MediaManager.GetMediaUrl(item));
        }
 private string GetItemUrlByLanguage(Globalization.Language language)
 {
     using (new LanguageSwitcher(language))
     {
         var options = new ItemUrlBuilderOptions
         {
             AlwaysIncludeServerUrl = true,
             LanguageEmbedding      = LanguageEmbedding.Always,
             LowercaseUrls          = true
         };
         var url = this.LinkManager.GetItemUrl(Context.Item, options);
         return(StringUtil.EnsurePostfix('/', url).ToLower());
     }
 }
        public override string Build(Sitecore.Data.Items.Item item,
                                     ItemUrlBuilderOptions options)
        {
            if (BucketManager.IsItemContainedWithinBucket(item))
            {
                var bucketItem = item.GetParentBucketItemOrParent();
                if (bucketItem != null && bucketItem.IsABucket())
                {
                    var bucketUrl = base.Build(bucketItem, options);

                    return(FileUtil.MakePath(bucketUrl, item.Name.Replace(" ", "-")));
                }
            }

            return(base.Build(item, options));
        }
        private static void UpdateSchemaProperties(IEnumerable <SchemaProperty> schemaProperties)
        {
            ItemUrlBuilderOptions urlOptions = new ItemUrlBuilderOptions {
                AlwaysIncludeServerUrl = true, LanguageEmbedding = LanguageEmbedding.Never
            };

            MediaUrlBuilderOptions mediaurlOptions = new MediaUrlBuilderOptions();

            mediaurlOptions.AlwaysIncludeServerUrl = true;

            if (schemaProperties != null)
            {
                foreach (var item in schemaProperties)
                {
                    if (item.ItemScope)
                    {
                        UpdateSchemaProperties(item.Properties);
                    }
                    else
                    {
                        if (item.FieldType.Value == Constants.SchemaFieldTypes.CurrentItemURL)
                        {
                            item.FieldValue = LinkManager.GetItemUrl(Sitecore.Context.Item, urlOptions);
                        }
                        else if (item.FieldType.Value == Constants.SchemaFieldTypes.FromField)
                        {
                            item.FieldValue = Sitecore.Context.Item.Fields[item.FieldValue]?.Value;
                        }
                        else if (item.FieldType.Value == Constants.SchemaFieldTypes.FromParent)
                        {
                            item.FieldValue = Sitecore.Context.Item.Parent?.Fields[item.FieldType.Value]?.Value;
                        }
                        else if (item.FieldType.Value == Constants.SchemaFieldTypes.Image)
                        {
                            Sitecore.Data.Fields.ImageField imgField = Sitecore.Context.Item.Fields[item.FieldValue];

                            if (imgField != null)
                            {
                                var theURL = MediaManager.GetMediaUrl(imgField.MediaItem, mediaurlOptions);

                                item.FieldValue = HashingUtils.ProtectAssetUrl(theURL);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 14
0
        private List <string> FetchModifiedLinks(PublishContext context, List <ID> processedItemIDs)
        {
            var modifiedLinks = new List <string>();
            var urlOptions    = new ItemUrlBuilderOptions()
            {
                AlwaysIncludeServerUrl = true
            };

            foreach (var itemID in processedItemIDs)
            {
                //Add condition(s) to include only Templates that hold short-lived content. Eg: Events, Job Posting
                //Ensure that the respective pages follow Google Structured Data Standards (https://developers.google.com/search/docs/data-types/video#broadcast-event , https://developers.google.com/search/docs/data-types/job-posting)
                Item   processedItem     = context.PublishOptions.TargetDatabase.GetItem(itemID);
                string processedItemLink = processedItem.GetUrl(_linkProvider, urlOptions);
                if (!string.IsNullOrEmpty(processedItemLink))
                {
                    modifiedLinks.Add(processedItemLink);
                }
            }
            return(modifiedLinks);
        }
        public override string GetItemUrl(Item item, ItemUrlBuilderOptions options)
        {
            var current = this.CurrentProvider;

            return(current != null?current.GetItemUrl(item, options) : base.GetItemUrl(item, options));
        }