Создание дополнительных (произвольных) страниц в phpbb3 [mod phpbb3.0.x]

Модификации для phpBB - улучшайте свою конференцию, множество популярных модов.
Ответить

Сообщение Admin »

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

Файл aboutus.php

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

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

Примечание : рекомендуем использовать редакторы, поддерживающие кодировку UTF-8, сохраняя их в указанной кодировке без метки "BOM". Список редакторов для работы с кодировкой UTF-8 (Unicode) можно найти на [1url=https://wiki.phpbb.com/Text_Editors]этой[/1url] странице. Учтите, что 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('Здесь_название_страницы');
Просто измените текст Здесь_название_страницы на то, что вы хотите видеть в заголовке окна браузера. Для нашего примера мы изменим его на: «О нас».

Далее нужно изменить следующую строку:

Код: Выделить всё

'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' => 'О нас и не только!',
Авторы
https://www.phpbb.com/kb/article/add-a-new-custom-page-to-phpbb/
http://www.phpbbguru.net/kb/modding/add-new-custom-page/

Поделитесь ссылкой.

HTML код
BBCode
Link
Ответить

Вернуться в «Модификации phpBB 3.0.х»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость