Контроллеры: различия между версиями
V0yager (обсуждение | вклад) Нет описания правки |
V0yager (обсуждение | вклад) |
||
(не показано 18 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Контроллеры это функциональные части плагина. | Контроллеры это функциональные части плагина. | ||
==Описание== | |||
Контроллер должен хранится в папке плагина /controllers | Контроллер должен хранится в папке плагина /controllers | ||
Строка 12: | Строка 13: | ||
Contragents_UserController | Contragents_UserController | ||
<?php | <?php | ||
class Contragents_UserController extends SiteBaseController { | |||
} | |||
?> | |||
===Переменные доступные внутри контроллера=== | |||
$this->view - ссылка на объект SMARTY | |||
$this->config - ссылка на [[config.php|конфиг]] | |||
$this->user_data - хранилище пользовательских данные, аналог $_SESSION только представлена в объектном виде. т.е. к свойствам мы обращаемся как к $this->user_data->id | |||
$this->params - ссылка на массив с параметрами запроса, агрегирует в себе данные из $_GET и $_POST | |||
===Инициализация контроллера=== | |||
При инициализации контроллера его конструктор автоматически запускает методы | |||
initController() - можно использовать для инициализации различных необходимых в работе переменных | |||
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