В Sitecore, как создать новый элемент на основе существующего элемента - PullRequest
3 голосов
/ 10 октября 2011

Я новичок в Sitecore.

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

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

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

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

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 14 октября 2011

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

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

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

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

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

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

* * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.

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

0 голосов
/ 21 июня 2012

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

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

Чтобы создать стандартные значения для шаблона,

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

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

0 голосов
/ 10 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...