CMS SmallNuke


 Навигация

 Интеграция
Invision Power Board

phpBB2

vBulletin

 Каталог файлов
■ Авторизация
■ Администрация
■ Блоки
■ Модули
■ Оформление
■ Система
■ Языки

 Поиск по сайту

 Реклама


 Новости

SmallNuke v.2 + форум phpBB
Суббота, 26 Март 2005

Скорее всего пришло время открытия форума к данному проекту, так как книга отзывов превратилась и в доску объявлений и в раздел вопросов и ответов -)
В этой связи я подготовил следующий материал, ну и результатом всего что там изложено служит форум.
Обратите внимание что тандем системы SmallNuke v.2 и форума phpBB еще нигде не использовался а значит и не тестировался должным образом, поэтому вполне возможны какие-либо ошибки.

Обратите внимание! Все что ниже описанно можно производить только на последней версии системы SmallNuke v.2 Beta2


1. Устанавливаем форум в любую папку которая будет находиться в корне Вашего сайта (приведенные ниже примеры подрузумевают что Ваш форум будет расположен в папке forum), базу используем системную, префикс оставляем phpbb_
Назначаем админа, лучше если это будет новый логин (не используемый в системе) хотя не принципиально, просто потом необходимо будет удалить старую запись одноименного пользователя и оставить только новую.
2. Переименовываем таблицу phpbb_user в phpbb_members
3. Добавляем в переименованную таблицу в самый конец два поля last_ip varchar(15), last_date int (11) и изменяем для поля user_id свойства, убираем значение по умолчанию 0 и добавляем дополнительное свойство auto_increment.
4. Запускаем программу экспорта пользователей
5. В файле форума includes/constants.php изменяем название таблицы юзеров
define('USERS_TABLE', $table_prefix.'members');
6. Изменяем в конфигурационном файле системы префикс юзеров на phpbb
7. Старую таблицу юзеров system_prefix можно удалить (перед этим конечно проверте, перенесены ли данные пользователей -))

-----------------------
Совмещение баз завершено
Для проверки пробуйте авторизоваться в системе, и в форуме
Если все прошло корректно переходим к процедуре совмещения авторизации
-----------------------

