private MediaType SecureFile() { var mediaType = new MediaType(-1) { Alias = "secureFile", Name = "Secure File", Description = "Only members who have logged in can view this file", Icon = "icon-lock color-red", Thumbnail = "doc.png", SortOrder = 21, CreatorId = 0, Trashed = false, IsContainer = false, AllowedAsRoot = true, AllowedContentTypes = Enumerable.Empty <ContentTypeSort>() }; var umbracoDataType = new UmbracoDataTypes(ApplicationContext.Current.Services.DataTypeService); mediaType.AddPropertyType( new PropertyType(umbracoDataType.TrueFalse, MemberOnlyAlias) { Name = "Member Only", Description = "Only members who have logged in can view this image", SortOrder = 0, PropertyEditorAlias = Umbraco.Core.Constants.PropertyEditors.TrueFalseAlias, }, "Image"); mediaType.AddPropertyType( new PropertyType(umbracoDataType.Upload, Umbraco.Core.Constants.Conventions.Media.File) { Name = "Upload file", Description = string.Empty, SortOrder = 1, PropertyEditorAlias = Umbraco.Core.Constants.PropertyEditors.UploadFieldAlias, }, "Image"); mediaType.AddPropertyType( new PropertyType(umbracoDataType.Label, Umbraco.Core.Constants.Conventions.Media.Extension) { Name = "Type", Description = string.Empty, SortOrder = 2, PropertyEditorAlias = Umbraco.Core.Constants.PropertyEditors.NoEditAlias, }, "Image"); mediaType.AddPropertyType( new PropertyType(umbracoDataType.Label, Umbraco.Core.Constants.Conventions.Media.Bytes) { Name = "Size", Description = string.Empty, SortOrder = 3, PropertyEditorAlias = Umbraco.Core.Constants.PropertyEditors.NoEditAlias, }, "Image"); return(mediaType); }
/// <summary> /// Create a Media Type. /// </summary> /// <param name="adminUser"></param> /// <param name="mediaTypeName"></param> /// <returns></returns> private MediaType CreateMediaType(User adminUser, string mediaTypeName) { MediaType mediaType = MediaType.MakeNew(adminUser, mediaTypeName); int[] typeIds = { FOLDER_ID, IMAGE_ID }; mediaType.AllowAtRoot = true; mediaType.Text = MediaTypeName; mediaType.Description = "Container for the Social Media Channel Theme Images"; mediaType.IsContainerContentType = true; mediaType.AllowedChildContentTypeIDs = typeIds; //Add properties mediaType.AddPropertyType(new DataTypeDefinition(UPLOAD_ID), "umbracoFile", "Upload image"); mediaType.AddPropertyType(new DataTypeDefinition(LABEL_ID), "umbracoWidth", "Width"); mediaType.AddPropertyType(new DataTypeDefinition(LABEL_ID), "umbracoHeight", "Height"); mediaType.AddPropertyType(new DataTypeDefinition(LABEL_ID), "umbracoBytes", "Size"); mediaType.AddPropertyType(new DataTypeDefinition(LABEL_ID), "umbracoExtension", "Type"); mediaType.AddPropertyType(new DataTypeDefinition(TEXT_ID), "themeName", "Name of the Social Channel Theme"); mediaType.AddPropertyType(new DataTypeDefinition(TEXT_ID), "themeUrl", "Url for the Theme"); mediaType.AddPropertyType(new DataTypeDefinition(TEXT_ID), "createdBy", "Author of the Theme"); mediaType.AddPropertyType(new DataTypeDefinition(DATE_ID), "createdDate", "Date the Theme was created"); mediaType.Text = mediaTypeName; mediaType.IconUrl = "mediaPhoto.gif"; mediaType.Save(); return(mediaType); }
private MediaType SecureFolder() { var mediaType = new MediaType(-1) { Alias = "secureFolder", Name = "Secure Folder", Description = "Only members who have logged in can access media stored within this folder", Icon = "icon-combination-lock color-red", Thumbnail = "doc.png", SortOrder = 22, CreatorId = 0, Trashed = false, IsContainer = false, AllowedAsRoot = true, AllowedContentTypes = Enumerable.Empty <ContentTypeSort>() }; var umbracoDataType = new UmbracoDataTypes(ApplicationContext.Current.Services.DataTypeService); mediaType.AddPropertyType( new PropertyType(umbracoDataType.TrueFalse, MemberOnlyAlias) { Name = "Member Only", Description = "Only members who have logged in can view media stored within this folder", SortOrder = 0, PropertyEditorAlias = Umbraco.Core.Constants.PropertyEditors.TrueFalseAlias, }, "Contents"); mediaType.AddPropertyType( new PropertyType(umbracoDataType.MediaListView, "contents") { Name = "Contents", Description = string.Empty, SortOrder = 1, PropertyEditorAlias = Umbraco.Core.Constants.PropertyEditors.ListViewAlias, }, "Contents"); return(mediaType); }
// ------------------------------------------------------------------------- protected void Install(object sender, EventArgs e) { pnlInstaller.Visible = false; // Get MultipleFileUpload DataType DataTypeDefinition ddMultipleFileUpload = null; foreach (DataTypeDefinition dt in DataTypeDefinition.GetAll()) { if (dt.DataType != null && dt.DataType.Id.Equals(DATATYPE_UID)) { ddMultipleFileUpload = dt; } } if (ddMultipleFileUpload != null) { // Add tab to Folder Media type MediaType mediaType = MediaType.GetByAlias("Folder"); ContentType.TabI uploadTab = null; foreach (ContentType.TabI tab in mediaType.getVirtualTabs) { if (tab.Caption.Equals("Upload")) { uploadTab = tab; } } if (uploadTab == null) { int tabId = mediaType.AddVirtualTab("Upload"); mediaType.AddPropertyType(ddMultipleFileUpload, "MultipleFileUpload", "Upload multiple files"); mediaType.SetTabOnPropertyType(mediaType.getPropertyType("MultipleFileUpload"), tabId); mediaType.Save(); } } pnlUninstall.Visible = true; }
private MediaType CreateSearchMediaComposition() { var compositionFolder = GetMediaCompositionFolder(); var composition = new MediaType(compositionFolder.Id) { Alias = MediaAliases.SearchMediaCompositionAlias, Name = MediaAliases.SearchMediaCompositionName, SortOrder = 2 }; InstallationStepsHelper.CreateTrueFalseDataType("TrueFalse"); var trueFalseEditor = _dataTypeService.GetDataTypeDefinitionByName("TrueFalse"); var property = new PropertyType(trueFalseEditor, MediaAliases.UseInSearch) { Name = "Use in search", }; composition.AddPropertyType(property, MediaAliases.CompositionTabName); _contentTypeService.Save(composition); return(composition); }
public void Can_Set_Tab_On_PropertyType() { var UPLOAD_DATATYPE_ID = -90; var CROP_DATATYPE_ID = 1043; var LABEL_DATATYPE_ID = -92; var mediaTypeName = "ImageWide"; MediaType mediaType = MediaType.MakeNew(new User(0), mediaTypeName); int imageTab = mediaType.AddVirtualTab("Image"); int cropTab = mediaType.AddVirtualTab("Crop"); mediaType.AddPropertyType(new DataTypeDefinition(UPLOAD_DATATYPE_ID), Constants.Conventions.Media.File, "Upload image"); mediaType.AddPropertyType(new DataTypeDefinition(LABEL_DATATYPE_ID), Constants.Conventions.Media.Width, "Width"); mediaType.AddPropertyType(new DataTypeDefinition(LABEL_DATATYPE_ID), Constants.Conventions.Media.Height, "Height"); mediaType.AddPropertyType(new DataTypeDefinition(LABEL_DATATYPE_ID), Constants.Conventions.Media.Bytes, "Size"); mediaType.AddPropertyType(new DataTypeDefinition(LABEL_DATATYPE_ID), Constants.Conventions.Media.Extension, "Type"); mediaType.AddPropertyType(new DataTypeDefinition(CROP_DATATYPE_ID), "wideImage", "Wide image"); mediaType.SetTabOnPropertyType(mediaType.getPropertyType(Constants.Conventions.Media.File), imageTab); mediaType.SetTabOnPropertyType(mediaType.getPropertyType(Constants.Conventions.Media.Width), imageTab); mediaType.SetTabOnPropertyType(mediaType.getPropertyType(Constants.Conventions.Media.Height), imageTab); mediaType.SetTabOnPropertyType(mediaType.getPropertyType(Constants.Conventions.Media.Bytes), imageTab); mediaType.SetTabOnPropertyType(mediaType.getPropertyType(Constants.Conventions.Media.Extension), imageTab); mediaType.SetTabOnPropertyType(mediaType.getPropertyType("wideImage"), cropTab); mediaType.Text = mediaTypeName; mediaType.IconUrl = "mediaPhoto.gif"; mediaType.Save(); Assert.That(mediaType.getVirtualTabs.Count(), Is.EqualTo(2)); Assert.That(mediaType.getVirtualTabs.Any(x => x.Caption.Equals("Image")), Is.True); Assert.That(mediaType.getVirtualTabs.Any(x => x.Caption.Equals("Crop")), Is.True); var updated = new MediaType(mediaType.Id); Assert.That(updated.getVirtualTabs.Count(), Is.EqualTo(2)); Assert.That(updated.getVirtualTabs.Any(x => x.Caption.Equals("Image")), Is.True); Assert.That(updated.getVirtualTabs.Any(x => x.Caption.Equals("Crop")), Is.True); Assert.That(updated.ContentTypeItem.PropertyGroups.Count(), Is.EqualTo(2)); Assert.That(updated.ContentTypeItem.PropertyTypes.Count(), Is.EqualTo(6)); }
public static void Import(XmlNode n, bool ImportStructure) { if (n == null) { throw new ArgumentNullException("Node cannot be null"); } // // using xmlHelper not XmlHelper because GetNodeValue has gone all // Internall on us, this function probibly does belong in the core // (umbraco.cms.buisnesslogic.packageInstaller) so that packages // can also do media types, but at the mo, it's uSync's until i read // about contributing to the core. // // using user 0 will come unstuck oneday User u = new User(0); // does this media type already exist ? string alias = xmlHelper.GetNodeValue(n.SelectSingleNode("Info/Alias")); if (String.IsNullOrEmpty(alias)) { throw new Exception("no alias in sync file"); } MediaType mt = null; try { mt = MediaType.GetByAlias(alias); } catch (Exception ex) { LogHelper.Debug <SyncMediaTypes>("Media type corrupt? {0}", () => ex.ToString()); } if (mt == null) { // we are new mt = MediaType.MakeNew(u, xmlHelper.GetNodeValue(n.SelectSingleNode("Info/Name"))); mt.Alias = xmlHelper.GetNodeValue(n.SelectSingleNode("Info/Alias")); } else { mt.Text = xmlHelper.GetNodeValue(n.SelectSingleNode("Info/Name")); } // core mt.IconUrl = xmlHelper.GetNodeValue(n.SelectSingleNode("Info/Icon")); mt.Thumbnail = xmlHelper.GetNodeValue(n.SelectSingleNode("Info/Thumbnail")); mt.Description = xmlHelper.GetNodeValue(n.SelectSingleNode("Info/Description")); // v6 you can have allow at root. // Allow at root (check for node due to legacy) bool allowAtRoot = false; string allowAtRootNode = xmlHelper.GetNodeValue(n.SelectSingleNode("Info/AllowAtRoot")); if (!String.IsNullOrEmpty(allowAtRootNode)) { bool.TryParse(allowAtRootNode, out allowAtRoot); } mt.AllowAtRoot = allowAtRoot; //Master content type string master = xmlHelper.GetNodeValue(n.SelectSingleNode("Info/Master")); if (!String.IsNullOrEmpty(master)) { // throw new System.Exception(String.Format("Throwing in {0}, master {1}", mt.Text, master)); try { MediaType pmt = MediaType.GetByAlias(master); if (pmt != null) { mt.MasterContentType = pmt.Id; } } catch (Exception ex) { LogHelper.Debug <SyncMediaTypes>("Media type corrupt? {0}", () => ex.ToString()); } } //tabs ContentType.TabI[] tabs = mt.getVirtualTabs; // load the current tabs string tabnames = ";"; for (int t = 0; t < tabs.Length; t++) { tabnames += tabs[t].Caption + ";"; } Hashtable ht = new Hashtable(); foreach (XmlNode t in n.SelectNodes("Tabs/Tab")) { // is this a new tab? // if ( tabnames.IndexOf(";" + xmlHelper.GetNodeValue(t.SelectSingleNode("Caption")) + ";" == -1) if (!tabnames.Contains(";" + xmlHelper.GetNodeValue(t.SelectSingleNode("Caption")) + ";")) { ht.Add(int.Parse(xmlHelper.GetNodeValue(t.SelectSingleNode("Id"))), mt.AddVirtualTab(xmlHelper.GetNodeValue(t.SelectSingleNode("Caption")))); } } // clear cache mt.ClearVirtualTabs(); // put tabs in a hashtable, so we can check they exist when we add properties. Hashtable tabList = new Hashtable(); foreach (ContentType.TabI t in mt.getVirtualTabs.ToList()) { if (!tabList.ContainsKey(t.Caption)) { tabList.Add(t.Caption, t.Id); } } // properties.. global::umbraco.cms.businesslogic.datatype.controls.Factory f = new global::umbraco.cms.businesslogic.datatype.controls.Factory(); foreach (XmlNode gp in n.SelectNodes("GenericProperties/GenericProperty")) { int dfId = 0; Guid dtId = new Guid(xmlHelper.GetNodeValue(gp.SelectSingleNode("Type"))); if (gp.SelectSingleNode("Definition") != null && !string.IsNullOrEmpty(xmlHelper.GetNodeValue(gp.SelectSingleNode("Definition")))) { Guid dtdId = new Guid(xmlHelper.GetNodeValue(gp.SelectSingleNode("Definition"))); if (CMSNode.IsNode(dtdId)) { dfId = new CMSNode(dtdId).Id; } } if (dfId == 0) { try { dfId = findDataTypeDefinitionFromType(ref dtId); } catch { throw new Exception(String.Format("Cound not find datatype with id {0}.", dtId)); } } //fix for ritch text editor if (dfId == 0 && dtId == new Guid("a3776494-0574-4d93-b7de-efdfdec6f2d1")) { dtId = new Guid("83722133-f80c-4273-bdb6-1befaa04a612"); dfId = findDataTypeDefinitionFromType(ref dtId); } if (dfId != 0) { PropertyType pt = mt.getPropertyType(xmlHelper.GetNodeValue(gp.SelectSingleNode("Alias"))); if (pt == null) { mt.AddPropertyType( global::umbraco.cms.businesslogic.datatype.DataTypeDefinition.GetDataTypeDefinition(dfId), xmlHelper.GetNodeValue(gp.SelectSingleNode("Alias")), xmlHelper.GetNodeValue(gp.SelectSingleNode("Name")) ); pt = mt.getPropertyType(xmlHelper.GetNodeValue(gp.SelectSingleNode("Alias"))); } else { pt.DataTypeDefinition = global::umbraco.cms.businesslogic.datatype.DataTypeDefinition.GetDataTypeDefinition(dfId); pt.Name = xmlHelper.GetNodeValue(gp.SelectSingleNode("Name")); } pt.Mandatory = bool.Parse(xmlHelper.GetNodeValue(gp.SelectSingleNode("Mandatory"))); pt.ValidationRegExp = xmlHelper.GetNodeValue(gp.SelectSingleNode("Validation")); pt.Description = xmlHelper.GetNodeValue(gp.SelectSingleNode("Description")); // tab try { if (tabList.ContainsKey(xmlHelper.GetNodeValue(gp.SelectSingleNode("Tab")))) { pt.TabId = (int)tabList[xmlHelper.GetNodeValue(gp.SelectSingleNode("Tab"))]; } } catch (Exception ee) { LogHelper.Debug <SyncMediaTypes>("Packager: Error assigning property to tab: {0}", () => ee.ToString()); } pt.Save(); } } if (ImportStructure) { if (mt != null) { ArrayList allowed = new ArrayList(); foreach (XmlNode structure in n.SelectNodes("Structure/MediaType")) { try { MediaType dtt = MediaType.GetByAlias(xmlHelper.GetNodeValue(structure)); if (dtt != null) { allowed.Add(dtt.Id); } } catch (Exception ex) { LogHelper.Info <uSync>("Can't find structure mediatype - so skipping"); } } int[] adt = new int[allowed.Count]; for (int i = 0; i < allowed.Count; i++) { adt[i] = (int)allowed[i]; } mt.AllowedChildContentTypeIDs = adt; } } mt.Save(); /* * foreach (MediaType.TabI t in mt.getVirtualTabs.ToList()) * { * MediaType.FlushTabCache(t.Id, mt.Id); * } * * // need to do this more i think * MediaType.FlushFromCache(mt.Id); */ }
public static void AddSocialMediaChannelMediaType() { MediaType mediaType = new MediaType(-1); mediaType.AllowedAsRoot = true; mediaType.Name = SOCIAL_MEDIA_THEME_NAME; mediaType.Description = "Container for the Social Media Channel Theme Images"; mediaType.IsContainer = true; mediaType.Icon = "icon-picture"; mediaType.Alias = SOCIAL_MEDIA_THEME_ALIAS; //Allowed child nodes var children = new List <ContentTypeSort> { new ContentTypeSort(FOLDER_ID, 0), new ContentTypeSort(IMAGE_ID, 1) }; mediaType.AllowedContentTypes = children; //Add properties DataTypeService dataTypeService = (DataTypeService)ApplicationContext.Current.Services.DataTypeService; var name = new PropertyType(dataTypeService.GetDataTypeDefinitionById(TEXT_ID), "themeName"); name.Name = "Theme Name"; name.Description = "Name for the theme"; name.SortOrder = 0; var url = new PropertyType(dataTypeService.GetDataTypeDefinitionById(TEXT_ID), "themeUrl"); url.Name = "Theme Url"; url.Description = "Url for the original theme"; url.SortOrder = 1; var createdBy = new PropertyType(dataTypeService.GetDataTypeDefinitionById(TEXT_ID), "createdBy"); createdBy.Name = "Created By"; createdBy.Description = "Theme Author"; createdBy.SortOrder = 2; var createdDate = new PropertyType(dataTypeService.GetDataTypeDefinitionById(DATE_ID), "createdDate"); createdDate.Name = "Created Date"; createdDate.Description = "Date the Theme was created"; createdDate.SortOrder = 3; var upload = new PropertyType(dataTypeService.GetDataTypeDefinitionById(UPLOAD_ID), "umbracoFile"); upload.Name = "Upload Image"; upload.Description = "Theme Thumbnail"; upload.SortOrder = 4; var width = new PropertyType(dataTypeService.GetDataTypeDefinitionById(LABEL_ID), "umbracoWidth"); width.Name = "Image Width"; width.SortOrder = 5; var height = new PropertyType(dataTypeService.GetDataTypeDefinitionById(LABEL_ID), "umbracoHeight"); height.Name = "Image Height"; height.SortOrder = 5; var size = new PropertyType(dataTypeService.GetDataTypeDefinitionById(LABEL_ID), "umbracoBytes"); size.Name = "Image Size"; size.SortOrder = 5; var extension = new PropertyType(dataTypeService.GetDataTypeDefinitionById(LABEL_ID), "umbracoExtension"); extension.Name = "Image Extension"; extension.SortOrder = 5; mediaType.AddPropertyType(name, "Theme"); mediaType.AddPropertyType(url, "Theme"); mediaType.AddPropertyType(createdBy, "Theme"); mediaType.AddPropertyType(createdDate, "Theme"); mediaType.AddPropertyType(upload, "Theme"); mediaType.AddPropertyType(width, "Theme"); mediaType.AddPropertyType(height, "Theme"); mediaType.AddPropertyType(size, "Theme"); mediaType.AddPropertyType(extension, "Theme"); //Save new media type ContentTypeService contentTypeService = (ContentTypeService)ApplicationContext.Current.Services.ContentTypeService; contentTypeService.Save(mediaType); }