【问题标题】:In Sitecore, how to create a new item based on an existing item在 Sitecore 中,如何基于现有项目创建新项目
【发布时间】:2012-06-21 04:19:25
【问题描述】:

我是 Sitecore 的新手。

在 Sitecore 中,我需要让用户能够基于现有项目创建新项目。我正在设想这样的事情:

  1. 用户在上下文菜单中单击“插入”
  2. 系统会提示用户输入树中某处的另一个项目(它必须基于特定模板)
  3. 创建了一个新项目,其中一些字段预先填充了原始项目的值
  4. 用户现在可以填写其他未预先填写的字段 - 或更改预先填写的值

(请注意,新项目基于不同于原始模板的另一个模板)。我不担心对原始项目的更改 - 它们不需要传播到新项目。

作为一个初学者,我不知道该怎么做。我查看了各种选项:

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

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

c。参考原始项目。我已经弄清楚如何创建一个可以包含对原始项目的引用的字段。但是,当用户设置字段时如何填充字段 - 以及如何确保用户在执行其他任何操作之前从该字段开始?

我还研究了命令、钩子等...

所以?有什么想法吗?

【问题讨论】:

  • 你能澄清关于“另一个模板”的要求吗?意思是您的原始项目是模板 A 并且您想基于模板 B 创建另一个?还是我误解了你的意思?
  • 正如你所说。新项目基于一个模板,与原始项目所基于的模板相比,该模板具有额外的字段。

标签: sitecore sitecore6


【解决方案1】:

这将是一项特别重要的任务,如果您是 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" />
  • 在您指定的程序集和命名空间中使用正确的类名创建一个类
  • 从 `Sitecore.Shell.Framework.Commands.Command 继承
  • 实现方法Execute(CommandContext context)
  • 构建

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

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

【讨论】:

    【解决方案2】:

    我不太明白您所说的“它必须基于特定模板”,然后是“新项目基于不同于原始模板的另一个模板”。不确定如何同时拥有它,所以我的回答假设您坚持使用一个模板。

    执行此操作的标准站点核心方法是在模板中分配标准值。然后用户可以根据模板创建一个新项目,标准值就会出现。

    要为模板创建标准值,

    1. 选择模板
    2. 转到功能区上的“构建器”选项卡
    3. 点击“标准值”

    这将在模板下创建一个新项目“__Standard Values”,您可以在其中为某些字段设置默认值并将其他字段留空。

    【讨论】:

      【解决方案3】:

      插入选项、插入规则、nvelocity 标记 ($name) 和模板标准值。

      【讨论】:

      • 如果您能简单介绍一下您正在考虑的解决方案,那就太好了?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-16
      • 2021-04-23
      • 1970-01-01
      相关资源
      最近更新 更多