![]() 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/app/code/Soon/AnonReview/Observer/Review/Model/ResourceModel/Review/ |
<?php /** * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @author Hervé Guétin <[email protected]> <@herveguetin> * @copyright Copyright (c) 2018 Agence Soon (http://www.agence-soon.fr) */ namespace Soon\AnonReview\Observer\Review\Model\ResourceModel\Review; class Collection implements \Magento\Framework\Event\ObserverInterface { /** * @param \Magento\Framework\Event\Observer $observer * @return void */ const NICKNAME_COL_NAME = 'nickname'; /** * @param \Magento\Framework\Event\Observer $observer * @throws \Zend_Db_Select_Exception */ public function execute(\Magento\Framework\Event\Observer $observer) { /** @var \Magento\Review\Model\ResourceModel\Review\Collection $collection */ $collection = $observer->getData('collection'); $select = $collection->getSelect(); $this->cleanNickname($select); // Set the 'nickname' column always with the value "Anonymous" $test = '"' . __('Anonymous') . '"'; $select->columns(new \Zend_Db_Expr("{$test} AS `" . self::NICKNAME_COL_NAME . "`")); } /** * @param \Magento\Framework\DB\Select $select * @throws \Zend_Db_Select_Exception */ private function cleanNickname(\Zend_Db_Select $select) { $columns = $select->getPart(\Zend_Db_Select::COLUMNS); // Remove the select column with name "nickname" unset($columns[array_search(self::NICKNAME_COL_NAME, array_column($columns, 1))]); $select->reset(\Zend_Db_Select::COLUMNS); $select->setPart(\Zend_Db_Select::COLUMNS, $columns); } }