![]() 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/ |
<?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; } }