Комментарии

Контроллер подчиненного диспетчера и задачи на панели инструментов
( 0 Голосов )

Исходный контроллер обрабатывает задачу отображения, которая частично состоит в отображении панели инструментов, как показано ниже. Первыми двумя на этой панели оказываются пиктограммы задач создания (New) и редактирования (Edit). Обе эти задачи обрабатываются контроллером подписки, рассматриваемым далее в главе. Остальные задачи, доступные на панели инструментов, выполняют публикацию, снятие с публикации, архивирование, регистрацию, удаление в корзину, настройку параметров и получение справки.

Как пояснялось ранее, задачи публикации, снятия с публикации, архивирования и удаления в корзину сопоставляются в контроллере с методом publish (), тогда как задача регистрации — с методом checkin (). Напомним также, что у класса WeblinksControl-lerWeblinks имеется единственный метод getModel (), поскольку он наследует методы publish() и checkin() из своего родительского класса JControllerAdmin. Это же относится и к классу контроллера JoomproSubsControllerSubManager из файла controllers/submanager.php. Поэтому ему требуется единственный метод getModel (), как следует из листинга ниже.

ЛИСТИНГ. Класс JoomproSubsControllerSubManager

<?php /**
* @copyright Copyright (С) 2013. All rights preserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/ // прямой доступ отсутствует defined{'_JEXEC') or die; jimport('joomla.application.component.controlleradmin'); /** Класс списка контроллеров для компонента Joomprosubs. @since 2.5 */ class JoomproSubsControllerSubManager extends JControllerAdmin { /** * Замещает получение модели. */ public function getModel($name = 'Subscription', $prefix = ^>'JoomproSubsModel', $config = array('ignore_reguest' —> true)) { $model = parent:rgetModel($name,   $prefix,   $config); return  $model; } }   //  конец класса

Метод 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, чтобы открыть для просмотра одноименный экран с полномочиями


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


 
Похожие новости
Добавить комментарий


Защитный код