Административная часть сайта

Инициализация административной части похожа на инициализацию пользовательской части сайта. Но имеет свои особенности из-за различия структуры модуля и доступа к данным.

Если файл index.php определил, что запрошена административная часть, то подключается файл adm/index.php. Файл выполняет следующие функции:

  1. подключение всех «жизненно важных» файлов;
  2. инициация основного объекта системы.

Основной объект системы – экземпляр класса Init_admin, описанный в файле adm/includes/init.php.

При инициации основного объекта системы происходит:

  1. старт сессии;
  2. определение пользователя и проверка доступа к административной части;
  3. определение языковой версии данных для редактирования;
  4. определение модуля;
  5. подключение администрирования модуля;
  6. подключение шаблона административной части.

Экземпляр класса Init_admin передается во все другие объекты и доступен из любого места системы в виде переменной $this->diafan.

Таким образом, в любом месте системы можно получить глобальные данные:

  1. общие данные;
  2. общие функции;
  3. объекты классов-подключений.

Теперь подробнее об этих данных:

Общие данные

  • $this->diafan->installed_modules – массив данных с установленными модулями;

    Пример:

    if(in_array('search', $this->diafan->installed_modules))
    {
        
    // модуль «Поиск на сайте» установлен и можно к нему обращаться
    }
  • $this->diafan->rewrite_variable_names – список всех переменных, доступных для использования в URL;
  • $this->diafan->current_module – модуль текущего исполняемого файла.

Общие функции

Класс Init_admin наследует абстрактный класс Core (includes/core.php). Все функции этого класса можно вызвать в виде:

$this->diafan->название_функции();

Пример:

// обрезаем текст до 50 символов, сохраняя полными слова на конце
$short_text = $this->diafan->short_text($text, 50);

Объекты классов-подключений

В основном объекте инициируются классы:

  • кеширование (класс Cache, файл includes/cache.php, вызывается $this->diafan->_cache) – вся работа с кэшем;
  • маршрутизатор (класс Route, файл includes/route.php, вызывается $this->diafan->_route) – доступ к переменным, передаваемым в URL, а также генерирование, сохранение, получение ЧПУ;
  • шаблоны модулей (класс Template, файл includes/template.php, вызывается $this->diafan->_tpl) – подключение шаблонов модулей, обработка текста из визуального редактора;
  • парсер шаблонных тегов (класс Parser_theme, файл includes/parser_theme.php, вызывается $this->diafan->_parser_theme) – подключает шаблонные теги, прописанные в виде тегов в шаблонах сайта и непосредственно в тексте визуального редактора.

Кроме того, через основной объект можно обратиться к любому модулю-подключению. Если в модуле есть файл modules/модуль/модуль.inc.php, где описан класс Модуль_inc, то при первом обращении к переменной $this->diafan->_модуль, создаётся экземпляр класса.

Выделим отдельно подключения модулей, относящихся к ядру системы:

  • cтраницы админки – используется для получения данных о текущей странице в административной части.

    Пример:

    • $this->diafan->_admin->rewrite – ЧПУ текущей страницы;
    • $this->diafan->_admin->module – модуль, прикрепленный к текущей странице.
  • пользователи сайта – используется для получения сведений о текущем пользователе.

    Пример:

    • $this->diafan->_users->id – id-номер текущего пользователя;
    • $this->diafan->_users->name – логин текущего пользователя;
    • $this->diafan->_users->fio – ФИО текущего пользователя.
  • языки сайта – используется для получения сведений о языках сайта, главной языке административной и пользовательской частей сайта и получение перевода интерфейса.

    Пример:

    • $this->diafan->_languages->all – массив данных обо всех языках, использующихся на сайте;
    • $this->diafan->_languages->site – номер языка, использующегося как основной на сайте;
    • $this->diafan->_languages->admin – номер языка, использующегося как основной в административной части.
Ваши комментарии и дополнения

Ваш комментарий будет первым.

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.