«для простоты выключим регистрацию юзеров на phpbb ...» — это не для простоты, но для устранения логического противоречия. например оставим регистрацию на форуме и получается такой вот прикол: представим, что пользователь зарегистрировался сначала на форуме, а потом на сайте и будет либо избыточность данных, либо сообщение об ошибке при уникальности поля логина.
Нет, именно для простоты. Можно оставить регистрацию в phpbb и добавить соответствующий SiteSync::sync(«signup»). Пользователь регистрируется в форуме, и при этом происходит регистрация на сайте, логин на форуме и логин на сайте. Все сразу. Но если включена активация регистрации через email, то растет снежный ком. Юзер может пытаться регистрироваться повторно на сайте итд.
Есть smf-форум с некоторыми возможностями интегрирования. Но не стал бы его советовать в силу неадекватности внутреннего содержимого (и первая и вторая ветки).
Все трудности в одном, все кто пытаются интегрировать забывают что в 99% CMS/форум/итд это веб-морда к БД
Пути два,
1 — Переписать авторизацию так чтоб она использовала одну (имеющуюся уже) таблицу
2 — Если первое сложно, то перекинуть всех имеющихся юзеров во вторую таблицу, а так-же сделать так чтоб новые писались сразу в две таблицы.
(второй путь ещё и добавляет возможность использовать под сайт и форум два разных сервера)
Только второй вариант ставит перед вами вопрос лишней авторизации, когда входите на форум (если конечно не ставить куки руками, или допиливать исходники, как это делает автор топика). Копирование пользователей, на мой взгляд, не лучший выход.
Совсем недавно интегрировал PHPBB3 в Кохану, в одну сторону — сайт -> форум. Подключал хидеры от phpbb, исправлял некоторые противоречия, как мне кажется это более менее валидный способ, использовал родной API форума, стараясь не нарушить целостности. Но даже тут были некоторые моменты, которые мне не нравятся.
Пишите, сам недавно допиливал в одну сторону сайт->форум, будет интересно сравнить. Использовал именно вариант «у меня своя таблица пользователей, у форума своя» (есть мысли ещё и третью систему поставить, поэтому у каждого продукта своя таблица, на вариант «одна общая» забил)
Одна общая таблица это очень жестоко, там так запилить этот форум надо. Я забил, если честно, на такой вариант решения проблемы. Просто у меня регистрация одна общая, поэтому все автоматически синхронизируется как бы… Теоретически :)
Родной api — имеется ввиду свой auth_method? А что делать с профилем?
В phpbb не хватает общего api. Не только логин, любое действие. Хочу добавить топик через скрипт — стучу в phpbb, посылаю токен и данные, приходит xml ответ. Делаю что угодно в phpbb — если указано, происходит запрос, распознается ответ, который должен быть в специальном формате, в зависимости от него либо происходит транзакция, либо выводится ошибка и делается откат.
Тупая интеграция phpbb3 с любым сайтом