Уникальное поле профиля пользователя
Добрый день,
плагин, позволяет сделать уникальным любое поле в профиле пользователя,не прибегая к каким-либо изменениям ядра.Только системное событие 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;
}
0
👍
👎
❤️
🔥
😮
😢
😀
😡
1 107
26.02.2014, 16:52:49
2 комментария
Мордынский Николай
27.02.2014, 18:36:08
Разве это событие срабатывает на фронтенде?
Clean
27.02.2014, 18:43:31
Почему бы и нет?
bezumkin.ru
Личный сайт Василия Наумкина
Прямой эфир
Василий Наумкин
01.07.2024, 11:56:41
Да, верно, именно так.
А в контроллере, скорее всего, ловить данные методом post.
Василий Наумкин
26.06.2024, 09:38:15
О, точно, вылезает если не залогинен.
Спасибо, исправил!
Василий Наумкин
09.04.2024, 04:45:01
> Ошибка 500
Это не похоже на ошибку Nginx, это скорее всего ошибка PHP - надо смотреть его логи.
...
russel gal
09.03.2024, 20:17:18
> А этот стоило написать хотя бы затем, чтобы получить комментарий от юзера, который ничего не писал...
Александр Наумов
27.01.2024, 03:06:18
Василий, спасибо!
Извини, тупанул.