/// <summary> /// Loads the Current Item /// </summary> private void LoadCurrentItem() { if (CurrentItem == null) { return; } examGridPanel.Visible = true; ValidateItem(); //set selected on menu DataUri[] dataUris = new DataUri[1]; dataUris[0] = new DataUri(CurrentItem.ID); TreeviewDataContext.DefaultItem = CurrentItem.ID.ToString(); TreeviewDataContext.Folder = CurrentItem.Paths.FullPath; TreeviewDataContext.Selected = dataUris; TreeviewDataContext.AddSelected(new DataUri(CurrentItem.ID)); TreeviewDataContext.Refresh(); //reset form SetDisplay(); //make sure we are on a velir image IFieldSuiteImage fieldSuiteImage = FieldSuiteImageFactory.GetFieldSuiteImage(CurrentItem); if (fieldSuiteImage != null) { CreateContentEditor(CurrentItem); } }
private IFieldSuiteListItem GetListItem(string itemId, string fieldId) { Item item = Sitecore.Context.ContentDatabase.GetItem(itemId); if (item == null) { return(null); } IFieldSuiteImage fieldSuiteImage = FieldSuiteImageFactory.GetFieldSuiteImage(item); if (fieldSuiteImage == null) { return(null); } FieldSuiteImageListItem listItem = new FieldSuiteImageListItem(); //set default string imageSrc = "/sitecore modules/shell/field suite/images/unknown.png"; //set to image of the item if (!string.IsNullOrEmpty(fieldSuiteImage.ImageUrl)) { //setup image and sitecore click event imageSrc = fieldSuiteImage.ImageUrl.ToLower(); } //add thumbnail parameter string parameters = "w=125&h=125&thn=true&db=master"; if (imageSrc.Contains("?")) { imageSrc += "&" + parameters; } else { imageSrc += "?" + parameters; } string titleText = string.Format("{0}: {1}", item.Name, item.Paths.FullPath); string onclick = string.Format("javascript:FieldSuite.Fields.ImagesField.ToggleItem(this, '{0}');", fieldId); string description = fieldSuiteImage.Title; if (description.Length > 21) { description = description.Substring(0, 21) + "..."; } listItem.Text = description; listItem.HoverText = titleText; listItem.ReadOnly = false; listItem.ItemClick = onclick; listItem.Parameters = new List <object>(); listItem.Parameters.Add(string.Format("<img border=\"0\" src=\"{0}\">", imageSrc)); return(listItem); }
/// <summary> /// Returns Template Mappings /// </summary> /// <param name="node"></param> /// <param name="currentItem"></param> /// <returns></returns> public static List <IFieldSuiteImage> GetFieldSuiteImageMappings(XmlNode node, Item currentItem) { List <IFieldSuiteImage> imageMappings = new List <IFieldSuiteImage>(); foreach (XmlNode childNode in node.ChildNodes) { IFieldSuiteImage fieldSuiteImage = GetItem_FromXmlNode(childNode, currentItem); if (fieldSuiteImage == null) { continue; } imageMappings.Add(fieldSuiteImage); } return(imageMappings); }
/// <summary> /// Verify Velir Image /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void dataTreeView_OnClick(object sender, EventArgs e) { Item item = addItemDataContext.GetFolder(); if (item == null) { return; } //get interface item IFieldSuiteImage fieldSuiteImage = FieldSuiteImageFactory.GetFieldSuiteImage(item); if (fieldSuiteImage == null) { SheerResponse.Alert(string.Format("{0} does not implement the velir image interface.", item.Name)); return; } }
/// <summary> /// Saves the Form /// </summary> private void SaveForm() { Item item = addItemDataContext.GetFolder(); if (item == null) { CloseApplication(); return; } //get interface item IFieldSuiteImage fieldSuiteImage = FieldSuiteImageFactory.GetFieldSuiteImage(item); if (fieldSuiteImage == null) { SheerResponse.Alert(string.Format("{0} does not implement the velir image interface.", item.Name)); return; } Context.ClientPage.ClientResponse.SetDialogValue(item.ID.ToString()); CloseApplication(); }
/// <summary> /// This will delete the current item from sitecore by instantiating the delete pipeline /// </summary> private void DeleteItem() { Item selectedItem = dataTreeView.GetSelectionItem(); if (selectedItem == null) { return; } //make sure we are on a velir image IFieldSuiteImage fieldSuiteImage = FieldSuiteImageFactory.GetFieldSuiteImage(selectedItem); if (fieldSuiteImage == null) { return; } //remove from field RemoveItemFromField(false); Item parentItem = selectedItem.Parent; Item[] items = new Item[1]; items[0] = selectedItem; //perform action Items.Delete(items); //set parent as selected if (parentItem.IsNull()) { return; } //load parent CurrentItem = parentItem; SetDisplay(); }
/// <summary> /// Return Velir Image from reflection /// </summary> /// <param name="node"></param> /// <param name="currentItem"></param> /// <param name="titleField"></param> /// <param name="imagefield"></param> /// <returns></returns> private static IFieldSuiteImage GetItem_FromReflection(XmlNode node, Item currentItem) { //verify we can break up the type string into a namespace and assembly name string[] split = node.Attributes["type"].Value.Split(','); if (split.Length == 0) { return(null); } string Namespace = split[0]; string AssemblyName = split[1]; // load the assemly Assembly assembly = GetAssembly(AssemblyName); // Walk through each type in the assembly looking for our class Type type = assembly.GetType(Namespace); if (type == null || !type.IsClass) { return(null); } FieldSuiteImageArgs args = new FieldSuiteImageArgs(); args.InnerItem = currentItem; args.Node = node; object[] parameters = new object[1]; parameters[0] = args; //cast to validator class IFieldSuiteImage fieldSuiteImage = (IFieldSuiteImage)Activator.CreateInstance(type, parameters); //validate return(fieldSuiteImage); }
/// <summary> /// Sets the button and content area appropiately /// </summary> private void SetDisplay() { if (CurrentItem == null) { addButton.Visible = false; removeButton.Visible = false; deleteButton.Visible = false; saveButton.Visible = false; ResetDisplay(true); return; } //make sure we are on a velir image IFieldSuiteImage fieldSuiteImage = FieldSuiteImageFactory.GetFieldSuiteImage(CurrentItem); if (fieldSuiteImage == null) { addButton.Visible = false; removeButton.Visible = false; deleteButton.Visible = false; saveButton.Visible = false; ResetDisplay(true); return;; } //toggle add remove buttons bool isCurrentItemAdded = IsCurrentItemAdded(); addButton.Visible = !isCurrentItemAdded; removeButton.Visible = isCurrentItemAdded; deleteButton.Visible = true; saveButton.Visible = true; ResetDisplay(false); }
/// <summary> /// Renders an item /// </summary> /// <param name="itemId"></param> /// <returns></returns> public override string RenderItem(string itemId, bool selectedItem) { if (string.IsNullOrEmpty(itemId)) { return(string.Empty); } FieldSuiteImageListItem listItem = new FieldSuiteImageListItem(); Item item = Sitecore.Context.ContentDatabase.GetItem(itemId); if (item.IsNull()) { return(listItem.RenderItemNotFound(itemId, this.ID)); } //get interface item IFieldSuiteImage fieldSuiteImage = FieldSuiteImageFactory.GetFieldSuiteImage(item); if (fieldSuiteImage == null) { return(listItem.RenderItemConfigured(itemId, this.ID)); } //set default string imageSrc = "/sitecore modules/shell/field suite/images/unknown.png"; //set to image of the item if (!string.IsNullOrEmpty(fieldSuiteImage.ImageUrl)) { //setup image and sitecore click event imageSrc = fieldSuiteImage.ImageUrl.ToLower(); } //add thumbnail parameter string parameters = "w=125&h=125&thn=true&db=" + MasterDatabase.Name.ToLower(); if (imageSrc.Contains("?")) { imageSrc += "&" + parameters; } else { imageSrc += "?" + parameters; } string titleText = string.Format("{0}: {1}", item.Name, item.Paths.FullPath); //if the form is readonly string onclick = ""; if (!this.ReadOnly) { onclick = string.Format("javascript:FieldSuite.Fields.ImagesField.ToggleItem(this, '{0}');", this.ID); } //setup description string description = string.Empty; if (!string.IsNullOrEmpty(fieldSuiteImage.Title)) { description = fieldSuiteImage.Title; if (description.Length > 13) { description = description.Substring(0, 13) + "..."; } } listItem.Text = description; listItem.HoverText = titleText; listItem.ReadOnly = this.ReadOnly; listItem.ItemClick = onclick; listItem.Parameters = new List <object>(); listItem.Parameters.Add(string.Format("<img border=\"0\" src=\"{0}\">", imageSrc)); //for performance reason limit field gutter Int32 renderCount = RenderItemCount; if (selectedItem) { renderCount = RenderSelectedItemCount; } //for performance reason limit field gutter bool useFieldGutter = false; IFieldGutterProcessor fieldGutterProcessor = FieldGutterProcessorFactory.GetProcessor(); if (fieldGutterProcessor != null) { Int32 maxCount = fieldGutterProcessor.MaxCount; if (maxCount != 0 && renderCount <= maxCount) { useFieldGutter = true; } } //return list item as html if (selectedItem) { RenderSelectedItemCount++; } else { RenderItemCount++; } return(listItem.Render(item, item.ID.ToString(), this.ID, useFieldGutter)); }