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

[Решено] Вопрос про горизонтальное меню


Smallbear

Recommended Posts

Помогите пожалуйста разобраться с пунктами горизонтального меню.

Проблема вот в чем,у меня в меню 5 разделов : главная,новости,оплата и доставка , контакты , партнерам.Каждый раздел имеет три состояния,обычное ,активное (когда на него наводишь) и включенное (оно равно активному).

Проблема заключается в том , что когда я нажимаю кнопку "партнерам" у меня выделяется кнопка "оплата и доставка",вот скрин:

Изображение

вот мой код:

верх

<a href="<?php echo str_replace('&', '&', $home); ?>" id="tab_home"><?php echo $text_home; ?></a>
    <a href="<?php echo str_replace('&', '&', $allnews); ?>" id="tab_allnews"><?php echo $text_allnews; ?></a>
    <a href="<?php echo str_replace('&', '&', $opldost); ?>" id="tab_opldost"><?php echo $text_opldost; ?></a>
    <a href="<?php echo str_replace('&', '&', $contact); ?>" id="tab_contact"><?php echo $text_contact; ?></a>
    <a href="<?php echo str_replace('&', '&', $partners); ?>" id="tab_partners"><?php echo $text_partners; ?></a>

сам джава скрипт

if (!route) {
$('#tab_home').addClass('nav_a_selected');
} else {
part = route.split('/');

		if (route == 'common/home') {
			$('#tab_home').addClass('nav_a_selected');
		} else if (route == 'account/login') {
			$('#tab_login').addClass('nav_a_selected');
		} else if (part[0] == 'account') {
			$('#tab_account').addClass('nav_a_selected');
		} else if (route == 'checkout/cart') {
			$('#tab_cart').addClass('nav_a_selected');
		} else if (part[0] == 'checkout') {
			$('#tab_checkout').addClass('nav_a_selected');
		} else if (route == 'information/news') {
			$('#tab_allnews').addClass('nav_a_selected');
		} else if (route == 'information/contact') {
			$('#tab_contact').addClass('nav_a_selected');
		}  else if (route == 'information/information') {
			$('#tab_opldost').addClass('nav_a_selected');
		}  else if (route == 'information/information') {
			$('#tab_partners').addClass('nav_a_selected');
		} else  {
		$('#tab_home').addClass('nav_a_selected');
		}

Я понимаю в чем проблема,скорее всего в том что в джава скрипте два раза написано else if (route == 'information/information')

но у меня ведь "оплата и доставка" и "партнерам" это две статьи и я не пойму как написать по другому,может быть кто-нибудь что-то посоветует?

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


Помогите пожалуйста разобраться с пунктами горизонтального меню.

Проблема вот в чем,у меня в меню 5 разделов : главная,новости,оплата и доставка , контакты , партнерам.Каждый раздел имеет три состояния,обычное ,активное (когда на него наводишь) и включенное (оно равно активному).

Проблема заключается в том , что когда я нажимаю кнопку "партнерам" у меня выделяется кнопка "оплата и доставка",вот скрин:

Надеюсь разберешься

$(document).ready(function() {
	route = getURLVar('route');
	information_id = getURLVar('information_id');
	
	if (!route) {
		$('#tab_home').addClass('selected');
	} else {
		part = route.split('/');
		
	if (route == 'common/home') {
	               $('#tab_home').addClass('selected');
          } else if (route == 'product/special') {
               $('#tab_special').addClass('selected');     
          } else if (information_id == 'information_id=4') {
               $('#tab_about').addClass('selected');
		} else if (information_id == 'information_id=6') {
               $('#tab_delivery').addClass('selected');
          } else if (route == 'information/contact') {
               $('#tab_contact').addClass('selected');
}
  • +1 2
Надіслати
Поділитися на інших сайтах


Надеюсь разберешься

я тоже надеялся,да вроде бы и ничего сложного,но почему-то не работает.Получился такой код:

$(document).ready(function() {
	route = getURLVar('route');
    information_id = getURLVar('information_id');

if (!route) {
$('#tab_home').addClass('nav_a_selected');
} else {
part = route.split('/');

		if (route == 'common/home') {
			$('#tab_home').addClass('nav_a_selected');
		} else if (route == 'information/news') {
			$('#tab_allnews').addClass('nav_a_selected');
		} else if (route == 'information/contact') {
			$('#tab_contact').addClass('nav_a_selected');
		}  else if (information_id == 'information_id=6') {
			$('#tab_opldost').addClass('nav_a_selected');
		}  else if (information_id == 'information_id=7') {
			$('#tab_partners').addClass('nav_a_selected');
		} else  {
		$('#tab_home').addClass('nav_a_selected');
		}

Теперь вообще вседа главная выделяется и в чем проблема понять не получается.Уже второй день бьюсь с этим и решить не могу.А это для какой Вы версии написали,возможно такой способ в последнем осторе не работает?

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


Теперь вообще вседа главная выделяется и в чем проблема понять не получается.Уже второй день бьюсь с этим и решить не могу.А это для какой Вы версии написали,возможно такой способ в последнем осторе не работает?

Писал не я, работает в 1.4.9.3. А если попробовать вместо псевдо прописать полный айди уровня

<a href="index.php?route=information/information&information_id=6" id="tab_delivery"><?php echo $text_opldost; ?</a>
  • +1 1
Надіслати
Поділитися на інших сайтах


Писал не я, работает в 1.4.9.3. А если попробовать вместо псевдо прописать полный айди уровня

<a href="index.php?route=information/information&information_id=6" id="tab_delivery"><?php echo $text_opldost; ?</a>
не помогло,да и не должно было как мне кажется,т.к. ссылки же и до этого нормально работали.

Если не сложно не могли бы Вы скинуть код вашего header.tpl а то я уже с ума схожу вроде уже все перепробовал,но наверно самого очевидного не вижу

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


не помогло,да и не должно было как мне кажется,т.к. ссылки же и до этого нормально работали.

Если не сложно не могли бы Вы скинуть код вашего header.tpl а то я уже с ума схожу вроде уже все перепробовал,но наверно самого очевидного не вижу

Вобщем проблему решил, почти как Вы 19th и говорили ,необходимо было дописать строку

information_id= getURLVar('information_id');

но там где у меня было написано

route == 'information/information'

необходимо было заменить на

information_id == 7 (7 - номер вашей статьи)

Решение нашел в коде одного из сайтов.Странно то что в списке магазинов на опенкарт , такая проблема встречается почти в каждом и практически нигде ее и не думают по-моему решать.И теперь мне не понятно ,то ли у меня слишком большие требования,то ли у многих совсем не большие))

Вот сам код (естественно лишние строки которые касаются корзины,моего кабинета,если их у Вас нет в горизонтальном меню можно поудалять,но я стараюсь ничего не удалять чтобы в будующем ничего не слетело.:


$(document).ready(function() {
	route = getURLVar('route');
    information_id= getURLVar('information_id');

	if (route) {
		part = route.split('/');

		if (route == 'common/home') {
			$('#tab_home').addClass('nav_a_selected');
		} else if (route == 'account/login') {
			$('#tab_login').addClass('nav_a_selected');
		} else if (part[0] == 'account') {
			$('#tab_account').addClass('nav_a_selected');
		} else if (route == 'checkout/cart') {
			$('#tab_cart').addClass('nav_a_selected');
		} else if (part[0] == 'checkout') {
			$('#tab_checkout').addClass('nav_a_selected');

		} else if (route == 'information/news') {
			$('#tab_allnews').addClass('nav_a_selected');
		} else if (information_id == 6) {
			$('#tab_opldost').addClass('nav_a_selected');
		} else if (route == 'information/news') {
			$('#tab_allnews').addClass('nav_a_selected');
		} else if (route == 'information/contact') {
			$('#tab_contact').addClass('nav_a_selected');
		} else if (information_id == 7) {
			$('#tab_partners').addClass('nav_a_selected');
		} else {
			$('#tab_home').addClass('nav_a_selected');
		}

	}		$('.switcher').bind('click', function() {		$(this).find('.option').slideToggle('fast');	});	$('.switcher').bind('mouseleave', function() {		$(this).find('.option').slideUp('fast');	}); 		$('#search input').keydown(function(e) {		if (e.keyCode == 13) {			moduleSearch();		}	});
});

P.S. есть еще пару вопросов по коду :

1. часто в коде встречаю надпись

if (!route) {
 part = route.split('/');
у меня же в шаблоне прописано без восклицательного знака

if (route) {
part = route.split('/');

В чем разница этих надписей?

2. у меня в коде есть строка,которую у других я не видел,что она означает?

$('.switcher').bind('click', function() {		$(this).find('.option').slideToggle('fast');	});	$('.switcher').bind('mouseleave', function() {		$(this).find('.option').slideUp('fast');	}); 		$('#search input').keydown(function(e) {		if (e.keyCode == 13) {			moduleSearch();		}	});
});
Надіслати
Поділитися на інших сайтах


Решение нашел в коде одного из сайтов.Странно то что в списке магазинов на опенкарт , такая проблема встречается почти в каждом и практически нигде ее и не думают по-моему решать.И теперь мне не понятно ,то ли у меня слишком большие требования,то ли у многих совсем не большие))

Ты еще погляди на тех же магазинах как работает сортировка по цене и поиск в разных регистрах, тоже удивишься ;)

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


Ты еще погляди на тех же магазинах как работает сортировка по цене и поиск в разных регистрах, тоже удивишься ;)

ну я еще до поиска не дошел,но видел где-то что с ним могут быть проблемы.

Если честно мне не совсем,это означают что все магазины на опенкарт делают не понятно как ? Ну всмысли не сильно вникая в детали

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


  • 2 weeks later...

Здравствуйте! У меня такая же проблема не выделяется в меню!

Вот код меню:

<div class="div4">
      <a href="<?php echo str_replace('&', '&', $home); ?>" id="tab_home"><?php echo $text_home; ?></a>
      <a href="index.php?route=information/information&information_id=4" id="tab_com"><?php echo $text_special; ?></a>
      <a href="index.php?route=information/news" id="tab_news"><?php echo $text_news; ?></a>
      <a href="index.php?route=information/information&information_id=6" id="tab_ysl"><?php echo $text_bookmark; ?></a>
      <a href="index.php?route=information/information&information_id=7" id="tab_otz"><?php echo $text_sitemap; ?></a>
      <a href="<?php echo $contact; ?>" id="tab_contact"><?php echo $text_contact; ?></a>
</div>

Вот js:

$(document).ready(function() {
	route = getURLVar('route');
	
	if (!route) {
		$('#tab_home').addClass('selected');
	} else {
		part = route.split('/');
		
		if (route == 'common/home') {
			$('#tab_home').addClass('selected');
		} else if (route == 'account/login') {
			$('#tab_login').addClass('selected');	
		} else if (part[0] == 'account') {
			$('#tab_account').addClass('selected');
		} else if (route == 'checkout/cart') {
			$('#tab_cart').addClass('selected');
                } else if (route == 'information/news') {
			$('#tab_news').addClass('selected');
		} else if (part[0] == 'checkout') {
			$('#tab_checkout').addClass('selected');
		} else if (route == 'information/contact') {
			$('#tab_contact').addClass('selected');			
		} else if (information_id == 4) {
			$('#tab_com').addClass('selected');
		} else if (information_id == 6) {
			$('#tab_ysl').addClass('selected');
		} else if (information_id == 7) {
			$('#tab_otz').addClass('selected');
		} else {
			$('#tab_home').addClass('selected');
		}
	}
});

Перепробывал все варианты...не работает...!! Помогите пожалуйста! Заранее спасибо!

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


Похожк Вы забыли дописать: information_id= getURLVar('information_id');

Посмотрите пример выше.

ну да это Вы забыли написать,но если честно я не удивлюсь если это не поможет.Я с эти меню долго боролся))

