here is my full di.xml
<?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\ProductList\Toolbar" type="Vendor\Module\Block\Catalog\Product\ProductList\Toolbar" />
<preference for="Magento\LayeredNavigation\Block\Navigation" type="Vendor\Module\Block\CatalogSearch\Layer" />
<preference for="Magento\Catalog\Model\ResourceModel\Product\Collection" type="Vendor\Module\Model\Catalog\Resource\Product\Collection" />
</config>
In Vendor\Module\Model\Engine.php
$current_list_mode = $this->layout->createBlock('Vendor\Module\Block\Catalog\Product\ProductList\Toolbar')->getCurrentMode();
In \Vendor\Module\Block\Catalog\Product\ProductList\Toolbar.php
namespace Vendor\Module\Block\Catalog\Product\ProductList;
use Magento\Catalog\Helper\Product\ProductList;
use Magento\Catalog\Model\Product\ProductList\Toolbar as ToolbarModel;
use Magento\Framework\View\Element\Template;
use Magento\Framework\Registry;
class Toolbar extends \Magento\Catalog\Block\Product\ProductList\Toolbar
{
protected $tglssearchHelper;
public function __construct(
/* passing all Constructors parameters to the parent class -Magento\Catalog\Block\Product\ProductList\Toolbar.php*/
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Catalog\Model\Session $catalogSession,
\Magento\Catalog\Model\Config $catalogConfig,
ToolbarModel $toolbarModel,
\Magento\Framework\Url\EncoderInterface $urlEncoder,
ProductList $productListHelper,
\Magento\Framework\Data\Helper\PostHelper $postDataHelper,
\Vendor\Module\Helper\Data $tglssearchHelper,
\Magento\Framework\Registry $registry,
array $data = []
) {
$this->tglssearchHelper = $tglssearchHelper;
$this->_catalogSession = $catalogSession;
$this->_catalogConfig = $catalogConfig;
$this->_toolbarModel = $toolbarModel;
$this->_urlEncoder = $urlEncoder;
$this->_productListHelper = $productListHelper;
$this->_postDataHelper = $postDataHelper;
$this->_registry = $registry;
parent::__construct($context,$catalogSession,$catalogConfig,$toolbarModel,$urlEncoder,$productListHelper,$postDataHelper,$data);
}
public function getAvailableOrders()
{
echo 'availablOrders';
}
But still im not able to override the custom block for my custom search engine:( my layout file name : catalogsearch_catalogsearch_resultcontroller.xml
Controller path is: Vendor\Module\Controller\CatalogSearch\ResultController
My system.log says:
Cache file with merged layout: LAYOUT_frontend_STORE1_3d41d8cd98f00b204e9800998ecf8427e and handles : Please correct the XML data and try again. [] []
I get a blank page when i search for the products. please help where am i wrong!!