Sitecore页面编辑器 - “创建新内容”位置

时间:2013-06-26 20:10:12

标签: sitecore page-editor

在页面编辑器中,当您添加新内容项时,是否可以自动将其添加为当前页面的子项?

所以在页面编辑器中

  • 点击占位符中的“添加到此处”。
  • 选择选择渲染
  • 选择“创建新内容”
  • 自动将其创建为上下文项的子项。

2 个答案:

答案 0 :(得分:2)

如果自动意味着Sitecore应该通过选择“创建新内容”来创建一个项目(带有一些名称),我不相信。您仍然需要向Sitecore提供应该创建的项目的名称和位置。

但是,您可以将子布局/渲染上的“数据源位置”字段设置为相对路径(例如./Stuff),然后“创建新内容”对话框将仅允许您在该项目下创建新项目。 ./Stuff路径将解析为上下文项下的项目Stuff。我从来没有尝试过创建项目作为上下文项目的直接子项,所以我不确定路径需要是什么。您可以尝试./或仅.

答案 1 :(得分:-1)

您可以覆盖sitecore如何解析数据源根目录。

扩展管道“getRenderingDatasource”

并添加这样的代码

public void Process(GetRenderingDatasourceArgs args){
    string datasourceLocation = args.RenderingItem["Datasource Location"];

    var item = args.ContentDatabase.GetItem(datasourceLocation)

    var templateItem = args.ContentDatabase.GetTemplate("templateName");

    Item createdItem = args.ContentDatabase.CreateItemPath(Path.Combine(item.Paths.Path, "createdItem"), templateItem);

    args.CurrentDatasource = createdItem.Paths.Path;
}

然后将渲染或子布局中的“数据源位置”设置为“。”

我没有测试这个特定情况,但我使用此方法来指定数据源根。

相关问题