BMC IO DocsBMC IO Docs
IO v6
IO v7
Notes
Docs
IO v6
IO v7
Notes
Docs
  • IO Framework v6

    • О фреймворке
    • Уроки
    • Структура
    • Доступ к участкам проекта
    • Старые версии фреймворка
    • Разворачивание нового проекта
  • Backend

    • Функции фреймворка
    • Настройки проекта (app/i.php)
    • Настройки composer
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • IOCore класс
    • Controller и работа с ними
    • Class и работа с ними
    • Model и работа с ними
    • View и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioSession->user и работа с пользователем
    • $ioHash и работа с кешем
    • $ioXCache и работа с кешем
    • $iodb и работа с базой данных
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • JS плагины
    • Отложенная загрузка JS скриптов
    • Обращение к Model через JS
  • Примеры

    • AutoIncrement, зависящий от полей

IO v6. Глобальные переменные

  • $ioProjects
  • $ioProjectsIP
  • $ioSession
  • $ioData
  • $ioPage
  • $ioEnum
  • $ioLangs
  • $ioHash
  • $ioXCache
  • $purifier
  • $twig
  • $iodb
  • $capsuledb

$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.

Документация по возможностям переменной:

  • Database
    • Running Queries
    • Database Transactions
    • Accessing Connections
    • Query Logging
  • Query Builder
    • Selects
    • Joins
    • AdvancedWheres
    • Aggregates
    • Raw Expressions
    • Inserts
    • Updates
    • Deletes
    • Unions
    • Pessimistic Locking

Пример:

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();
Prev
Настройки composer
Next
Константы фреймворка