Класс Utils содержит служебные методы, полезные в работе над приложением.
Описание методов
nf()
public function nf($number, $digits = 2, $dec_point = null, $thousands_sep = null)
Форматирование чисел. Аналог php-функции number_format с учетом системных установок Wad-er.
/* $number - число $digits - количество знаков после запятой $dec_point – десятичный разделитель $thousands_sep – разделитель тысяч */ $number = 1234.56; // english notation (default) $english_format_number = $parser->utils->nf($number,0,'.',','); // 1,235 // french notation $nombre_format_francais = $parser->utils->nf($number, 2, ',', ' '); // 1 234,56
getFieldFromSql()
public function getFieldFromSql($sql = '', $def = '', $mode = 'assoc')
Получение одного поля из sql-запроса.
if($topicid) $forumid = $parser->utils->getFieldFromSql('SELECT forumid FROM wforum_topics WHERE id='.$topicid, 0);
getFieldsFromSql()
public function getFieldsFromSql($sql = '', $def = '', $mode = 'assoc')
Получение одной строки (группы полей) sql-запроса.
$a = $parser->utils->getFieldsFromSql("SELECT COUNT(*) AS CNT, SUM(assessment) AS SSS FROM sys_comments WHERE assessment>0 AND objtype='".$objtype."' AND ob-jid='".$objid."'", array(0,0), 'num'); //результат – массив array("234","456"), где 234 – значение CNT, 456 – значение SSS
getArrayFromSql()
public function getArrayFromSql($sql = '', $mode = 'assoc')
Получение всех строк sql-запроса, возвращаемые в виде массива. По умолчанию возвращается ас-социативный массив.
$aRows = $parser->utils->getArrayFromSql ("SELECT * FROM sys_objects"); print_r($aRows);
setSessionPars()
public function setSessionPars($sess_name = 'ses_pars', $pars = '')
Устанавливает сессионную переменную.
$parser->utils->setSessionPars($key,$val);
getSessionPars()
public function getSessionPars($sess_name = 'ses_pars', $urlvars = true, $clear = false)
Возвращает значение сессионной переменной.
$parser->utils->getSessionPars($key);
getObjInfo()
public function getObjInfo($objtype = '', $objid = '', $calc_numrows = false, $folders = 0, $extra_filter = '')
Возвращает информацию об объекте.
$parser->utils->getObjInfo($objtype, $objid);
initDatepicker()
public function initDatepicker($period = false)
Подключение jquery-плагина Datepicker.
$parser->utils-> initDatepicker ();
strToFloat()
public function strToFloat($str)
Перевод строки в число с плавающей запятой:
$str = '1234,56'; print $parser->utils->strToFloat($str); //1234.56
addQuots()
public function addQuots($str)
Добавление обрамляющих одинарных кавычек к элементам строки.
$str = '1234, 56'; print $parser->utils->addQuots($str); //'1234', '56'
getAllChilds()
public function getAllChilds($sql = '', $parent = 0, $itself = false, $field = 0, $quotes = true, $levels = 100)
Возвращает все дочерние узлы элемента.
$parser->utils->getAllChilds('select id from wcomm_categories where id<>0 and parent=:parent:', 0, true, 0, false);
getAllChildsm()
public function getAllChildsm($sql, $parent, $field = 0, $quotes = true, $levels = 100, $level)
Возвращает все дочерние узлы элемента.
$parser->utils->getAllChildsm('select id from wcomm_categories where id<>0 and parent=:parent:', 0, true, 0, false);
getPageParents()
public function getPageParents($id = '', $levels = 10, $table = 'sys_objects', $keyfield = 'objid', $lastobject = '0')
Получение всех родительских узлов объекта страницы.
$id = $parser->pageId; $levels = 10; $startfrom = 0; $parser->utils->getPageParents($id, $levels, 'sys_objects', 'objid', $startfrom);
getPageChilds()
public function getPageChilds($id = '', $levels = 10, $table = 'sys_objects', $keyfield = 'objid', $itself = false)
Получение всех дочерних узлов объекта страницы.
$parser->utils->getPageChilds($parser->pageId,1);
dateToISOformat()
public function dateToISOformat($val = '', $time = false)
Перевод в ISO-формат даты:
$val = adodb_mktime(11, 12, 45, 12, 01, 1997); //Y-m-d print $parser->utils->dateToISOformat($val); //Y-m-d h:i:s print $parser->utils->dateToISOformat($val,true);
isoToDateformat()
public function isoToDateformat($val = '', $time = false, $show_zero = false)
Перевод ISO-формата в формат даты:
//01.12.1997 print $parser->utils->isoToDateformat('1997-12-01 11:12:13'); //01.12.1997 11:12 print $parser->utils->isoToDateformat('1997-12-01 11:12:13',true);
strToDate()
public function strToDate($val)
Перевод в unix-формат даты:
print $parser->utils->strToDate('01.12.1997');
dateToStr()
public function dateToStr($val)
Перевод date/time формат в системный формат пользователя - sys_user_dateformat:
$val = adodb_mktime (0, 0, 0, 12, 01, 1997); // unix-формат print $parser->utils->dateToStr($val);
dateTimeToStr()
public function dateTimeToStr($val)
Перевод date/time формат в системный формат пользователя - sys_user_dateformat:
$val = adodb_mktime (0, 0, 0, 12, 01, 1997); // unix-формат print $parser->utils->dateTimeToStr($val); //отображение даты и времени
toDate()
public function toDate($val = '', $time = false)
Перевод date/time формат в системный формат пользователя - sys_user_dateformat:
$val = adodb_mktime (0, 0, 0, 12, 01, 1997); // unix-формат print $parser->utils->toDate($val); Текущая дата в системном формате пользователя: print $parser->utils->toDate('', true);
shiftDates()
function shiftDates($datetime, $shift_amount = 1, $shift_unit = 'd', $fmt = '')
Добавление к дате дней/месяцев/лет/часов/секунд:
/*$datetime – время в Unix-формате, $shift_amount – число, сколько добавить (вычесть) $shift_unit – что именно добавить (месяц, день и т.д.) months = mo; days = d; years = y; hours = h; minutes = mi; seconds = s; output: 1997-12-01 11:12:45 1997-12-04 11:12:45 */ $datetime = adodb_mktime(11, 12, 45, 12, 01, 1997); print $parser->utils->dateToISOformat($datetime,true); //начальная дата print "
"; $shift_amount = '3'; $shift_unit = 'd'; //к начальной дате добавили 3 дня и вывели в формате Y-m-d h:i:s print $parser->utils->dateToISOformat($parser->utils->shiftDates($datetime, $shift_amount, $shift_unit),true);
checkmail()
public function checkmail($mail)
Проверяет почтовый адрес пользователя на соответствие email-формату.
$email = 'mail@mail.ru'; $parser->utils->checkmail($email)
getUserInfo()
public function getUserInfo($user = 0)
Возвращает данные о текущем пользователе
//получаем массив, каждый ключ которого содержит данные о пользователе print_r($parser->utils->getUserInfo());
getDay()
public function getDay($fld)
Получает день в формате DD в зависимости от типа sql-сервера.
function isMyBirthday() { global $parser; $user = $parser->getUserId(); return $parser->utils->getFieldFromSql("SELECT id FROM wcrmp_contacts WHERE (userid='".$user."') AND (".$parser->utils->getMonth('birthday')."=".date('m').") AND (".$parser->utils->getDay('birthday')."=".date('d').") ", 0); }
getFullday()
public function getFullday($fld)
Получает дату в формате DD.MM.YYYY в зависимости от типа sql-сервера.
function isMyBirthday() { global $parser; $user = $parser->getUserId(); return $parser->utils->getFieldFromSql("SELECT id FROM wcrmp_contacts WHERE (userid='".$user."') AND (".$parser->utils->getMonth('birthday')."=".date('m').") AND (".$parser->utils->getFullDay('birthday')."=".date('d.m.Y').") ", 0); }
getMonth()
public function getMonth($fld)
Получает месяц в формате MM в зависимости от типа sql-сервера.
getYear()
public function getYear($fld)
Получает год в формате YYYY в зависимости от типа sql-сервера.
getYearMonth()
public function getYearMonth($fld)
Получает месяц и год в формате YYYY.MM в зависимости от типа sql-сервера.
getCurrDay()
public function getCurrDay()
Получает текущую дату в зависимости от типа sql-сервера.
orderByRand()
public function orderByRand()
Устанавливает сортировку в sql-выражении в зависимости от типа sql-сервера.
getMonthName()
public function getMonthName($m = 1, $startfromzero = false)
Получение названия месяца на текущем языке:
//февраль print $parser->utils->getMonthName(2);
searchWord()
public function searchWord($fld = '', $word = '')
Поиск слова в зависимости от типа sql-сервера.
createTableFromXml()
public function createTableFromXml($xml, $fromfile = false)
Формирует таблицу из xml-документа.
$filename = "document.xml"; $parser->utils->createTableFromXml($filename, true);
getObjname()
public function getObjname($type = '', $id = '', $list = '')
Получение имени объекта.
$type = "sys_elements_pages"; $id = "forum/index"; $parser->utils->getObjname($type, $id);
updateBlob()
public function updateBlob($table = '', $field = '', $val = '', $keyfield = '', $id = '')
Обновление полей типа blob в зависимости от типа sql-сервера.
$table = 'sys_objects'; //таблица $field = 'extradescr'; //поле, которое необходимо обновить $value = "String"; //значение для поля $keyfield = 'objid'; //ключевое поле таблицы $id = ' forum/index'; //значение ключевого поля таблицы $parser->utils->updateBlob($table, $field, $value, $keyfield, $id);
paginator()
public function paginator($pars = array())
Постраничная навигация записей.
Пример постраничного вывода названий объектов системы.
В контроллере поместите следующий код:
$arr = array(); $totalpages = 0; $pagelen = 10; $page = (isset($this->request['page'])) ? $this->request['page'] : 0; $q = $this->parser->utils->sql(); $q->select('o.objid'); $q->lselect('o.name'); $q->from('sys_objects o'); $sql = $q->getSql(); $pg = $q->parseSql($sql, true); $totalpages = ceil ($pg['rows'] / $pagelen); $numrows = $pg['rows']; if($page >= $totalpages) $page = $totalpages - 1; if($page < 0) $page = 0; if($totalpages > 1) { $ppars = array('page' =>$page, 'numrows' => $numrows, 'pagelen' => $pagelen, 'url' => $this->parser->pageId, 'onclick' => '' ); $this->paginator_html = $this->parser->utils->paginator($ppars); } $rs = $this->parser->conn->SelectLimit($sql, $pagelen, $page * $pagelen); while($row = $rs->FetchRow()) { $arr[] = array('id' => $row[0], 'name' => $row[1] ); } $this->results = $arr;
В представлении поместите отображение списка и ссылки пагинатора:
"; } ?>
updateFromXml()
public function updateFromXml($fullpath ='', $mode = 1, $only_data = true)
Обновление из zip-файла (xml) в зависимости от типа sql-сервера.
$parser->utils->updateFromXml($full_path_to_file);
removeDir()
public function removeDir($dir, $delete_me = true, $delete_htaccess = true)
Удаление каталога.
$parser->utils->removeDir($full_path_to_dir);
copyDirectory()
public function copyDirectory($source = '', $destination = '')
Копирование каталога.
$parser->utils->copyDirectory($full_path_to_ source _dir, $full_path_to_destination_dir);
ruTranslit()
function ruTranslit($string)
Перевод текста на русском языке в транслит.
$string = 'Тест, просто тест'; print $parser->utils->ruTranslit($string);
mround()
public function mround($val = 0, $acc = 0.01)
Округление числа.
print $parser->utils->mround(1235.6734);
getLangswitch()
public function getLangswitch($onchange = '')
Выводит список выбора языков, установленных в системе.
print $parser->utils->getLangswitch();
userdir()
public function userdir($url = false, $base = true)
Возвращает пользовательскую директорию. Эта директория расположена в каталоге userdata/ и имеет формат названия user_'.$userid, где $userid – код (Id) текущего пользователя. В пользовательскую директорию помещаются файлы, которые загружает пользователь.
print $parser->utils->userdir();
numberInWords()
public function numberInWords($number = 0, $curr = 0)
Перевод числа в денежную величину:
$str = '1236'; print $parser->utils->numberInWords($str); //одна тысяча двести тридцать шесть рублей 00 копеек $str = '1236,45'; print $parser->utils->numberInWords($str); //одна тысяча двести тридцать шесть рублей 45 копеек
currencyInfo()
public function currencyInfo($curr = 0)
Получение информации о денежной величине:
//sys_currencies_grn– код (Id) объекта типа данных «Валюты» print_r($parser->utils->currencyInfo('sys_currencies_grn'));
currencyFormat()
public function currencyFormat($value = 0, $curr = 0, $price_sum = false)
Получение отформатированной валюты:
$curr = 45; $valuta = $parser->utils->currencyInfo('sys_currencies_grn'); print $parser->utils->currencyFormat($curr,$valuta); //45,00 грн
csvFormat()
public function csvFormat($string = '', $enclosure = '"')
Получение строки в csv-формате.
$enclosure = ';'; //разделитель между полями $parser->utils->csvFormat(trim($str), $enclosure);
dropdownMenu()
public function dropdownMenu($pars = array())
Отображение dropdown-меню.
$pars = array(); $pars['onchange'] = "postAction('',0)"; $pars['name'] = 'filter_color'; $pars['val'] = $filter_color; //выбранный элемент $pars['colored'] = true; $pars['sql'] = 'SELECT objid, name_'.$parser->lang_suff." FROM sys_objects WHERE ob-jtype='sys_interface_colors' ORDER BY name_".$parser->lang_suff; print $parser->utils->dropdownMenu($pars);
_makeTreeOptions()
public function _makeTreeOptions($sql, $parent = 0, $level = 0, $id = 0, $folder_select = false, $limit = 100)
Построение древовидных options внутри списка выбора (select).
periodMenu()
public function periodMenu($pars = array())
Показывает временные периоды в списке выбора.
$parser->utils->periodMenu();
getPeriod()
public function getPeriod($type = 0, $between = false)
Отображает период (часть строки sql-запроса) между начальной и конечной точками при исполь-зовании фильтра периода.
Например, значение фильтра периода – август:
$filter_period = 18; $parser->utils->getPeriod($filter_period, true); // BETWEEN '2013-08-01' AND '2013-08-31 23:59:00'
finder()
public function finder($pars = array())
Показывает поля для поиска. Пример – карточка объекта.
sendMail()
public function sendMail($pars = array())
Отправляет почтовое сообщение на указанный e-mail.
$pars = array('to' => 'test@mail.ru', 'subject' => strip_tags($parser->gt('subjnewtopic')), 'message' => $parser->gt('messnewtopic') ); $parser->utils->sendMail($pars);
checkIP()
public function checkIP($ip, $band)
Проверка IP-адреса пользователя на соответствие определенному формату.
$parser->utils->checkIP('127.0.0.1');
arrayToXml()
public function arrayToXml($arr, $addHeaders = true)
Преобразование массива в xml-документ.
$res = array('success' => true, 'errormsg' => '', 'data' => 'Data'); $ parser->utils->arrayToXml($res);
login()
public function login($userlogin = '', $password = '')
Аутентификация пользователей (Аутентификация и авторизация пользователя).
$parser->utils->login($userlogin, $password);
sql()
public function sql()
Возвращает wSql-объект.
$parser->utils->sql();
ar()
public function ar($objtype = '', $id = '')
Реализация паттерна Active Record в платформе Wad-er (Примеры работы с WAR).
$obj = $parser->utils->ar('sys_objects'); //Создаём экземпляр класса $obj->fields->objid->newval = 'new_page_id'; // Задаём значения полей $obj->fields->name->newval = 'New page'; $obj->create(); // Добавляем запись
adodb_ar()
public function adodb_ar($objtype = '')
Использование возможностей библиотеки ADO DB для реализации паттерна Active Record в плат-форме Wad-er (Примеры работы с ADOdb Active Record).
Пример создания записи
$object = $parser->utils->adodb_ar('sys_objects'); foreach($object->getAttributeNames() as $sVal) $object->$sVal = 1; $object->objid = 't_page'; $object->objtype = 'sys_elements_pages'; $object->name_en = 'Page'; $object->name_ru = 'Страница'; $object->save();
getReminderScript()
public function getReminderScript()
Подключает javascript-код для отображения pop-up окна.
$parser->utils-> getReminderScript();
addjq()
public function addjq()
Подключает jquery-скрипт.
$parser->utils-> addjq ();
addjqui()
public function addjqui()
Подключает jqueryui-скрипты.
$parser->utils-> addjqi ();
apiclientInfo()
public function apiclientInfo($id = '')
Возвращает информацию об API клиенте.
$parser->utils->apiclientInfo($apiclientid);
formValidator()
public function formValidator($formname = '', $submitbuttonid = '', $fields = array())
Проверяет, заполнены ли поля формы, обязательные для заполнения.
$fields = array(); $fields[] = array('topicname', $parser->gt('name'), "''"); $parser->utils->formValidator('topicform', 'submitbutton', $fields);
aes256Decrypt()
public function aes256Decrypt($key, $data)
Дешифрует зашифрованный с помощью ключа текст.
$parser->utils->aes256Decrypt ($key, base64_decode($enc_request)));