Печать
Просмотров: 33120
[url=http://www.phpbbguru.net/kb/modding/add-new-custom-page/]Создание дополнительных (произвольных) страниц в стиле конференции[/url]

Привет!

Это руководство подскажет вам, как создать и добавить новую персональную страницу в стиле phpBB. Почему бы вам захотелось это сделать? Скажем, вы хотите создать новую веб-страницу, которая выглядит так же, как ваш форум. Эта новая страница может содержать все, что вам угодно, от простого текста (например, списка правил) до более сложных вариантов, таких как php-скрипты, например, календари.

Давайте начнем.

Файл aboutus.php

Важно: При создании файла aboutus.php, убедитесь, что в нём нет пустых строк и/или пробелов перед <?php и после ?>.

Для примера, мы создадим простую страницу, рассказывающую о вашем сайте. Скопируйте код, расположенный ниже, и вставьте его в текстовый редактор, который вы предпочитаете.

Примечание от phpBB Guru: Мы рекомендуем использовать редакторы, поддерживающие кодировку UTF-8, сохраняя их в указанной кодировке без метки "BOM". Список редакторов для работы с кодировкой UTF-8 (Unicode) можно найти на этой странице. Учтите, что Notepad (Блокнот) из комплекта Windows для редактирования не подходит, так как он не поддерживает сохранение файла без указанной метки. 

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
page_header('Здесь_название_страницы');
$template->set_filenames(array(
    'body' => 'имя_файла_шаблона_страницы_body.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>


И это всё? Нет, не совсем, позвольте мне объяснить далее.

При создании полностью настроенной (как есть) страницы вам, вероятно, не нужно будет этого делать, но если вам понадобится доступ к языковым файлам phpBB, то измените эту строку:
$user->setup();
на:
$user->setup('имя_языкового_файла');

Замените текст имя_языкового_файла именем нужного вам языкового файла без .php расширения. Например, если вам необходимо загрузить языковой файл viewtopic.php, то используйте этот код:
$user->setup('viewtopic');

Первые изменения внесите в следующей строке:
page_header('Здесь_название_страницы');

Просто измените текст Здесь_название_страницы  на то, что вы хотите видеть в заголовке окна браузера. Для нашего примера мы изменим его на: «О нас».

Примечение от phpBB-Guru: Смотрите дополнение в конце статьи.

Далее нужно изменить следующую строку:
'body' => 'имя_файла_шаблона_страницы_body.html',

Позвольте мне объяснить, почему вы должны это изменить. phpBB разделяет логику скриптов (php-код), страниц стиля (цвет, изображения, фон и т.д.) и собственно содержания (контента) (текст, html-код). Вам нужно будет изменить название файла имя_файла_шаблона_страницы_body.html на что-то более понятное, например, aboutus_body.html - и мы окончим редактирование этого файла. Сохраните этот файл в текстовом редакторе как aboutus.php. Обратите внимание: Microsoft Windows может попытаться добавить расширение .txt в конце, так что если это произойдет, сохраните его как "aboutus.php" (включая кавычки).

Дополнительный совет.

Если вы хотите предоставить доступ к странице только для авторизованных пользователей, то найдите эту строку:
$user->setup();
и добавьте после неё следующий фрагмент кода:

if ($user->data['user_id'] == ANONYMOUS)
{
    login_box('', $user->lang['LOGIN']);
}


Файл aboutus_body.html

Далее, мы создадим html-файл, который будет содержать актуальное содержание страницы aboutus.php. Снова открываем ваш любимый редактор и копируем следующий код:

<!-- INCLUDE overall_header.html -->
<h2>Заголовок_страницы</h2>
<div class="panel">
	<div class="inner"><span class="corners-top"><span></span></span>
	<div class="content">
		<p>
			Здесь содержание.
		</p>
	</div>
	<span class="corners-bottom"><span></span></span></div>
</div>
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->


Это довольно просто сделать. Чтобы изменить имя страницы, которая отображается крупными буквами в верхней части, просто измените эту строку:
<h2>Заголовок_страницы</h2>

Измените «Заголовок_страницы» на «О нас».

А это часть, куда вы вставите всю необходимую информацию:
Здесь содержание.

Вы можете добавить сюда любой html- и css-код и текст, который необходим. (Если вы не знаете html или css, я рекомендую изучить их. Они довольно просты для понимания. В интернете вы найдёте немало прекрасных пособий для их изучения.) Вот небольшой пример с текстом и списком:

		Мы были основаны в этом году, чтобы предоставить Вам лучшие форумы в Интернете!
		
		Мы обещаем сделать следующее:
		<ul>
			<li>Обеспечить новым содержанием</li>
			<li>Обеспечить дружественную атмосферу</li>
			<li>Обеспечить среду, где можно повеселиться!</li>
		</ul>


Заключительная упаковка.

Если вы следовали указаниям, то вот так эти два файла должны выглядеть сейчас:
aboutus.php:

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
page_header('О нас');
$template->set_filenames(array(
    'body' => 'aboutus_body.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>


aboutus_body.html:

<!-- INCLUDE overall_header.html -->
<h2>О нас</h2>
<div class="panel">
	<div class="inner"><span class="corners-top"><span></span></span>
	<div class="content">
		<p>
		Мы были основаны в этом году, чтобы предоставить Вам лучшие форумы в Интернете!
		
		Мы обещаем сделать следующее:
		<ul>
			<li>Обеспечить новым содержанием</li>
			<li>Обеспечить дружественную атмосферу</li>
			<li>Обеспечить среду, где можно повеселиться!</li>
		</ul>
		</p>
	</div>
	<span class="corners-bottom"><span></span></span></div>
</div>
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->


Последние шаги.

Теперь сохраните файл, который вы изменяли, как aboutus_body.html и загрузите его на ваш веб-сервер в папку /styles/название_вашего_стиля/template/. Также загрузите aboutus.php файл на веб-сервер в корневую (root) папку phpBB (туда же, где находится config.php).

Наконец, перейдите по ссылке http://адрес_вашего_форума/aboutus.php, чтобы увидеть вашу новую страницу.

Удачи!

Примечание от phpBB Guru: Учитывая, что вы, скорее всего, создаёте страницу для русскоязычной аудитории, то мы бы не рекомендовали в точности следовать данному совету автора. Дело в том, что не следует использовать символы кириллицы непосредственно в коде. Более правильно передавать символы кириллицы через переменную. Например, объявите переменную $page_title в вашем файле и присвойте ей требуемое значение через языковые файлы вашего форума:

$page_title = $user->lang['ABOUTUS'];
page_header($page_title);

Учтите, что в языковый файл, например, /ru/common.php, вам нужно добавить соответствующую языковую переменную:'
'ABOUTUS' => 'О нас',

Кстати, данный способ позволит вам и в файле шаблона использовать ту же языковую переменную:
<h2>{L_ABOUTUS}</h2>

И при желании вы сможете легко менять её содержание, изменяя только языковый файл:'
'ABOUTUS' => 'О нас и не только!',

И помните, phpBB - это просто! Подмигивает

Оригинал статьи: http://www.phpbb.com/kb/article/add-a-new-custom-page-to-phpbb/

Joomla SEF URLs by Artio