Добавить свои классы к меню

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

Аватар пользователя vortex vortex 3 октября 2013 в 20:16

Имею сайт с собственной темой на основе Zen.
Безумно понравились иконочные шрифты. Хочу поменять иконки из collapsed/expended на символы из Font Awesome. Т.к. в примере Font Awesome иконки присваивают через классы, я тоже попытался найти где меню присваиваются нужные классы. Но не нашел.

Вопрос:
1. или подскажите где искать collapsed/exposed и я добавлю им свои классы?
2. или может можно произвести "замену" классов друпала на классы шрифта с помощью css?

И еще на menu-path-front по аналогии.

Доп.инфа:
collapsed/exposed в боковом меню, которое выводит menu-block
menu-path-front верхнее меню выводит Nice menu
но что-то мне подсказывает, что они своих классов не добавляют, а все делается системными плагинами.

Комментарии

Аватар пользователя vortex vortex 4 октября 2013 в 13:27

похоже этот модуль все таки не то что надо.
Он задает глобально. Да и не вижу я его классов. Возможно Nice-menu и menu-block его игнорируют

Аватар пользователя vortex vortex 8 октября 2013 в 11:54

Вопрос все еще стоит.

Вероятно оно должно решаться через переопределение функции
Я попытался на примере поэкспериментировать, но я не программист Sad
Я хотел сделать сравнение класса на наличие collapsed и дописать свой класс соотвествующий font awesome. Но я не понимаю не синтаксис этих функций, не переменных, а знаний паскаля 10 летней давности не хватает.

Аватар пользователя vortex vortex 9 октября 2013 в 15:07

Доковырялся до следующего

<?phpfunction entas_preprocess_menu_link(&$vars) {
   $element = $vars['element'];
    /* Замена collapsed. Начало */
  if ($vars['element']['#attributes']['class'][1]||$vars['element']['#attributes']['class'][2] == 'collapsed')
  {
  $vars['element']['#attributes']['class'][] = 'icon-collapse-alt';}  
/* Замена collapsed. Конец */
  
/* Замена expanded. Начало */
  elseif ($vars['element']['#attributes']['class'][1]||$vars['element']['#attributes']['class'][2] == 'expanded')
  {
  $vars['element']['#attributes']['class'][] = 'icon-expand-alt'; } 
/* Замена expanded. Конец */?>

Но.

Notice: Undefined offset: 1 в функции entas_preprocess_menu_link() (строка 237 в файле C:\xampp\htdocs\sites\all\themes\entas\template.php).
Notice: Undefined offset: 2 в функции entas_preprocess_menu_link() (строка 237 в файле C:\xampp\htdocs\sites\all\themes\entas\template.php).

как я понимаю это [1] и [2] в коде. Возможно это и не правильно, но он подставляет иконки...
Правда второе условие "expanded" не срабатывает. Наверняка какая-то логическая ошибка в коде.

Помощь все еще нужна.

Аватар пользователя vortex vortex 28 октября 2013 в 17:12

Оказывается можно и без классов. Достаточно знать юникодный код значка.

ul li.collapsed:before {
content: "\f0fe";
color: #DADADA;
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
margin-left: 5px;
position: absolute;
left: 0;
margin-left: -5px;
font-size: 1.2em;

Собственно этот метод дает возможность и :after применить, в отличии от стандартного.