Issue with magento 2.1

0

I need some help with insert a custom module class inside search field phtml file. First sorry I am new on magento 2 and I am trying to understand how it works.

I installed a Theme and I would like to put a select box with categories on the left side of search field.

The theme already has a class with the getStoreCategories () function and I am trying to use it.

The theme has the overwrite Magento_Search folder and the file "form.mini.phtml".

Then I am trying to add this function on this file. The tree structure is like that:

app / code / Megnor / Category / Block / Html / Leftcategories.php

This file contains this functions:

<?php

namespace Megnor\Category\Block\Html;

class Leftcategories extends \Magento\Framework\View\Element\Template
{
protected $_categoryHelper;
protected $categoryFlatConfig;
protected $topMenu;
public function __construct(
    \Magento\Framework\View\Element\Template\Context $context,
    \Magento\Catalog\Helper\Category $categoryHelper,
    \Magento\Catalog\Model\Indexer\Category\Flat\State $categoryFlatState,
    \Magento\Theme\Block\Html\Topmenu $topMenu
) {
    $this->_categoryHelper = $categoryHelper;
    $this->categoryFlatConfig = $categoryFlatState;
    $this->topMenu = $topMenu;
    parent::__construct($context);
}
public function getHtml()
{
    return $this->topMenu->getHtml();
}
/**
 * Return categories helper
 */   
public function getCategoryHelper()
{
    return $this->_categoryHelper;
}/**
 * Retrieve current store categories
 *
 * @param bool|string $sorted
 * @param bool $asCollection
 * @param bool $toLoad
 * @return \Magento\Framework\Data\Tree\Node\Collection| 
   \Magento\Catalog\Model\Resource\Category\Collection|array
 */    
 public function getStoreCategories($sorted = false, $asCollection = false, $toLoad = true)
{
    return $this->_categoryHelper->getStoreCategories($sorted , $asCollection, $toLoad);
}
/**
 * Retrieve child store categories
 *
 */ 
public function getChildCategories($category)
{
       if ($this->categoryFlatConfig->isFlatEnabled() && $category->getUseFlatResource()) {
            $subcategories = (array)$category->getChildrenNodes();
        } else {
            $subcategories = $category->getChildren();
        }
        return $subcategories;
}
}

And this file I am trying to get this function:

app \ design \ frontend \ Megnor \ mag110228_2 \ Magento_Search \ templates \ form.mini.phtml

<?php
/** @var $helper \Magento\Search\Helper\Data */
/** @var $block \Megnor\Category\Block\Html */
$helper = $this->helper('Magento\Search\Helper\Data');
$helper_categories = $this->helper(' Megnor\Category\Helper\Data');
$categories = $helper_categories->getStoreCategories(true,false,true);
print_r($categories);
?>
<div class="block block-search">
 <div class="block-search-inner">
  <div class="block block-title"><strong><?php /* @escapeNotVerified */ echo __('Search'); ?></strong></div>
   <div class="block block-content">
    <form class="form minisearch" id="search_mini_form" action="<?php /* @escapeNotVerified */ echo $helper->getResultUrl() ?>" method="get">
        <div class="field search">
            <div class="box-categories">
                <select name="cat">
                    <option value="all">Todos</option>
                </select>
            </div>
            <label class="label" for="search" data-role="minisearch-label">
                <span><?php /* @escapeNotVerified */ echo __('Search'); ?></span>
            </label>
            <div class="control">
                <input id="search"
                       data-mage-init='{"quickSearch":{
                            "formSelector":"#search_mini_form",
                            "url":"<?php /* @escapeNotVerified */ echo $block->getUrl('search/ajax/suggest', ['_secure' => $block->getRequest()->isSecure()]); ?>",
                            "destinationSelector":"#search_autocomplete"}
                       }'
                       type="text"
                       name="<?php /* @escapeNotVerified */ echo $helper->getQueryParamName() ?>"
                       value="<?php /* @escapeNotVerified */ echo $helper->getEscapedQueryText() ?>"
                       placeholder="<?php /* @escapeNotVerified */ echo __('Search Your Products...'); ?>"
                       class="input-text"
                       maxlength="<?php /* @escapeNotVerified */ echo $helper->getMaxQueryLength();?>"
                       role="combobox"
                       aria-haspopup="false"
                       aria-autocomplete="both"
                       autocomplete="off"
                       aria-expanded= "true"/>
            </div>
        </div>
        <div class="actions">
            <button type="submit"
                    title="<?php echo $block->escapeHtml(__('Search')) ?>"
                    class="action search">
                <span><?php /* @escapeNotVerified */ echo __('Search'); ?></span>
            </button>
        </div>
    </form>
</div>
</div>

</div>

Is it possible to do this? If so how can I do?

Thanks

    
asked by anonymous 05.09.2018 / 00:44

0 answers