public static string Url(this Item item, Sitecore.Links.UrlBuilders.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)); }
public static string GetLinkFieldValue(this Item source, string fieldName) { var options = new Sitecore.Links.UrlBuilders.ItemUrlBuilderOptions(); //by ashish bansal for removing zh-cn if (Sitecore.Context.Language.Name != "zh-CN") { options.LanguageEmbedding = Sitecore.Links.LanguageEmbedding.Always; } //options.LanguageEmbedding = Sitecore.Links.LanguageEmbedding.Always; Sitecore.Data.Fields.LinkField linkField = (Sitecore.Data.Fields.LinkField)source.Fields[fieldName]; string url = string.Empty; if (linkField != null) { switch (linkField.LinkType.ToLower()) { case "internal": { url = linkField.TargetItem != null?Sitecore.Links.LinkManager.GetItemUrl(linkField.TargetItem, options).ToLower() : string.Empty; break; } case "media": { url = linkField.TargetItem != null?Sitecore.Resources.Media.MediaManager.GetMediaUrl(linkField.TargetItem) : string.Empty; break; } case "external": { url = linkField.Url; break; } case "anchor": { url = !string.IsNullOrEmpty(linkField.Anchor) ? "#" + linkField.Anchor : string.Empty; break; } case "mailto": { url = linkField.Url; break; } case "javascript": { url = linkField.Url; break; } default: { url = linkField.Url; break; } } url = string.Format("{0}{1}", url, string.IsNullOrEmpty(linkField.QueryString) ? string.Empty : string.Format("?{0}", linkField.QueryString)); } return(url); }