vaguemind vaguemind - 3 months ago 21
PHP Question

How to remove dropdown from opencart 2.2 breadcrumb?

I am using opencart v2.2.0 and have the code below for the breadcrumb. This breadcrumb show the categories as a dropdown. How can I edit this breadcrumb to remove that dropdown and just show the right categories and sub categories?

Here is a screenshot of how it works:
breadcrumb screen shot

And here is the code:

<div class="breadcrumb <?php if($theme_options->get( 'breadcrumb_layout' ) == 2) { echo 'fixed'; } else { echo 'full-width'; } ?>">
<div class="background-breadcrumb"></div>
<div class="background">
<div class="shadow"></div>
<div class="pattern">
<div class="container">
<div class="clearfix">
<ul>
<?php
$i = 0;
$next_cat_id = 0;
foreach ($breadcrumbs as $breadcrumb) {
$cats = array();
if($registry->get('request')->get['route'] == 'product/product' || $registry->get('request')->get['route'] == 'product/category'){
if($i == 1 ){
$cats = $theme_options->getCategories(0);
}else if($next_cat_id > 0 && count($breadcrumbs)-1 > $i){
$cats = $theme_options->getCategories($next_cat_id);
}
}


?>
<li class="item <?php echo !empty($cats) ? 'dropdown' : '';?>">
<a <?php echo !empty($cats) ? 'class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false"' : '';?>
href="<?php echo $breadcrumb['href']; ?>"><?php if($breadcrumb['text'] != '<i class="fa fa-home"></i>') { echo $breadcrumb['text']; } else { if($theme_options->get( 'home_text', $config->get( 'config_language_id' ) ) != '') { echo $theme_options->get( 'home_text', $config->get( 'config_language_id' ) ); } else { echo 'Home'; } } ?></a>

<?php if(!empty($cats)):?>
<ul class="dropdown-menu">
<li>
<?php foreach($cats as $cat):?>
<?php if($cat['label'] == $breadcrumb['text']):?>
<?php $next_cat_id = $cat['category_id']; continue; ?>
<?php endif; ?>
<a href="<?php echo $cat['href'] ?>"><?php echo $cat['label'] ?></a>
<?php endforeach; ?>
</li>
</ul>
<?php endif; ?>

</li>
<?php $i++; } ?>
</ul>
<!-- <h1 id="title-page"><?php echo $heading_title; ?>
<?php if(isset($weight)) { if ($weight) { ?>
&nbsp;(<?php echo $weight; ?>)
<?php } } ?>
</h1>
<div class="strip-line"></div>-->
</div>
</div>
</div>
</div>



Answer

I did not know where this code is so be careful with closing div and other html. As I per code I have remove other level and dropdown. I considered $breadcrumbs array is returning as of default code. If they have changed it then need to change in controller part also. Hope following will works.

<div class="breadcrumb <?php if($theme_options->get( 'breadcrumb_layout' ) == 2) { echo 'fixed'; } else { echo 'full-width'; } ?>">
<div class="background-breadcrumb"></div>
<div class="background">
    <div class="shadow"></div>
    <div class="pattern">
        <div class="container">
            <div class="clearfix">
                <ul>
                    <?php
                    foreach ($breadcrumbs as $breadcrumb) { ?>
                        <li class="item">
                            <a
                                href="<?php echo $breadcrumb['href']; ?>"><?php if($breadcrumb['text'] != '<i class="fa fa-home"></i>') { echo $breadcrumb['text']; } else { if($theme_options->get( 'home_text', $config->get( 'config_language_id' ) ) != '') { echo $theme_options->get( 'home_text', $config->get( 'config_language_id' ) ); } else { echo 'Home'; } } ?></a>    
                        </li>
                        <?php } ?>
                </ul>
<!--                   <h1 id="title-page"><?php echo $heading_title; ?>
                    <?php if(isset($weight)) { if ($weight) { ?>
                    &nbsp;(<?php echo $weight; ?>)
                    <?php } } ?>
                </h1>
                <div class="strip-line"></div>-->
</div>
</div>
</div>
</div>
Comments