Как получить полное имя правила Sitecore DMS?

Я использую сайткор. Я хочу получить полное имя/описание правила DMS в программном коде по идентификатору Sitecore, например: «Где DayOfWeek имеет значение, равное вторнику».

Кто знает, как это сделать?

Большое спасибо.

Джорди


person Jordy    schedule 15.04.2014    source источник


Ответы (1)


Я не знаю простого способа, но за отрисовку текста правила отвечает класс Sitecore.Shell.Applications.Rules.RulesRenderer в Sitecore.Client.dll.

Его конструктор принимает XML из поля правил, и вы вызываете метод Render, передавая подготовленный HtmlTexteWriter. Он также имеет множество довольно понятных частных методов, таких как RenderRule, RenderCondition и т. д.

Я уверен, что если вы декомпилируете этот класс, вы сможете выбрать нужные биты.

person Martin Davies    schedule 15.04.2014
comment
Спасибо за отличный совет. Я декомпилировал этот класс, но трудно получить правило DMS. Вы можете мне помочь? - person Jordy; 22.04.2014
comment
у вас есть доступ к элементу правила в sitecore? - person Martin Davies; 22.04.2014
comment
Я знаю правила UniqueID, но это не Sitecore ID. Поэтому я не могу найти его в дереве контента. Правило состоит из условий, действий и т. д.; это состав из этого. Я хочу получить полный текст правила. - person Jordy; 22.04.2014
comment
Извините, еще один вопрос. Как вы получаете уникальный идентификатор - person Martin Davies; 22.04.2014
comment
Я вызвал метод Sitecore GetRenderings(). В объекте настроек вы можете найти правила. Я понял, что UniqueID соответствует визуализации макета. Когда вы устанавливаете необработанные значения в редакторе контента, вы можете увидеть файл xml. Мне нужно запросить это или для этого есть специальный метод Sitecore? - person Jordy; 22.04.2014
comment
Еще один для декомпиляции: Sitecore.Analytics.Pipelines.InsertRenderings.Personalization в Sitecore.Analytics.dll. Не уверен, как именно вы подходите к вещам, но этот класс, похоже, реализует несколько разных способов получения правил из рендеринга. - person Martin Davies; 22.04.2014