Например, мне не обязательно получать email, но нужно что бы обязательно указывалась группа и например поле телефон
Думаю пригодилось бы для того, что бы реализовать привязку нескольких соцсетей к одному аккаунту. Такое пожелание было уже)))В рамках компонента это не нужно.
При регистрации через одноклассники не подхватывает e-mail. У меня у одного так?
На сколько я помню, одноклассники его никогда и не отдавали. По этой причине требуется его ручной ввод.
Ошибка в запросе БД:
Column 'nickname' cannot be null
INSERT INTO cms_users (`email`, `nickname`, `groups`, `avatar`, `password_hash`, `date_reg`, `date_log`, `time_zone`, `notify_options`)
VALUES ('vasya@mail.ru', NULL, '---\n- 3\n- 8\n', '---\nnormal: 000/u0/1/4/6fa35180.jpg\nmicro: 000/u0/3/4/0d8a1fed.jpg\nsmall: 000/u0/c/a/4215c79f.jpg\n', '$2y$10$VFlzOOSL5BGl681EGSKOo.ADvO6JFeb/kXZdetIox7sUow0p/IgZi', '2020-03-05 21:58:25', '2020-03-05 21:58:25', 'Europe/Moscow', '---\ncomments_new: email\ncomments_reply: email\ngroups_invite: both\nmessages_new: email\nusers_friend_add: email\nusers_friend_accept: pm\nusers_friend_delete: email\nusers_wall_write: email\nsubscriptions: both\nrating_user_vote:\n')
Последние вызовы:
cmsDatabase->insert() @ /system/core/model.php: 563
cmsModel->insert() @ /system/controllers/users/model.php: 348
modelUsers->addUser() @ /system/controllers/zauth/frontend.php: 0
zauth->addUser() @ /system/core/action.php: 37
cmsAction->__call() @ /system/controllers/zauth/actions/mr.php: 85
actionZauthMr->run() @ /system/core/controller.php: 585
cmsController->runExternalAction() @ /system/core/controller.php: 456
cmsController->executeAction() @ /system/core/controller.php: 432
cmsController->runAction() @ /system/core/core.php: 786
cmsCore->runController() @ /index.php: 46
Посмотрите, чего там с этим никнеймом. Почему его нет. Майл должен отдавать или нет, я не знаю, не ставил плагин.
Из документации api.mail.ru/docs/reference/rest/users-getinfo/ переменная nick приходит в ответе от апи.
И она идет на запись в базу. Сперва просто копируется для единообразия
public function mrPrepareInfo($user_info) { $nickname = $user_info->nick; $photos = $this->copyAvaWithCopies($user_info->pic_big); 'nickname' => $nickname, 'photos' => $photos ); }
Допускаю, что, например, аккаунт старый, и тогда поле nick еще не заполнялось. Я такого не встречал. Посмотрю по коду, и буду брать логин из е-майл, если пустой nick
я эксперементировал со своими аккаунтами. vasya@mail.ru это так, для примера)Этот аккаунт ваш или вашего знакомого?
Наверно, т.к. именно регистрация со старых аккаунтов которым по много лет выдают ошибку.Допускаю, что, например, аккаунт старый, и тогда поле nick еще не заполнялось
Сейчас зарегил новую почту на маил.ру, протестил, норм.регистрация прошла. Было бы хорошо придумать чего чтоб и старые аккаунты регились
Патч исправляет ошибку с невозможностью повторной авторизации некоторых пользователей, авторизованных с помощью одноклассники и фейсбук (запретившие доступ к е-майл и указавшие его вручную), а также невозможность регистрации пользователей с майл.ру, у которых достаточно старые аккаунты (проблема описана выше в посте #81)
Также посмотрите в списке пользователей компонента, есть ли там пользователи с id пользователя в соц. сети равном 2147483647
Если такие есть, стоит с ними связаться напрямую, так как они попали под первый баг. И авторизоваться повторно не смогут.
Я когда установил дополнение, точно помню 100% работало все. А потом как-то обратил внимание, что при нажатии кнопки регистрации через яндекс получается 404 страница с параметром: top-mods.ru/zauth/ya/?first=1
Приложение пересоздавал — не помогло.
С другими сетями все ок.
Приложение пересоздавал — не помогло.
При создании приложения снимите чекбокс — доступ к "дате рождения" и сохраните, ID приложения напишите в настройках компонента.
PS собственно проблему нашел. Как ранее и писал, после клика на кнопку яндекса был переход по адресу top-mods.ru/zauth/ya/?first=1, в котором как оказалось есть лишний слеш перед ?first=1
Посмотрел, он берется из файла \templates\default\controllers\zauth\ya.tpl.php, код
window.location = "<?php echo href_to('zauth', 'ya') ?>/?first=1";