user3569147
user3569147

Reputation: 102

opencart Adding a custom menu in the header menu

This is a tricky problem that I am having.

I have a client / friend that wants on their open cart menu a button for home, which I was able to solve. However he wants a drop down menu for advice which holds 5 items. These 5 items are Faq's, Contact us, Delivery Details, Privacy policy and Returns policy.

Straight forward enough however the pages are information pages.

What I'd like to do is to link to these pages.

The ID of the advise is 80

            foreach ($children as $child) {
                if ($child['category_id'] == 80) {
                    $children_data[] = array(
                        'name' => $this->data['text_advicefaq'] = $this->language->get('text_advicefaq'),
                        'href' => $this->url->link('information/information', 'information_id=13')
                    );
                }

                $data = array(
                    'filter_category_id'  => $child['category_id'],
                    'filter_sub_category' => true
                );

                $product_total = $this->model_catalog_product->getTotalProducts($data);

                $children_data[] = array(
                    'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
                    'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
                );      
            }

Upvotes: 0

Views: 5519

Answers (1)

HDP
HDP

Reputation: 4221

Try something like

Step 1

Open file catalog/view/theme/<your theme>/template/common/header.tpl.

Find menu code.

Add before </ul> tag:

      <li><a><?php echo $text_information; ?></a>
        <div>
          <ul>
            <?php foreach ($informations as $information) { ?>
            <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
            <?php } ?>
          <li><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li>
          </ul>
        </div>
      </li>


Step 2

Open file catalog/controller/common/header.php.

Find:

$this->data['text_checkout'] = $this->language->get('text_checkout');

Add After:

$this->data['text_information'] = $this->language->get('text_information');
$this->data['text_contact'] = $this->language->get('text_contact');


Step 3

In the same file catalog/controller/common/header.php

Find:

    $this->data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');

Add After:

    $this->load->model('catalog/information');
    $this->data['informations'] = array();
    foreach ($this->model_catalog_information->getInformations() as $result) {
        if ($result['bottom']) {
            $this->data['informations'][] = array(
                'title' => $result['title'],
                'href'  => $this->url->link('information/information', 'information_id=' . $result['information_id'])
            );
        }
    }
    $this->data['contact'] = $this->url->link('information/contact');

& then check it.

Upvotes: 4

Related Questions