Редактор страниц Sitecore - местоположение "Создать новый контент"
В редакторе страниц, когда вы добавляете новый элемент контента, можно ли автоматически добавить его как дочерний элемент текущей страницы?
Так в редакторе страниц
- Нажмите "Добавить сюда" в качестве заполнителя.
- Выберите Выбрать рендеринг.
- Выберите "создать новый контент"
- Автоматически создайте его как дочерний элемент элемента контекста.
2 ответа
Если вы автоматически подразумеваете, что Sitecore должен создать элемент (с некоторым именем), просто выбрав "Создать новый контент", я не верю в это. Вам все еще нужно предоставить Sitecore имя и местоположение элемента, который должен быть создан.
Однако вы можете установить для поля DataSource Location в подслое / рендеринге относительный путь (например, ./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;
}
А затем установите "Местоположение источника данных" для рендеринга или подслоя на "."
Я не тестировал этот конкретный случай, но я использовал этот метод для указания корней источника данных.