Skip to content

Commit 98a29a4

Browse files
Merge remote-tracking branch 'origin/MC-35409' into 2.3-develop-pr51
2 parents d0ca827 + 10b302c commit 98a29a4

File tree

3 files changed

+66
-7
lines changed

3 files changed

+66
-7
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Search\ViewModel;
9+
10+
use Magento\Framework\App\Config\ScopeConfigInterface;
11+
use Magento\Framework\DataObject;
12+
use Magento\Framework\View\Element\Block\ArgumentInterface;
13+
use Magento\Store\Model\ScopeInterface;
14+
15+
/**
16+
* View model for search
17+
*/
18+
class ConfigProvider implements ArgumentInterface
19+
{
20+
/**
21+
* Suggestions settings config paths
22+
*/
23+
private const SEARCH_SUGGESTION_ENABLED = 'catalog/search/search_suggestion_enabled';
24+
25+
/**
26+
* @var ScopeConfigInterface
27+
*/
28+
private $scopeConfig;
29+
30+
/**
31+
* @param ScopeConfigInterface $scopeConfig
32+
*/
33+
public function __construct(
34+
ScopeConfigInterface $scopeConfig
35+
) {
36+
$this->scopeConfig = $scopeConfig;
37+
}
38+
39+
/**
40+
* Is Search Suggestions Allowed
41+
*
42+
* @return bool
43+
*/
44+
public function isSuggestionsAllowed(): bool
45+
{
46+
return $this->scopeConfig->isSetFlag(
47+
self::SEARCH_SUGGESTION_ENABLED,
48+
ScopeInterface::SCOPE_STORE
49+
);
50+
}
51+
}

app/code/Magento/Search/view/frontend/layout/default.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
99
<body>
1010
<referenceContainer name="header-wrapper">
11-
<block class="Magento\Framework\View\Element\Template" name="top.search" as="topSearch" template="Magento_Search::form.mini.phtml" />
11+
<block class="Magento\Framework\View\Element\Template" name="top.search" as="topSearch" template="Magento_Search::form.mini.phtml">
12+
<arguments>
13+
<argument name="configProvider" xsi:type="object">Magento\Search\ViewModel\ConfigProvider</argument>
14+
</arguments>
15+
</block>
1216
</referenceContainer>
1317
<referenceBlock name="footer_links">
1418
<block class="Magento\Framework\View\Element\Html\Link\Current" ifconfig="catalog/seo/search_terms" name="search-term-popular-link">

app/code/Magento/Search/view/frontend/templates/form.mini.phtml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
<?php
1010
/** @var $block \Magento\Framework\View\Element\Template */
1111
/** @var $helper \Magento\Search\Helper\Data */
12+
/** @var $configProvider \Magento\Search\ViewModel\ConfigProvider */
1213
$helper = $this->helper(\Magento\Search\Helper\Data::class);
14+
$configProvider = $block->getData('configProvider');
1315
?>
1416
<div class="block block-search">
1517
<div class="block block-title"><strong><?= $block->escapeHtml(__('Search')) ?></strong></div>
@@ -22,12 +24,14 @@ $helper = $this->helper(\Magento\Search\Helper\Data::class);
2224
</label>
2325
<div class="control">
2426
<input id="search"
25-
data-mage-init='{"quickSearch":{
26-
"formSelector":"#search_mini_form",
27-
"url":"<?= $block->escapeUrl($helper->getSuggestUrl())?>",
28-
"destinationSelector":"#search_autocomplete",
29-
"minSearchLength":"<?= $block->escapeHtml($helper->getMinQueryLength()) ?>"}
30-
}'
27+
<?php if ($configProvider->isSuggestionsAllowed()):?>
28+
data-mage-init='{"quickSearch":{
29+
"formSelector":"#search_mini_form",
30+
"url":"<?= $block->escapeUrl($helper->getSuggestUrl())?>",
31+
"destinationSelector":"#search_autocomplete",
32+
"minSearchLength":"<?= $block->escapeHtml($helper->getMinQueryLength()) ?>"}
33+
}'
34+
<?php endif;?>
3135
type="text"
3236
name="<?= $block->escapeHtmlAttr($helper->getQueryParamName()) ?>"
3337
value="<?= /* @noEscape */ $helper->getEscapedQueryText() ?>"

0 commit comments

Comments
 (0)