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));
        }
Beispiel #2
0
        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);
        }