Я пытаюсь добавить конфигурацию в область администрирования Shopware 6 из пакета Symfony.
Я следил за официальной документацией, но в области администрирования ничего не отображается.
Конфигурация пакета находится по пути
MyBundle/Resources/config/config.xml
с содержанием из документации
<?xml version = "1.0" encoding = "UTF-8"?>
<config xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation = "https://raw.githubusercontent.com/shopware/platform/trunk/src/Core/System/SystemConfig/Schema/config.xsd">
<card>
<title>Basic Configuration</title>
<title lang = "de-DE">Grundeinstellungen</title>
<input-field>
<name>email</name>
<copyable>true</copyable>
<label>eMail address</label>
<label lang = "de-DE">E-Mail Adresse</label>
<placeholder>[email protected]</placeholder>
<placeholder lang = "de-DE">[email protected]</placeholder>
<helpText>Please fill in your personal eMail address</helpText>
<helpText lang = "de-DE">Bitte trage deine persönliche E-Mail Adresse ein</helpText>
</input-field>
</card>
</config>
Даже после удаления кеша и перепрошивки администрирования через консольные команды не появляется.




Обновление: в MyBundle.php убедитесь, что вы расширили Shopware\Core\Framework\Bundle вместо Symfony\Component\HttpKernel\Bundle\Bundle. Это должно включить большинство возможностей реальных плагинов, включая анализ config.xml. Исключение, конечно, составляют события жизненного цикла, обычно связанные с плагинами, такие как установка, активация, деинсталляция и т. д. через менеджер расширений.
use Shopware\Core\Framework\Bundle;
class MyBundle extends Bundle
{
protected $name = 'MyBundle';
}
Это, однако, не заставит ваш пакет отображаться среди обычных плагинов в админке. Но поскольку config.xml анализируется, вы можете получить доступ к странице с отображаемыми полями напрямую через соответствующий URL-адрес:
http://localhost/admin#/sw/extension/config/MyBundle
Так что теоретически вам нужно только расширить администрацию и разместить где-то ссылку на эту страницу, так как ваш бандл не указан как плагин.
Старый ответ (вместо этого имеется в виду использование плагина):
Это выглядит хорошо. Вы называете то, что у вас есть, пакетом Symfony. Хотя плагин является расширением пакета, синтаксический анализ config.xml происходит только с реальными плагинами.
Если он не установлен через композитор, файл должен располагаться по адресу custom/plugins/MyBundle/Resources/config/config.xml или custom/static-plugins/MyBundle/Resources/config/config.xml, а MyBundle.php должен расширяться Shopware\Core\Framework\Plugin. Затем плагин должен быть установлен либо администрацией, либо через cli bin/console plugin:install MyBundle --activate
Обычно вы можете найти поля конфигурации плагина через менеджер расширений в администрации. Даже если бы вы могли заставить систему прочитать ваш config.xml, не было бы возможности получить доступ к полям из коробки. Вы можете сохранять и читать значения конфигурации через службу Shopware\Core\System\SystemConfig\SystemConfigService по своему усмотрению, однако для получения соответствующих полей для отображения вам придется расширить администрирование вручную, что также будет менее тривиально без возможностей плагина. О каких уже существующих функциях пакета вы говорите?
Ничто не связано с Symfony или Shopware 6, структура каталогов проекта отличается.
Я обновил свой ответ. На самом деле вы можете заставить его анализировать ваши config.xml и отображать поля на специальной странице, это просто вопрос перехода на эту страницу в этот момент.
Спасибо, но уже существующие функции пакета мешают мне превратить это в плагин без особых усилий. Есть ли другой способ принудительно включить
config.xml, например, какaddress.xmlпакетаSystemизshopware/coreвключается в функциюConfigurationService->fetchConfiguration?