我正在为 magento 2.3 创建我的自定义模块,但我遇到了小部件的问题。我已经创建了我的小部件类型,当我将它包含到主页时,我必须查看我选择呈现的产品的产品列表。我想使用 .../magento/vendor/magento/module-catalog/view/frontend/templates/product/list.phtml 作为模板
问题是 Widget 类必须扩展 Magento\Framework\View\Element\Template 类,并且要呈现 ProductList 我必须扩展 Magento\Catalog\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();
}
}