在Sitecore中,如何基于现有项目创建新项目

时间:2011-10-10 09:41:34

标签: sitecore sitecore6

我是Sitecore的新手。

在Sitecore中,我需要让用户根据现有项目创建新项目。我想象的是这样的:

  1. 用户点击上下文菜单中的“插入”
  2. 系统会提示用户在树中的某个位置(必须基于特定模板)
  3. 创建一个新项目,其中一些字段预先填充了原始项目中的值
  4. 用户现在可以填写未预先填写的其他字段 - 或更改预先填充的值
  5. (请注意,新项目基于另一个模板而不是原始模板)。我不担心原始项目的更改 - 它们不需要传播到新项目。

    作为初学者,我不知道该怎么做。我看过各种选择:

    一个。克隆。克隆似乎接近我想要的,但我不能在新项目上有额外的字段,并且它们不能基于不同的模板。所以我猜它不是我追求的克隆。 (另外,它们对Sitecore来说还是新手)

    湾事件。我想我应该能够拦截“新项目”事件,但我不知道如何然后抛出一个对话框并要求用户选择一个原始项目。

    ℃。参考原始项目。我已经想出如何创建一个可以包含对原始项的引用的字段。但是,如何在用户设置字段时填充字段 - 如何在执行任何其他操作之前确保用户以此字段开头?

    我也研究过命令,钩子等......

    所以?有什么想法吗?

3 个答案:

答案 0 :(得分:2)

这将是一项特别重要的工作,如果您是Sitecore的新手,可能会非常困难。

我建议寻找到定制客户端(这可以通过编辑从内容编辑器的Core数据库以及在代码执行一些事情来实现)

如果您有权访问Sitecore开发者网络,这将有所帮助:http://sdn.sitecore.net/Reference/Sitecore%206/Client%20Configuration%20Cookbook.aspx

这些文章可能会为您提供一些有关实施的其他想法:

第一篇文章可能是您添加上下文菜单项的最佳选择。您可以通过执行以下操作在已编译的代码中执行命令:

  • Commands.config文件中,添加<command name="button:copycreateditem" type="Your.Namespace.And.Classname,Your.Assembly" />
  • 等项目
  • 使用正确的Classname
  • 在您指定的程序集和命名空间中创建一个类
  • 继承自Sitecore.Shell.Framework.Commands.Command
  • 实施方法Execute(CommandContext context)
  • 构建

CommandContext将提供您进行更改所需的大量必要信息(例如当前选定的项目)。

希望这会让你走上正轨。祝你好运!

答案 1 :(得分:0)

我真的不明白你所说的“它必须基于特定的模板”然后“新项目基于另一个模板而不是原始模板”。不知道你怎么能两种方式,所以我的答案假设你坚持使用一个模板。

执行此操作的标准sitecore方法是在模板中分配标准值。然后,用户可以基于模板创建新项目,并且将会遇到标准值。

要为模板创建标准值,

  1. 选择模板
  2. 转到功能区上的“构建器”标签
  3. 点击“标准值”
  4. 这将在模板下创建一个新项目“__Standard Values”,您可以在其中设置某些字段的默认值并将其他字段留空。

答案 2 :(得分:-1)

插入选项,插入规则,nvelocity令牌($ name)和模板标准值。