В дереве контента 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 (тестового рендеринга нет).