[Помощь] Выделение главной страницы virtuemart в меню.

Avi

Постоялец
Регистрация
10 Фев 2013
Сообщения
92
Реакции
30
Сразу к сути. Имеется меню всего с 2мя пунктами: на главную вирта и она же главная сайта, и другой пункт. Все страницы вирта имеют один itemid, соответственно пункт "главная" подсвечивается и на страницах категорий, страницах товаров. А нужно только в случае нахождении на главной. Бьюсь час, не придумал ничего лучше костыльного решения яваскриптом =\. Ушел спать, нужна помощь :dk:
 
Тебе нужно создать пункты меню для категорий, соответственно ItemId Будет у каждой категории, и товаров внутри этой категории свой, или не вариант?
 
  • Нравится
Реакции: Avi
Тут проблема в том, что активной пометится все равно главная страница, даже при нахождении в категории. Т.к. вирт внутри оперирует своими итемидами и не изменяет установленный активный элемент. За попытку помочь - спасибо)
 
Первый созданный пункт на главную вирта будет приоритетнее второго.
Иными словами - сначала нужно создать скрытое меню на главную вирта, а затем точно такое же СОЗДАТЬ как главную сайта.
Вирт должен (теоретически) брать первый созданный пункт меню как активный.
НО, можно исправить шаблон главной страницы вирта и прописать в нем жестко itemid :facepalm:
Все теория!
 
  • Нравится
Реакции: Avi
Тут проблема в том, что активной пометится все равно главная страница, даже при нахождении в категории. Т.к. вирт внутри оперирует своими итемидами и не изменяет установленный активный элемент. За попытку помочь - спасибо)
К примеру у тебя есть главная страница в меню
к ней ты привязал главную вмарта верно?
Теперь к примеру у тебя есть 5 категорий
Категория 1
Категория 2 и т.д.

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

А вообще дай ссылку на сайт (если не на локалке конечно) посмотрим.

Просто оч. много магазинов на вмарте делал
всегда категория привязывается к итемид, не могу понять почему у тебя возникла такая проблема
 
  • Нравится
Реакции: Avi
Скорее всего это связано с глюками самого вирчемарта.

У меня была аналогичная ситуация.

Вирчемарт 2.0.20a - все работает ок.
Обновляюсь (на любую из последующих версий, последовательно или с перескакиваниями) - начинаются чудеса с потерей категорий и вообще путей.
Разбирался и обнаружил, что при формировании страницы просмотра товара или просмотра категории половина значений в $this просто отсутствует. Какая-то ошибка. Глюк. Баг. Ерунда короче.

так и работает магазин на той версии, где нет ошибок.

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

Совет - попробуйте достать одну из более ранних резервных копий, пока еще все было в порядке.

и, кстати, у нескольких знакомых вебмастеров были подобные проблемы с обновлениями - так один сайт невозможно обновить выше 2.0.14 (начинают сыпаться ошибки), а другой так и остался 2.0.6 (там вообще при обновлении все становится грустно).
 
Есть еще одна смелая идея, и, думаю, будет работать корректно (но идею не проверял) - а именно, создать 2 одинаковых модуля этого главного меню с разными стилями CSS (например .menu1 и .menu2) - в одном из них будет подсвечиваться (выделяться) активный пункт меню, в другом нет.
Первый модуль выводить только на двух страницах (главная и второй пункт), второй модуль выводить на всех остальных кроме этих двух.
Таким образом мы получим невыделенные пункты меню (по стилям) на всех страницах каталога, и выделенные на двух указанных.
 
можно сделать через PHP сравнивая $_SERSER['QUERY_STRING'] c '/' с зависимости от этого давать другой класс тегу бади, т.е.
<body class="<?php echo $_SERVER['QUERY_STRING']=='/'?'home':'';?>">
потом в CSS файле прописать с учетом этого и учетом Itemid пункта, т.к. у него будет класс item-xx
 
Как и предполагал, описанный мной же cпособ не совсем работает, поэтому я решил его немного усовершенствовать. Суть осталась та же - вывод двух модулей с меню на "главной" и "не главной", только в шаблоне нужно указать какой и когда выводить
<?php if (JURI::current()== JURI::base()){?>
<jdoc:include type="modules" name="module_for_menu1" />
<?php }

else {?>
<jdoc:include type="modules" name="module_for_menu2" />
<?php }?>
 
так не понял немного .. а зачем это делать если тебе нужны отдельные категории то оптимальнее создать пункт меню с виртом и привязать к нему подкатегории .. эту вложенность скрыть и создать еще одно меню в котором с помощью псевдонима пункта меню привязываем категории .. если тебе нужны прымые алиасы используем плагин Direct Alias
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Назад
Сверху