protected string RenderItem(GeneralLinkItem linkItem) { GeneralLinksListItem listItem = new GeneralLinksListItem(); bool useFieldGutter = false; listItem.ShowAddRemoveButton = true; listItem.ButtonClick = string.Format("FieldSuite.Fields.GeneralLinks.RemoveItem(this, '{0}');", this.ID); listItem.ItemClick = "FieldSuite.Fields.SelectItem(this);"; listItem.SelectedClass = "velirFieldSelected"; listItem.ReadOnly = this.ReadOnly; listItem.Text = linkItem.LinkText; listItem.HoverText = linkItem.Url; if (!string.IsNullOrEmpty(linkItem.Id) && Sitecore.Data.ID.IsID(linkItem.Id)) { Database db = Sitecore.Data.Database.GetDatabase("master"); if (db != null) { Item item = db.GetItem(linkItem.Id); if (item.IsNotNull()) { listItem.HoverText = item.Paths.FullPath; useFieldGutter = true; //for performance reason limit field gutter IFieldGutterProcessor fieldGutterProcessor = FieldGutterProcessorFactory.GetProcessor(); if (fieldGutterProcessor != null) { Int32 maxCount = fieldGutterProcessor.MaxCount; if (maxCount != 0 && RenderItemCount <= maxCount) { RenderItemCount++; } } } } } return listItem.RenderGeneralLink(linkItem, this.ID, useFieldGutter); }
// Explicit predicate delegate. private static bool FindLinkPredicate(GeneralLinkItem item, string id) { if (item.Id == id) { return true; } return false; }
/// <summary> /// Renders the list item as Html /// </summary> /// <param name="linkItem"></param> /// <param name="fieldId"></param> /// <param name="useFieldGutter"></param> /// <returns></returns> public virtual string RenderGeneralLink(GeneralLinkItem linkItem, string fieldId, bool useFieldGutter) { //disable items if the form is read only) if (ReadOnly) { ItemClick = string.Empty; ButtonClick = string.Empty; } string templateName = string.Empty; string icon = string.Empty; Item item = null; if (!string.IsNullOrEmpty(linkItem.Id) && ID.IsID(linkItem.Id)) { Database db = Database.GetDatabase("master"); if (db != null) { item = db.GetItem(linkItem.Id); if (item.IsNotNull()) { icon = item.Appearance.Icon; TemplateItem template = item.Template; if (!string.IsNullOrEmpty(template.Name)) { templateName = template.Name; } } } } //external link if (linkItem.LinkType == GeneralLinkItem.ExternalLinkType) { templateName = GeneralLinkItem.ExternalLinkType; icon = GeneralLinkItem.ExternalLinkIcon; } //javascript link if (linkItem.LinkType == GeneralLinkItem.JavascriptLinkType) { templateName = GeneralLinkItem.JavascriptLinkType; icon = GeneralLinkItem.JavascriptLinkIcon; } //mail link if (linkItem.LinkType == GeneralLinkItem.MailLinkType) { templateName = GeneralLinkItem.MailLinkType; icon = GeneralLinkItem.MailLinkIcon; } //anchor link if (linkItem.LinkType == GeneralLinkItem.AnchorLinkType) { templateName = GeneralLinkItem.AnchorLinkType; icon = GeneralLinkItem.AnchorLinkIcon; } string sitecoreId = string.Empty; if(linkItem.LinkType == GeneralLinkItem.InternalLinkType || linkItem.LinkType == GeneralLinkItem.MediaLinkType) { sitecoreId = linkItem.Id; } string fieldGutterHtml = string.Format("<div class=\"fieldGutter\">{0}</div>", Images.GetSpacer(16, 16)); if (useFieldGutter) { if (item.IsNotNull()) { IFieldGutterProcessor fieldGutterProcessor = FieldGutterProcessorFactory.GetProcessor(); if (fieldGutterProcessor != null) { string html = fieldGutterProcessor.Process(new FieldGutterArgs(item, fieldId)); if (!string.IsNullOrEmpty(html)) { fieldGutterHtml = html; } } } } return string.Format(HtmlTemplate, linkItem.LinkId, fieldGutterHtml, fieldId, AddRemoveHtml(ButtonClick, Images.GetSpacer(16, 16)), templateName, Images.GetImage(icon, 0x10, 0x10, "absmiddle", "0px 4px 0px 0px", templateName), Text, HoverText, ItemClick, SelectedClass, sitecoreId); }