Комментарии

Представление списка веб-ссылок
( 0 Голосов )

Начнем наше исследование с представления списка веб-ссылок. Ниже приведен исходный код метода display () из класса WeblinksController.

function display($cachable = false, $urlparams = false)
{
require_once JPATH_COMPONENT.'/helpers/weblinks.php';
// загрузить подменю
WeblinksHelper::addSubmenu(JRequest::getCmd('view1, 'weblinks'));
$view = JRequest::getCmd('view', 'weblinks'); $layout = JRequest::getCmd('layout', 'default'); $id = JRequest::getlnt('id');
// проверить наличие формы редактирования if ($view == 'weblink' && $layout == 'edit' && ^!$this->checkEditId('com_weblinks.edit.weblink', $id) ) {
//не разрешать несанкционированный доступ к форме
$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', ^>$id) ) ;
$this->setMessage($this->getError(), 'error');
$this->setRedirect( ^JRoute::_('index.php?option=com_weblinks&view=weblinks', false));
return false; }
parent::display();
return $this; }

Этот метод получает представление, компоновку и идентификатор элемента веб-ссылок из запроса. В данном случае имена представления и компоновки оказываются пустыми, и поэтому по умолчанию выбираются имена weblinks для представления и default для компоновки. Идентификатор также оказывается пустым.

Следующий кодовый блок пропускается, поскольку это не представление одиночных веб-ссылок. Затем выполняется метод display () из родительского класса. И наконец, возвращается текущий объект. Следует, однако, иметь в виду, что возвращаемое значение не используется, поскольку рассматриваемый здесь метод вызывается без присваивания переменной результата его выполнения. Но в то же время возврат объекта позволяет связывать методы в цепочку. Благодаря этому объект, созданный одним методом, может быть использован для вызова другого метода. Например, три следующие строки кода:

$controller = JController::getlnstance('Weblinks'); $controller->execute(JRequest::getCmd('task')); $controller->redirect() ;

можно заменить приведенной ниже единственной строкой кода.

JController::getlnstance('Weblinks')-> Q>execute(JRequest::getCmd('task')->redirect();

Дело в том, что метод getlnstance () возвращает объект контроллера, а у этого объекта имеется метод execute (), который, в свою очередь, возвращает объект контроллера. И этим объектом можно воспользоваться для вызова метода redirect (). Возможность связывать методы в цепочку было внедрена в версии 5 языка РНР.


Понравился материал? Пригодилась информация? Плюсани в социалки!


Теги:
 
Похожие новости