0

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

所以在页面编辑器中

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

2 回答 2

2

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

但是,您可以将子布局/渲染上的 DataSource Location 字段设置为相对路径(例如./Stuff),然后“创建新内容”对话框将只允许您在该项目下创建新项目。该./Stuff路径将解析为上下文项下的项 Stuff。我从未尝试将项目创建为上下文项目的直接子项,因此我不确定路径需要是什么。你可以试试./,或者只是.

于 2013-06-26T20:57:19.283 回答
-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;
}

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

我没有测试这个特定的案例,但我使用这个方法来指定数据源根。

于 2013-06-26T20:55:02.460 回答