phpbb3 и Java
Форум на сайте вещь несомненно хорошая, нужная, и полезная. А бывает еще и крайне необходимая, когда про форум написано в тз.
А теперь от лирики к делу. Есть сайт на JSF2.0, запущенный на Glassfish, нужен форум. Поначалу выбор пал на JForum, помучившись довольно долго все же удалось запустить его с собственной авторизацией. Впоследствии проанализировав все плюсы и минусы было решено заюзать более новый и активно развивающийся phpbb. JForum кажется совсем заброшенным. Кстати очень понравился этот каталог форумов.
Код php на Glassfish.
И все бы хорошо, но как запустить пхпшный форум на контейнере сервлетов.
Оказывается есть такая замечательная штука Quercus, предназначенная как раз для этого - запуска кода пхп на явовском серваке. Используется элементарно - задеплоить варник и все, пхп код можно копировать в папку с кверкусом, код будет выполняться.
Phpbb3
Далее исходники phpbb копируются в папку куда задеплоен кверкус. Все успешно открывается , при установке указываются параметры соединения с бд, остальное можно по умолчанию. Бд должна существовать , и быть пустой, все таблички там создадутся автоматически.
Готово, форум в работе.
Авторизация
Следующий этап это собственная авторизация. Тоже как выяснилось ничего сложного. Принцип таков - с основного сайта в куки пишутся данные, форум читает куки, авторизует юзера, или если его нет то добавляет в бд и авторизует.
Для того чтобы написать собственную авторизацию нужно создать файлик auth_ваша_авторизация.php в папке ./includes/auth/ У меня он назывался auth_str2.php.
В нем могут быть методы (методы всегда заканчиваются на названии модуля, это обязательно):
function login_str2(&$username, &$password)
- функция залигонивания, вызывается при нажатии кнопки вход.
function init_str2()
- инициализация.
function autologin_str2()
- вызывается если новая сессия.
Автологин то что понадобится.
1. Берем куки и парсим.
2. Есть ли в бд
3. Добавляем если нет.
Следующий этап вероятно будет шифрование.
Главное не забыть чистить куки когда юзер выходит из админки.
И в админке форума необходимо указать какой модуль юзать, это в общие->средства связи->аутентификация.
Темы
Тем для phpbb предостаточно, например этот каталог. Радует функция подбора цвета. Чтобы установить тему, ее нужно распаковать в ./styles, установить на вкладке стили, и после этого она будет доступна, тема по умолчанию указывается в : общие->конфигурация->настройка форума->стить по умолчанию.
Язык
С языком аналогично как и с темами, скачать пакет, распаковать в ./languages , установить на вкладке система->языковые пакеты. После этого язык будет доступен в общие->конфигурация->настройка форума.
Один нюанс - после проделанных манипуляций хотя и указан язык по умолчанию для всего форума, он перекрывается настройкой языка для конкретного юзера , юзер сам должен изменить язык в центре пользователя. Это неудобно, зачем же их так гонять. Версия phpbb 3.0.8. Из источников в сети была почерпнута информация что и правда есть такой глюк или "особенность",называйте как хотите. И если ставить phpbb с уже закаченным в ./languages русификатором то все ok. Раз уж все равно суждено его переставить то во избежания непредвиденного была скачана русифицированная версия 3.0.9 и установлена. Нареканий нет.
БД
Проблема : у меня уже есть бд и не нужно ничего создавать. Как сделать чтобы phpbb ee подцепил ?
Так же все элементарно, в корне есть файл config.php , в нем хранятся настройки бд. Если перед установкой записать туда параметры то бд не будет создаваться , а использоваться указанная.
config.php
А теперь от лирики к делу. Есть сайт на JSF2.0, запущенный на Glassfish, нужен форум. Поначалу выбор пал на JForum, помучившись довольно долго все же удалось запустить его с собственной авторизацией. Впоследствии проанализировав все плюсы и минусы было решено заюзать более новый и активно развивающийся phpbb. JForum кажется совсем заброшенным. Кстати очень понравился этот каталог форумов.
Код php на Glassfish.
И все бы хорошо, но как запустить пхпшный форум на контейнере сервлетов.
Оказывается есть такая замечательная штука Quercus, предназначенная как раз для этого - запуска кода пхп на явовском серваке. Используется элементарно - задеплоить варник и все, пхп код можно копировать в папку с кверкусом, код будет выполняться.
Phpbb3
Далее исходники phpbb копируются в папку куда задеплоен кверкус. Все успешно открывается , при установке указываются параметры соединения с бд, остальное можно по умолчанию. Бд должна существовать , и быть пустой, все таблички там создадутся автоматически.
Готово, форум в работе.
Авторизация
Следующий этап это собственная авторизация. Тоже как выяснилось ничего сложного. Принцип таков - с основного сайта в куки пишутся данные, форум читает куки, авторизует юзера, или если его нет то добавляет в бд и авторизует.
Для того чтобы написать собственную авторизацию нужно создать файлик auth_ваша_авторизация.php в папке ./includes/auth/ У меня он назывался auth_str2.php.
В нем могут быть методы (методы всегда заканчиваются на названии модуля, это обязательно):
function login_str2(&$username, &$password)
- функция залигонивания, вызывается при нажатии кнопки вход.
function init_str2()
- инициализация.
function autologin_str2()
- вызывается если новая сессия.
Автологин то что понадобится.
1. Берем куки и парсим.
2. Есть ли в бд
3. Добавляем если нет.
// выковиривание значений из куки $cookie = $_COOKIE["userInfo"]; list($role,$username,$password) = split(' ',$cookie); // не пустые ли значения if (!$password || !$username) { return array(); } // ищем юзера $sql = 'SELECT * FROM ' . USERS_TABLE . " WHERE username_clean = '" . $db->sql_escape($username) . "'"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); // юзер найден if ($row) { return ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE) ? array() : $row; } // юзер не найден else { ... }
Следующий этап вероятно будет шифрование.
Главное не забыть чистить куки когда юзер выходит из админки.
И в админке форума необходимо указать какой модуль юзать, это в общие->средства связи->аутентификация.
Темы
Тем для phpbb предостаточно, например этот каталог. Радует функция подбора цвета. Чтобы установить тему, ее нужно распаковать в ./styles, установить на вкладке стили, и после этого она будет доступна, тема по умолчанию указывается в : общие->конфигурация->настройка форума->стить по умолчанию.
Язык
С языком аналогично как и с темами, скачать пакет, распаковать в ./languages , установить на вкладке система->языковые пакеты. После этого язык будет доступен в общие->конфигурация->настройка форума.
Один нюанс - после проделанных манипуляций хотя и указан язык по умолчанию для всего форума, он перекрывается настройкой языка для конкретного юзера , юзер сам должен изменить язык в центре пользователя. Это неудобно, зачем же их так гонять. Версия phpbb 3.0.8. Из источников в сети была почерпнута информация что и правда есть такой глюк или "особенность",называйте как хотите. И если ставить phpbb с уже закаченным в ./languages русификатором то все ok. Раз уж все равно суждено его переставить то во избежания непредвиденного была скачана русифицированная версия 3.0.9 и установлена. Нареканий нет.
БД
Проблема : у меня уже есть бд и не нужно ничего создавать. Как сделать чтобы phpbb ee подцепил ?
Так же все элементарно, в корне есть файл config.php , в нем хранятся настройки бд. Если перед установкой записать туда параметры то бд не будет создаваться , а использоваться указанная.
config.php
// phpBB 3.0.x auto-generated configuration file // Do not change anything in this file! $dbms = 'mysql'; //database type it may not be mysql $dbhost = 'localhost'; $dbport = '3306'; $dbname = 'myforum_phpbb'; $dbuser = 'root'; $dbpasswd = '******'; $table_prefix = 'phpbb_'; $acm_type = 'file'; $load_extensions = ''; @define('PHPBB_INSTALLED', true); //@define('DEBUG', true); //@define('DEBUG_EXTRA', true);
0 comments:
Отправить комментарий