Прикрепленный к моему шаблону, который я получил от моего слайсера, был файл javascript для раскраски пунктов меню.
Теперь мне нужно преобразовать шаблон в шаблон Drupal.
Javascript основан на том факте, что каждый пункт меню имеет идентификатор, в соответствии с порядком пунктов.
В Drupal пункты меню имеют только классы (menu-341, menu-342 и т. Д.). Я знаю, что могу настроить javascript, чтобы он получал пункты меню по классам, но на самом деле это невозможно, потому что тогда мне нужно полностью расстроить весь файл, что я пытаюсь предотвратить.
Так можно ли добавить идентификатор для всех моих пунктов главного меню, например, «menu-item-1», «menu-item-2» и т. Д.?
Должен ли я сделать это в template.tpl.php или напрямую изменить вывод в page.tpl.php?
Спасибо за помощь.
EDIT:
Я в отчаянии, потому что я просто не знаю, как это исправить. Есть ли другой способ раскрасить мои пункты меню?
Сценарий, который я использую, выбирает пункты меню по их возрастающему идентификатору (custom-menu-item-id-x) и дает им фон из массива, который ассоциируется с «x» идентификатора. Четыре цвета: цвет 1 для элемента 1, цвет 2 для элемента 2, цвет 1 для элемента 5 и т. Д. .....
Разве нет другого способа это исправить? Не могу ли я позволить jQuery автоматически выбирать их в порядке возрастания (первый встреченный элемент получает первый фон, второй фон - второй фон и т. Д.)? Пожалуйста, придумайте идеи. Я все перепробовал, на мой взгляд.
Это мой текущий скрипт:
//Sequence of the background colors from the menu items, from left to right.
var backgrounds = ["blue", "green", "pink", "purple"];
//Gives the menu items a style when hovering over it, in the sequence of the setting in the variable 'backgrounds', on top.
jQuery(document).ready(function MenuColor($){
for (var i = 0; i <= 10 ; i++) {
document.getElementById("custom-menu-item-id-" + (i + 1)).onmouseover = (function(valueOfI){ return function() {
this.style.background = "url('images/" + backgrounds[(valueOfI % backgrounds.length)] + ".jpg')";
}; })(i);
var ActiveLi = $('.active').attr('id');
if("custom-menu-item-id-" + (i + 1) != ActiveLi) {
document.getElementById("custom-menu-item-id-" + (i + 1)).onmouseout = function() {
this.style.background = 'none';
}
}
}
});