Как проверить элемент в коде? - PullRequest
2 голосов
/ 24 ноября 2011

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

До создания моего собственного события sitecore раньше отображал значок неработающей ссылки на панели быстрых действий, но теперь это не так. Как вызвать проверку из кода?

1 Ответ

3 голосов
/ 25 ноября 2011

Вы должны иметь возможность вызывать валидатор (или валидаторы) в коде, используя объект ValidatorManager. Если вы передадите элемент, представляющий валидатор, и элемент, который вы пытаетесь утвердить, вы сможете выполнить валидатор.

var validatorItem = Sitecore.Data.Database.GetDatabase("master").GetItem("/sitecore/system/Settings/Validation Rules/Item Rules/Item/Duplicate Name");
var validator = ValidatorManager.BuildValidator(validatorItem, Sitecore.Context.Item);

validator.Validate(new ValidatorOptions(false));

if(!validator.IsValid)
{
    Response.Write("Error level: " + validator.Result.ToString() + "<br />");
    Response.Write("Error Message: " + validator.Name + "<br />");
}
else
{
    Response.Write("All ok !");
}

В этом примере показан один валидатор, но менеджер также поддерживает коллекции валидаторов, просто немного покопайтесь в объекте:)

Если вы создаете свой собственный валидатор, вы можете найти здесь учебник , чтобы убедиться, что вы наследуете от StandardValidator

Надеюсь, лучший ответ: P

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