понедельник, 7 ноября 2011 г.

Создание расширения для CMS Joomla 1.7. Класс JController Часть 2.1

В предыдущих статьях мы начали создавать компонент под названием “Hello World”. В статье “Создание расширения для CMS Joomla 1.7. Введение.” мы рассмотрели основные типы расширений. И уже в посту “Создание расширения для CMS Joomla 1.7. Часть 1” мы создали наш первый компонент, который не несет никакой функциональной нагрузки, но который нам дал хорошее представление о структуре расширения для CMS Joomla.  А вот в следующем материале мы уже начали создавать контроллер, применив класс JController. Вот об этом классе мы с Вами дальше и поговорим. Да, я понимаю, что это нудно и статья - это в основном перевод официальной документации, но что делать дальше без базовых знаний про класс JController двигаться нельзя. Да и создавать расширения для CMS Joomla без класса JController у нас не получиться. Так, что вперед за новыми знаниями...

Класс JController является подклассом JObject и представляет такие базовые функции как отображение шаблонов.
Прямые потомки данного класса:
    JControllerForm - специальный контроллер для работы с формами в административной части сайта.
    JControllerAdmin - базовый класс для контроллеров администратора Joomla.
Переменные:
  1. string $basePath - базовый путь контроллера
  2. string $default_view - по умолчанию для метода отображения
  3. string $doTask - отображается задача, которая была выполнена
  4. string $message - перенаправление сообщения
  5. string $messageType - перенаправление типа сообщения
  6. array $methods - массив методов класса
  7. string $model_prefix - префикс для модели
  8. array $name - массив имен контроллеров
  9. array $paths - набор путей для поиска представлений
  10. string $redirect - URL для перенаправления
  11. string $task - текущая или последняя выполненная задача
  12. array $taskMap - массив методов класса из задачи
  13. string $_acoSection - ACO раздел для контроллера
  14. string $_acoSectionValue - по умолчанию значение ACO раздела для контроллера

Методы:  
  1. Constructor __construct
    JController__construct ([array $config = array()])
array $config: Дополнительный ассоциативный массив параметров конфигурации, включает в себя 'name', 'default_task', 'model_path', and 'view_path'
  1. addModelPath  - Добавляет к стеку модели пути для LIFO.
    void addModelPath (mixed $path, [string $prefix = ''])
mixed $path: каталог или список каталогов для добавления
string  $prefix: префикс для модели            
  1. addPath - Добавляет пути поиска шаблонов и ресурсов.
    JController addPath (string $type, mixed $path)
string $type: тип пути (например “model” или “view”)
mixed $path: путь к каталогу или пути к каталогам             
  1. addViewPath - добавляет один или несколько путей для LIFO
    JController addViewPath (mixed $path)
mixed $path: каталог строка или каталоги массив             
  1. authorise - проверка авторизации
    boolean authorise(string $task)
string $task: значение ACO раздела для проверки авторизации            
  1. authorize - проверка авторизации
    boolean authorize(string $task)
    string $task: начение ACO раздела для проверки авторизации
  1. checkEditId - Метод проверки, является ли идентификатор в списке редактирования.
    boolean checkEditId (string $context, integer $id)
string $context: контекст для хранения сессии
integer     $id:  индентификатор записи
  1. createFileName - создает файл для ресурса
    string createFileName(string $type, [array $parts = array()])
string $type: тип ресурса для создания файла
array $parts: ассоциативный массив для              
  1. createModel - метод для загрузки и возвращения объектов модели
    mixed createModel (string $name, [string $prefix = ''], [array $config = array()])
    string $name: название модели.
    string $prefix: дополниетельный префикс модели
    array $config: массив конфигурации для модели
  1. createView - Метод для загрузки и возвращения отображения. Этот метод сначала ищет в текущем каталоге шаблона для отображения и, если не находит, то используется путь по умолчанию.
    mixed createView(string $name, [string $prefix = ''], [string $type = ''], [array $config = array()])
    string $name: имя представления
    string $prefix: дополнительный префикс представления
    string $type: тип представления
