ребят помогите с меню
Помогите плз с меню, пытался через условие смарти сделать чето не получается, вот мб есть нормальный вариант на 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, время: 08:45. |