В Sitecore, как создать новый элемент на основе существующего элемента

#sitecore #sitecore6

#sitecore #sitecore6

Вопрос:

Я новичок в Sitecore.

В Sitecore мне нужно разрешить пользователям создавать новые элементы на основе существующих элементов. Я предполагаю что-то вроде этого:

  1. пользователь нажимает «вставить» в контекстном меню
  2. пользователю предлагается ввести другой элемент где-нибудь в дереве (он должен быть основан на определенном шаблоне)
  3. Создается новый элемент с некоторыми полями, предварительно заполненными значениями из исходного элемента
  4. Теперь пользователь может заполнить другие поля, которые предварительно не заполнены, или изменить предварительно заполненные значения

(обратите внимание, что новый элемент основан на другом шаблоне, отличном от исходного). Я не беспокоюсь об изменениях в исходном элементе — их не нужно распространять на новый элемент.

Как новичок, я не знаю, как это сделать. Я рассмотрел различные варианты:

a. Клоны. Клоны, казалось, были близки к тому, что я хочу, но у меня не может быть дополнительных полей для нового элемента, и они не могут быть основаны на разных шаблонах. Так что, я думаю, это не совсем клон, который мне нужен. (кроме того, они довольно новы для Sitecore)

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

c. Ссылка на исходный элемент. Я выяснил, как создать поле, которое может содержать ссылку на исходный элемент. Однако, как мне заполнить поля, когда пользователь устанавливает его, и как я могу убедиться, что пользователь начинает с этого поля, прежде чем делать что-либо еще?

Я также изучил команды, перехваты и многое другое …

Итак? Есть идеи?

Комментарии:

1. Можете ли вы уточнить требование в отношении «другого шаблона»? Это означает, что ваш исходный элемент имеет шаблон A, и вы хотите создать другой на его основе шаблона B? Или я неправильно понял, что вы сказали?

2. Точно так, как вы это сказали. Новый элемент основан на шаблоне, который имеет дополнительные поля по сравнению с шаблоном, на котором основан исходный элемент.

Ответ №1:

Это было бы особенно важным мероприятием, и если вы новичок в Sitecore, это может быть чрезвычайно сложно.

Я бы посоветовал изучить настройку клиента (это может быть достигнуто путем редактирования Core базы данных из редактора контента, а также реализации некоторых вещей в коде)

Если у вас есть доступ к сети разработчиков Sitecore, это будет полезно: http://sdn.sitecore.net/Reference/Sitecore 6/Client Configuration Cookbook.aspx

Эти статьи могут дать вам некоторые дополнительные идеи о реализации:

Первая статья может быть вашим лучшим выбором для добавления элемента контекстного меню. Вы можете выполнять команды в своем скомпилированном коде, выполнив следующее:

  • В вашем Commands.config файле добавьте элемент, такой как <command name="button:copycreateditem" type="Your.Namespace.And.Classname,Your.Assembly" />
  • Создайте класс в указанной вами сборке и пространстве имен с правильным именем класса
  • Наследовать от `Sitecore.Оболочка.Фреймворк.Команды.Команда
  • Реализовать метод Execute(CommandContext context)
  • Сборка

Он CommandContext предоставит много необходимой информации, необходимой для внесения изменений (например, выбранный в данный момент элемент).

Надеюсь, это направит вас на правильный путь. Удачи!

Ответ №2:

Я не совсем понимаю, что вы говорите: «он должен быть основан на определенном шаблоне», а затем позже «новый элемент основан на другом шаблоне, отличном от исходного». Не уверен, как вы можете использовать его в обоих направлениях, поэтому мой ответ предполагает, что вы придерживаетесь одного шаблона.

Стандартный способ sitecore сделать это — назначить стандартные значения в шаблонах. Затем пользователь может создать новый элемент на основе шаблона, и будут встречаться стандартные значения.

Для создания стандартных значений для шаблона,

  1. выберите шаблон
  2. перейдите на вкладку «Конструктор» на ленте
  3. Нажмите «Стандартные значения»

Это создаст новый элемент «__Стандартные значения» в шаблоне, где вы можете установить значения по умолчанию для некоторых полей и оставить другие пустыми.

Ответ №3:

Параметры вставки, правила вставки, токены nvelocity ($name) и стандартные значения шаблона.

Комментарии:

1. Было бы здорово, если бы вы могли добавить несколько строк о том, о каком решении вы думаете?