array $config: массив конфигурации для представления
  1. display - Типичный метод представления для MVC архитектуры
    JController display([boolean $cachable = false], [array $urlparams = false])            
    boolean $cachable: если истино, то выходные данные будут храниться в кеше
    array $urlparams: Массив безопасных параметров URL и их типы переменных
  1. execute - Выполние задачи,, вызывая метод в производном классе.
    mixed     execute(string $task)            
    string $task: задача на выполнение
  1. getInstance - Метод для получения статического экземпляра контроллера.
    mixed getInstance (string $prefix, [array $config = array()])            
    string $prefix: префикс для контроллера
array $config: массив дополнительных опция для конструктора
  1. getModel - Метод для получения модели объекта, загружая его в случае необходимости.
    object The getModel([string $name = ''], [string $prefix = ''], [array $config = array()])
    string $name: имя модели
    string $prefix: префикс класса
    array $config: массив конфигурации для модели
  1. getName - метод для получения имени контроллера
    string getName()
  1. getTask - получает массив доступных задач в контроллере
    array getTasks()            
  1. getView - Метод для получения ссылки на текущее отображение и загружает его, если необходимо.
    object Reference getView([string $name = ''], [string $type = ''], [string $prefix = ''], [array $config = array()])            
    string $name: имя представления
string $type: тип представления
string $prefix: префикс класса
array $config: массив конфигурации для представления  
  1. holdEditId - Метод для того, чтобы добавить запись с ID в список редактирования.
    void holdEditId(string $context, integer $id)            
    string $context: Контекст для хранения сессии.
    integer     $id: индентификатор записи для добавления в список редактирования
  1. redirect - перенаправление или возвращает ложь, если перенаправление не установлено
    boolean redirect()            
  1. registerDefaultTask - регистрация задачи по умолчанию
    JController registerDefaultTask(string $method)            
    string $method: Название метода в производном классе для выполнения, если названной задачи не найдено.
  1. registerTask  - регистрация задачи метода в классе
    JController registerTask(string $task, string $method)
string $task: задача
string $method: Имя метода в производном классе для выполнения этой задачи.   
  1. releaseEditId - Метод проверки, является ли идентификатор в списке редактирования.
    void releaseEditId(string $context, integer $id)            
    string $context: контекст для хранения сессии
    integer     $id: Идентификатор записи для добавления в список редактирования.
  1. setAccessControl - устанавливает уровни контроля доступа
    void setAccessControl(string $section, [string $value = null])
string $section: Раздел ACO (например, компонент).
string $value: Значение ACO раздел (если используется постоянная величина).     
  1. setMessage - Устанавливает внутреннее сообщение, которое передается с перенаправлением
    string setMessage(string $text, [string $type = 'message'])            
    string $text: сообщение для отображения
string $type: тип сообщения
  1. setPath - устанавливает массив путей поиска ресурсов
    void setPath(string $type, string $path)            
    string $type: новый набор путей поиска.
  1. setRedirect - устанавливает URL для переадресации браузера
    JController setRedirect(string $url, [string $msg = null], [string $type = null])             string $url: адрес переадресации
string $msg: Сообщение для отображения при перенаправлении.  
string $type: тип сообщения
  1. unregisterTask - отменяет задачу в классе
    JController unregisterTask(string $task)            
    string $task: задача
 
Вот мы и рассмотрели базовый класс JController, который так необходим для создания расширений для CMS Joomla. Статья получилась нудной, я это знаю, за что и приношу свои извинения. И многие моменты сейчас будут нам непонятны, но дальше, когда мы будем наращивать функционал нашего компонента все встанет по своим местам и Вы поймете, что не все так сложно и запутано.
Если у Вас есть дополнения и замечания к переводу пишите в комментариях мы обязательно это обсудим.
В следующем посте мы с Вами поговорим о еще одном базовом классе, необходимым для создания расширений для CMS Joomla, JView.

Понравилась статья? Поблагодарить автора:

Введите e-mail адрес:



0 коммент.:

Отправить комментарий