Как программно добавить рендеринг ко всем элементам дочерних элементов страницы с помощью пользовательского контекстного меню (команда) - PullRequest
0 голосов
/ 01 мая 2019

В дереве контента Sitecore редактору контента должна быть предоставлена ​​возможность добавить «тестовый» рендеринг для всех дочерних и дочерних элементов одним щелчком мыши.

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

В версии Sitecore 8.1 добавлена ​​новая команда в основной базе данных sitecore и создан класс для переопределения метода execute.

Попытка получить рендеринг текущего элемента и проверить, присутствует ли «тестовый» рендеринг.Например: у меня есть Клиентский товар, и под ним есть клиент 1, клиент 2 товара.Под Клиентом 1 могут быть снова дочерние элементы с деталями презентации.

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

Database masterDatabase = Database.GetDatabase("master");
Item sampleItem = masterDatabase.GetItem(commandContext.Items[0].Paths.Path);
string renderingXml = sampleItem["__Renderings"];
var originalLayoutXml =   Sitecore.Data.Fields.LayoutField.GetFieldValue(sampleItem.Fields[Sitecore.FieldIDs.LayoutField]);
var oldLayout = LayoutDefinition.Parse(originalLayoutXml);
var oldRenderings = (oldLayout.Devices[0] as DeviceDefinition).Renderings;

Ожидаемый результат: редактору содержимого необходимо добавить новый рендеринг для всех дочерних и дочерних элементов if (тестового рендеринга нет).

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