![]() 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/old/vendor/magento/module-review/Ui/DataProvider/Product/Form/Modifier/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Review\Ui\DataProvider\Product\Form\Modifier; /** * Class Review */ use Magento\Catalog\Model\Locator\LocatorInterface; use Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\AbstractModifier; use Magento\Ui\Component\Form; use Magento\Framework\UrlInterface; use Magento\Framework\Module\Manager as ModuleManager; use Magento\Framework\App\ObjectManager; /** * Review modifier for catalog product form * * @api * @since 100.1.0 */ class Review extends AbstractModifier { const GROUP_REVIEW = 'review'; const GROUP_CONTENT = 'content'; const DATA_SCOPE_REVIEW = 'grouped'; const SORT_ORDER = 20; const LINK_TYPE = 'associated'; /** * @var LocatorInterface * @since 100.1.0 */ protected $locator; /** * @var UrlInterface * @since 100.1.0 */ protected $urlBuilder; /** * @var ModuleManager */ private $moduleManager; /** * @param LocatorInterface $locator * @param UrlInterface $urlBuilder */ public function __construct( LocatorInterface $locator, UrlInterface $urlBuilder ) { $this->locator = $locator; $this->urlBuilder = $urlBuilder; } /** * @inheritdoc * @since 100.1.0 */ public function modifyMeta(array $meta) { if (!$this->locator->getProduct()->getId() || !$this->getModuleManager()->isOutputEnabled('Magento_Review')) { return $meta; } $meta[static::GROUP_REVIEW] = [ 'children' => [ 'review_listing' => [ 'arguments' => [ 'data' => [ 'config' => [ 'autoRender' => true, 'componentType' => 'insertListing', 'dataScope' => 'review_listing', 'externalProvider' => 'review_listing.review_listing_data_source', 'selectionsProvider' => 'review_listing.review_listing.product_columns.ids', 'ns' => 'review_listing', 'render_url' => $this->urlBuilder->getUrl('mui/index/render'), 'realTimeLink' => false, 'behaviourType' => 'simple', 'externalFilterMode' => true, 'imports' => [ 'productId' => '${ $.provider }:data.product.current_product_id', '__disableTmpl' => ['productId' => false], ], 'exports' => [ 'productId' => '${ $.externalProvider }:params.current_product_id', '__disableTmpl' => ['productId' => false], ], ], ], ], ], ], 'arguments' => [ 'data' => [ 'config' => [ 'label' => __('Product Reviews'), 'collapsible' => true, 'opened' => false, 'componentType' => Form\Fieldset::NAME, 'sortOrder' => $this->getNextGroupSortOrder( $meta, static::GROUP_CONTENT, static::SORT_ORDER ), ], ], ], ]; return $meta; } /** * @inheritdoc * @since 100.1.0 */ public function modifyData(array $data) { $productId = $this->locator->getProduct()->getId(); $data[$productId][self::DATA_SOURCE_DEFAULT]['current_product_id'] = $productId; return $data; } /** * Retrieve module manager instance using dependency lookup to keep this class backward compatible. * * @return ModuleManager * @deprecated 100.2.0 */ private function getModuleManager() { if ($this->moduleManager === null) { $this->moduleManager = ObjectManager::getInstance()->get(ModuleManager::class); } return $this->moduleManager; } }