Уникальное поле профиля пользователя

Добрый день,
плагин, позволяет сделать уникальным любое поле в профиле пользователя, не прибегая к каким-либо изменениям ядра.Только системное событие OnBeforeUserFormSave. Работает соответственно так же и в бекенде.

В примере стоит имя пользователя, пример рассчитан на работу с Hybrid Auth — т.е даже если будет совпадение по имени, профиль автоматически создастся при первом входе, но при сохранении возникнет ошибка.

<?php
switch ($modx->event->name) {

    case 'OnBeforeUserFormSave':

        if ($id == 0) return ""; //hack for create new user 
        /**@var user modUser */
        if ($modx->getCount('modUserProfile', array('fullname' => $user->get('fullname'), 'internalKey:!=' => $id))) {
            $modx->error->addField('fullname', 'Указанное имя пользователя уже занято.');
            $modx->event->output('Указанное имя пользователя уже занято.Попробуйте указать другое имя.');
        }
        break;
}

Следующая заметка
AjaxSnippet и аякс пагинация
Предыдущая заметка
Sendex - отправка рассылки при публикации ресурса
  • 26 февраля 2014, 16:52
  • Clean
  • 899


Комментарии ()

  1. Мордынский Николай 27 февраля 2014, 14:36 # 0
    OnBeforeUserFormSave- Fires after a form is submitted but before a User is saved in the manager.
    Разве это событие срабатывает на фронтенде?
    1. Clean 27 февраля 2014, 14:43 # 0
      Почему бы и нет?

    Добавление новых комментариев отключено.