Контроллер подчиненного диспетчера и задачи на панели инструментов |
Исходный контроллер обрабатывает задачу отображения, которая частично состоит в отображении панели инструментов, как показано ниже. Первыми двумя на этой панели оказываются пиктограммы задач создания (New) и редактирования (Edit). Обе эти задачи обрабатываются контроллером подписки, рассматриваемым далее в главе. Остальные задачи, доступные на панели инструментов, выполняют публикацию, снятие с публикации, архивирование, регистрацию, удаление в корзину, настройку параметров и получение справки. Как пояснялось ранее, задачи публикации, снятия с публикации, архивирования и удаления в корзину сопоставляются в контроллере с методом ЛИСТИНГ. Класс JoomproSubsControllerSubManager <?php /** * @copyright Copyright (С) 2013. All rights preserved. * @license GNU General Public License version 2 or later; see LICENSE.txt Метод getModel () позволяет контроллеру получить подходящую модель (в данном случае из класса JoomproSubsModelSubscription). Он наследует методы publish () и checkin () из своего родительского класса JControllerAdmin. Поэтому они используются для выполнения упомянутых выше задач без всяких изменений и связанных с этим дополнительных затрат труда. На панели инструментов имеются также пиктограммы для настройки параметров (Options) и получения справки (Help). Напомним, что при выборе пиктограммы Options из файла conf ig. xml вызывается компонент comconf ig. Ниже приведено содержимое файла conf ig. xml. <?xml version="1.0" encoding="utf-8"?> <config> <fieldset name="permissions" description»"JCONFIG_PERMISSIONS_DESC" label="JCONFIG_PERMISSIONS_LABEL"> <field name="rules" type="rules" components="COM_JOOMPROSUBS" filter="rules" validate="rules" label="JCONFIG_PERMISSIONS_LABEL" section="component"/></fieldset> </config> Если бы на уровне компонента имелись какие-нибудь параметры, они были бы указаны в этом файле и отображались бы на экране Options. Но в данном примере параметры у компонента отсутствуют, а имеются только полномочия, которые указываются в элементе разметки field типа rules. Для создаваемого компонента необходимо также указать конкретные действия, создав файл access. xml. Ниже приведено содержимое этого файла. <?xml version="1.0" encoding="utf-8"?> <access component="com_joomprosubs"> <section name="component"> <action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" /> <action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" /> <action name='*core.create" title="JACTTON_CREATE" description="JACTION_CREATE_COMPONENT_DESC" /> <action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_COMPONENT_DESC" /> <action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_COMPONENT_DESC" /> <action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION EDITSTATE COMPONENT DESC" /> <action name="core.edit.own" title="JACTION_EDITOWN" ^description="JACTION_EDITOWN_COMPONENT_DESC" /> </section> <section name="category"> <action name="core.create" title="JACTION_CREATE" description="COM_CATEGORIES_ACCESS_CREATE_DESC" /> <action name="core.delete" title="JACTION_DELETE" description="COM_CATEGORIES_ACCESS_DELETE_DESC" /> <action name="core.edit" title="JACTION_EDIT" description="COM_CATEGORIES_ACCESS_EDIT_DESC" /> <action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_CATEGORIES_ACCESS_EDITSTATE_DESC" /> <action name="core.edit.own" title="JACTION_EDITOWN" description="COM_CATEGORIES_ACCESS_EDITOWN_DESC" /> </section> </access> Своим содержимым этот файл почти ничем не отличается от аналогичного файла access. xml из компонента Weblinks, за исключением имени компонента во второй строке кода. Ведь в данном примере на уровнях компонента и категории выполняются те же самые действия, что и для компонента Weblinks. По завершении программирования рассматриваемого здесь компонента можно будет щелкнуть на пиктограмме Options, чтобы открыть для просмотра одноименный экран с полномочиями Понравился материал? Пригодилась информация? Плюсани в социалки!
|
Похожие новости | |