Magento Extensions Rating 2024
EXTENSIONS BY CATEGORY
B2B (Business-To-Business)
Blog
Customer
ERP (Enterprise Resource Planning)
Mega Menu
One Step Checkout
Order
POS (Point Of Sale)
Search
Shopping Cart
Sitemap
SEO
Social
Stock & Inventory Management
EXTENSIONS BY DEVELOPER
aheadWorks
Amasty
Boost My Shop
BSS Commerce
Magestore
MageWorx
Mirasvit
Templates Master
Wyomind
XTENTO
Magento 2 Documentation
Magento 2 Documentation
2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
vendor
magento
module-catalog-search
Model
Autocomplete
DataProvider.php
Go to the documentation of this file.
1
<?php
7
namespace
Magento\CatalogSearch\Model\Autocomplete
;
8
9
use
Magento\Search\Model\ResourceModel\Query\Collection
;
10
use
Magento\Search\Model\QueryFactory
;
11
use
Magento\Search\Model\Autocomplete\DataProviderInterface
;
12
use
Magento\Search\Model\Autocomplete\ItemFactory
;
13
use
Magento\Framework\App\Config\ScopeConfigInterface
as ScopeConfig;
14
use
Magento\Store\Model\ScopeInterface
;
15
19
class
DataProvider
implements
DataProviderInterface
20
{
24
const
CONFIG_AUTOCOMPLETE_LIMIT
=
'catalog/search/autocomplete_limit'
;
25
31
protected
$queryFactory
;
32
38
protected
$itemFactory
;
39
45
protected
$limit
;
46
52
public
function
__construct
(
53
QueryFactory
$queryFactory
,
54
ItemFactory
$itemFactory
,
55
ScopeConfig $scopeConfig
56
) {
57
$this->queryFactory =
$queryFactory
;
58
$this->itemFactory =
$itemFactory
;
59
60
$this->limit = (int) $scopeConfig->getValue(
61
self::CONFIG_AUTOCOMPLETE_LIMIT,
62
ScopeInterface::SCOPE_STORE
63
);
64
}
65
69
public
function
getItems
()
70
{
71
$collection
= $this->getSuggestCollection();
72
$query
= $this->queryFactory->get()->getQueryText();
73
$result
= [];
74
foreach
(
$collection
as
$item
) {
75
$resultItem = $this->itemFactory->create([
76
'title'
=>
$item
->getQueryText(),
77
'num_results'
=>
$item
->getNumResults(),
78
]);
79
if
($resultItem->getTitle() ==
$query
) {
80
array_unshift(
$result
, $resultItem);
81
}
else
{
82
$result
[] = $resultItem;
83
}
84
}
85
return
($this->limit) ? array_splice(
$result
, 0, $this->limit) :
$result
;
86
}
87
93
private
function
getSuggestCollection()
94
{
95
return
$this->queryFactory->get()->getSuggestCollection();
96
}
97
}
Magento\CatalogSearch\Model\Autocomplete
Definition:
DataProvider.php:7
$result
$result
Definition:
product_configurable_not_available_rollback.php:26
Magento\Search\Model\Autocomplete\DataProviderInterface
Definition:
DataProviderInterface.php:13
Magento\CatalogSearch\Model\Autocomplete\DataProvider\$itemFactory
$itemFactory
Definition:
DataProvider.php:38
Magento\Store\Model\ScopeInterface\SCOPE_STORE
const SCOPE_STORE
Definition:
ScopeInterface.php:21
Magento\CatalogSearch\Model\Autocomplete\DataProvider\__construct
__construct(QueryFactory $queryFactory, ItemFactory $itemFactory, ScopeConfig $scopeConfig)
Definition:
DataProvider.php:52
Magento\Search\Model\ResourceModel\Query\Collection
Definition:
Collection.php:16
Magento\CatalogSearch\Model\Autocomplete\DataProvider\CONFIG_AUTOCOMPLETE_LIMIT
const CONFIG_AUTOCOMPLETE_LIMIT
Definition:
DataProvider.php:24
$item
$item
Definition:
partial_invoice.php:27
Magento\CatalogSearch\Model\Autocomplete\DataProvider\$limit
$limit
Definition:
DataProvider.php:45
Magento\CatalogSearch\Model\Autocomplete\DataProvider\getItems
getItems()
Definition:
DataProvider.php:69
Magento\CatalogSearch\Model\Autocomplete\DataProvider\$queryFactory
$queryFactory
Definition:
DataProvider.php:31
Magento\Store\Model\ScopeInterface
Definition:
ScopeInterface.php:12
Magento\Search\Model\QueryFactory
Definition:
QueryFactory.php:18
$query
$query
Definition:
popular_query.php:9
Magento\Search\Model\Autocomplete\ItemFactory
Definition:
ItemFactory.php:11
Magento\Framework\App\Config\ScopeConfigInterface
Definition:
ScopeConfigInterface.php:15
$collection
$collection
Definition:
catalog_category_with_apostrophe_rollback.php:17
Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product