Синхронизация юзеров IPB с MODX

Задали задачку: есть работающий форум, к нему прикрутили сайт на MODX — надо засинхронизировать юзеров.

После долгих поисков по файлам незнакомого мне Invision Power Board, умные люди подсказали, что надо использовать файл /admin/applications/forums/extensions/memberSync.php Он, оказывается, для того и предусмотрен разработчиками.

И вот тут кааак поперло! Вот что вышло в итоге: готовый memberSync.php для IPB 3.3

Что делает

  • При логине, если юзер в MODX не существует — создает и логинит на сайт. Если есть — просто логинит.
  • При создании можно указывать группы для юзера. При логине — контексты.
  • Понимает обновления имени, пароля, емайла и даты рождения на форуме.
  • При выходе с форума — выходит юзера и с сайта.
То есть, интеграция односторонняя. Все из IPB в MODX, обратной связи нет. Логин на сайт — через форму форума.

Решение (наверняка) не идеальное, но в инете вообще ничего не нашел по этой теме. Так что — пользуйтесь на здоровье.

Техническая часть

При работе форума, на определенных событиях вызываются методы из файла. При старте класса подгружается класс MODX и мы можем спокойно с ним работать.

Для работы нужно настроить в классе переменные
  • $base_path — абсолютный путь к корню сайта
  • $groups — группы юзеров для регистрации, через запятую
  • $loginContext — основной контекст для авторизации
  • $addContexts — дополнительные контексты, через запятую
  • $rememberme — запоминать авторизацию на сайте?
Связь юзеров между форумом и сайтом работает через поле remote_key в modUser — авторы MODX предусмотрели его именно для таких случаев.

Методов довольно много, практически на любые случаи жизни — я использовал не все.

Дописать\изменить что-то для своего сайта не составит труда. Чтобы посмотреть приходящие в метод данные, используйте вот такой код:
$this->modx->log('', print_r($member, 1));
а результат смотрите в системном журнале MODX.

Заказано и оплачено radiozvuk.com

Следующая заметка
Robokassa для miniShop


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

  1. Valentin Raulov 01 августа 2012, 18:54 # 0
    Хорошая работа и надеюсь востребована будет многими.
    По крайней мере ещё интеграций Рево нету с форумами!
    +
    1. Sadykh Sadykhov 02 августа 2012, 15:05 # 0
      Это по-моему единственное решение, которое есть в сети для MODx Revo в связке с каким-либо форумом.

      В середине 2011 года, на странице родного «Discuss» rtfm.modx.com/display/ADDON/Discuss было написано, что под конец года выпустят бета-версию (или просто будет доступен). Потом это убрали.
      1. Василий Наумкин 02 августа 2012, 15:17 # 0
        Можно и обратно синхронизировать — есть интересный проект IPBWI ipbwi.com/products/

        То есть, с этим форумом, при желании, MODX можно интегрировать полностью, двухсторонней связью.
        1. Sadykh Sadykhov 02 августа 2012, 18:26 # 0
          Банальный вопрос — если возьметесь, то за сколько? :)
          1. Василий Наумкин 02 августа 2012, 19:43 # 0
            Банальный ответ — не возьмусь, некогда.
            1. Sadykh Sadykhov 02 августа 2012, 23:53 # 0
              Так был же if, а else отсутствовал…
      Добавление новых комментариев отключено.