Итак, в
прошлый раз я рассказал, как интегрировать Joomla 1.5 и phpBB 3 на уровне пользователей.
Сейчас речь пойдёт о более тесной (можно сказать - визуальной) интеграции профилей. В этой статье я расскажу как заставить phpBB3 использовать аватары и единый профиль из компонента
Community Builder.
На одном из своих сайтов (
www.talica.ru) я использую Joomla с Community Builder 1.2 и форум phpBB 3. Основным и единственным профилем является профиль пользователя в CB. Соответственно аватары и ссылки на профиль с форума должны соответсвовать аватарм и ссылкам Community Builder. Таким образом ведущей стороной мы объявляем сайт на Joomla, а ведомым становится форум. Сейчас я расскажу, как это можно сделать.
Для начала необходимо активировать использование PHP в шаблонах форума phpBB3. Это делается через администраторский раздел.
Скачать файл
phpBB3_CB.zip. В нём расположены все необходимые файлы.
Скопировать в каталог стиля (шаблона) форума в подкаталог
template следующие файлы:
- joomla.html
- joomla_extra.html
- joomla_db.html
Файлы могут быть подправлены при необходимости.
Вставить в начало файла
overall_header.html следующий код:
<!-- INCLUDE joomla.html -->
Чтобы ссылки на форумный профиль перенаправлялись на профиль Joomla! (CB)
Вставить в начало файла
memberlist_view.html следующий код:
<!-- INCLUDE joomla_db.html -->
<!-- PHP -->
/**
* Redirect to Joomla! (CB) profile
*/
$username = $this->_tpldata['.'][0]['USERNAME'];
if (!$username) {
$username = $this->_tpldata['.'][0]['S_USERNAME'];
}
$user_data = get_joomla_user_data($username);
if ($user_data['id']) {
header('Location: http://'.$_SERVER['HTTP_HOST'].'/index.php?option=com_comprofiler&task=userProfile&user='.$user_data['id']);
exit;
}
<!-- ENDPHP -->
Чтобы при любом запросе авторизации пользователя происходило перенаправление на страницу авторизации Joomla! (CB)
Вставить в начало файла
login_body.html следующий код:
<!-- PHP -->
/**
* Make redirection to the login page of the Joomla! (CB)
*/
global $user;
if ($user->data['user_id'] == ANONYMOUS)
{
header('Location: http://'.$_SERVER['HTTP_HOST'].'/index.php?option=com_comprofiler&task=login');
exit;
}
<!-- ENDPHP -->
Во всех файлах в ссылках можно дописать параметр Itemid, необходимый для вашего сайта; либо использовать другие ссылки, если применён SEF.
После выполнения всех описанных действий аватары в форуме будут браться из Community Builder'а, а все ссылки на профиль перенаправляться на профиль CB. Ссылки на вход/выход и список пользователей также будут указывать на CB.
[вложение удалено Администратором]