- Обзор файлов админки компонента в Joomla 4
services/provider.php
Extension/CountrybaseComponent.php
access.xml
config.xml
- Анатомия MVC Joomla 4
Обзор файлов админки компонента в Joomla 4.
В админке компонента больше файлов, отчасти потому, что там две таблицы, каждая из которых имеет вид списка и редактирования, а отчасти потому, что некоторые файлы управляют поведением компонента как в интерфейсе сайта, так и в интерфейсе администратора.
Создание кода для представления списка было рассмотрено в части учебника, посвященной файлам сайта, поэтому здесь повторяться не будем. В этом разделе будут рассмотрены файлы, общие для большинства компонентов. В следующем уроке будет рассмотрен один из видов редактирования, необходимый для обновления или добавления новых записей.
services/provider.php
Этот файл используется, когда приложение Joomla вызывает ComponentHelper
для рендеринга компонента. Это самый первый код компонента, выполняемый как для Site, так и для Administrator. Его роль заключается в регистрации компонента:
public function register(Container $container) { $container->registerServiceProvider(new CategoryFactory('\\J4xdemos\\Component\\Countrybase')); $container->registerServiceProvider(new MVCFactory('\\J4xdemos\\Component\\Countrybase')); $container->registerServiceProvider(new ComponentDispatcherFactory('\\J4xdemos\\Component\\Countrybase')); $container->registerServiceProvider(new RouterFactory('\\J4xdemos\\Component\\Countrybase')); $container->set( ComponentInterface::class, function (Container $container) { $component = new CountrybaseComponent($container->get(ComponentDispatcherFactoryInterface::class)); //$component->setRegistry($container->get(Registry::class)); $component->setMVCFactory($container->get(MVCFactoryInterface::class)); //$component->setCategoryFactory($container->get(CategoryFactoryInterface::class)); $component->setRouterFactory($container->get(RouterFactoryInterface::class)); return $component; } ); }
Registry
и Categories
не используются в Countrybase, поэтому некоторые строки были закомментированы.
Extension/CountrybaseComponent.php
Функция register
этого файла вызывается из оператора $component = new CountrybaseComponent(...);
в файле services/provider.php
. Ее цель - загрузить компонент как в интерфейсе сайта, так и в интерфейсе администратора. И снова то, что не используется, было закомментировано.
public function boot(ContainerInterface $container) { //$this->getRegistry()->register('countrybaseadministrator', new AdministratorService); }
access.xml
В этом файле задаются элементы управления доступом, используемые в данном компоненте. Элементы, перечисленные здесь, появляются на вкладке Параметры (Options) компонента Разрешения (Permissions):
<?xml version="1.0" encoding="utf-8" ?> <access component="com_countrybase"> <section name="component"> <action name="core.admin" title="JACTION_ADMIN" /> <action name="core.options" title="JACTION_OPTIONS" /> <action name="core.manage" title="JACTION_MANAGE" /> <action name="core.create" title="JACTION_CREATE" /> <action name="core.delete" title="JACTION_DELETE" /> <action name="core.edit" title="JACTION_EDIT" /> </section> </access>
config.xml
Этот файл используется для управления тем, появляются ли какие-либо параметры в форме Параметры (Options) компонента и на какой вкладке они появляются. Для com_countrybase
нет никаких параметров, кроме стандартных параметров разрешений Joomla. Здесь можно было бы добавить настройки, например, показывать или скрывать определенный столбец в окне вывода. Это можно сделать в отдельном наборе полей под названием Параметры (Options).
<?xml version="1.0" encoding="utf-8"?> <config> <fieldset name="permissions" label="JCONFIG_PERMISSIONS_LABEL" description="JCONFIG_PERMISSIONS_DESC" > <field name="rules" type="rules" label="JCONFIG_PERMISSIONS_LABEL" filter="rules" validate="rules" component="com_countrybase" section="component" /> </fieldset> </config>
Анатомия MVC Joomla 4.
- «Joomla 4 MVC Anatomy: Начало работы над созданием компонента»
- «Joomla 4 MVC Anatomy: Файловая структура компонента»
- «Joomla 4 MVC Anatomy: Файл манифеста компонента (Manifest File)»
- «Joomla 4 MVC Anatomy: Файлы сайта компонента»
- «Joomla 4 MVC Anatomy: Загрузочные файлы админки»
- «Joomla 4 MVC Anatomy: Файлы для правки админки»
Перевод с английского официальной документации CMS Joomla 4:
https://docs.joomla.org/J4.x:MVC_Anatomy:_Administrator_Startup_Files
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)