#sitecore #sitecore6
#sitecore #sitecore6
Вопрос:
Я новичок в Sitecore.
В Sitecore мне нужно разрешить пользователям создавать новые элементы на основе существующих элементов. Я предполагаю что-то вроде этого:
- пользователь нажимает «вставить» в контекстном меню
- пользователю предлагается ввести другой элемент где-нибудь в дереве (он должен быть основан на определенном шаблоне)
- Создается новый элемент с некоторыми полями, предварительно заполненными значениями из исходного элемента
- Теперь пользователь может заполнить другие поля, которые предварительно не заполнены, или изменить предварительно заполненные значения
(обратите внимание, что новый элемент основан на другом шаблоне, отличном от исходного). Я не беспокоюсь об изменениях в исходном элементе — их не нужно распространять на новый элемент.
Как новичок, я не знаю, как это сделать. Я рассмотрел различные варианты:
a. Клоны. Клоны, казалось, были близки к тому, что я хочу, но у меня не может быть дополнительных полей для нового элемента, и они не могут быть основаны на разных шаблонах. Так что, я думаю, это не совсем клон, который мне нужен. (кроме того, они довольно новы для Sitecore)
б. события. Я думаю, что я должен быть в состоянии перехватить событие «новый элемент», но я понятия не имею, как бы я тогда вызвал диалоговое окно и попросил пользователя выбрать исходный элемент.
c. Ссылка на исходный элемент. Я выяснил, как создать поле, которое может содержать ссылку на исходный элемент. Однако, как мне заполнить поля, когда пользователь устанавливает его, и как я могу убедиться, что пользователь начинает с этого поля, прежде чем делать что-либо еще?
Я также изучил команды, перехваты и многое другое …
Итак? Есть идеи?
Комментарии:
1. Можете ли вы уточнить требование в отношении «другого шаблона»? Это означает, что ваш исходный элемент имеет шаблон A, и вы хотите создать другой на его основе шаблона B? Или я неправильно понял, что вы сказали?
2. Точно так, как вы это сказали. Новый элемент основан на шаблоне, который имеет дополнительные поля по сравнению с шаблоном, на котором основан исходный элемент.
Ответ №1:
Это было бы особенно важным мероприятием, и если вы новичок в Sitecore, это может быть чрезвычайно сложно.
Я бы посоветовал изучить настройку клиента (это может быть достигнуто путем редактирования Core
базы данных из редактора контента, а также реализации некоторых вещей в коде)
Если у вас есть доступ к сети разработчиков Sitecore, это будет полезно: http://sdn.sitecore.net/Reference/Sitecore 6/Client Configuration Cookbook.aspx
Эти статьи могут дать вам некоторые дополнительные идеи о реализации:
- http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2010/11/Add-a-Command-to-the-Sitecore-Item-Context-Menu.aspx
- http://learnsitecore.cmsuniverse.net/en/Developers/Articles/2009/10/My-First-Sitecore-XAML-Application.aspx
- http://www.markvanaalst.com/sitecore/creating-a-item-editor/
- http://sdn.sitecore.net/Articles/XML Sheer UI/My first XML application.aspx
- http://sdn.sitecore.net/Articles/Customizing Sitecore Client/Creating XML Application.aspx
Первая статья может быть вашим лучшим выбором для добавления элемента контекстного меню. Вы можете выполнять команды в своем скомпилированном коде, выполнив следующее:
- В вашем
Commands.config
файле добавьте элемент, такой как<command name="button:copycreateditem" type="Your.Namespace.And.Classname,Your.Assembly" />
- Создайте класс в указанной вами сборке и пространстве имен с правильным именем класса
- Наследовать от `Sitecore.Оболочка.Фреймворк.Команды.Команда
- Реализовать метод
Execute(CommandContext context)
- Сборка
Он CommandContext
предоставит много необходимой информации, необходимой для внесения изменений (например, выбранный в данный момент элемент).
Надеюсь, это направит вас на правильный путь. Удачи!
Ответ №2:
Я не совсем понимаю, что вы говорите: «он должен быть основан на определенном шаблоне», а затем позже «новый элемент основан на другом шаблоне, отличном от исходного». Не уверен, как вы можете использовать его в обоих направлениях, поэтому мой ответ предполагает, что вы придерживаетесь одного шаблона.
Стандартный способ sitecore сделать это — назначить стандартные значения в шаблонах. Затем пользователь может создать новый элемент на основе шаблона, и будут встречаться стандартные значения.
Для создания стандартных значений для шаблона,
- выберите шаблон
- перейдите на вкладку «Конструктор» на ленте
- Нажмите «Стандартные значения»
Это создаст новый элемент «__Стандартные значения» в шаблоне, где вы можете установить значения по умолчанию для некоторых полей и оставить другие пустыми.
Ответ №3:
Параметры вставки, правила вставки, токены nvelocity ($name) и стандартные значения шаблона.
Комментарии:
1. Было бы здорово, если бы вы могли добавить несколько строк о том, о каком решении вы думаете?