Контроллеры: различия между версиями

Материал из GLENN CMS WIKI
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 13 промежуточных версий этого же участника)
Строка 1: Строка 1:
Контроллеры это функциональные части плагина.
Контроллеры это функциональные части плагина.


==Описание==
Контроллер должен хранится в папке плагина /controllers
Контроллер должен хранится в папке плагина /controllers


Строка 18: Строка 19:




==Переменные доступные внутри контроллера==
===Переменные доступные внутри контроллера===


$this->view - ссылка на объект SMARTY
$this->view - ссылка на объект SMARTY
Строка 26: Строка 27:
$this->user_data - хранилище пользовательских данные, аналог $_SESSION только представлена в объектном виде. т.е. к свойствам мы обращаемся как к $this->user_data->id
$this->user_data - хранилище пользовательских данные, аналог $_SESSION только представлена в объектном виде. т.е. к свойствам мы обращаемся как к $this->user_data->id


$this->params - ссылка на массив с параметрами запроса, агрегирует в себе данные из $_GET и $_POST


==Инициализация контроллера==
 
===Инициализация контроллера===


При инициализации контроллера его конструктор автоматически запускает методы  
При инициализации контроллера его конструктор автоматически запускает методы  


  initController()
  initController() - можно использовать для инициализации различных необходимых в работе переменных
  initModel()
  initModel() - служит для инициализации [[Модель|моделей]]
 
 
===Полезные методы===
 
Внутри контроллера есть множество полезных методов(методы наследуются от [[CmsBaseController]]), такие как
 
isAjaxRequest() - вернёт true в случае если страницу запросили через AJAX
 
setSkin($skin_name) - меняет [[skins|скин]]
 
doRedirect($url) - выполняет редирект на другую страницу
 
[[AJAX|useAjaxView()]] - в случае вызова этой функции внутри экшна, вывод пойдёт без оформления подробнее про обработку AJAX запросов можно почитать [[AJAX|тут]]
 
initBootStrap() - активирует CSS фрэймворк BootStrap
 
initJquery() - активирует JQuery
 
initModel() - вызывается конструктором и служит для определения модели внутри контроллера
 
[[logger]]($message) - записывает любое сообщение в /log.txt (служит для дебага)
 
[[renderTpl]]($tpl_name) - отрисовывает TPL, автоматически выбирая откуда её брать подробнее про неё [[renderTpl|тут]]
 
disableLayout() - отключает вывод через шаблонизатор
 
detectBrowser() - определяет браузер. Устанавливает переменные контроллера $this->browser и $this->browser_version, переменные также доступны в среде Smarty под своими именами.
 
[[SimpleAuth|simpleAuth()]] - простейшая авторизация отрисовывает бокс с вводом логина и пароля. Затем проверяет соотетствие их переменным $config['admin_login'] $config['admin_password'] и в случае совпадения устанавливает [[user_data|$user_data]]->admin = true

Текущая версия от 15:08, 6 марта 2013

Контроллеры это функциональные части плагина.

Описание

Контроллер должен хранится в папке плагина /controllers

Контроллер должен обязательно называться <Имя контроллера>Controller.php т.е. в случае контроллера user имя файла должно выглядеть как UserController.php

Контроллер должен быть отнаследован от класса SiteBaseController

Название контроллера в коде должно формироваться из имени плагина + имени контроллера т.е. если мы создаём контроллер UserController в плагине Contragents, то наш контролер должен называться как

Contragents_UserController

<?php
class Contragents_UserController extends SiteBaseController {
}
?>


Переменные доступные внутри контроллера

$this->view - ссылка на объект SMARTY

$this->config - ссылка на конфиг

$this->user_data - хранилище пользовательских данные, аналог $_SESSION только представлена в объектном виде. т.е. к свойствам мы обращаемся как к $this->user_data->id

$this->params - ссылка на массив с параметрами запроса, агрегирует в себе данные из $_GET и $_POST


Инициализация контроллера

При инициализации контроллера его конструктор автоматически запускает методы

initController() - можно использовать для инициализации различных необходимых в работе переменных 
initModel() - служит для инициализации моделей


Полезные методы

Внутри контроллера есть множество полезных методов(методы наследуются от CmsBaseController), такие как

isAjaxRequest() - вернёт true в случае если страницу запросили через AJAX

setSkin($skin_name) - меняет скин

doRedirect($url) - выполняет редирект на другую страницу

useAjaxView() - в случае вызова этой функции внутри экшна, вывод пойдёт без оформления подробнее про обработку AJAX запросов можно почитать тут

initBootStrap() - активирует CSS фрэймворк BootStrap

initJquery() - активирует JQuery

initModel() - вызывается конструктором и служит для определения модели внутри контроллера

logger($message) - записывает любое сообщение в /log.txt (служит для дебага)

renderTpl($tpl_name) - отрисовывает TPL, автоматически выбирая откуда её брать подробнее про неё тут

disableLayout() - отключает вывод через шаблонизатор

detectBrowser() - определяет браузер. Устанавливает переменные контроллера $this->browser и $this->browser_version, переменные также доступны в среде Smarty под своими именами.

simpleAuth() - простейшая авторизация отрисовывает бокс с вводом логина и пароля. Затем проверяет соотетствие их переменным $config['admin_login'] $config['admin_password'] и в случае совпадения устанавливает $user_data->admin = true