22 private $variableDataProvider;
45 \
Magento\Variable\Model\Variable\Data $variableDataProvider,
60 $this->variableDataProvider = $variableDataProvider;
71 private function sortBy(
$items, $field, $direction)
73 usort(
$items,
function ($item1, $item2) use ($field, $direction) {
74 return $this->variablesCompare($item1, $item2, $field, $direction);
89 private function variablesCompare($variable1, $variable2, $partIndex, $direction)
91 $values = [$variable1[$partIndex], $variable2[$partIndex]];
108 $this->variableDataProvider->getDefaultVariables(),
109 $this->variableDataProvider->getCustomVariables()
113 foreach ($sortOrders as $sortOrder) {
114 if ($sortOrder->getField() && $sortOrder->getDirection()) {
115 $items = $this->sortBy(
$items, $sortOrder->getField(), $sortOrder->getDirection());
120 foreach ($filterGroup->getFilters() as $filter) {
121 $value = str_replace(
'%',
'', $filter->getValue());
122 $filterField = $filter->getField();
124 return strpos(strtolower(
$item[$filterField]), strtolower(
$value)) !==
false;
__construct( $name, $primaryFieldName, $requestFieldName, ReportingInterface $reporting, SearchCriteriaBuilder $searchCriteriaBuilder, RequestInterface $request, FilterBuilder $filterBuilder, \Magento\Variable\Model\Variable\Data $variableDataProvider, array $meta=[], array $data=[])