在页面编辑器中,当您添加新内容项时,是否可以将其自动添加为当前页面的子项?
所以在页面编辑器中
- 在占位符中单击“添加到此处”。
- 选择 选择渲染
- 选择“创建新内容”
- 自动将其创建为上下文项的子项。
在页面编辑器中,当您添加新内容项时,是否可以将其自动添加为当前页面的子项?
所以在页面编辑器中
如果您的意思是自动地意味着 Sitecore 应该通过选择“创建新内容”来创建一个项目(带有某个名称),我不这么认为。您仍然需要向 Sitecore 提供应创建的项目的名称和位置。
但是,您可以将子布局/渲染上的 DataSource Location 字段设置为相对路径(例如./Stuff
),然后“创建新内容”对话框将只允许您在该项目下创建新项目。该./Stuff
路径将解析为上下文项下的项 Stuff。我从未尝试将项目创建为上下文项目的直接子项,因此我不确定路径需要是什么。你可以试试./
,或者只是.
。
您可以覆盖 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;
}
然后将渲染或子布局上的“数据源位置”设置为“。”
我没有测试这个特定的案例,但我使用这个方法来指定数据源根。