Как тегу <ul> (находится в меню) добавить произвольный атрибут, например tabindex?

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

Аватар пользователя NickToot NickToot 3 июля 2015 в 15:37

Как тегу

    (находится в меню) добавить произвольный атрибут, например tabindex?
    И вообще, на будущее, как можно добавить/переопределить атрибут для любого тега?)
    Я знаю, что есть возможность переопределить конкретную страницу, конкретный блок, а вот конкретное меню вроде бы нельзя(
    Заранее большое спасибо! Smile

Комментарии

Аватар пользователя NickToot NickToot 3 июля 2015 в 17:13

"ХулиGUN" wrote:

https://api.drupal.org/api/drupal/includes!menu.inc/function/theme_menu_...

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

Аватар пользователя zhivulin-al zhivulin-al 3 июля 2015 в 19:27

"NickToot" wrote:
Не совсем понятно что делать с куском кода который там дан и где все это переопределять. Извините, я только начинаю осваивать друпал, можно немного поподробней)

Вот вы уважаемый все называете ковнокодом, а в том коде, что вам скинул, есть решение! Были бы вы повежливее, возможно даже подсказал вам! Теперь же ковыряйтесь сами!

Аватар пользователя NickToot NickToot 4 июля 2015 в 9:05

"zhivulin-al" wrote:
Вот вы уважаемый все называете ковнокодом, а в том коде, что вам скинул, есть решение! Были бы вы повежливее, возможно даже подсказал вам! Теперь же ковыряйтесь сами!

Все такие обиды( Извиняюсь конечно, но если действительно тот код, который вы скинули был громоздким, честно говоря у меня вообще нет знаний PHP, так что к сожалению пока я его не начал учить приходится задавать глупые вопросы. Если вы знаток и гуру "ПХП", то зачем скидывать такие коды?) Я понимаю, что мне здесь никто ничем не обязан, но все же нужно относиться адекватно к критике. Smile

Аватар пользователя zhivulin-al zhivulin-al 5 июля 2015 в 2:07

"NickToot" wrote:
но все же нужно относиться адекватно к критике. :)

Это не критика - это хамство!

template.php - основной файл с шаблона
page.tpl.php - если нет, создай и закинь например в папку templates, хотя можешь и не делать этого

Берем файл template.php открываем его в редакторе и видим код:


<?php
/**
 * @file
 * template.php
 */ 
// Чтобы не убить ни чего, сразу после этой кривой палочки которая выглядит так - "/" жмешь "ENTER". 
// Тут копируешь (ctrl+c) этот код, но не забудь его "поправить"!!!
// Например твой шаблон называется "Ololosha" точно так же, только в нижнем регистре пишешь в первой функции

// Выделять начинать от сюда, прям с этой строки, после этого слова
// Вот где ololosha написано его меняешь на имя твоего шаблона
//           ▼

function ololosha_menu_tree__main_menu($variables) { // ololosha ты заменяешь на имя твоего шаблона
    
return $variables['tree'];
}

// Вот еще ololosha
//           ▼
function ololosha_menu_link__main_menu(array $variables) { // Видишь, здесь тоже есть ololosha заменяй!
    
$element $variables['element'];
    
$sub_menu '';
    if (
$element['#below']) {
        
$sub_menu drupal_render($element['#below']);
        
$sub_menu "<ul class="sub-ololo">" $sub_menu "</ul>"// Эта конструкция вложенного (субменю) видишь стандартные НТМЛ теги? Видишь <ul class="sub-ololo"> меняешь его на свой, совсем любой, какой хочешь!
// Могешь даже в <ul class="sub-ololo"> впихнуть ID примерно так: <ul class="sub-ololo" id="trololo">
// Остальное трогать не советую! 
    
}
    
    
$output l($element['#title'], $element['#href']);
    
$nav "<li>" $output $sub_menu "\n</li>";
    return 
$nav;
}
// Здесь заканчиваешь выделять и жмешь (ctrl+c) теперь идешь в свой шаблон и вставляешь (ctrl+v) так как написано выше, дальше сохраняешь (ctrl+s). Все! Файл template.php закрываешь!
//Все рыжие букафки можешь удалить, но работе они мешать не будут, это просто комментарии

... Тут что то написано ...
... 
и здесь тоже

?>

Теперь открываешь файл page.tpl.php

<?php
  
// Копируешь этот код, можно без этого комментария (ctrl+c)
  
<ul class="main_ololo">
    <?
php print render(menu_tree('main-menu')); ?>
  </ul>

?>

И вставляешь в любое место в файле page.tpl.php меняешь класс "main_ololo" на свой
А в КСС (.css) либо LESS файле пишешь что то типа:

// Для LESS файла
.main_ololo {
    стили для обертки меню
    .li {
        стили для LI
        .sub-ololo {  // обертка субменю
            display: none;
            стили для обертки субменю
        }
        >&:hover{
            display: block;
        }
    }
}

// Для CSS файла
.main_ololo {
    стили для обертки меню
}

.main_ololo li {
    стили для LI
}

.main_ololo .sub-ololo {
    display: none;
    стили для обертки субменю
}

.main_ololo li:hover > .sub-ololo {
    display: block;
}

Получается многоуровневое выпадающее меню

Аватар пользователя NickToot NickToot 5 июля 2015 в 10:19

"zhivulin-al" wrote:
Берем файл template.php открываем его в редакторе и видим код:
...

Еще раз извиняюсь, пойду пробовать это сделать, спасибо Вам огромное за помощь, успехов, удачи и добра! Smile

Аватар пользователя NickToot NickToot 5 июля 2015 в 13:27

"zhivulin-al" wrote:

Еще вопросик есть, в общем: до этого в папке со своей темой у темя не было файла template.php, я его создал добавил туда этот код, поменял название тем, классов и.. в общем при открытии сайта пустой body. Я так понял, что при создании temlat'а в своей папке он переопределяет уже существующий где-то.. поэтому наверно лучше поменять код в уже существующем, но где именно? или в чем моя ошибка? Я нашел templat'ы в стандартных темах друпала и какой-то тестовый, в котором очень мало кода.. Подскажите пожалуйста как быть Smile

Аватар пользователя zhivulin-al zhivulin-al 6 июля 2015 в 3:44

"NickToot" wrote:
Еще вопросик есть, в общем: до этого в папке со своей темой у темя не было файла template.php, я его создал добавил туда этот код, поменял название тем, классов и.. в общем при открытии сайта пустой body. Я так понял, что при создании temlat'а в своей папке он переопределяет уже существующий где-то.. поэтому наверно лучше поменять код в уже существующем, но где именно? или в чем моя ошибка? Я нашел templat'ы в стандартных темах друпала и какой-то тестовый, в котором очень мало кода.. Подскажите пожалуйста как быть :)

Совет: возьми стандартный шаблон, batrik и разбирайся, что есть что