Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[РЕШЕНО] Как дублировать главное меню (категории) в футере?


Recommended Posts

Помогите пожалуйста в футер добавить меню, чтобы дублировалось то меню категорий, которое в шапке.
 
Попытался сделать так:
Скопировал из catalog\controller\common\header.php кусок кода с меню

// Menu
		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		$this->load->model('catalog/category');
		
		$this->load->model('catalog/product');
		
		$this->data['categories'] = array();
					
		$categories = $this->model_catalog_category->getCategories(0);
		
		foreach ($categories as $category) {
			if ($category['top']) {
				// Level 2
				$children_data = array();
				
				$children = $this->model_catalog_category->getCategories($category['category_id']);
				
				foreach ($children as $child) {
					//Будем вычислять кол-во товаров в категориях только если это кол-во надо показывать
					if ($this->config->get('config_product_count')) {
						$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'])	
					);						
				}
				
				// Level 1
				$this->data['categories'][] = array(
					'name'     => $category['name'],
					'children' => $children_data,
					'active'   => in_array($category['category_id'], $parts),
					'column'   => $category['column'] ? $category['column'] : 1,
					'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
				);
			}
		}
		
		$this->children = array(
			'module/language',
			'module/currency',
			'module/cart',
		);
				
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/common/header.tpl';
		} else {
			$this->template = 'default/template/common/header.tpl';
		}

 

и вставил его в catalog\controller\common\footer.php

 

после этого так же копировал в catalog\view\theme\aqua\template\common\footer.tpl меню из catalog\view\theme\aqua\template\common\header.tpl

<?php if ($categories) { ?>
<div id="menu">
  <ul>
    <?php foreach ($categories as $category) { ?>
    <li><a href="<?php echo $category['href']; ?>">
	<span class="corner"></span>
	<span class="line-left"></span>
	<span class="line-right"></span>
	<span><?php echo $category['name']; ?></span>
	</a>
      <?php if ($category['children']) { ?>
      <div>
        <?php for ($i = 0; $i < count($category['children']);) { ?>
        <ul>
          <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
          <?php for (; $i < $j; $i++) { ?>
          <?php if (isset($category['children'][$i])) { ?>
          <li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
          <?php } ?>
          <?php } ?>
        </ul>
        <?php } ?>
      </div>
      <?php } ?>
    </li>
    <?php } ?>
  </ul>
</div>
<?php } ?>

 

Результат: Меню действительно появилось в футере, но перед этим меню куча ошибок.

Вот список ошибок:

Notice: Undefined variable: description in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 7Notice: Undefined variable: keywords in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 10 Notice: Undefined variable: og_image in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 16 Notice: Undefined variable: icon in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 22Notice: Undefined variable: links in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 25Warning: Invalid argument supplied for foreach() in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 25 Notice: Undefined variable: styles in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 29Warning: Invalid argument supplied for foreach() in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 29 Notice: Undefined variable: scripts in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 36Warning: Invalid argument supplied for foreach() in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 36 Notice: Undefined variable: stores in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 49 Notice: Undefined variable: google_analytics in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 62
Notice: Undefined variable: logo in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 69
Notice: Undefined variable: text_home in W:\domains\localhost\aqua\catalog\view\theme\aqua\template\common\header.tpl on line 97

И что странно в футер перенеслось не только меню, но и весь хидер вместе с телефоном, который в header.tpl прописан и с поисковиком. Хотя html код меню я перенес без поисковика и телефона. И слайдшоу перестало работать еще.

 

Как правильно перенести главное меню (категорий) в футер?

 

 


 

Надіслати
Поділитися на інших сайтах


Похоже, ТС перенес из контроллера header.php в footer.php полностью код, вот и подхватывается все из header.tpl

Надіслати
Поділитися на інших сайтах

Похоже, ТС перенес из контроллера header.php в footer.php полностью код, вот и подхватывается все из header.tpl

Да нет. Я написал в первом посте какой именно код я вставил. Там вроде нет ничего лишнего. Только меню. Может я и ошибаюсь. Поправьте пожалуйста в чем может быть ошибка?

Надіслати
Поділитися на інших сайтах


Смотрите внимательно код который Вы перенесли в контроллере:

$this->children = array(
            'module/language',
            'module/currency',
            'module/cart',
        );
                
        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
            $this->template = $this->config->get('config_template') . '/template/common/header.tpl';
        } else {
            $this->template = 'default/template/common/header.tpl';
        }

это точно не нужно. Вы к футеру привязали шаблон хедера, вот и отображается все из хедера. Уберите этот код - и будет Вам счастье!

Надіслати
Поділитися на інших сайтах

Именно это я и имел ввиду.

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Спасибо за полезный VQMOD! Работает как часики!

 

А как еще и логотип в футер вынести?

 

Пробовал к в этом же vqmod вставить строки из контроллера хедера и блок из header.tpl с logo. После чего логотип вставляется в футер, но кроме него еще и ошибки показывает.

 

Подскажите пожалуйста как и логотип вставить в футер.

Надіслати
Поділитися на інших сайтах


Не думаю ,что следует таскать весь код,вставьте картинку и прицепите ссылку на главную.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.