Question

How to add custom module content in magento 2.0.7 list.phtml

Without modifying core list.phtml i need to append my custom module content in magento 2.0.7 list.phtml

Was it helpful?

Solution

You can do that if you create new module to override this block:
vendor\magento\module-catalog\Block\Product\ListProduct.php

to override this block, you need to create di.xml at ,
app\code\Vendor\Module_Name\etc

di.xml content:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Catalog\Block\Product\ListProduct" type="Vendor\Module_Name\Block\Product\ListProduct" />
</config>

Create new file name ListProduct.php at
app\code\Vendor\Module_Name\Block\Product

ListProduct.php content:

namespace Vendor\Module_Name\Block\Product;
class ListProduct extends \Magento\Catalog\Block\Product\ListProduct
{
    public function getProductDetailsHtml(\Magento\Catalog\Model\Product $product)
    {
        $html = $this->getLayout()->createBlock('Magento\Framework\View\Element\Template')->setProduct($product)->setTemplate('Vendor_ModuleName::test.phtml')->toHtml();
        $renderer = $this->getDetailsRenderer($product->getTypeId());
        if ($renderer) {
            $renderer->setProduct($product);
            return $html.$renderer->toHtml();
        }
        return '';
    }
}

You can change block Magento\Framework\View\Element\Template to your block

create yourphtml.phtml file at app\code\Vendor\Module_Name\view\frontend\templates

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top