IO v6. Глобальные переменные
$ioProjects
Переменная-массив, хранящая в себе список URL адресов проектов платформы по ключу.
Пример:
global $ioProjects;
echo $ioProjects['com']; // отобразит //cab.kdt.kz
echo $ioProjects['com.notice']; // отобразит //notice.kdt.kz
Инициализация данной глобальной переменной осуществляется во фреймворке в файле project/app/io/api.php.
$ioProjectsIP
Переменная-массив, хранящая в себе список разрешенных IP адресов серверов для общения проектов (IP адреса, с которых разрешено принимать запросы).
Инициализация данной глобальной переменной осуществляется во фреймворке в файле project/app/io/api.php.
$ioSession
Переменная-объект, хранящая в себе данные о пользователе (авторизованном и неавторизованном), а также данные его аккаунтов и их полномочия.
$ioData
Переменная-массив, хранящая в себе множество различных данных (контекст), которые передаются в отображаемую страницу через render. Содержимое генерируется в методе IOCore::bildIOData().
Содержит как минимум следующие данные:
{
"SERVER": "$_SERVER",
"COOKIE": "$_COOKIE",
"user": {
"account": "$ioSession->user->account",
"accounts": "$ioSession->user->accounts",
"p_account": "$ioSession->user->p_account",
"account-info": "xarr($ioSession->user->accounts, $ioSession->user->account)",
"user-info": "$ioSession->user->info",
"settings": "$ioSession->user->settings",
"avatar": {
"avaIsset": "bool",
"..."
},
"login": "$ioSession->user->login",
"login_hash": "$ioSession->user->login_hash",
"id": "$ioSession->user->id",
"delegate": "$ioSession->user->delegate",
"isGuest": "$ioSession->isGuest()",
"isPupil": "$ioSession->user->isPupil()",
"isTeacher": "$ioSession->user->isTeacher()",
"isParent": "$ioSession->user->isParent()",
"isPartner": "$ioSession->user->isPartner()",
"isPartner2": "$ioSession->user->isPartner2()",
"timezone": "$ioSession->user->timezone"
},
"session_jwt_cookie_name": "$ioSession->cookie_name",
"viewplatform": "xarr($_COOKIE, 'platform')",
"IOPROJECT": "IOPROJECT",
"IOENABLECDN": "IOENABLECDN",
"ioProjects": "$ioProjects",
"ioLangs": "$ioLangs",
"languages": "IOCore::$languages",
"currentlang": "IOCore::$currentlanguage",
"currentlanguage": "IOCore::$currentlanguage",
"dictionary": "IOCore::$dictionary",
"translate": "self::getTranslate()",
"ioEnum": "$ioEnum",
"CMS_STAT_ENABLE": "CMS_STAT_ENABLE",
"CMS_BOOTSTRAP_DEFAULT_VERSION": "CMS_BOOTSTRAP_DEFAULT_VERSION",
"TIMESTART": "TIMESTART"
}
Пример использования в twig:
{{ ioProjects['com'] }}
{{ user.login }}
$ioPage
Переменная-объект, хранящая в себе все данные (контекст), которые передаются в отображаемую страницу через render.
Пример:
global $ioPage;
$ioPage->hello_world = 'example text';
{{ hello_world }}
$ioEnum
Переменная-массив, хранящая в себе все константы платформы.
Пример:
global $ioEnum;
echo $ioEnum['invoices_types']; // отобразит массив типов инвойсов для проекта trade
echo $ioEnum['invoices_statuses']; // отобразит массив статусов инвойсов для проекта trade
echo $ioEnum['genders']; // отобразит массив полов
echo $ioEnum['currencies']; // отобразит массив валют
Заполнение данной глобальной переменной осуществляется во фреймворке в файлах project/app/io/app/i.sys.php, project/app/io/app/i.cms.php. project/app/io/app/i.social.php и в проекте в файле project/app/i.php.
$ioLangs
Переменная-массив, хранящая в себе список всевозможных языков в формате "ключ: значение". В качестве ключа используется два символа (код) языка. В качестве значения используется название языка по английски.
Пример:
global $ioLangs;
echo $ioLangs['ru']; // отобразит Russian
echo $ioLangs['kz']; // отобразит Kazakh
echo $ioLangs['en']; // отобразит English
Инициализация данной глобальной переменной осуществляется во фреймворке в файле project/app/io/api.php.
$ioHash
Переменная-объект для управления кешированными данными. Данные кеша хранятся в базе данных MySQL (в таблице hash).
$ioXCache
Переменная-объект для управления кешированными данными. Данные кеша хранятся в Memcached либо в базе данных MySQL (в таблице hash).
$purifier
Переменная-объект библиотеки HTMLPurifier v.4.5.0, служащая для "очистки" текста по определенным правилам. В основном это нужно в CMS, чтобы какой-то скрипт, добавленный через редактор "карандаш" не мог запуститься. Запрещенный контент будет очищен.
Инициализация данной глобальной переменной, а также ее настройка осуществляются во фреймворке в файле project/app/io/api.php.
Пример использования:
global $purifier;
$dirty_html = '...'; // какой-то "грязный" html код
$clean_html = $purifier->purify($dirty_html);
$twig
Переменная-объект, позволяющая работать с Twig. В ней содержится объект класса Twig_Environment().
$iodb
Переменная-объект для обращения к базе данных MySQL. Также позволяет писать SQL запросы в базу данных.
$capsuledb
Переменная-объект для обращения к базе данных MySQL. Использует Laravel Illuminate\Database\Capsule\Manager с Eloquent ORM (конструктор запросов из Laravel).
Инициализация данной глобальной переменной осуществляется во фреймворке в файлах project/app/io/api.php и project/app/io/app/i.sys.php.
Документация по возможностям переменной:
Пример:
global $capsuledb;
// updateOrInsert()
$r = $capsuledb->table('io_sequence')->updateOrInsert(
[
'table' => 'invoices',
'field' => 'invoice_number',
'company_pkid' => intval(xarr($c, 'company_pkid')),
],
[
'seq' => $capsuledb::raw('`seq` + 1'),
]
);
// first()
$r = $capsuledb->table('io_sequence')->where([
['table', '=', 'invoices'],
['field', '=', 'invoice_number'],
['company_pkid', '=', intval(xarr($c, 'company_pkid'))],
])->first();