Exemplo n.º 1
0
        public static HtmlString GetLinkMarkup(this IPublishedContent item, ListDictionary attributes = null)
        {
            LinkItem      link = item.GetLink();
            StringBuilder sb   = new StringBuilder(string.Empty);

            sb.Append(string.Format("<a href=\"{0}\" target=\"{1}\"", link.Url, link.Target));
            if (attributes != null)
            {
                foreach (DictionaryEntry attr in attributes)
                {
                    sb.Append(string.Format(" {0}=\"{1}\"", attr.Key, attr.Value));
                }
            }

            sb.Append(!string.IsNullOrEmpty(link.TitleText) ? string.Format(" title=\"{0}\"", link.TitleText) : null);
            sb.Append(!string.IsNullOrEmpty(link.AltText) ? string.Format(" alt=\"{0}\"", link.AltText) : null);
            if (link.OtherAttributes != null && link.OtherAttributes.Count > 0)
            {
                foreach (string v in link.OtherAttributes.AllKeys)
                {
                    sb.Append(string.Format(" {0}=\"{1}\"", v, link.OtherAttributes[v].ToString()));
                }
            }
            sb.Append(">");
            sb.Append(link.Caption);
            sb.Append("</a>");

            return(new HtmlString(sb.ToString()));
        }
Exemplo n.º 2
0
        public static LinkItem GetLink(this IPublishedContent item)
        {
            //if (!item.IsComposedOf(AbstractNcLinkItemModel.ModelTypeAlias)) { return null; }

            LinkItem link = new LinkItem();

            switch (item.DocumentTypeAlias)
            {
            case NcExternalLinkItemModel.ModelTypeAlias:
                link.Url = GetLinkUrl(new NcExternalLinkItemModel(item));
                break;

            case NcInternalLinkItemModel.ModelTypeAlias:
                var itemConverted = new NcInternalLinkItemModel(item);
                link.Url            = GetLinkUrl(itemConverted);
                link.InternalLinkId = GetLinkId(itemConverted);
                link.IsInternal     = true;
                break;

            case NcFileLinkItemModel.ModelTypeAlias:
                link.Url    = GetLinkUrl(new NcFileLinkItemModel(item));
                link.IsFile = true;
                break;
            }
            if (link.Url != null)
            {
                link.UrlSecure = link.Url.Replace("http://", "https://");
                link.UrlNoHttp = link.Url.Replace("http://", "").Replace("https://", "");
            }
            var itemAdapted = new AbstractNcLinkItemModel(item);

            link.Target  = (itemAdapted.OpenLinkInNewWindow) ? "_blank" : "_self";
            link.Caption = itemAdapted.Caption;
            string defaultAltValue = (itemAdapted.UseCaptionForAltAndTitle) ? itemAdapted.Caption : string.Empty;

            link.AltText   = (!string.IsNullOrEmpty(itemAdapted.AltText)) ? itemAdapted.AltText : defaultAltValue;
            link.TitleText = (!string.IsNullOrEmpty(itemAdapted.TitleText)) ? itemAdapted.TitleText : defaultAltValue;

            if (itemAdapted.OtherAttributes != null && itemAdapted.OtherAttributes.Count() > 0)
            {
                link.OtherAttributes = new NameValueCollection();
                foreach (var v in itemAdapted.OtherAttributes.Select(x => new NcNameValuePairItemModel(x)))
                {
                    link.OtherAttributes.Add(v.NvName, v.NvValue);
                }
            }
            return(link);
        }