Как добавить пользовательскую вкладку в категорию из и вызвать в ней файл phtml в magento 2?
Я хочу создать пользовательскую вкладку в категории администратора на странице. После создания пользовательской вкладки я хочу вызвать файл phtml.
Я успешно создал пользовательскую вкладку в category_form, но когда я пытаюсь вызвать блок, он выдает мне сообщение об ошибке
A:4:{i:0; s:94: "Запрошенный компонент ("блок") не найден. Перед использованием необходимо добавить реализацию.";i:1; s:7167:"#0/var/www/practice/vendor/magento/module-ui/Model/Manager.php (207): Magento\Framework\View\Element\UiComponent\Config\Provider\Component\Definition->getComponentData('block')
Вот что я сделал
Category_form.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<!-- <body>-->
<!-- <referenceBlock name="category_form">
<block class="Panacea\Custom\Block\Adminhtml\Category\Tab\Custom" name="demo.tab">
<arguments>
<argument name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Custom Design</item>
<item name="collapsible" xsi:type="boolean">true</item>
<item name="opened" xsi:type="boolean">true</item>
<item name="sortOrder" xsi:type="string">2</item>
<item name="canShow" xsi:type="boolean">true</item>
<item name="componentType" xsi:type="string">fieldset</item>
</argument>
</arguments>
</block>
</referenceBlock>-->
<fieldset name="Custom">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Custom Design</item>
<item name="collapsible" xsi:type="boolean">true</item>
<item name="sortOrder" xsi:type="number">100</item>
</item>
</argument>
<!-- <field name="custom_attribute">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="sortOrder" xsi:type="number">1</item>
<item name="dataType" xsi:type="string">string</item>
<item name="formElement" xsi:type="string">input</item>
<item name="label" xsi:type="string" translate="true">Custom Attribute</item>
</item>
</argument>-->
<!--</field>-->
<!-- <block class="Panacea\Custom\Block\Adminhtml\Category\Tab\Custom" name="demo.tab">
</block>-->
<!--<block class="Magento\Framework\View\Element\Template" name="CustomTab" template="Panacea_Custom::demo.phtml"></block>-->
<block class="Magento\Framework\View\Element\Template" name="customtab" template="Panacea_Custom::demo.phtml">
<arguments>
<argument name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Custom</item>
<item name="collapsible" xsi:type="boolean">true</item>
<item name="opened" xsi:type="boolean">true</item>
<item name="sortOrder" xsi:type="string">2</item>
<item name="canShow" xsi:type="boolean">true</item>
<item name="componentType" xsi:type="string">fieldset</item>
</argument>
</arguments>
</block>
</fieldset>
<!-- <referenceBlock name="content">
<block class="Magento\Framework\View\Element\Template" name="demo.tab">
<arguments>
<argument name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Custom</item>
<item name="collapsible" xsi:type="boolean">true</item>
<item name="opened" xsi:type="boolean">true</item>
<item name="sortOrder" xsi:type="string">2</item>
<item name="canShow" xsi:type="boolean">true</item>
<item name="componentType" xsi:type="string">fieldset</item>
</argument>
</arguments>
</block>
</referenceBlock>-->
<!--</body>-->
</page>
И в сеансах комментариев я пытался вызвать свой блок, который все время выдает ошибку. Нужна помощь
Спасибо
1 answers
Ваш category_form.xml Vendor/Module/view/adminhtml/ui_component/category_form.xml
должно быть
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<fieldset name="custom_fieldset">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Custom Tab</item>
<item name="collapsible" xsi:type="boolean">true</item>
<item name="sortOrder" xsi:type="number">140</item>
</item>
</argument>
<container name="custom_fieldset_container" >
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="sortOrder" xsi:type="number">200</item>
</item>
</argument>
<htmlContent name="html_content">
<argument name="block" xsi:type="object">Vendor\Module\Block\Adminhtml\Category\Custom</argument>
</htmlContent>
</container>
</fieldset>
</form>
Теперь создайте Vendor/Module/Block/Adminhtml/Category/Custom.php
namespace Vendor\Module\Block\Adminhtml\Category;
class Custom extends \Magento\Backend\Block\Template
{
/**
* Block template
*
* @var string
*/
protected $_template = 'custom.phtml';
}
И создайте шаблон Vendor/Module/view/adminhtml/templates/custom.phtml
<h1>Custom Tab Content</h1>
Очистить кэш.