Создание собственной PHP страницы для Dolphin 7
В процессе изучения данного скрипта вы надеюсь уже видели Билдер блоков страниц, позволяющий таскать различные блоки по страницам, также он позволяет создавать страницы тоже, и ложить на неё HTML или RSS блоки. Данные страницы автоматически сохраняются в базе данных а также в кеш файле страниц. Данные страницы имеют адрес типа: http://www.ваш_сайт.com/page/page-name
Но данный метод иногда бывает неподходящим, например мы хотим использовать языковые ключи, или выводить еще к-либо контент который не получается сделать при помощи билдера (например PHP скрипты). В данном случае целесообразно просто сделать свою собственную PHP страничку (с адресом http://www.ваш_сайт.com/mypage.php) и даже соорудить пермалинку (короткую ссылку) на нее (например http://www.ваш_сайт.com/mypage/). Все это возможно, и я покажу в нашем уроке как именно это делается.
Итак, дам весь необходимый сорс код нашего примера:
<?php
require_once('inc/header.inc.php'); /* подключаем главный хидер файл */
require_once(BX_DIRECTORY_PATH_INC . 'design.inc.php'); /* и еще один необходимый для вывода файл */
$_page['name_index'] = 7;
/* данный номер 7 показывает что будет попытка использовать темплейт файл page_7.html
из вашего шаблона если он отсутствует, будет браться файл default.html */
$_page['css_name'] = 'custom.css'; // подключаем свой CSS если нужно
// ложить данный CSS следует в шаблон, например сюда - templates/tmpl_uni/css/
$_page['js_name'] = 'custom.js'; // подключение JS файлов при необходимости (inc/js папка)
check_logged();
// данная функция заполнит глобальные переменные о том кто залогинен, вообщем проверка логина
$_page['header'] = 'My test page'; // заголовки для страницы
$_page['header_text'] = 'My test page'; // заголовки для страницы
$_ni = $_page['name_index'];
$_page_cont[$_ni]['page_main_code'] = getPageCode(); // и вот, в темплейт файле 7-м или default.html есть
// использование ключика __page_main_code__, вот этим кодом мы и будем заменять данный ключ на
// результат выполнения данной функции
function getPageCode() { // а вот собственно и наша функция
$sRet = <<<EOF
<div style="font-weight:bold;">Какой либо HTML код</div>
EOF;
$sRet .= '<div>' . _t('_ALREADY_ACTIVATED') . '</div>'; // через функцию _t можно выводить языковые ключи
return DesignBoxContent(_t( "_ADVICE_H1" ), $sRet, 1); // функция генерирует дизайн бокс
}
PageCode(); // вызываем функцию генерации всего остального - самой страницы
?>
Важный момент, если вы желаете чтобы можно было выводить русский текст непосредственно с PHP файла - сам файл должен быть в кодировке UTF8 (without BOM). Это вам поможет избавиться от крякозябр.
Конечно, в данной getPageCode функции вы можете делать что угодно - работать с базой данных, генерировать разные яваскрипты, все что пожелаете. Данная структура кода будет работать буквально со всеми версиями дельфина, начиная с 6.0 и по 7.0.x.
Надеюсь большинство кода получилось более менее понятным, я старался оставлять комментарии везде чтобы было ясно что я делал. Если у вас имеются вопросы или другие предложения - не стесняйтесь писать нам.