[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/