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. Настройки проекта. "Магический" файл app/i.php

    project/app/i.php - файл персональных функций и констант проекта. Файл, содержащий настройки проекта, которые должны быть выполнены обязательно вне зависимости от запроса. Например, подключение к базе данных или объявление собственных функций или констант проекта.

    Содержимое файла по умолчанию:

    <?php
    outGenPageTime('start i.php');
    
    // логика...
    
    outGenPageTime('end i.php');
    

    Здесь также происходит формирование пунктов бокового меню внутренней части кабинета сервиса, через глобальную переменную $leftmenu (для дизайнов кабинета CABINET_VERSION = 20 и 21).

    Пример структуры бокового меню:

    global $leftmenu, $ioSession, $ioProjects;
    $leftmenu['cabinet'] = [
        'plans' => [
            'icon' => 'icon-reorder',
            'href' => UrlGetAdd('/cabinet/plans', 'account', $ioSession->user->account),
            'title' => 'Бизнес планы',
            'visible' => true,
            'selected' => false,
            'subitems' => [
                /*
                'answers' => [
                    'type' => 'link', // link, divider, js
                    'href' => UrlGetAdd('/options/olymp/answers', 'account', $ioSession->user->account),
                    'title' => 'Ответы',
                    'tooltip' => 'Ответы участников олимпиады',
                    'target_blank' => false,
                    'visible' => true,
                    'selected' => false,
                    'disabled' => false,
                ],
                [
                    'type' => 'divider', // link, divider, js
                    'visible' => true,
                ],
                */
            ],
        ],
        'help' => [
            'icon' => 'icon-question-sign',
            'href' => UrlGetAdd('/cabinet', 'account', $ioSession->user->account),
            'title' => 'Помощь',
            'visible' => true,
            'selected' => false,
            'subitems' => [
                'pagetour' => [
                    'type' => 'js', // link, divider, js
                    'class' => 'start-page-tour-btn',
                    'title' => 'Тур по странице',
                    'tooltip' => '',
                    'target_blank' => false,
                    'visible' => true,
                    'selected' => false,
                    'disabled' => false,
                ],
                [
                    'type' => 'divider', // link, divider, js
                    'visible' => true,
                ],
                'help' => [
                    'type' => 'link', // link, divider, js
                    'href' => UrlGetAdd('/cabinet/help', 'account', $ioSession->user->account),
                    'title' => 'Инструкции',
                    'tooltip' => '',
                    'target_blank' => false,
                    'visible' => true,
                    'selected' => false,
                    'disabled' => true,
                ],
                'help2' => [
                    'type' => 'link', // link, divider, js
                    'href' => xarr($ioProjects, 'help'),
                    'title' => 'База знаний',
                    'tooltip' => '',
                    'target_blank' => true,
                    'visible' => true,
                    'selected' => false,
                    'disabled' => false,
                ],
                'support' => [
                    'type' => 'link', // link, divider, js
                    'href' => UrlGetAdd(xarr($ioProjects, 'ticket').'/cabinet', 'account', $ioSession->user->account),
                    'title' => 'Служба поддержки',
                    'tooltip' => '',
                    'target_blank' => true,
                    'visible' => true,
                    'selected' => false,
                    'disabled' => false,
                ],
            ],
        ],
    ];
    
    Prev
    Функции фреймворка
    Next
    Настройки composer