Плагин на проверку дублей по полю "pagetitle" у ресурса при создании/сохранении товара

Здравствуйте! Я понимаю, что плагин должен быть на таком событие и вроде «структура» похожа.
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnBeforeDocFormSave':
           //если такой pagetitle уже есть                    
           if () {
               $modx->event->output("Такое название уже есть, создайте другое!");
           }
           else {
               $modx->event->output("Название уникально!");
           }
        break;
}
А вот как сделать саму проверку на уникальность, что-то не допру(возможно нужно через запрос к бд?).
Сергей
31 октября 2018, 15:42
modx.pro
800
0

Комментарии: 5

Наумов Алексей
31 октября 2018, 16:19
0
Примерно так…
$pagetitle = $resource->get('pagetitle');
$q = array('pagetitle' => $pagetitle);
if($id) {
$q['id:!='] = $id;
}
$second = $modx->getObject('modResource', $q);

if($second) {
дубль
}
    Сергей
    14 марта 2019, 16:25
    1
    0
    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!» Ткните плиз, что я упускаю.
      Сергей
      18 марта 2019, 12:15
      0
      Как оказалось проблема была в другом плагине который тоже отрабатывает на это событие, так, что плагин абсолютно рабочий.
    UDAV
    01 ноября 2018, 08:09
    +1
    В настройках modx есть возможность включить эту проверку, зачем еще какие то плагины делать?
      Иван
      01 ноября 2018, 10:23
      0
      Это какой-же именно функционал выполняет такую проверку?
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5