В PHP-платформе Wad-er существует глобальный доступ к объекту парсера (класс PageParser). Это дает возможность получить доступ к основным объектам и функциям системы.
В приведенных ниже примерах $parser – это экземпляр класса парсера. В контроллерах этот объект доступен как свойство parser класса контроллера, поэтому вызвать его следует как $this->parser.
Основные настройки
Конфигурационные переменные:
//получаем массив, который можно распечатать print_r($parser->config); //получить системные настройки, $cached – помещать ли данные в кэш $cached = true; print $parser ->gs('sys_user_lang', $cached); //установить системные настройки, $val – значение настройки $val = 'ru'; print $parser ->ss('sys_user_lang', $val);
Язык, сообщения
Получить код текущего языка системы:
//получаем строку - en(ru), если язык – английский (русский) print $parser->lang_suff;
Перевести фразу на текущий язык
print($parser->gt('allreadyloged', __FILE__)); //все слова фразы – в нижнем регистре print($parser->gtl('allreadyloged', __FILE__));
Cформировать сообщение:
//$type: 1- информация, 2 - предупреждение, 3- ошибка $type = 1; print $parser->addMessage('email error', $type);
Пользователи
Информация о текущем пользователе (имя, e-mail, логин, телефон и т.д.):
//получаем массив, каждый ключ которого содержит данные о пользователе print_r($parser->utils->getUserInfo()); //Id пользователя print $parser->getUserId; //имя пользователя print $parser->getUserName;
Проверка прав пользователя:
//проверка, какие права имеет пользователь print_r( $parser->checkPerms()); //проверка принадлежности пользователя ролям, метод возвращает true/false $roles = array('admin', 'moderator'); If($parser->checkRoles($roles)) { … }
Отправить письмо на e-mail пользователя:
$pars = array('to' => $email, 'subject' => $subject, 'message' => $message ); $parser->utils->sendMail($pars);
Вызовы основных объектов системы
Идентификатор текущей страницы:
//получаем строку вида forum/index (MVC1) или index (MVC2) $parser->getPageId();
Получить контент страницы:
//получаем строку с содержимым страницы $parser->parsePageContent();
Вызов сниппета:
//$snippet – код (Id) сниппета, //$pars = array() – массив входящих параметров, необязательный аргумент //получаем или готовый html-код как результат работы сниппета, //или сообщение об ошибке $parser->runSnippet($snippet, $pars);
Вызов чанка:
//$tpl – код (Id) чанка, //$pars = array() – массив входящих параметров, необязательный аргумент //получаем или готовый html-код чанка, или сообщение об ошибке $parser->getChunk($tpl, $pars);
Вызов события:
//'sys_onlogout' - код (Id) события, //второй аргумент - массив входящих параметров $parser->invokeEvent('sys_onlogout', array('userid' => $userid));
Очистить кеш:
//$parser->pageId – код (Id) страницы, кеш которой будет очищен $parser->clearCache($parser->pageId);
Даты
//перевод в формат Y-m-d h:i:s $parser->utils->dateToISOformat($val); // перевод date/time формат в системный формат пользователя $parser-> utils->toDate($val); //добавление к дате дней/месяцев/лет/часов/секунд //$datetime – время в Unix-формате, //$shift_amount – число, сколько добавить (вычесть) // $shift_unit – что именно добавить (месяц, день и т.д.) /* months = mo; days = d; years = y; hours = h; minutes = mi; seconds = s; */ $parser-> utils->shiftDates($datetime, $shift_amount, $shift_unit);
Url
Сформировать url:
//'sys_pages_get' - Id или алиас (псевдоним) страницы //$argsa = array("query=1","query2=2"); доп.параметры в адресе страницы $parser->makeUrl('sys_pages_get', $argsa);
Редирект (перенаправление) на другую страницу:
//редирект на ту же самую страницу $parser->redirect($parser->pageId); //редирект на страницу с кодом (Id) - $pageid $parser->redirect($pageid);
Подключение js, css-скриптов, сторонних библиотек:
Подключение js:
$src = ''; $parser->addScript($src);
Подключение css:
$css = ""; $parser->addCss($src);
Подключение сторонних библиотек модуля:
//файл ymarket.php положить в ext/moduleid/lib/ $parser->load('ymarket');
Полезные утилиты
Запись в файл:
//$mess – сообщение, //$file – путь к файлу, по умолчанию пишется в /userdata/mess.txt $parser->toFile($mess, $file);
Безопасная обработка sql-запросов:
$parser->conn->escape($id);