Вставляем данный код в файл системы modules/Members/index.php
Вставлять его можно в произвольном месте, ну скажем перед строкой
switch($in) {

function forum_login($setuid, $last_ip) {
     // Функция совместной авторизации на форуме phpBB и в системе SmallNuke
     global $db, $board_config, $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
     require_once( './forum/config.php' ); // Укажите свой путь к файлу конфигурации форума
     define('IN_PHPBB',true);
     $phpbb_root_path = "./forum/"; // Укажите свой путь к папке с форумом
     require_once( $phpbb_root_path . "extension.inc" );
     require_once( $phpbb_root_path . "common.php" );
     return session_begin( $setuid, $last_ip, PAGE_INDEX, FALSE, TRUE );
}

В функцию check_login() указанного Выше файла перед строкой
header("Location: index.php?go=$module_name");
Вставляем строки
     // Функция совместной авторизации на форуме phpBB и в системе SmallNuke
     forum_login($setuid, $last_ip);

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

Следующий шаг создание общего выхода из авторизованного режима

В файле системы modules/Members/index.php заменяем следующий код

function logout() {
     global $allow_cookie;
     session_unset();
     if($allow_cookie == 1) {
     setcookie("snss_member");
     }
     header("Location: index.php");
}

На данный

function logout() {
     global $allow_cookie, $member_id, $session_id;
     // Функция совместного выхода из авторизованного режима на форуме phpBB и в системе SmallNuke
     forum_logout($session_id, $member_id);
     session_unset();
     if($allow_cookie == 1) {
     setcookie("snss_member");
     }
     header("Location: index.php");
}

И где-нибудь, ну к примеру опять же перед строкой
switch($in) { 
вставляем следующий код

function forum_logout($session_id, $phpbb_user_id) {
     // Функция совместного выхода из авторизованного режима на форуме phpBB и в системе SmallNuke
     global $db, $lang, $board_config, $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
     require_once( './forum/config.php' );  // Укажите свой путь к файлу конфигурации форума
     define('IN_PHPBB',true);
     $phpbb_root_path = "./forum/"; // Укажите свой путь к папке с форумом
     require_once( $phpbb_root_path . "extension.inc" );
     require_once( $phpbb_root_path . "common.php" );
     session_end( $session_id, $phpbb_user_id );
     setcookie( $board_config[ "cookie_name" ] . "_sid");
     setcookie( $board_config[ "cookie_name" ] . "_mysql");
}

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

Оснавная работа выполнена, теперь осталось выполнить некоторые второстепенные действия.
Понятно что если будет выполняться авторизация со страницы форума, то вся наша система летит в тар тарары, а посему мы должны лишить форум подобной возможности.
Ну во первых удалим в темплатес форму авторизации на первой странице.
Для этого в файле форума templates/Ваша_тема/index_body.tpl удалим блок
<!-- BEGIN switch_user_logged_out -->
<!-- END switch_user_logged_out -->

Понятно, что мы убрали только форму, но сама функция осталась.
Для того что бы и ее удалить выполняем следующее
Заменяем ВЕСЬ код файла форума login.php на следующий
<?php

if(isset($_GET['logout']) == true) {
    header("Location: ../index.php?go=Members&in=logout"); // Указывайте правильный путь к файлу системы
}
else {
    header("Location: ../index.php?go=Members"); // Указывайте правильный путь к файлу системы
}

?>

Ну вот по идее и все.
Хочу только отметить что для того что бы по истечении срока жизни cookie на сайте и форуме у нас не получилась ситуация при которой где то авторизованы а где то нет, время жизни cookie на сайте и форуме необходимо синхронизировать, т.е. установить одинаковое. В форуме по умолчанию оно равняется 31536000 секундам это же значение установите и в настройках сайта (в часах это будет 8760).

Далее Вам остается привести в соответствие с дизайном сайта внешний вид форума, снабдить и систему и форум ссылками перехода от одной части к другой. По идее это все.

Вполне возможно что какой-то момент я упустил из виду, но надеюсь что все же это не так -)
В любом случае узнать как работает данный метод, можно будет только интенсивно используя тандем системы SmallNuke и форума phpBB. Поэтому, надеюсь что если и будут встречаться какие-либо глюки, совместными усилиями постараемся их устранить.

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

Хочу так же отметить что сам принцип совместной авторизации универсален и его можно использовать практически в любой системе построения сайтов, или совместьть с любой системой авторизации.

Данный материал доступен в виде текстового файла.


Автор: Sergey
Прочитали: 2379 раз

Распечатать Распечатать    Переслать Переслать    В избранное В избранное

Новости по теме:
  • Новая версия CMS SmallNuke 2.0.4
  • С Новым 2009 годом.
  • Новая версия CMS SmallNuke 2.0.4.RC2
  • Новая версия CMS SmallNuke 2.0.4.RC1
  • Выпущен патч безопастности 20070120

    Читайте так же:
  • Zend, Microsoft и IBM ведут совместную работу по созданию Cloud API для PHP
  • Linux станет основной платформой Cisco в сегменте малого и среднего бизнеса
  • HP и Intel встраивают быстрозагружаемый Linux в ноутбуки и материнские платы
  • Компания Zend представила пакет для создания web-серверов с поддержкой PHP
  • Созданы недорогие гибкие дисплеи


    Комментарии (3)
    Вы не авторизованы! Комментарии могут оставлять только зарегистрированные и авторизованные пользователи!
    omut | 27.03.2005 14:02
    Re: SmallNuke v.2 + форум phpBB
    спасибо. кто нить на vBulletin 3.x попробуйте а ...

    dk | 26.03.2005 10:11
    Re: SmallNuke v.2 + форум phpBB
    Суууупер! огромный респект Сергею!
    Как более-менееосвобожусь - с меня галерея =0)

    neon | 26.03.2005 09:15
    Re: SmallNuke v.2 + форум phpBB
    И главное, все легко и просто...
    Говорила мне мама - сынок учи php :)
    Ну чтож, будем пробовать...




  •  Авторизация
    Логин:
    Пароль:
    Запомнить меня
    Регистрация
    Напомнить пароль

     Наш опрос
    Нужен ли код (капча) в формах после регистрации пользователя на сайте?
    Да обязательно во всех случах
    Настраиваемо, по желанию
    Нет, только для анонимных
    Код вообще не нужен
    А что такое капча



    Всего голосов: 750
    Комментариев: 5
    Результат опроса

     Сейчас на сайте
    Гостей: 18
    Пользователей: 1
    Всего: 19

    Пользователи:
    01: Michaelror

     Реклама