![]() 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-backend/Controller/Adminhtml/Index/ |
<?php /** * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Backend\Controller\Adminhtml\Index; use Magento\Backend\Controller\Adminhtml\Index as IndexAction; use Magento\Framework\App\Action\HttpGetActionInterface; use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface; /** * @api * @since 100.0.2 */ class GlobalSearch extends IndexAction implements HttpGetActionInterface, HttpPostActionInterface { /** * @var \Magento\Framework\Controller\Result\JsonFactory */ protected $resultJsonFactory; /** * Search modules list * * @var array */ protected $_searchModules; /** * @param \Magento\Backend\App\Action\Context $context * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory * @param array $searchModules */ public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory, array $searchModules = [] ) { $this->_searchModules = $searchModules; parent::__construct($context); $this->resultJsonFactory = $resultJsonFactory; } /** * Global Search Action * * @return \Magento\Framework\Controller\Result\Json */ public function execute() { $items = []; if (!$this->_authorization->isAllowed('Magento_Backend::global_search')) { $items[] = [ 'id' => 'error', 'type' => __('Error'), 'name' => __('Access Denied.'), 'description' => __('You need more permissions to do this.'), ]; } else { if (empty($this->_searchModules)) { $items[] = [ 'id' => 'error', 'type' => __('Error'), 'name' => __('No search modules were registered'), 'description' => __( 'Please make sure that all global admin search modules are installed and activated.' ), ]; } else { $start = $this->getRequest()->getParam('start', 1); $limit = $this->getRequest()->getParam('limit', 10); $query = $this->getRequest()->getParam('query', ''); foreach ($this->_searchModules as $searchConfig) { if ($searchConfig['acl'] && !$this->_authorization->isAllowed($searchConfig['acl'])) { continue; } $className = $searchConfig['class']; if (empty($className)) { continue; } $searchInstance = $this->_objectManager->create($className); $results = $searchInstance->setStart( $start )->setLimit( $limit )->setQuery( $query )->load()->getResults(); $items = array_merge_recursive($items, $results); } } } /** @var \Magento\Framework\Controller\Result\Json $resultJson */ $resultJson = $this->resultJsonFactory->create(); return $resultJson->setData($items); } }