Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Config.php
Go to the documentation of this file.
1 <?php
7 
12 
17 {
21  private $configStructure;
22 
26  private $resultBuilder;
27 
32  public function __construct(Structure $configStructure, Builder $resultBuilder)
33  {
34  $this->configStructure = $configStructure;
35  $this->resultBuilder = $resultBuilder;
36  }
37 
42  public function setQuery($query)
43  {
44  $this->setData('query', $query);
45  return $this;
46  }
47 
51  public function getQuery()
52  {
53  return $this->getData('query');
54  }
55 
59  public function hasQuery()
60  {
61  return $this->hasData('query');
62  }
63 
68  public function setResults(array $results)
69  {
70  $this->setData('results', $results);
71  return $this;
72  }
73 
77  public function getResults()
78  {
79  return $this->getData('results');
80  }
81 
87  public function load()
88  {
89  $this->findInStructure($this->configStructure->getTabs(), $this->getQuery());
90  $this->setResults($this->resultBuilder->getAll());
91  return $this;
92  }
93 
101  private function findInStructure(ElementIterator $structureElementIterator, $searchTerm, $pathLabel = '')
102  {
103  if (empty($searchTerm)) {
104  return;
105  }
106  foreach ($structureElementIterator as $structureElement) {
107  if (mb_stripos((string)$structureElement->getLabel(), $searchTerm) !== false) {
108  $this->resultBuilder->add($structureElement, $pathLabel);
109  }
110  $elementPathLabel = $pathLabel . ' / ' . $structureElement->getLabel();
111  if ($structureElement instanceof AbstractComposite && $structureElement->hasChildren()) {
112  $this->findInStructure($structureElement->getChildren(), $searchTerm, $elementPathLabel);
113  }
114  }
115  }
116 }
$results
Definition: popup.phtml:13
getData($key='', $index=null)
Definition: DataObject.php:119
__construct(Structure $configStructure, Builder $resultBuilder)
Definition: Config.php:32
setData($key, $value=null)
Definition: DataObject.php:72