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

[Решено] Добавление нового пункта в горизонтальное меню


Recommended Posts

Доброе время суток друзья! Сколько вы раз выручали уже меня, пришёл к вам вновь за помощью!)

Вкратце. Верхнее меню у меня не стандартное, оно идёт как модуль. Довольно дибильный имеет внешний вид дефолтный, но вынужден был установить его по той причине, что необходим показ подуровней.
Мне понадобилось добавить пункты в это меню, с этим возникли вопросы.

Вод код:

<div id="topmenu" style="display:none"><?php if ($tmcategories) {  echo $tmcategories; } ?>
<a href="index.php?route=information/contact">Контакты</a>
</div> 

 
Как видите, я попытался добавить новый пункт, это у меня вышло, НО вот незадача! Оно появилось в другом стиле каком-то. Просто текст маленький уродливый. А надо чтобы с размахом было всё и со стилем, как это у предыдущих пунктов меню.

Помогите пожалуйста)

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


Все правки вносить с помощью  notepad++ используя кодировку UTF-8 без бом.

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

Все правки вносить с помощью  notepad++ используя кодировку UTF-8 без бом.

Да, я понимаю, благодарю!) Но, к сожалению, это не решает моей проблемы

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


Добрый вечер.

 

Вы выводите тег a href после меню, а меню с вероятностью 90% обетнуто в список ul>li, Т.е. чтобы все заработало Вам необходимо залезть в контроллер модуля меню и добавить новый пункт вручную. Примерно так:

// Для примера 
//Модуль добавляет категории в массив меню
$this->data['categories'] = array();

foreach ($categories as category){
  $this->data['categories'][] = array(
    'name' => $category['name'],
    'href' => 'ссылка'
  );  
}
//Вам нужно после добавления элементов добавить свой
$this->data['categories'][] = array(
  'name' => 'название',
  'href' => 'ссылка'
); 

Код указан только для примера, реальный код модуля меню может отличаться. Либо откройте tpl файл модуля и перед закрывающим тегом ul добавьте свою ссылку обернутую в li. 

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

Добрый вечер.

 

...);

Код указан только для примера, реальный код модуля меню может отличаться. Либо откройте tpl файл модуля и перед закрывающим тегом ul добавьте свою ссылку обернутую в li. 

 

Но только через $this->url-link(... !

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

Добрый вечер.

 

Вы выводите тег a href после меню, а меню с вероятностью 90% обетнуто в список ul>li, Т.е. чтобы все заработало Вам необходимо залезть в контроллер модуля меню и добавить новый пункт вручную. Примерно так:

// Для примера 
//Модуль добавляет категории в массив меню
$this->data['categories'] = array();

foreach ($categories as category){
  $this->data['categories'][] = array(
    'name' => $category['name'],
    'href' => 'ссылка'
  );  
}
//Вам нужно после добавления элементов добавить свой
$this->data['categories'][] = array(
  'name' => 'название',
  'href' => 'ссылка'
); 

Код указан только для примера, реальный код модуля меню может отличаться. Либо откройте tpl файл модуля и перед закрывающим тегом ul добавьте свою ссылку обернутую в li. 

Вы не могли бы мне помочь с этим? Просто вот смотрю код контроллера модуля меню, не получается разобраться там. Не выходит так, как нужно... Я готов вам заплатить, назовите вашу цену :-)

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


Вы не могли бы мне помочь с этим? Просто вот смотрю код контроллера модуля меню, не получается разобраться там. Не выходит так, как нужно... Я готов вам заплатить, назовите вашу цену :-)

 

Пришлите сюда код контроллера под спойлером.

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

Пришлите сюда код контроллера под спойлером

 

 

<?php
class ControllerModuleTopmenu extends Controller {
	public function index() {
		$this->document->addStyle('catalog/view/theme/' . $this->config->get('config_template') . '/stylesheet/topmenu.css');
		$this->document->addScript('catalog/view/javascript/topmenu.js');
		
		$this->maxlength = $this->config->get('topmenu_maxlength');
		$this->hide_empty = $this->config->get('topmenu_hide_empty');
		$this->showtotal = $this->config->get('topmenu_total');
		$this->zindex = 1100;

		$this->load->model('catalog/category');
		$this->load->model('catalog/product');
		
		$this->data['tmcategories'] = $this->getTopMenu();

		
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/topmenu.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/module/topmenu.tpl';
		} else {
			$this->template = 'default/template/module/topmenu.tpl';
		}

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

		$top_cats = $this->model_catalog_category->getCategories(0);
		
		$category = "<ul class=\"sf-menu\">\n";
		foreach ($top_cats as $top_cat)	{
			if ($top_cat['top']) {
				$name	= $top_cat['name'];
				$href	= $this->url->link('product/category', 'path=' . $top_cat['category_id']);
				$class	= in_array($top_cat['category_id'], $parts) ?  ' class="topactive"' : '';
				$category .= "\t<li>\n<a href=\"".$href."\"".$class.">".$name."</a>\n";
				$category .= $this->getCatTree($top_cat['category_id'], $top_cat['column'])."\n</li>\n";
			}
		}
		return $category."\n</ul>\n";


	} 	

	function getCatTree ($category_id = 0, $column = 1)	{
		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		$column = $column ? $column : 1;
		$categories = $this->model_catalog_category->getCategories((int)$category_id);
		$countcats = count ($categories);
		$threshold = ceil ($countcats / $column);
		$category_data = '';
		$product_total = 0;
		
		foreach ($categories as $key => $category) {
			$data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true	
			);
			
			if ($this->showtotal)	{		
				$product_total = $this->model_catalog_product->getTotalProducts($data);
				$name = $category['name'] . '  (' . $product_total . ')';
			}	else	{
				$name = $category['name'];
			}
			if (!$threshold)	{
				$offset_column = $this->maxlength * floor ($key / $countcats * $column);
				$left = " style=\"margin-left: ". $offset_column ."px; z-index: ".--$this->zindex.";\"";
				$category_data .= "\n</ul>\n<ul". $left .">\n";
				$threshold = ceil ($countcats / $column);
			}
			
			$href = $this->url->link('product/category', 'path=' . $category['category_id']);
			$class = in_array($category['category_id'], $parts) ?  ' class="active"' : '';
			$parent = $this->getCatTree($category['category_id'], $category['column']);

			if ($parent) {
				$class = $class	? ' class="activeparent"' : ' class="parent"';
			}
			if ($product_total || !$this->hide_empty)	{
				$category_data .= "\n\t<li>\n<a href=\"".$href."\"".$class.">".$name."</a>".$parent."\n</li>\n";
			}
			$threshold--;
		}

		return strlen($category_data) ? "\n<ul style=\" z-index: ".++$this->zindex.";\">\n".$category_data."\n</ul>\n" : "";
	}
}
?>

Вот контроллер модуля)

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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