使用Umbraco 5.1的fluent API以编程方式创建新媒体类型
使用Umbraco 5.1 API, 我可以使用下面的代码创建新的内容类型(用于在“内容”选项卡下创建内容节点)使用Umbraco 5.1的fluent API以编程方式创建新媒体类型,umbraco,umbraco5,Umbraco,Umbraco5,使用Umbraco 5.1 API, 我可以使用下面的代码创建新的内容类型(用于在“内容”选项卡下创建内容节点) // create content type var typeBuilder = context.Hive.Cms().NewContentType("testType", "Test Type") .Define("value", "contentPicker", "Content") .Commit(); // create c
// create content type
var typeBuilder = context.Hive.Cms().NewContentType("testType", "Test Type")
.Define("value", "contentPicker", "Content")
.Commit();
// create content node
var packageNode = context.Hive.Cms().NewRevision(packageNodeName, packageNodeName, "testType");
packageNode.SetUploadedFile("value", postedFile);
packageNode.Publish();
packageNode.Commit();
但是,有没有一种方法可以使用fluent API创建媒体节点?我需要在“媒体”选项卡树中使用自定义类型创建一个新的自定义媒体节点。
我尝试过以下方法,但似乎都不管用
1) context.Hive.Cms().NewRevision();
2) context.Hive.Cms<IMediaStore>().NewRevision();
3) builderStep.NewRevision<Media, IMediaStore>();
4) builderStep.NewRevision<TypedEntity, IMediaStore>();
1)context.Hive.Cms().NewRevision();
2) context.Hive.Cms().NewRevision();
3) builderStep.NewRevision();
4) builderStep.NewRevision();
此操作有效,但生成的介质类型不完整,因为当我尝试使用此类型手动创建介质时,会抛出一个错误“应指定名称”
CmsBuilderStep<IMediaStore> builderStep = new CmsBuilderStep<IMediaStore>(context.Hive);
var typeBuilder = builderStep.NewMediaType<EntitySchema, IMediaStore>("testType")
.Define("package", "uploader", "General Properties")
.Commit();
CmsBuilderStep builderStep=newcmsbuilderstep(context.Hive);
var typeBuilder=builderStep.NewMediaType(“testType”)
.Define(“包”、“上传器”、“一般属性”)
.Commit();
最后,我决定手动创建媒体类型,并使用下面的代码通过代码创建媒体项
// Creating a new Media item using the scorm package zip file.
var packageNode = context.Hive.Cms<IContentStore>().NewRevision(packageNodeName, packageNodeName, "testType")
.SetUploadedFile("package", postedFile)
// set parent to media root folder - this is what makes it come under media tree
.SetParent(FixedHiveIds.MediaVirtualRoot)
.Publish()
.Commit();
//使用scorm包zip文件创建新媒体项。
var packageNode=context.Hive.Cms().NewRevision(packageNodeName,packageNodeName,“testType”)
.SetUploadedFile(“包”,postedFile)
//将父文件夹设置为媒体根文件夹-这使其位于媒体树下
.SetParent(FixedHiveIds.MediaVirtualRoot)
.Publish()
.Commit();
此操作有效,但生成的介质类型不完整,因为当我尝试使用此类型手动创建介质时,会抛出一个错误“应指定名称”
CmsBuilderStep<IMediaStore> builderStep = new CmsBuilderStep<IMediaStore>(context.Hive);
var typeBuilder = builderStep.NewMediaType<EntitySchema, IMediaStore>("testType")
.Define("package", "uploader", "General Properties")
.Commit();
CmsBuilderStep builderStep=newcmsbuilderstep(context.Hive);
var typeBuilder=builderStep.NewMediaType(“testType”)
.Define(“包”、“上传器”、“一般属性”)
.Commit();
最后,我决定手动创建媒体类型,并使用下面的代码通过代码创建媒体项
// Creating a new Media item using the scorm package zip file.
var packageNode = context.Hive.Cms<IContentStore>().NewRevision(packageNodeName, packageNodeName, "testType")
.SetUploadedFile("package", postedFile)
// set parent to media root folder - this is what makes it come under media tree
.SetParent(FixedHiveIds.MediaVirtualRoot)
.Publish()
.Commit();
//使用scorm包zip文件创建新媒体项。
var packageNode=context.Hive.Cms().NewRevision(packageNodeName,packageNodeName,“testType”)
.SetUploadedFile(“包”,postedFile)
//将父文件夹设置为媒体根文件夹-这使其位于媒体树下
.SetParent(FixedHiveIds.MediaVirtualRoot)
.Publish()
.Commit();