Skip to content

Commit

Permalink
MC-35491: Patch Request : Re: Slow query on search_query
Browse files Browse the repository at this point in the history
  • Loading branch information
rostyslav-hymon committed Jul 3, 2020
1 parent 735579d commit de9318d
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 7 deletions.
50 changes: 50 additions & 0 deletions app/code/Magento/Search/ViewModel/ConfigProvider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);

namespace Magento\Search\ViewModel;

use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\View\Element\Block\ArgumentInterface;
use Magento\Store\Model\ScopeInterface;

/**
* View model for search
*/
class ConfigProvider implements ArgumentInterface
{
/**
* Suggestions settings config paths
*/
private const SEARCH_SUGGESTION_ENABLED = 'catalog/search/search_suggestion_enabled';

/**
* @var ScopeConfigInterface
*/
private $scopeConfig;

/**
* @param ScopeConfigInterface $scopeConfig
*/
public function __construct(
ScopeConfigInterface $scopeConfig
) {
$this->scopeConfig = $scopeConfig;
}

/**
* Is Search Suggestions Allowed
*
* @return bool
*/
public function isSuggestionsAllowed(): bool
{
return $this->scopeConfig->isSetFlag(
self::SEARCH_SUGGESTION_ENABLED,
ScopeInterface::SCOPE_STORE
);
}
}
6 changes: 5 additions & 1 deletion app/code/Magento/Search/view/frontend/layout/default.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="header-wrapper">
<block class="Magento\Framework\View\Element\Template" name="top.search" as="topSearch" template="Magento_Search::form.mini.phtml" />
<block class="Magento\Framework\View\Element\Template" name="top.search" as="topSearch" template="Magento_Search::form.mini.phtml">
<arguments>
<argument name="configProvider" xsi:type="object">Magento\Search\ViewModel\ConfigProvider</argument>
</arguments>
</block>
</referenceContainer>
<referenceBlock name="footer_links">
<block class="Magento\Framework\View\Element\Html\Link\Current" ifconfig="catalog/seo/search_terms" name="search-term-popular-link">
Expand Down
16 changes: 10 additions & 6 deletions app/code/Magento/Search/view/frontend/templates/form.mini.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@
<?php
/** @var $block \Magento\Framework\View\Element\Template */
/** @var $helper \Magento\Search\Helper\Data */
/** @var $configProvider \Magento\Search\ViewModel\ConfigProvider */
$helper = $this->helper(\Magento\Search\Helper\Data::class);
$configProvider = $block->getData('configProvider');
?>
<div class="block block-search">
<div class="block block-title"><strong><?= $block->escapeHtml(__('Search')) ?></strong></div>
Expand All @@ -22,12 +24,14 @@ $helper = $this->helper(\Magento\Search\Helper\Data::class);
</label>
<div class="control">
<input id="search"
data-mage-init='{"quickSearch":{
"formSelector":"#search_mini_form",
"url":"<?= $block->escapeUrl($helper->getSuggestUrl())?>",
"destinationSelector":"#search_autocomplete",
"minSearchLength":"<?= $block->escapeHtml($helper->getMinQueryLength()) ?>"}
}'
<?php if ($configProvider->isSuggestionsAllowed()):?>
data-mage-init='{"quickSearch":{
"formSelector":"#search_mini_form",
"url":"<?= $block->escapeUrl($helper->getSuggestUrl())?>",
"destinationSelector":"#search_autocomplete",
"minSearchLength":"<?= $block->escapeHtml($helper->getMinQueryLength()) ?>"}
}'
<?php endif;?>
type="text"
name="<?= $block->escapeHtmlAttr($helper->getQueryParamName()) ?>"
value="<?= /* @noEscape */ $helper->getEscapedQueryText() ?>"
Expand Down

0 comments on commit de9318d

Please sign in to comment.