Я создаю свой пользовательский модуль для magento 2.3, и у меня возникла проблема с виджетом.
Я создал свой тип виджета, и когда я включаю его в домашнюю страницу, я должен увидеть список продуктов, которые я выбрал для отображения.
Я хочу использовать ... / magento / vendor / magento / module-catalog / view / frontend / templates / product / list.phtml в качестве шаблона
Проблема в том, что класс Widget должен расширять класс Magento \ Framework \ View \ Element \ Template, а для визуализации ProductList мне нужно расширить Magento \ Catalogue \ Block \ Product \ ListProduct.
Может быть, кто-нибудь может дать мне совет, как решить эту проблему.
Вот часть моего кода
файл my-vendor / my-module / Block / Widget / MyWidget.php
class PromotedWidget extends Template implements BlockInterface
{
public function __construct(
Context $context,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
array $data = []
)
{
$this->productCollectionFactory = $productCollectionFactory;
parent::__construct($context, $data);
}
public function getLoadedProductCollection()
{
$collection = $this->productCollectionFactory->create();
$collection->addAttributeToSelect('*');
$collection->addAttributeToFilter('necessary_attribute', ['necessary_attribute' => 'attr_value']);
return $collection;
}
public function toHtml()
{
$this->setTemplate('Magento_Catalog::product/list.phtml');
return parent::_toHtml();
}
}