Joomla 4 MVC Anatomy: Загрузочные файлы админки

  1. Обзор файлов админки компонента в Joomla 4
  2. services/provider.php
  3. Extension/CountrybaseComponent.php
  4. access.xml
  5. config.xml
  6. Анатомия 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.

  1. «Joomla 4 MVC Anatomy: Начало работы над созданием компонента»
  2. «Joomla 4 MVC Anatomy: Файловая структура компонента»
  3. «Joomla 4 MVC Anatomy: Файл манифеста компонента (Manifest File)»
  4. «Joomla 4 MVC Anatomy: Файлы сайта компонента»
  5. «Joomla 4 MVC Anatomy: Загрузочные файлы админки»
  6. «Joomla 4 MVC Anatomy: Файлы для правки админки»

Перевод с английского официальной документации CMS Joomla 4:
https://docs.joomla.org/J4.x:MVC_Anatomy:_Administrator_Startup_Files

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню