66declare (strict_types=1 );
77
88namespace 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+
918/**
1019 * Search model for backend search
1120 */
12- class Category extends \ Magento \ Framework \ DataObject
21+ class Category extends DataObject
1322{
1423 /**
15- * Adminhtml data
16- *
17- * @var \Magento\Backend\Helper\Data
24+ * @var Data
1825 */
19- protected $ _adminhtmlData = null ;
26+ private $ adminhtmlData = null ;
2027
2128 /**
22- * @var \Magento\Catalog\Api\ CategoryListInterface
29+ * @var CategoryListInterface
2330 */
24- protected $ categoryRepository ;
31+ private $ categoryRepository ;
2532
2633 /**
27- * @var \Magento\Framework\Api\ SearchCriteriaBuilder
34+ * @var SearchCriteriaBuilder
2835 */
29- protected $ searchCriteriaBuilder ;
36+ private $ searchCriteriaBuilder ;
3037
3138 /**
32- * @var \Magento\Framework\Api\ FilterBuilder
39+ * @var FilterBuilder
3340 */
34- protected $ filterBuilder ;
41+ private $ filterBuilder ;
3542
3643 /**
37- * Magento string lib
38- *
39- * @var \Magento\Framework\Stdlib\StringUtils
44+ * @var SearchCriteriaBuilderFactory
4045 */
41- protected $ string ;
46+ private $ searchCriteriaBuilderFactory ;
4247
4348 /**
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
5160 */
5261 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 ;
6170 $ this ->categoryRepository = $ categoryRepository ;
6271 $ this ->searchCriteriaBuilder = $ searchCriteriaBuilder ;
72+ $ this ->searchCriteriaBuilderFactory = $ searchCriteriaBuilderFactory ;
6373 $ this ->filterBuilder = $ filterBuilder ;
6474 $ this ->string = $ string ;
6575 }
@@ -76,7 +86,7 @@ public function load()
7686 $ this ->setResults ($ result );
7787 return $ this ;
7888 }
79-
89+ $ this -> searchCriteriaBuilder = $ this -> searchCriteriaBuilderFactory -> create ();
8090 $ this ->searchCriteriaBuilder ->setCurrentPage ($ this ->getStart ());
8191 $ this ->searchCriteriaBuilder ->setPageSize ($ this ->getLimit ());
8292 $ searchFields = ['name ' ];
@@ -86,7 +96,7 @@ public function load()
8696 $ filters [] = $ this ->filterBuilder
8797 ->setField ($ field )
8898 ->setConditionType ('like ' )
89- ->setValue (' % ' . $ this ->getQuery () . ' % ' )
99+ ->setValue (sprintf ( " %%%s%% " , $ this ->getQuery ()) )
90100 ->create ();
91101 }
92102 $ this ->searchCriteriaBuilder ->addFilters ($ filters );
@@ -101,7 +111,7 @@ public function load()
101111 'type ' => __ ('Category ' ),
102112 'name ' => $ category ->getName (),
103113 '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 ()]),
105115 ];
106116 }
107117 $ this ->setResults ($ result );
0 commit comments