Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/cartforge.co/app/code/Webkul/PrivateShop/Model/Plugin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/cartforge.co/app/code/Webkul/PrivateShop/Model/Plugin/CategoryDataProvider.php
<?php
/**
 * Webkul Software
 *
 * @category  Webkul
 * @package   Webkul_PrivateShop
 * @author    Webkul Software Private Limited
 * @copyright Webkul Software Private Limited (https://webkul.com)
 * @license   https://store.webkul.com/license.html
 */

namespace Webkul\PrivateShop\Model\Plugin;

use Magento\Catalog\Model\Category\DataProvider;

/**
 * Class CategoryDataProvider
 * Webkul\PrivateShop\Model\Plugin
 */
class CategoryDataProvider
{
    /**
     * @var \Magento\Framework\Serialize\Serializer\Json
     */
    protected $jsonSerializer;

    /**
     * @var PrivateGroupInterfaceFactory
     */
    protected $privateGroupFactory;

    /**
     * @var \Magento\Framework\App\Cache\Frontend\Pool
     */
    protected $_cacheFrontendPool;
    /**
     * @param \Magento\Framework\Serialize\Serializer\Json $jsonSerializer
     * @param \Webkul\PrivateShop\Api\Data\PrivateGroupInterfaceFactory $privateGroupFactory
     * @param \Magento\Framework\App\Cache\Frontend\Pool $cacheFrontendPool
     */
    public function __construct(
        \Magento\Framework\Serialize\Serializer\Json $jsonSerializer,
        \Webkul\PrivateShop\Api\Data\PrivateGroupInterfaceFactory $privateGroupFactory,
        \Magento\Framework\App\Cache\Frontend\Pool $cacheFrontendPool
    ) {
        $this->jsonSerializer = $jsonSerializer;
        $this->privateGroupFactory = $privateGroupFactory;
        $this->_cacheFrontendPool = $cacheFrontendPool;
    }

    /**
     * Add groups to the category Form
     *
     * @param DataProvider $subject
     * @param array $results
     * @see DataProvider::getData()
     * @return array
     */
    public function afterGetData(DataProvider $subject, $results)
    {
        if ($results) {
            $categoryId = array_keys($results)[0];
            if (isset($results[$categoryId]['category_private_group'])) {
                $groups = $this->jsonSerializer->unserialize(
                    $results[$categoryId]['category_private_group']
                );
                $collection = $this->privateGroupFactory->create()
                    ->getCollection()
                    ->addFieldToFilter('entity_id', ['in' => $groups]);
                
                $availableIds = [];
                foreach ($collection as $group) {
                    $availableIds[] = $group->getId();
                }
                $results[$categoryId]['category_private_group'] = $availableIds;
            }
        }
        foreach ($this->_cacheFrontendPool as $cacheFrontend) {
            $cacheFrontend->getBackend()->clean();
        }
        return $results;
    }
}

Spamworldpro Mini