在页面编辑器中,当您添加新内容项时,是否可以自动将其添加为当前页面的子项?
所以在页面编辑器中
答案 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;
}
然后将渲染或子布局中的“数据源位置”设置为“。”
我没有测试这个特定情况,但我使用此方法来指定数据源根。