В 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);