All requests to enter the system in the first place on the file index.php. The file has the following functions:
The main system object – an instance of the class Init, described in the file includes/init.php.
When initiating a main object of the system takes place:
An instance class Init transmitted to all other facilities and is accessible from any location of system in the form of variable $this->diafan
.
Таким образом, в любом месте системы можно получить глобальные данные:
Теперь подробнее об этих данных:
$this->diafan->installed_modules
– массив данных с именами модулей, которые подключены к фронтенду сайта (в таблице {modules} сделала запись о модуле name=модуль, site='1');
Example:
if(in_array('cart', $this->diafan->installed_modules))
{
// модуль «Корзина товаров» установлен и можно к нему обращаться
}
$this->diafan->rewrite_variable_names
– список всех переменных, доступных для использования в URL;$this->diafan->current_module
– модуль текущего исполняемого файла;$this->diafan->current_insert_tag
– текущий шаблонный тег.Класс Init наследует абстрактный класс Core (includes/core.php). Все функции этого класса можно вызвать в контроллере и модели модуля в виде:
$this->diafan->название_функции();
Example:
// редирект на главную страницу
$this->diafan->redirect('/');
// получение сообщения для пользователя, заданного в настройках модуля «Обратная связь»
$message = $this->diafan->configmodules('add_message', 'feedback');
В основном объекте инициируются классы:
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траницы сайта – используется для получения данных о текущей странице и переопределение их в модуле.
Example:
$this->diafan->_site->id
– номер текущей страницы;$this->diafan->_site->module
– модуль, прикрепленный к текущей странице;$this->diafan->_site->text
– контент текущей страницы.пользователи сайта – используется для получения сведений о текущем пользователе.
Example:
$this->diafan->_users->id
– id-номер текущего пользователя;$this->diafan->_users->name
– логин текущего пользователя;$this->diafan->_users->fio
– ФИО текущего пользователя.языки сайта – используется для получения сведений о языках сайта, главной языке административной и пользовательской частей сайта и получение перевода интерфейса.
Example:
$this->diafan->_languages->all
– массив данных обо всех языках, использующихся на сайте;$this->diafan->_languages->site
– номер языка, использующегося как основной на сайте;$this->diafan->_languages->admin
– language number, which is used as the basic admin part.