Класс PageParser - базовый класс PHP-платформы Wad-er, который инициализируется при загрузке системы и доступен из любого места приложения через объект $parser.
PageParser может выполнять следующие задачи:
$parser->encache = true;
$parser->enplugins = true;
$parser->enlogging = true;
$parser->enquick_manager = true;
Основные параметры класса
Доступны следующие параметры класса pageParser. В случае, когда параметр не задан явно, применяется значение по умолчанию.
Параметр | Значение по умолчанию | Описание |
conn | null | Текущее соединение с БД. |
utils | null | Объект класса Utils. |
config | array() | Конфигурационные переменные приложения. |
lang_suff | Код (Id) текущего языка приложения. | |
pageId | 0 | Код (Id) текущей страницы. |
pageObject | array() | Массив аттрибутов текущей страницы. |
parses | 50 | Максимальное количество проходов парсера (Как работает Wad-er). |
encache | true | Возможность кеширования приложения. |
encache_els | true | Возможность кеширования элементов приложения (сниппетов, чанков и др.). |
enplugins | true | Возможность подключения плагинов. |
enlogging | true | Возможность логирования системных процессов. |
enquick_manager | false | Возможность отображения быстрого редактора Quick Editor. |
Установка параметров
Установка параметров класса может происходить в момент инициализации системы – в файле index.php:
include_once(SYS_BASE_PATH.'main/classes/parser.class.php'); $parser = new pageParser; //отключение кеширования $parser-> encache = false; $parser->parse();
Также возможна установка параметров через файл конфигурации config/config.php (Конфигурационные переменные)
Описание методов
addCSS()
public function addCSS($src, $pars = '')
Добавление файлов стилей (css-файлов) в head шаблона
$css = 'style.css'; if(!file_exists(SYS_BASE_PATH.$css)) $css = 'main/styles/mvc_wide_tpl/el.css'; $parser->addCSS(SYS_BASE_URL.$css);
addLog()
public function addLog($mess = '', $type = 0, $objtype = '0', $objid = '0', $subobjtype = '0', $subobjid = '0')
Добавление записи в системный журнал (Логирование системных событий).
$mess = $parser->robot.' | '.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $type_event = 'sys_user_events_robot'; $objtype = 'sys_elements_pages'; $objid = $parser->pageId; $parser->addLog($mess, $type_event, $objtype, $objid);
addMessage()
public function addMessage($mess = '', $type = 0, $objtype = '0', $objid = '0')
Запись о системном процессе в таблицу БД sys_messages (Логирование системных процессов).
$mess = 'Api request error'; // $type 1- information, 2 - warning, 3- error $type = 3; $parser->addMessage($mess, $type);
addRole()
public function addRole($userid = 0, $roleid = 0)
Добавление роли пользователю:
//$userid – код (Id) пользователя //$roleid - код (Id) роли $parser->addRole ($userid, $roleid);
addScript()
public function addScript($src)
Добавление js-файлов в head шаблона
$parser->addScript(SYS_BASE_URL."libs/js/jquery.js");
checkPerms()
public function checkPerms($perm = '', $right = '')
Проверка, имеет ли текущий пользователь данные права:
$parser->checkPerms('sys_rights_sinppets');
checkRoles()
public function checkRoles($roles = array())
Проверка, имеет ли текущий пользователь данные роли:
$parser->checkRoles(array('role1', 'role2', 'role3'));
clearCache()
public function clearCache($id = '')
Принудительная очистка кеша приложения
$parser->clearCache();
getChunk()
public function getChunk($name = '')
Получение кода чанка
// chunk_id - Код (id) чанка $parser->getChunk ('chunk_id');
getPageId()
public function getPageId()
Получение кода (Id) текущей страницы.
$parser->getPageId ();
getPageObject()
public function getPageObject($id = '')
Получение аттрибутов текущей страницы.
$parser->getPageObject ();
getTime()
public function getTime()
Получение системного времени.
$parser->getTime ();
getUserId()
public function getUserId()
Получение кода (Id) текущего пользователя.
$parser->getUserId ();
getUserName()
public function getUserName()
Получение имени текущего пользователя.
$parser->getUserName ();
getWebuser()
public function getWebuser()
Получение кода (Id) текущего веб-пользователя.
$parser->getWebuser ();
gs()
public function gs($type = '', $cached = true, $userid = '')
Получение конфигурационных данных и их запись в кеш.
$parser->gs('sys_user_dateformat');
gt()
public function gt($textid = '', $file = '', $subst1 = '', $subst2 = '', $subst3 = '', $subst4 = '', $subst5 = '', $subst6 = '')
Получение фразы на текущем языке.
// wocategory – слово перевода $parser->gt('wocategory');
gtb()
public function gtb($text)
Получение текстового блока на текущем языке.
$parser->gtb('wocategory');
gtl()
public function gtl($textid = '', $file = '', $subst1 = '', $subst2 = '', $subst3 = '')
Получение фразы на текущем языке в нижнем регистре.
$parser->gtl('wocategory');
isSuperAdmin()
public function isSuperAdmin()
Проверяет, является ли текучий пользователь суперадмином.
$parser->isSuperAdmin();
intMail()
public function intMail($to = '', $mess = '', $striptags = true)
Отправляет сообщение пользователю по внутренней почте.
$user = 'sys_superadmin'; $mess = 'My message'; $parser-> intMail ($user,$mess);
invokeEvent()
public function invokeEvent($name = '', $pars = array ())
Вызов системного события.
//sys_onPageInit- Код (Id) события $parser-> invokeEvent ('sys_onPageInit');
load()
public function load($name = '', $module = '')
Загрузка внешней библиотеки. По умолчанию подключается php-файл, расположенный по адресу: ext/modulename/lib/.
// загрузка файла load_file.php $parser-> load ('load_file');
makeUrl()
public function makeUrl($id = '', $argsa = '', $segments = false, $site_url = false)
Формирование адреса страницы (подробнее – Управление URL)
//'sys_pages_get' - Id или алиас (псевдоним) страницы //$argsa = array("query=1","query2=2"); доп.параметры в адресе страницы $parser->makeUrl('sys_pages_get', $argsa);
moduleExists()
public function moduleExists($name = '')
Проверяет, установлен ли в приложении указанный модуль.
$name = 'module_id'; If($parser->moduleExists($name)) {…}
objectAccess()
public function objectAccess($type = '', $id = '')
Проверяет, имеет ли текущий пользователь доступ к объекту.
//$type_object – тип объекта //$id_object – код (Id) объекта $parser->objectAccess($type_object, $id_object);
pageAccess()
public function pageAccess($id = '')
Проверяет, имеет ли текущий пользователь доступ к странице.
//$id_object – код (Id) страницы $parser->pageAccess ($id_object);
Parse()
public function parse()
Основной метод парсера, который генерирует страницу приложения. Вызов происходит в файле index.php.
parseText()
public function parseText($text = '')
Используется в контроллерах (моделях). При вызове сниппета заменяет слова перевода, которые встречаются в чанках. В контроллере вставьте следующий код:
$text = $this->parser->runSnippet('sys_snip_pagelist',array('pagelen'=>'10','editable' => 1)); $text = $this->parser->parseText($text); print $text;
parsePageContent()
public function parsePageContent($id = '', $addtemplate = false)
Получение содержимого страницы. Чаще всего используется в модели.
class test_models_list { protected $parser; public function __construct($parser) { $this->parser = $parser; } function getData() { //$output = 'Data from model list'; $output = $this->parser->parsePageContent(); return $output; } }
redirect()
public function redirect($id = '', $pars = '', $seg = false)
Редирект (перенаправление) на другую страницу:
//редирект на ту же самую страницу $parser->redirect($parser->pageId); //редирект на страницу с кодом (Id) - $pageid $parser->redirect($pageid);
removeRole()
public function removeRole($userid = 0, $roleid = 0)
Удаление роли пользователя.
//$userid – код (Id) пользователя //$roleid - код (Id) роли $parser-> removeRole ($userid, $roleid);
runSnippet()
public function runSnippet($name = '', $pars = array())
Вызов сниппета.
$parser->runSnippet('sys_snippets_pollings',array('pollid'=>'2'));
ss()
public function ss($type = '', $val = '', $userid = 0, $notes = '', $onlycache = false)
Определение значения конфигурационных данных.
$parser->ss('user_region', 'Регион');
setWebuser()
public function setWebuser()
Установка веб-пользователя.
$parser-> setWebuser();
toFile()
public function toFile($mess = '', $file = '')
Запись строки в файл.
$parser-> toFile ($mess, $file);
unSetWebuser()
public function unSetWebuser()
Удаление веб-пользователя.
$parser-> unSetWebuser ();
Остальные методы класса - служебные и предназначены для внутреннего использования.