ребят помогите с меню
Помогите плз с меню, пытался через условие смарти сделать чето не получается, вот мб есть нормальный вариант на jquery ?
Есть меню типа:
{%foreach from=$categories item='category'%}
{%if $category.parent == 0%}
{%assign var="count" value=$category.id|count_msg%}
{%assign var="caturl" value=$smarty.get.cat.0%}
<li class="resp-tab-item hor_1"><a class="nav1" href="{%$settings.path%}{%$category.uri%}/">
{%$category.name%}</a></li>
{%/if%}
{%/foreach%}
вкратце выводит список категорий, как сделать чтобы если находясь в категории Авто например <li> добавлялся бы класс tab-active тоесть бышло бы так
<li class="resp-tab-item hor_1 tab-active"><a class="nav1" href="{%$settings.path%}{%$category.uri%}/">
{%$category.name%}</a></li>
Но это пол беды блин как сделать чтобы именно конкретному пункту из выборки присваивался класс, а не всем подряд! Если перевести на Русский (например пользователь находится на страничке http://site.ru/avto/):
{%foreach from=$categories item='category'%}
{%if $category.parent == 0%}
{%assign var="count" value=$category.id|count_msg%}
{%assign var="caturl" value=$smarty.get.cat.0%}
<li class="resp-tab-item hor_1 (Если открыта /avto/, то подсвечивается то добавляется класс сюда)"><a class="nav1" href="{%$settings.path%}{%$category.uri%}/">
{%$category.name%}</a></li>
{%/if%}
{%/foreach%}
объявил переменную {%assign var="caturl" value=$smarty.get.cat.0%} она будет выводить uri категории вида: Avto, Biznes, Nedvighimost и т.д. можно использовать как то в решении данной задачи хз мб для id или еще чего, в шаблоне выводится так {%$caturl%}, можно использовать например так: <li id="{%$caturl%}" и т.д. |
И в чем проблема сравнить caturl с category.uri в нужном месте и по условию сравнения прописать или нет класс?
|
внимательнее прочитал бы, если бы не было проблем наверное не писал бы сюда, как считаешь ?
|
сравнить то сравнить, как привязать к конкретному пункту из массива всего, теоритический понимаю, но рабочий код не смогу написать, всю голову сломал уже
|
Цитата:
Если открыта /avto/, и avto и т.п., это уникальные значения (как и другие значения у элементов), и эти значения, это category.uri и smarty.get.cat.0, то как может быть при сравнении множество совпадений? |
я в jqury не силен, поэтому и прошу помощи в данном вопросе!
чисто на смарти как я понял этого не написать... |
Цитата:
Если в url значение avto и подобные, это уникальные категории, то есть не могут быть у множества элементов LI, то сравнивая category.uri (если эта переменная и есть категория) с параметром GET запроса, можно определить добавление класса. Получить значение GET параметра в Smarty, это $smarty.get.имя_параметра. Но судя по всему, у вас ЧПУ, а значит в шаблон нужно будет передавать результат обработки url в .htaccess. Хватит в ступе толочь и поясните, что вот это то, а это другое и т.п. |
Цитата:
{%assign var="caturl" value=$smarty.get.cat.0%}
<li id="{%$caturl%}" class="resp-tab-item hor_1"><a class="nav1" href="{%$settings.path%}{%$category.uri%}/">{%$category.name%}</a></li>
выводится (в итоговом HTML) массив рубрик по типу: <li id="Avto" class="resp-tab-item hor_1"><a class="nav1" href="Avto/">Авто</a></li> НЕдвижимость Работа и .т. Как написать рабочий код что-бы: Если юзер находится на Avto/ сравнивалось url где он находится с id , если совпадает то <li> добавляется class tab-active тоесть было бы в итоге так:
{%assign var="caturl" value=$smarty.get.cat.0%}
<li id="{%$caturl%}" class="resp-tab-item hor_1 tab-active"><a class="nav1" href="{%$settings.path%}{%$category.uri%}/">{%$category.name%}</a></li>
|
да и маленькое дополнение, не знаю правильно выражусь или нет, но смысл то присвоение класса должно как то связано быть с айди, чтобы конкретному пункту списка из всего массива присваивался класс а не всему списку!
|
SERblY, id тут боком.
Вы не показываете html кода меню и бог его знает, что оно из себя представляет. Допустим, что это одноуровневое меню, и значения Avto (с чего оно вдруг с заглавное стало не понятно) и другие, это есть уникальные значения. То есть Avto и другие значения могут быть только у одного элемента меню и в цикле никак не могут повторятся. Остается проверить GET параметр запроса и выводимое в меню в цикле и получим ответ. Но чем определяется Avto и другое, какой переменной так и остается загадкой. А также не известно передается ли GET запрос в шаблон и как, или нет. Это вы можете пояснить или нет? А может быть речь идет о группе элементов с таким параметром и надо раскрыть родителя? Вы понимаете о чем вас спрашивают? |
| Часовой пояс GMT +3, время: 01:34. |