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