Read More
Read More
Menu Close

    Call A Custom template in catalog product form in magento 2

    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>
    

     

    Searching for an experienced
    Magento Company ?
    Read More

    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:

     

    <div>
        <h1><?php echo __("HELLO WORLD") ?></h1>
    </div>
    

    Now, the output will be as :

     

    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 🙂

    . . .
    Discuss on Helpdesk

    Leave a Comment

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


    Be the first to comment.

    Back to Top