Fi1osof 19 марта 2013 0 2
Довольно много раз звучал вопрос «Как сделать так, чтобы можно было авторизовываться по емейлу?». А решение на самом деле очень простое: Создаем вот такой плагин:
<?php
// Try to find by email
$modx->event->_output = $modx->getObjectGraph('modUser', '{"Profile":{},"UserSettings":{}}', array ('Profile.email' => $scriptProperties['username']));
и вешаем его на событие OnUserNotFound. Все. То есть если пользователь ввел емейл, и MODX не смог его найти (так как ищет по username), то в плагине на это событие мы пытаемся найти этого пользователя по емейлу.

Только ни в коем случае нельзя делать возврат через return, так как объект Event умеет возвращать только строку. Надо именно так, как я написал.

P.S. теперь авторизация здесь возможно и по емейлу.
2 комментария
ilyautkin1
ilyautkin 19 марта 2013г в 21:18 #
Супер! Когда сменили на коммюнити дизайн сразу заметил, что авторизация по e-mail не проходит и понял, что это из-за MODX)))
Fi1osof1
Fi1osof 19 марта 2013г в 21:23 #
Нет, там авторизация по емейлу работает. Потому что там вообще нет синхронизации MODX и Livestreet пользователей (специально там сейчас перепроверил).
А вот здесь синхронизация есть. Вот пришлось поправить :-)
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.