Управление генерацией страницы
Материал из AOW
Содержание |
Что нового
С ревизии 2132 изменен механизм генерации страницы, функционал файлов
/main_inc/main_tmpl.php и /main_inc/admin_tmpl.php
перенесен в ядро.
Шаблоны страницы
Все главные шаблоны страниц расположены в
/main_inc/main_tmpl
- Переменные в главных шаблонах
Для вывода и генерации данных в главных шаблонах используется 3 типа переменных:
$block_{name}
$tpl_{name}
$setting_{name}
Группа переменных $block_{name}: генерирует и вставляет данные из файла php по пути /main_inc/main_pages/{name}.block
Группа переменных $tpl_{name}: генерирует и вставляет данные из файла template simplePHP по пути /main_inc/main_pages/{name}.tpl
Группа переменных $setting_{name}: генерирует и вставляет данные настройки с именем {name}
Переменная $main_meta: генерирует и вставляет в шаблон мета тэги.
Переменная $main_header: генерирует и вставляет в шаблон <script /><link />, jquery, jquery ui, подключаемые функциями simple_load_*.
Переменная $main_content: генерирует и вставляет в шаблон контент.
Файл конфигурации rules.cfg
Данный конфигурационный файл содержит правила по формированию страницы
require_once($GLOBALS['I_main_cfg'].'tmpl_main.cfg');
// Подключаем бд
c_url_exec::connect_db();
// Подключение библиотек и методов
c_url_exec::load('show_data');
c_url_exec::load('db_pg_users');
c_url_exec::load('db_pg_counter');
// Выполение стартовых методов
c_url_exec::exec_method(array('c_users', 'check_auth_user'), 'check_db');
c_url_exec::exec_method(array('c_files', 'reset'));
c_url_exec::exec_method(array('c_counter_user', 'set_visit'));
c_url_exec::exec_method(array('c_rules', 'set_visitor'));
// Подключение скриптов, css, meta
c_url_exec::load_jquery();
c_url_exec::load_script($GLOBALS['E_main_res'].'js_swfobject/swfobject.js');
c_url_rules::meta('*', array('c_url_exec', 'get_meta'));
// Контент страниц
c_url_rules::page('*', array('c_shop_user', 'parse_url'));
c_url_rules::page('*', array('c_url_exec', 'page_inc'));
c_url_rules::page('*', array('c_url_exec', 'get_content'));
// Правила для шаблонов
c_url_rules::template('shop/*', 'shop');
c_url_rules::template('*', 'main');
// Правила для печати
c_url_rules::print_page('*', 'print');
- Методы класса c_url_rules
c_url_rules::page(string $template_url, mixed $callback, [mixed $params...])
Данный метод формирует правила по получению контента для страницы.
$template_url - шаблон для странице на которой будет отображен контент, если у текущего класса нет данных для вывода, то рассматривается следующие правило. Пример, '*' - для всех страниц, 'shop/category/*' - для всех страниц по пути shop/category/, 'about/' - только для страницы about.
$callback - вызов статического метода array('c_class', 'callback_method') или функции 'callback_function'. Обработчик может данные по контенту возвращать через return, а так же выводом их на поток.
$params - параметры для обработчика
c_url_rules::meta(string $template_url, mixed $callback, [mixed $params...])
Данный метод формирует мета тэги, параметры метода такие же как и у c_url_rules::page()
c_url_rules::block(string $template_url, string $block, mixed $callback, [mixed $params...])
Данный метод формирует блок для страницы, либо по правилу заменяет текущий, параметры такие же как и у c_url_rules::page().
$template_url - шаблон для странице на которой будет отображен контент, если у текущего класса нет данных для вывода, то рассматривается следующие правило.
$block - название переменой в главном шаблоне
$callback - вызов статического метода array('c_class', 'callback_method') или функции 'callback_function'. Обработчик может данные по контенту возвращать через return, а так же выводом их на поток, либо подключение файла /main_inc/main_pages/{callback}.block
$params - параметры для обработчика
Исключение $callback - вызов обработчика, либо подключение файла /main_inc/main_pages/{callback}.block
c_url_rules::tpl(string $template_url, string $block, mixed $callback, [mixed $params...])
Данный метод формирует блок для страницы, либо по правилу заменяет текущий, параметры такие же как и у c_url_rules::block().
Исключение $callback - вызов обработчика, либо подключение файла /main_inc/main_pages/{callback}.tpl
c_url_rules::setting(string $template_url, mixed $callback, [mixed $params...])
Данный метод формирует данные из настройки, либо по правилу заменяет текущий, параметры такие же как и у c_url_rules::block().
Исключение $callback - вызов обработчика, либо имя настройки
c_url_rules::template(string $template_url, string $template)
Данный метод получает имя главного шаблона из /main_inc/main_tmpl.
$template_url - шаблон для странице на которой будет отображен контент, если у текущего класса нет данных для вывода, то рассматривается следующие правило.
$template - имя шаблона /main_inc/main_tmpl/{template}.html
c_url_rules::print_page(string $template_url, string $template)
Данный метод получает имя шаблона для печати, обрабатывается если в запросе есть get параметр page=1, из /main_inc/main_tmpl. Параметры такие как и у c_url_rules::template().
- Методы класса c_url_exec
c_url_exec::connect_db()
Данный метод следить за подключение бд и отключением.
c_url_exec::load(string $module_name)
Данный метод подключает библиотеку или модуль
c_url_exec::load_jquery()
Подключает к $main_header библиотеку jquery
c_url_exec::load_ui([string $theme='default', [bool $max=true, [string $version='1.8.2']]])
Подключает к $main_header библиотеку jquery ui
c_url_exec::load_script($path)
Подключает к $main_header script файл
c_url_exec::load_css($path)
Подключает к $main_header css файл
c_url_exec::load_link($path)
Подключает к $main_header <link />
c_url_exec::set_new_template(string $template)
Назначение конкретного главного шаблона.
c_url_exec::exec_method(mixed $callback, [string $check_db, [mixed $params ...]]);
Выполнение конкретного статического метода или функции.
$callback - обработчик метод или функция. $check_db - если равно 'check_db', то проверяет установлен ли модуль $param - параметры для обработчика
Файл конфигурации rules_admin.cfg
Правила для генерации админской части
require_once($GLOBALS['I_main_cfg'].'tmpl_admin.cfg');
// Подключаем бд
c_url_exec::connect_db();
// Подключение библиотек и методов
c_url_exec::load('db_pg_aowdb');
c_url_exec::load('show_data');
c_url_exec::load('db_pg_counter');
c_url_exec::load('admins');
// Выполение стартовых методов
c_url_exec::exec_method(array('c_files', 'reset'));
// Подключение скриптов, css, meta
c_url_exec::load_jquery();
c_url_exec::load_ui();
c_url_exec::load_script($GLOBALS['E_main_res'].'js_jquery/jquery.form.js');
c_url_rules::block('*', 'block_left', array('c_admins_gui', 'menu'));
c_url_rules::block('*', 'block_bread_crumbs', array('c_admins_gui', 'bread_crumbs'));
c_url_rules::block('*', 'block_sub_menu', array('c_admins_gui', 'sub_menu'));
// Контент страниц
c_url_rules::page('*', array('c_admins_gui', 'body'));
// Правила для шаблонов
c_url_rules::template('*', 'admin');

