Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
CategoryWidget.php 3.09 KiB
Newer Older
Nicolas's avatar
Nicolas committed
<?php
namespace NicolasBejean\CategoryWidget\Block\Widget;

class CategoryWidget extends \Magento\Framework\View\Element\Template implements \Magento\Widget\Block\BlockInterface
{
    /**
     * Category helper
     *
     * @var \Magento\Catalog\Helper\Category
Nicolas's avatar
Nicolas committed
     */
    protected $_categoryHelper;

    /**
     * Category Flat Config
     *
     * @var \Magento\Catalog\Model\Indexer\Category\Flat\State
     */
Nicolas's avatar
Nicolas committed
    protected $categoryFlatConfig;

    /**
     * Top Menu
     *
     * @var \Magento\Theme\Block\Html\Topmenu
     */
Nicolas's avatar
Nicolas committed
    protected $topMenu;

    /**
     * Category factory
     *
     * @var \Magento\Catalog\Model\CategoryFactory
     */
Nicolas's avatar
Nicolas committed
    protected $_categoryFactory;

    protected $widgetTitle;
    protected $widgetContent;

    /**
     * @param \Magento\Framework\View\Element\Template\Context $context
     * @param \Magento\Catalog\Helper\Category $categoryHelper
     * @param \Magento\Catalog\Model\Indexer\Category\Flat\State $categoryFlatState
     * @param \Magento\Catalog\Model\CategoryFactory $categoryFactory
     * @param \Magento\Theme\Block\Html\Topmenu $topMenu
Nicolas's avatar
Nicolas committed
     */
    public function __construct(
        \Magento\Framework\View\Element\Template\Context $context,
        \Magento\Catalog\Helper\Category $categoryHelper,
        \Magento\Catalog\Model\Indexer\Category\Flat\State $categoryFlatState,
        \Magento\Catalog\Model\CategoryFactory $categoryFactory,
        \Magento\Theme\Block\Html\Topmenu $topMenu
    ) {
        $this->_categoryHelper = $categoryHelper;
        $this->categoryFlatConfig = $categoryFlatState;
        $this->_categoryFactory = $categoryFactory;
        $this->topMenu = $topMenu;
Nicolas's avatar
Nicolas committed
        parent::__construct($context);
    }
Nicolas's avatar
Nicolas committed
    /**
     * Return categories helper
     */
    public function getCategoryHelper()
    {
        return $this->_categoryHelper;
    }

    public function getCategoryModel($id)
    {
         $_category = $this->_categoryFactory->create();
         $_category->load($id);
         return $_category;
    }

    /**
     * Retrieve current store categories
     *
     * @param bool|string $sorted
     * @param bool $asCollection
     * @param bool $toLoad
     * @return \Magento\Framework\Data\Tree\Node\Collection|\Magento\Catalog\Model\Resource\Category\Collection|array
     */

    /**
     * Récupère le titre du widget
    */
    public function getWidgetTitle()
    {
Nicolas's avatar
Nicolas committed
    }

    /**
     * Récupère le contenu du widget
     */
    public function getWidgetContent()
    {
        return $this->getData('widget_content');
Nicolas's avatar
Nicolas committed
    }

    /**
     * Récupère la sélection de catégories
     */
    public function getCategorySelection()
    {
        $rootCat = $this->getData('category_selection');


        $category = $this->_categoryFactory->create();
        $collection = $category
            ->getCollection()
            ->addAttributeToSelect('image')
            ->addIdFilter($rootCat);
        return $collection;
    }

    /**
     * Récupère le template du widget
     */
Nicolas's avatar
Nicolas committed
    {