3

I need to place my minicart icon in a specific position in header.phtml file

below is header container in default.xml

<referenceContainer name="header.container"  htmlClass="main-header">

            <container name="cart.container" htmlTag="div" htmlClass="cart-container-custom" before="-"></container>    
            <container name="cart.container.mobile" htmlTag="div" htmlClass="cart-container-mobile" after="cart.container"></container>

            <referenceBlock name="top.search" remove="true"/>
            <referenceBlock name="header.panel" remove="true"/>

        </referenceContainer>

        <referenceContainer name="header-wrapper" class="hide" />

        <move element="minicart" destination="header.container" before="-" />

Below is header.phtml

<?php
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

// @codingStandardsIgnoreFile

/**
 * @var \Magento\Theme\Block\Html\Header $block
 */

$welcomeMessage = $block->getWelcome();

$objectManagerr = \Magento\Framework\App\ObjectManager::getInstance();
$store = $objectManagerr->create('Magento\Framework\App\Config\ScopeConfigInterface');

/** @var $helper \Magento\Search\Helper\Data */
$helper = $this->helper('Magento\Search\Helper\Data');
?>

<div class="container-fluid">

    <div class="head-top">

        <span class=""><?php echo $welcomeMessage; ?></span>
        <div class="pull-right">
            <a href="#"><i class="fa fa-user"></i> Login planportaal</a><a href="#" class="btn btn-warning btn-med"> Login planportaal</a>
        </div>
    </div><!--  head-top ends-->

    <script type="text/x-magento-init">
    {
        "*": {
            "Magento_Ui/js/core/app": {
                "components": {
                    "customer": {
                        "component": "Magento_Customer/js/view/customer"
                    }
                }
            }
        }
    }
    </script>


    <div class="head-main">
        <nav class="navbar">
            <div class="">
                <!-- Brand and toggle get grouped for better mobile display -->
                <div class="navbar-header">

                    <?php /*
                        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                            <span class="sr-only">Toggle navigation</span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                        </button>
                    */  ?>
                    <span class="navbar-brand">
                        <?php echo $block->getLayout()->createBlock("Magento\Theme\Block\Html\Header\Logo")->setTemplate("Magento_Theme::html/header/logo.phtml")->toHtml();?>
                    </a>
                </div>

                <!-- Collect the nav links, forms, and other content for toggling -->
                <div class="collapse navbar-collapse" >

                    <ul class="nav navbar-nav visible-md visible-lg">
                        <li class="dropdown active">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Wat wij doen <span class="caret"></span></a>
                            <div class="dropdown-menu">
                                <div class="row">

                                    <?php 

                                        $categoriesBlock = $block->getLayout()->createBlock('Smartshore\Incase\Block\GetCategory');

                                        $subCategories = $categoriesBlock->getSubCategories(3); 

                                        if (!empty($subCategories)) {

                                            foreach($subCategories as $categoryId => $category):

                                            $products = $categoriesBlock->getProductsOfCategory($categoryId); 

                                    ?>

                                    <div class="col-md-3">

                                        <div class="dropdown-title"><?php echo $category; ?></div>

                                        <?php if (!empty($products)) { ?>

                                            <ul class="list-unstyled">

                                                <?php foreach($products as $product): ?>

                                                    <?php $productUrl = $product->getUrlModel()->getUrl($product); ?>

                                                    <li><a href="<?php echo $productUrl; ?>"><?php echo $product->getName(); ?></a></li>

                                                <?php endforeach; ?>

                                            </ul>

                                        <?php } ?>
                                    </div>

                                    <?php
                                        endforeach;
                                        }
                                    ?>

                                    <div class="col-md-3">
                                        <?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_home_page_links1')->toHtml();?>
                                    </div>

                                    <div class="col-md-3">
                                        <?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_home_page_links2')->toHtml();?>
                                    </div>
                                </div>
                            </div>

                        </li>

                        <li><a href="#">Verzekerings check</a></li>
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Helpdesk <span class="caret"></span></a>
                            <div class="dropdown-menu">
                                <div class="row">

                                    <div class="col-md-3">
                                        <div class="dropdown-title">E-learning</div>

                                        <ul class="list-unstyled">
                                            <li><a href="#">Planning &amp; Admin</a></li>
                                            <li><a href="#">E-Learning </a></li>
                                            <li><a href="#">Kinder EHBO</a></li>
                                            <li><a href="#">BHV Kinderopvang</a></li>
                                            <li><a href="#">BHV kantoor kinderopvang </a></li>
                                        </ul>
                                    </div>
                                    <div class="col-md-3">
                                        <div class="dropdown-title">EHBO</div>

                                        <ul>
                                            <li><a href="#">Coördinator BHV</a></li>
                                            <li><a href="#">Thema workshops</a></li>
                                            <li><a href="#">Tabletop oefening</a></li>
                                            <li><a href="#">Ontruiming</a></li>
                                            <li><a href="#">Pedagogisch</a></li>
                                        </ul>
                                    </div>
                                    <div class="col-md-3">
                                        <div class="dropdown-title">Materiaal</div>

                                        <ul>
                                            <li><a href="#">Tips &amp; trucs</a></li>
                                            <li><a href="#">Plattegronden</a></li>
                                            <li><a href="#">Controle blussers</a></li>
                                            <li><a href="#">Kostenbesparingsplan</a></li>
                                            <li><a href="#">Declaratieoverzicht</a></li>
                                        </ul>
                                    </div>
                                    <div class="col-md-3">
                                        <div class="dropdown-title">Webshops</div>

                                        <ul>
                                            <li><a href="#">BHV Materialenwinkel</a></li>
                                            <li><a href="#">Kinder EHBO Winkel</a></li>
                                        </ul>
                                    </div>

                                </div>
                            </div>
                        </li>
                    </ul>

                    <?php  echo $this->getLayout()
                    ->createBlock('\Magento\Framework\View\Element\Template')
                    ->setTemplate('Magento_Search::form.mini.phtml')
                    ->toHtml(); ?>

                    <ul class="nav navbar-nav navbar-right" id="upwardBlock">
                        <li><a href="tel:<?php echo $store->getValue('general/store_information/phone'); ?>"><i class="fa fa-phone"></i>&nbsp;<?php echo $store->getValue('general/store_information/phone');?></a></li>
                        <li class="show-sticky">
                            <?php echo $this->getChildHtml('minicart') ?>
                        </li>
                    </ul>
                </div><!-- /.navbar-collapse -->
            </div><!-- /.container-fluid -->
        </nav>


    </div><!--  head-main ends-->


    <div class="head-btm">

        <nav class="navbar">

            <button type="button" id="menu" class="menu navbar-toggle collapsed" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

            <ul class="nav navbar-nav pull-right">
                <li><a href="#">Nieuws</a></li>
                <li><a href="#">Over Incase</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </nav>

    </div><!--  head-btm ends-->

</div>

In header.phtml file , I have to place my minicart icon wher I have added this code

<?php echo $this->getChildHtml('minicart') ?>

This code is not working Please suggest any solution

Bojjaiah
  • 3,992
  • 4
  • 56
  • 119
anujeet
  • 195
  • 3
  • 15

1 Answers1

2

If you want to place the minicart block in header.phtml, you need to look at which block is actually rendering header.phtml. I had to do a search, but the Magento\Theme\Block\Html\Header block appears to default to rendering the html/header.phtml template, so let's find that block in the layout XML:

<block class="Magento\Theme\Block\Html\Header" name="header" as="header" before="-"></block>

So you want to move the minicart to header, not header.container:

<move element="minicart" destination="header" before="-" />

You can usually place the <move> directive at a higher level, without nesting it in <referenceContainer name="header.container">.

Once minicart has been moved to header, so it's a "child" of it, it should now be available via the getChildHtml() call.

thaddeusmt
  • 1,395
  • 14
  • 18