Контроллер

Контроллер модуля – класс Модуль в файле modules/модуль/модуль.php.

В классе описаны следующие функции:

  • init – инициализация модуля;

  • show_module – вывод контента модуля;

  • шаблонные функции.

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

1. Определение переменных, передаваемых в URL, которые используются в модуле.

Пример:
$this->rewrite_variable_names = array('page', 'show', 'cat''sort', 'param');
$this->diafan->rewrite_variable_names = $this->rewrite_variable_names;

2. Подключение модели и выбор функции модели модуля в зависимости от переданных параметров.

Пример:
// создаем экземпляр объекта модели модуля «Магазин» 
$model = new Shop_model($this->diafan);  
// если в URL передана переменная show, вызываем функцию id в моделе – показываем страницу товара 
if($this->diafan->show)  
{  
    $this
->result = $model->id();  
}  
// иначе вызываем функцию list_ в модели – выводим список товаров 
else  
{  
    $this
->result = $model->list_();  
} 

3. Определение глобальных переменных.

Глобальные переменные модуля – заголовок страницы, навигация «Хлебные крошки», время редактирования страницы, ключевые слова, описание страницы, спрятать ссылки на предыдущую, последующую страницы. Подробнее смотрите в разделе «Инициализация системы».

Пример: $this->get_global_variables();

В примере используется стандартная функция из класса Controller. Вместо этого можно использовать свой алгоритм.

Функция вывода конента модуля вызывается из общей шаблонной функции show_body. Её основное назначение – в зависимости от переданных параметров вызвать функцию в шаблоне модуля.

Функции шаблона вызываются с помощью подключения шаблонов.

Пример:
// если в URL передана переменная show, вызываем функцию id в шаблоне – показываем страницу товара  
if($this->diafan->show

    $this->diafan->_tpl->get('id', 'shop', $this->result); 

// иначе вызываем функцию list_ в шаблоне – выводим список товаров 
else 

    $this->diafan->_tpl->get('list_', 'shop', $this->result); 
}

Данные, сгенерированные в модели передаем в шаблон с помощью свойства класса $result.

Шаблонные функции модуля – определяются условия, при которых функция не отображается, фильтруются полученные атрибуты, подключается соответствующие функции в модели и представлении модуля. Подробнее смотрите в разделе «Как добавить шаблонный тег».

Класс Controller

Контроллер модуля наследует класс Controller – это каркас для всех страниц.

Свойства

array $rewrite_variable_names

  • var: переменные, передаваемые в URL страницы

  • access: public

array $result

  • var: сгенерированные в модели данные, передаваемые в шаблон

  • access: protected

object $diafan

  • var: основной объект системы

  • access: protected

Методы

void init () – инициализация модуля.

  • access: public

void show_module () – выводит шаблон модуля.

  • access: public

boolean true get_global_variables () – определяет свойства страницы, если они заданы в модуле.

  • access: protected

array get_attributes (array $attributes) – задает неопределенным атрибутам шаблонного тега значение по умолчанию.

  • access: protected

  • array $attributes: массив определенных атрибутов



Не понятно? Уточните