Разноцветные пункты меню

Главные вкладки

Аватар пользователя vmelnychuk vmelnychuk 29 марта 2010 в 19:49

Помогите с советом!
Как создать пункты меню разного цвета?

Никаких модулей для меню не использую. Стили задаются для всего меню в целом. А мне надо каждый пункт меню раскрасить (фон) своим конкретным цветом.
Пробовал средствами JavaScript перебирать все пункты меню вызовом функции GetElementByTagName("а"), которая возвращает массив, и для конкретных елементов массива менял свойства тега, но есть неувязочка. При раскрытии пункта меню меняется количество тегов ..., которые я искал скриптом, и у меня нет возможности на каждой странице написать скрипт и посчитать какой тег на каком месте в массиве.

Как решить эту задачку? Подскажите.

Комментарии

Аватар пользователя wolfXXXL wolfXXXL 29 марта 2010 в 20:03

"vmelnychuk" wrote:
Стили задаются для всего меню в целом.

Не вижу Вашу версию drupal, в 6 у каждого пункта меню уникальный класс, через css можно всё так разукрасить...
Если 5, скорей всего придется его в template.php переопределять и навешивать стили.

Аватар пользователя vmelnychuk vmelnychuk 29 марта 2010 в 21:17

Версия 6.15.

Там классы задаются для всех пунктов мень один и тот же:

<ul class="menu">
   <li class="collapsed first"><a title="" href="/new_product">Новые товары</a></li>
   <li class="collapsed"><a title="" href="/new_product1">Новые товары1</a></li>
   <li class="collapsed"><a title="" href="/new_product2">Новые товары2</a></li>
   ...  

Тоесть стиль "collapsed" один для всех.
Надо для каждого элемента <a>, или <li>, определить свой, отличный от других, стиль.

Аватар пользователя vmelnychuk vmelnychuk 30 марта 2010 в 0:03

Нашел функцию в файле \include\theme.inc.

А что надо дописать чтоб например для каждого пункта меню был свой ID независимо от выбраного пункта меню(тоесть открытой страницы) или раскрытого\закрытого пункта?

Аватар пользователя vmelnychuk vmelnychuk 30 марта 2010 в 0:39

Дружим с php. С темизацией не очень, потому как не знаю откуда этот термин. Если создание тем - то да, сам делал, взяв за основы стандартные темы.
В принципе функция theme_links(); читабельна по коду и мне полностью понятна, что и где там делается.
Проблема в следующем - как сделать какой-то счетчик, который можно было бы использовать в этой функции, и который не зависел бы от глубины меню.

А где, когда и сколько раз вызывается эта фуннкция?

Аватар пользователя glu2006 glu2006 30 марта 2010 в 10:43

vmelnychuk wrote:
Дружим с php. С темизацией не очень, потому как не знаю откуда этот термин. Если создание тем - то да, сам делал, взяв за основы стандартные темы.
В принципе функция theme_links(); читабельна по коду и мне полностью понятна, что и где там делается.
Проблема в следующем - как сделать какой-то счетчик, который можно было бы использовать в этой функции, и который не зависел бы от глубины меню.

А где, когда и сколько раз вызывается эта фуннкция?

счетчик там уже есть это $i
Вызывается она везде, где строятся списки из ссылок кроме праймари и секондари меню, они по умолчанию идут с уникальными классами для каждого пункта.
Подебажьте и сразу все поймете

Аватар пользователя vmelnychuk vmelnychuk 27 мая 2010 в 18:52

Решено с помощью JacaScript: получил обьект-контейнер с меню, перебрал в нём все тэги <a...>...</a>, из них с теми, у которых свойство href удовлетворяет необходимое условие, поменял стиль (раскрасил).