Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
    // -------------------------------------------------------------------------

    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;
    }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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);
             */
        }
Beispiel #8
0
        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);
        }