Actively Maintained v0.0.4

Magento2 Additional Block Template

yireo/magento2-additional-block-template

Allows rendering of additional templates within a block, before, after, or nested within the original template. Configure templates and their positions via layout XML.

16,839
Downloads
Below average
8
GitHub Stars
Below average
2mo ago
Last Release
0
Open Issues
Build Passing
Ready to install

Build Tests

Composer Install
DI Compile
Templates

Code Quality

CS Coding Standard
1 warning
L6 PHPStan

Tested on Magento 2.4.8-p3

Recent Test History

Each release is tested against the latest Magento version at that time.

v0.0.4 on Magento 2.4.8-p3
Dec 27, 2025
GitHub Repository
Source code & docs
Packagist
Version history
Issues & Support
Get help or report bugs

Share This Module's Status

Magento2 Additional Block Template Magento compatibility status badge

README

Loaded from GitHub

Yireo AdditionalBlockTemplate

A Magento 2 module to allow for additional templates to be rendered, besides the original template.

Overview

When the Magento frontend renders its storefront, it uses the XML layout to position blocks all around. Each block can be rendered via a template and by default, this means that one block only has one template. Adding a new template right before the original template but with a new <block/> definition causes another $block object to be created. This module overcomes this shortcoming and simply allows you to add multiple templates to one single $block instance.

Installation

composer require yireo/magento2-additional-block-template
bin/magento module:enable Yireo_AdditionalBlockTemplate

Usage

Using the XML layout, you can reference a certain block and add your own template in front of the original template (before), after the original template (after) or right before the final closing tag in the original template (nest):

<?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.description">
            <arguments>
                <argument name="additional_templates" xsi:type="array">
                    <item name="example1" xsi:type="array">
                        <item name="template" xsi:type="string">Yireo_Example::example-before.phtml</item>
                        <item name="position" xsi:type="string">before</item>
                    </item>
                    <item name="example2" xsi:type="array">
                        <item name="template" xsi:type="string">Yireo_Example::example-after.phtml</item>
                        <item name="position" xsi:type="string">after</item>
                    </item>
                    <item name="example3" xsi:type="array">
                        <item name="template" xsi:type="string">Yireo_Example::example-nest.phtml</item>
                        <item name="position" xsi:type="string">nest</item>
                    </item>
                </argument>
            </arguments>
        </referenceBlock>
    </body>
</page>

Each item name (in this case example1, etc) can be retreived in the block template using $block->getAdditionalTemplateName().

This content is fetched directly from the module's GitHub repository. We are not the authors of this content and take no responsibility for its accuracy, completeness, or any consequences arising from its use.

Back to All Modules