Метод display () из класса WeblinksViewWeblinks |
В этом методе, по существу, начинается создание веб-страницы. В трех первых строках его кода из модели поочередно вызываются методы getState (), getltems () и getPagination (). В частности, из представления вызывается метод get () для получения модели и поиска в ней метода под именем, состоящим из префикса get и строки аргумента (например, get + State). Напомним, что класс модели WeblinksModelWeblinks расширяет класс JModelList, а тот, в свою очередь, — класс JModel. public function display($tpl = null) { $this->state = $this->get('State'); $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); // проверить ошибки if (count($errors = $this->get('Errors'))) { JError:-.raiseError (500, implode ("\n", $errors) ) ; return false; $this->addToolbar(); parent::display($tpl); В данном случае метод getState () наследуется из класса JModel, тогда как методы getltems () и getPagination () — из класса JModelList. Метод getStateO возвращает объект состояния, который представляет текущее состояние экранной формы, включая действующие фильтры, номер страницы, порядок расположение элементов и пр. Метод getItems () возвращает перечень элементов веб-ссылок для отображения списком на экране. А метод getPagination () возвращает объект разбиения на страницы, служащий для указания номеров страниц на экране и поочередного перемещения по элементам на странице. Получив из модели нужные сведения, можно проверить ошибки. Если таковые отсутствуют, вызывается метод addToolbar () для вывода на экран панели инструментов с пиктограммами New, Edit, Publish и т.д. Напомним, что панель инструментов берется из административного модуля mod_toolbar. Этот модуль служит для отображения глобального объекта панели инструментов. Метод addToolbar () создает пиктограммы панели инструментов в этом объекте, чтобы сделать их доступными для последующего отображения при воспроизведении модуля mod_toolbar в цикле выполнения команд. Затем вызывается метод function display($tpl = null) { $result = $this->loadTemplate($tpl); if (JError::isError($result)) { return $result; } echo $result; } В этом методе, в свою очередь, вызывается метод loadTemplate () из класса JView, а результат его выполнения сохраняется в переменной $ result. Затем выполняется команда echo языка РНР для отправки полученного результата браузеру. Как пояснялось в главе 3, когда выполняется компонент, выходной буфер уже активизирован с помощью функции ob_start () языка РНР. Поэтому когда выдается команда echo, результат выводится в выходной буфер, а не отправляется непосредственно в браузер. В методе loadTemplate () проверяется наличие файлов замещения шаблонов и загружаются любые требующиеся файлы языковой поддержки. А в завершающей части данного метода выполняется приведенный ниже код, при условии, что обнаружен подходящий файл компоновки. // начать вывод результатов в выходной буфер ob_start (); // включить файл запрашиваемого шаблона в локальную область действия // (выполнить для этого логику представления) include $this->_template; // завершить действия с запрашиваемым шаблоном; // получить буфер и очистить его $this->_output = ob_get_contents(); ob_end_clean(); return $this-> output; Сначала функция В данной компоновке класс не объявляется, и поэтому ее файл выполняется сразу, а результат, выводимый по команде echo, сохраняется в выходном буфере. Затем содержимое этого буфера копируется в поле $this->output, возвращаемое вызывающему методу (в переменной $result, как следует из предыдущего кодового блока).
Понравился материал? Пригодилась информация? Плюсани в социалки!
|
Похожие новости | |
|