Плагин на проверку дублей по полю "pagetitle" у ресурса при создании/сохранении товара
Здравствуйте! Я понимаю, что плагин должен быть на таком событие и вроде «структура» похожа.
$eventName = $modx->event->name;
switch($eventName) {
case 'OnBeforeDocFormSave':
//если такой pagetitle уже есть
if () {
$modx->event->output("Такое название уже есть, создайте другое!");
}
else {
$modx->event->output("Название уникально!");
}
break;
}
А вот как сделать саму проверку на уникальность, что-то не допру(возможно нужно через запрос к бд?). Комментарии: 5
Примерно так…
$pagetitle = $resource->get('pagetitle');
$q = array('pagetitle' => $pagetitle);
if($id) {
$q['id:!='] = $id;
}
$second = $modx->getObject('modResource', $q);
if($second) {
дубль
}
if ($modx->event->name == 'OnBeforeDocFormSave') {
$pagetitle = $resource->get('pagetitle');
$q = array('pagetitle' => $pagetitle);
if($id) {
$q['id:!='] = $id;
}
$second = $modx->getObject('modResource', $q);
if($second) {
$modx->event->output("Товар с таким названием уже есть, задайте другое!");
}
}
Но как я понимаю ресурс все равно создается ведь его видно в админке, как сделать чтобы $resource->save() не выполнялось если ресурс с таким pagetitle уже существует? Нашел «You may also pass a message to the $modx->event->output() function and this will be displayed to the user in a modal pop-up window. If you pass a value here, the page will not be saved!» Ткните плиз, что я упускаю.
Как оказалось проблема была в другом плагине который тоже отрабатывает на это событие, так, что плагин абсолютно рабочий.
В настройках modx есть возможность включить эту проверку, зачем еще какие то плагины делать?
Это какой-же именно функционал выполняет такую проверку?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.