Класс 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)));