2014-03-25 61 views
0

有没有办法在果园CMS中创建和编辑的编辑服务了形状时区分?果园CMS - 创建VS编辑编辑模板和形状

也许这是有可能即使在Placement.info水平做些什么呢?

基本上我有一个使用自动布线部分设置该实体的一个永久的ContentType。我不希望人们能够在初始创建后对其进行编辑,因此这将是巨大的,在实际编辑模式时,隐藏的部分 - 但有它明显的和可用的,当第一个“创建”页面

回答

2

在Orchard CMS中提供形状时,是否有办法区分编辑器的创建和编辑?

不除非模块已经专门编写这样做。如果你看看AutoroutePartDriver,你会发现它总是返回一个叫做Parts_Autoroute_Edit的形状,所以在这种情况下,使用Placement.info是不可能的。你可能没有看到

的一件事是自动布线部分有两种设定内容类型编辑页面(如~/Admin/ContentTypes/Edit/Page)可见:

  • 允许自定义模式
  • 编辑内容
  • 时自动重新生成

取消选中这两个将防止路线的编辑一旦内容项目已被创建,但您将无法要么创建内容项时进行编辑,而不是你将不得不依赖于T他产生了slu。。如果你使用{Content.Slug}这样的模式,或者如果你有自己确定性的方式来根据内容类型生成一个slu then,然后创建一个模块来实现ITokenProvider并创建你自己的使用你的算法的令牌,你将最终得到合理的slu gs。

如果绝对必须有在你的问题中描述的行为,那么你可以创造出从而抑制电流AutoroutePartDriver(使用OrchardSuppressDependency)的模块,也可以从它继承。然后,您可以继续覆盖Editor(...)方法中的一个,以便在生成编辑器图形或保存该项目时进行截取。您可以使用part.ContentItem.Id == 0来查看您是否正在处理新的内容项目。这种方法的一个很大的警告是,它依赖于AutoroutePartDriver的实现,所以如果这改变你的驱动程序可能会中断。

+1

对于这样的事情,我不会重复代码。在Autoroute中实现它,然后将其作为贡献提交。 –

+0

感谢您的意见!非常有帮助,非常感谢 – Jennet