плюс вот в этом коде,по-моему ошибка в последней строке,видите код черный весь,только вот что не так не могу понять))

<div class="div4">
      <a href="<?php echo str_replace('&', '&', $home); ?>" id="tab_home"><?php echo $text_home; ?></a>
      <a href="index.php?route=information/information&information_id=4" id="tab_com"><?php echo $text_special; ?></a>
      <a href="index.php?route=information/news" id="tab_news"><?php echo $text_news; ?></a>
      <a href="index.php?route=information/information&information_id=6" id="tab_ysl"><?php echo $text_bookmark; ?></a>
      <a href="index.php?route=information/information&information_id=7" id="tab_otz"><?php echo $text_sitemap; ?></a>
      <a href="<?php echo $contact; ?>" id="tab_contact"><?php echo $text_contact; ?></a>
</div>
Надіслати
Поділитися на інших сайтах


Хотя у меня последняя строка так же вроде выглядит так что наверное правильно написано,т.к. у меня работает

<a href="<?php echo str_replace('&', '&', $contact); ?>" id="tab_contact"><?php echo $text_contact; ?></a>
Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

P.S. есть еще пару вопросов по коду :

1. часто в коде встречаю надпись

if (!route) {
 part = route.split('/');
у меня же в шаблоне прописано без восклицательного знака

if (route) {
part = route.split('/');

В чем разница этих надписей?

Операнд ! - логическое НЕ. Это если коротко.

А если более подробно, то в первом случае выражение выполнится при условии, что route примет значение FALSE, а во втором случае (Вашем) - при условии TRUE.

Если честно, не знаю как объяснить более понятно. Возможно Гугл сможет.

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


  • 4 months later...

Товарищи, а подскажите пожалуйста, как быть с SEO-урлами в меню? именно из-за них перестали выделяться менюшки

На всякий случай скрипт:

<a href="<?php echo str_replace('&', '&', $home); ?>" id="tab_home"><b><?php echo $text_home; ?></b></a>
<a href="<?php echo str_replace('&', '&', $news); ?>" id="tab_news"><b><?php echo $text_news; ?></b></a>
<a href="<?php echo str_replace('&', '&', $prosp); ?>" id="tab_prosp"><b><?php echo $text_prosp; ></b></a> 
<a href="<?php echo str_replace('&', '&', $rules); ?>" id="tab_rules"><b><?php echo $text_rules; ?></b></a> 
<a href="<?php echo str_replace('&', '&', $shipping); ?>" id="tab_shipping"><b><?php echo $text_shipping; ?></b></a>
<a href="<?php echo str_replace('&', '&', $pay); ?>" id="tab_pay"><b><?php echo $text_pay; ?></b></a>

js:

$(document).ready(function() { 
route = getURLVar('route'); 	
information_id = getURLVar('information_id'); 	
if (!route) { 		
$('#tab_home').addClass('selected'); 	
} else { 		
part = route.split('/');
if (route == 'common/home') { 
$('#tab_home').addClass('selected');
} else if (route == 'information/news') { 
$('#tab_news').addClass('selected');		 
} else if (route == 'information/information' && information_id==7) { 			
$('#tab_shipping').addClass('selected');	 		
} else if (route == 'information/information' && information_id==9) { 			
$('#tab_pay').addClass('selected');	 		}   		

information_id==7 соответствует ЧПУ "kak-poluchit-zakaz"

information_id==9 соответствует ЧПУ "oplata"

controller/common/header.php

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


$this->data['shipping'] = HTTP_SERVER . 'index.php?route=information/information&information_id=7';
$this->data['pay'] = HTTP_SERVER . 'index.php?route=information/information&information_id=9';
Надіслати
Поділитися на інших сайтах


Товарищи, а подскажите пожалуйста, как быть с SEO-урлами в меню? именно из-за них перестали выделяться менюшки

На всякий случай скрипт:

<a href="<?php echo str_replace('&', '&', $home); ?>" id="tab_home"><b><?php echo $text_home; ?></b></a>
<a href="<?php echo str_replace('&', '&', $news); ?>" id="tab_news"><b><?php echo $text_news; ?></b></a>
<a href="<?php echo str_replace('&', '&', $prosp); ?>" id="tab_prosp"><b><?php echo $text_prosp; ></b></a> 
<a href="<?php echo str_replace('&', '&', $rules); ?>" id="tab_rules"><b><?php echo $text_rules; ?></b></a> 
<a href="<?php echo str_replace('&', '&', $shipping); ?>" id="tab_shipping"><b><?php echo $text_shipping; ?></b></a>
<a href="<?php echo str_replace('&', '&', $pay); ?>" id="tab_pay"><b><?php echo $text_pay; ?></b></a>

js:

$(document).ready(function() { 
route = getURLVar('route'); 	
information_id = getURLVar('information_id'); 	
if (!route) { 		
$('#tab_home').addClass('selected'); 	
} else { 		
part = route.split('/');
if (route == 'common/home') { 
$('#tab_home').addClass('selected');
} else if (route == 'information/news') { 
$('#tab_news').addClass('selected');		 
} else if (route == 'information/information' && information_id==7) { 			
$('#tab_shipping').addClass('selected');	 		
} else if (route == 'information/information' && information_id==9) { 			
$('#tab_pay').addClass('selected');	 		}   		

information_id==7 соответствует ЧПУ "kak-poluchit-zakaz"

information_id==9 соответствует ЧПУ "oplata"

controller/common/header.php

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


$this->data['shipping'] = HTTP_SERVER . 'index.php?route=information/information&information_id=7';
$this->data['pay'] = HTTP_SERVER . 'index.php?route=information/information&information_id=9';

как вариант можно просто не прописывать псевдонимы этим статьям

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


  • 5 months later...

это я конечно понимаю, но все таки так не красиво как-то получается Изображение везде ЧПУ, а для элементов из меню их нет

ну так как решить? у меня с этим же проблема!

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


  • 1 month later...

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

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

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

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

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

Вхід

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

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

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

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

Important Information

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