- Обзор файлов админки компонента в 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
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)