Редактор страниц 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;
}

А затем установите "Местоположение источника данных" для рендеринга или подслоя на "."

Я не тестировал этот конкретный случай, но я использовал этот метод для указания корней источника данных.

Другие вопросы по тегам