6
6
declare (strict_types=1 );
7
7
8
8
namespace Magento \CatalogSearch \Model \Search ;
9
+
10
+ use Magento \Backend \Helper \Data ;
11
+ use Magento \Catalog \Api \CategoryListInterface ;
12
+ use Magento \Framework \Api \FilterBuilder ;
13
+ use Magento \Framework \Api \SearchCriteriaBuilder ;
14
+ use Magento \Framework \Api \SearchCriteriaBuilderFactory ;
15
+ use Magento \Framework \DataObject ;
16
+ use Magento \Framework \Stdlib \StringUtils ;
17
+
9
18
/**
10
19
* Search model for backend search
11
20
*/
12
- class Category extends \ Magento \ Framework \ DataObject
21
+ class Category extends DataObject
13
22
{
14
23
/**
15
- * Adminhtml data
16
- *
17
- * @var \Magento\Backend\Helper\Data
24
+ * @var Data
18
25
*/
19
- protected $ _adminhtmlData = null ;
26
+ private $ adminhtmlData = null ;
20
27
21
28
/**
22
- * @var \Magento\Catalog\Api\ CategoryListInterface
29
+ * @var CategoryListInterface
23
30
*/
24
- protected $ categoryRepository ;
31
+ private $ categoryRepository ;
25
32
26
33
/**
27
- * @var \Magento\Framework\Api\ SearchCriteriaBuilder
34
+ * @var SearchCriteriaBuilder
28
35
*/
29
- protected $ searchCriteriaBuilder ;
36
+ private $ searchCriteriaBuilder ;
30
37
31
38
/**
32
- * @var \Magento\Framework\Api\ FilterBuilder
39
+ * @var FilterBuilder
33
40
*/
34
- protected $ filterBuilder ;
41
+ private $ filterBuilder ;
35
42
36
43
/**
37
- * Magento string lib
38
- *
39
- * @var \Magento\Framework\Stdlib\StringUtils
44
+ * @var SearchCriteriaBuilderFactory
40
45
*/
41
- protected $ string ;
46
+ private $ searchCriteriaBuilderFactory ;
42
47
43
48
/**
44
- * Initialize dependencies.
45
- *
46
- * @param \Magento\Backend\Helper\Data $adminhtmlData
47
- * @param \Magento\Catalog\Api\CategoryListInterface $categoryRepository
48
- * @param \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder
49
- * @param \Magento\Framework\Api\FilterBuilder $filterBuilder
50
- * @param \Magento\Framework\Stdlib\StringUtils $string
49
+ * @var StringUtils
50
+ */
51
+ private $ string ;
52
+
53
+ /**
54
+ * @param Data $adminhtmlData
55
+ * @param CategoryListInterface $categoryRepository
56
+ * @param SearchCriteriaBuilder $searchCriteriaBuilder
57
+ * @param SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory
58
+ * @param FilterBuilder $filterBuilder
59
+ * @param StringUtils $string
51
60
*/
52
61
public function __construct (
53
- \ Magento \ Backend \ Helper \ Data $ adminhtmlData ,
54
- \ Magento \ Catalog \ Api \ CategoryListInterface $ categoryRepository ,
55
- \ Magento \ Framework \ Api \ SearchCriteriaBuilder $ searchCriteriaBuilder ,
56
- \ Magento \ Framework \ Api \ FilterBuilder $ filterBuilder ,
57
- \ Magento \ Framework \ Stdlib \ StringUtils $ string
58
- )
59
- {
60
- $ this ->_adminhtmlData = $ adminhtmlData ;
62
+ Data $ adminhtmlData ,
63
+ CategoryListInterface $ categoryRepository ,
64
+ SearchCriteriaBuilder $ searchCriteriaBuilder ,
65
+ SearchCriteriaBuilderFactory $ searchCriteriaBuilderFactory ,
66
+ FilterBuilder $ filterBuilder ,
67
+ StringUtils $ string
68
+ ) {
69
+ $ this ->adminhtmlData = $ adminhtmlData ;
61
70
$ this ->categoryRepository = $ categoryRepository ;
62
71
$ this ->searchCriteriaBuilder = $ searchCriteriaBuilder ;
72
+ $ this ->searchCriteriaBuilderFactory = $ searchCriteriaBuilderFactory ;
63
73
$ this ->filterBuilder = $ filterBuilder ;
64
74
$ this ->string = $ string ;
65
75
}
@@ -76,7 +86,7 @@ public function load()
76
86
$ this ->setResults ($ result );
77
87
return $ this ;
78
88
}
79
-
89
+ $ this -> searchCriteriaBuilder = $ this -> searchCriteriaBuilderFactory -> create ();
80
90
$ this ->searchCriteriaBuilder ->setCurrentPage ($ this ->getStart ());
81
91
$ this ->searchCriteriaBuilder ->setPageSize ($ this ->getLimit ());
82
92
$ searchFields = ['name ' ];
@@ -86,7 +96,7 @@ public function load()
86
96
$ filters [] = $ this ->filterBuilder
87
97
->setField ($ field )
88
98
->setConditionType ('like ' )
89
- ->setValue (' % ' . $ this ->getQuery () . ' % ' )
99
+ ->setValue (sprintf ( " %%%s%% " , $ this ->getQuery ()) )
90
100
->create ();
91
101
}
92
102
$ this ->searchCriteriaBuilder ->addFilters ($ filters );
@@ -101,7 +111,7 @@ public function load()
101
111
'type ' => __ ('Category ' ),
102
112
'name ' => $ category ->getName (),
103
113
'description ' => $ this ->string ->substr ($ description , 0 , 30 ),
104
- 'url ' => $ this ->_adminhtmlData ->getUrl ('catalog/category/edit ' , ['id ' => $ category ->getId ()]),
114
+ 'url ' => $ this ->adminhtmlData ->getUrl ('catalog/category/edit ' , ['id ' => $ category ->getId ()]),
105
115
];
106
116
}
107
117
$ this ->setResults ($ result );
0 commit comments