Back to Top

Call A Custom template in catalog product form in magento 2

Updated 1 April 2024

Call A Custom template in catalog product form in magento 2

Today I am going to explain that how you can call your custom template through uicomponent in product form in magento 2 in this article.

At first you will need to create a uicomponent, i.e. product_form.xml for product form under app/code/Company/Namespace/view/adminhtml/ui_component/product_form.xml  And write the below code in product_form.xml which you created, and keep this in mind that you can not rename product_form.xml with any other name, because it is the file which magento calls for product form.

<?xml version="1.0"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <fieldset name="custom_tab">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="label" xsi:type="string" translate="true">Gallery Information</item>
                <item name="collapsible" xsi:type="boolean">true</item>
                <item name="opened" xsi:type="boolean">true</item> <!-- this attribute is, if you want your custom section by default opened when product form calls, if not then set the value as false -->
                <item name="canShow" xsi:type="boolean">true</item>
                <item name="sortOrder" xsi:type="string">1</item>
            </item>
        </argument>
        <container name="custom_tab_container">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="sortOrder" xsi:type="string">1</item>
                </item>
            </argument>
            <htmlContent name="html_content">
                <argument name="block" xsi:type="object">Company\Namespace\Block\Adminhtml\Catalog\Product\Form\Gallery</argument><!-- and this the path to our block file through which we will call our template file -->
            </htmlContent>
        </container>
    </fieldset>
</form>

And then create Block file which we given above, i.e.Company\Namespace\Block\Adminhtml\Catalog\Product\Form\Gallery.php, and write the below code in this block file, which is to call template file.

<?php
namespace Company\Namespace\Block\Adminhtml\Catalog\Product\Form;

class Gallery extends \Magento\Backend\Block\Template
{
    /**
     * Block template.
     *
     * @var string
     */
    protected $_template = 'group/gallery.phtml';

}

As you can see that in block file we are calling template file, in which you can write your code according to your need, I printed only Hello World through this template file, just for an example. So the template file will be here  – app/code/Company/Namespace/view/adminhtml/templates/group/gallery.phtml  and I have just written the html in this file to print Hello World as below:

Searching for an experienced
Magento Company ?
Find out More
<div>
    <h1><?php echo __("HELLO WORLD") ?></h1>
</div>

Now, the output will be as :

Screenshot_315-1200x614

Hope this blog will help you to develop custom functionality in your module in a better way. Try this and if you have any query then just comment below 🙂

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Back to Top

Message Sent!

If you have more details or questions, you can reply to the received confirmation email.

Back to Home