Разрботка расширений для CMS Joomla
Шрифт:
Получение ссылки на объект-представитель одной из добавленных к представлению моделей
JModel getModel(string $name = null)
где $name - имя модели.
Например, добавим в коде контроллера к представлению SomeView модели Model1 и Model2:
$view = &$this->getView('SomeView', 'html'); $view->setModel($this->getModel('Model1'), true); $view->setModel($this->getModel('Model2'));
Получение
mixed get(string $property, string $default = null)
где
$property - название метода модели, который требуется вызвать, или поля представления. В первом случае будет вызван метод get<Название метода> - обратите внимание на заглавную букву; $default - если данные должны быть получены из модели, то $default - имя модели. Если требуется получить значение поля, то $default - значение, которое будет возвращено, если такое поле отсутствует.
Например, если в модели, заданной для текущего представления по умолчанию, есть метод getValue, то получить в классе представления возвращаемое им значение можно так:
$temp = &$this->get('value');
Связывание переменной с представлением
bool assignRef(string $key, mixed &$val)
где
$key - имя поля объекта-представителя представления. Не может начинаться со знака подчеркивания; $val - значение поля.
Пример:
$view->assignRef('somevar', $someval);
Выполнение и отображение скрипта шаблона
void display(string $tpl = null) string loadTemplate(string $tpl = null)
где $tpl - имя файла шаблона. Конкретное имя файла зависит от значений имени и расширения макета, заданных в классе, по умолчанию это соответственно default и php. Если вы хотите изменить эти значения, используйте методы setLayout и setLayoutExt. Будет произведен поиск файла <имя макета>_<$tpl>.<расширение макета> или при $tpl=null <имя макета>.<расширение макета>.
display выводит на экран результат работы скрипта шаблона, а loadTemplate только возвращает этот результат. При ошибке display возвращает объект Exception.
Например:
echo $view->loadTemplate('mytpl');
отобразит результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/tmpl/default_mytpl.php.
JController
Выполнение задачи путем вызова одноименного метода производного класса
mixed execute(string $task)
где $task - имя задачи. Если такой задачи не найдется, будет выполнена задача "__default".
Метод возвращает
Например, код
$controller->execute('addItem');
приведет к вызову метода addItem контроллера $controller.
Регистрация задачи
Регистрация задачи– это ее сопоставление какому-либо методу класса, производного от JController.
JController registerTask(string $task, string $method)
где
$task - задача; $method - имя метода.
Пример в коде контроллера:
$this->registerTask('save', 'saveItem');
Стандартная реализация метода display
О методе display говорилось выше.
JController display(bool $cachable = false, array $urlparams = false)
где
$cachable - задает, кэшировать ли вывод представления; $urlparams - массив пар "имя-значение" для URL, использующихся при кэшировании.
Получение ссылки на текущее представление
JView getView(string $name = '', string $type = '', string $prefix = '', array $config = array)
где
$name - имя представления. По умолчанию совпадает с именем контроллера; $type - тип представления, который можно определить как $document->getType; $prefix - префикс класса представления. По умолчанию <имя контроллера>View; $config - массив параметров, которые будут переданы в конструктор представления, - имя представления, кодировка, путь к директории шаблонов и т.д.
Если класс <префикс><имя представления> не найдется в директориях, заданных по умолчанию, то будет произведен его поиск в файле <имя представления>/view.<тип представления>.php. Например, если в коде класса MyComponentController есть строка
$view = &$this->getView('Item', 'html');
то будет произведен поиск класса MyComponentViewItem в файле /components/com_<имя компонента>/views/Item/view.html.php.
Получение объекта-представителя модели
JModel getModel(string $name = '', string $prefix = '', array $config = array)
где
$name - имя модели. По умолчанию совпадает с именем контроллера; $prefix - префикс класса модели. По умолчанию <имя контроллера>Model; $config - массив параметров, которые будут переданы в конструктор модели.
Задание параметров для будущего перенаправления
JController setRedirect(string $url, string $msg=null, string $type=null)