Комментарии

Функции контроллера в компоненте Weblinks (Часть 3)
( 0 Голосов )

В данном примере URL не содержит часть, в которой указана задача. Вместо этого задача указывается в форме редактирования. В частности, разметка кнопки Save & Close содержит следующий атрибут:

onclick="javascript:Joomla.submitbutton('weblink.save')"

Если щелкнуть на этой кнопке, начнет выполняться функция языка JavaScript, устанавливающая значение "weblink. save" в поле task формы редактирования и передающая форму на обработку. В итоге задача помещается в массив запроса.

Пример 3. Пользователь щелкает на кнопке Save & Close в форме редактирования

Ниже приведены главные составляющие действия в данном примере.

  • URL:administrator/index.php?option=com_weblinks&layout=edit&id=7.
  • Задача: weblink.save.
  • Контроллер:   класса  WeblinksControllerWeblink из файла controllers/weblink.php.
  • Выполняемый метод контроллера: JControllerForm->save ().
  • Переадресация контроллера: administrator/index.php?option=com_weblinks &view=weblinks.

Как и прежде, третья часть имени класса контроллера извлекается из первой части названия задачи, в результате чего получается следующее имя: WeblinksControllerWeblink. В этом классе контроллера далее выполняется метод save (). Но поскольку у этого класса нет собственного метода save (), то он вызывает его из своего родительского класса JControllerForm.

Для данного контроллера получается класс модели и снова проверяется совпадение идентификатора редактируемого элемента с сохраненным в сеансе работы пользователя. После этого проверяется, разрешено ли пользователю сохранять данный элемент. Вслед за этим из загруженного класса модели вызывается метод validate () для проверки достоверности введенных данных, которые затем сохраняются с помощью метода save (). Если все эти действия выполнены успешно, формируется сообщение об успешном сохранении отредактированного элемента.

И на последней стадии устанавливается переадресация, которая зависит от конкретного действия: сохранение (Save), сохранение и закрытие (Save & Close) или сохранение и создание (Save & New). Если выполняется сохранение и закрытие, то с редактируемого элемента снимается блокировка и переадресация устанавливается на загрузку экрана Weblinks Manager. В этом случае переадресация происходит в том же самом цикле, что и в рассмотренном выше примере 1.

Разделяя задачу сохранения на два цикла запроса: один — для действия сохранения, а другой — для переадресации, можно воспользоваться одним и тем же методом save (), чтобы выполнить разные действия сохранения. Первый цикл запроса одинаков для всех этих действий. Отличия лишь в том, куда именно переадресуется пользователь. Так, действие сохранения оставляет пользователя в текущей экранной форме редактирования, а действие сохранения и закрытия осуществляет переход пользователя к новой пустой экранной форме. В данном примере действие сохранения и закрытия возвращает пользователя обратно к экрану Weblinks Manager.


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


 
Похожие новости