Joomla портал
seo seo Subscribe
0
seo

Во всяком случае, с

практической точки зрения я их не заметил. Если вам будут нужны дополнительные

поля в таблице пользователей (например, поле дня рождения или мобильного

телефона), вы можете вполне спокойно их добавить. Форум будет использо-

228

Часть V. Интеграция CMS с форумом phpBB

вать только свои данные, а на ваши не будет обращать внимания. А можно

даже использовать для своих целей некоторые поля таблицы phpbbusers.

Чуть позже будет показано, как это сделать.

Примечание

Форум phpBB в книге подробно не рассматривается, однако полное

руководство по форуму (на русском языке) доступно по адресу:

http://dkws.org.ua/index.php?page=show&file=a/php/phpbb/php-bb

19.2. Разработка формы входа

Первым делом мы разработаем форму входа на сайт. Работать она будет так

же, как и на форуме phpBB. Если пользователь уже зарегистрирован на сайте,

то будет выведено сообщение вроде «Здравствуйте, !».

Если же пользователь не зарегистрирован на сайте (или форум не «помнит»

пользователя), то пользователю будет предложено зайти на сайт или

зарегистрироваться.

Форма для входа на сайт выглядит, как показано в листинге 19.1. Чтобы не

загромождать код CMS, вынесем код формы в файл auth.html.

Вход на OOPyM

ABTopM3auMH

id=inp />

/>

/x/td>

Глава 19. Базовая интеграция

229

3anoMHMTb MeHH

href=http://localhost/forum/profile.php?mode=register>PerMCTpauMH

He спешите использовать данный файл без изменений: вы должны поменять

имя сайта (в листинге выделено полужирным) и имя каталога, в который

установлен форум (подразумевается, что форум установлен в каталог forum).

Примечание

Класс ячеек таблицы rowl — это стандартный класс таблицы стилей

форума phpBB. He стоит удалять его, если вы планируете интеграцию дизайна

сайта и форума,

В браузере форма выглядит так, как показано на рис. 19.1. Вы можете

изменять расположение ее элементов тац, как вам заблагорассудится, только не

нужно изменять имена элементов управления (параметры name и id).

Рис. 19.1. Форма входа на сайт

Теперь отредактируем наш index.php. В него (можно в самое начало, но

после подключения шаблонизатора) нужно добавить строки из листинга 19.2.

// Подключаем шаблонизатор

require «template.php»;

ob__start () ;

define(·IN_PHPBB·, true);

230

Часть V. Интеграция CMS с форумом phpBQ

// Путь к форуму

$phpbb_root_path = ‘forum/’;

// Подключаем необходимые файлы, в том числе и файл настроек форума

include($phpbb_root_path . ‘extension.inc’);

include($phpbb_root__path . ‘common.’.$phpEx);

include_once «forum/config.php»;

$userdata = session_pagestart($user_ip, PAGE_INDEX);

init_userprefs($userdata);

// Если форум «помнит» пользователя, тогда выводим приветствие,

//в противном случае — читаем и выводим форму входа

if ($userdata['user_active']==1)

$reg =»Добро пожаловать, $userdata[username]«;

else

$reg = join(‘\ file(‘auth.html’));

$tpl->set_value(‘REG’,$reg);

ob_end_flush();

Теперь осталось добавить переменную { reg } в шаблон page.tpl — в любое

удобное вам место. Измененные файлы index.php, page.tpl, а также файл

auth.html вы найдете в каталоге Glava_19.

Примечание

Если у вас что-то не работает, тщательно проверьте пути к форуму

(переменную $phpbb_root_path и путь к.файлу настроек форума).

19.3. Вывод последних сообщений форума

на главной странице

Ясно, что форум — это не весь сайт. Обычно форум — это дополнение к

сайту, у которого есть главная страничка и ряд дополнительных страниц. Так

Глава 19. Базовая интеграция

231

вот, на главной странице желательно вывести последние темы, которые

обсуждаются на форуме, а не просто кнопку с надписью «Форум». Вывод

последних тем нужен еще и для того, чтобы новые посетители видели, что

форум «живой» и что на нем общаются другие пользователи. К тому же весьма

удобно наблюдать за последними темами с главной страницы сайта: зашел на

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

просматривать его в поисках измененных тем.

В листинге 19.3 представлен сценарий last-posts.php, выводящий последние

темы, а также авторов последних сообщений.