Свой уникальный класс к первому тегу ul (а их несколько)

Аватар пользователя Rest Rest 18 июня в 10:25

Пытаюсь сделать вертикальное выпадающее меню.

Воспользовался модулем taxonomy menu block.

У него функция для переопределения вывода html такая:

<?phpfunction bootstrap_subtheme_mobi_taxonomy_menu_block($variables) {
    
  
$tree $variables['items'];
  
$config $variables['config'];

  

$num_items count($tree);
  
$i 0;
  
$output '<ul>';
   
  foreach (
$tree as $tid => $term) {
    
$i++;
    
// Add classes.
    
$attributes = array();
    if (
$i == 1) {
      
$attributes['class'][] = 'first';
     
    }
    if (
$i == $num_items) {
      
$attributes['class'][] = 'last';
    }
    if (
$term['active_trail'] == '1') {
      
$attributes['class'][] = 'active-trail';
    }
    if (
$term['active_trail'] == '2') {
      
$attributes['class'][] = 'active';
    }

    

// Alter link text if we have to display the nodes attached.
    
if (isset($term['nodes'])) {
      
$term['name'] = $term['name'] . ' (' $term['nodes'] . ')';
    }

    

// Set alias option to true so we don't have to query for the alias every
    // time, as this is cached anyway.
    
    
$output .= '<li' drupal_attributes($attributes) . '>' l($term['name'], $term['path'], $options = array('alias' => TRUE));
    if (!empty(
$term['children'])) {
      
$output .= theme('taxonomy_menu_block__' $config['delta'], (array('items' => $term['children'], 'config' => $config)));
    }
    
$output .= '</li>';
  }
  
$output .= '</ul>';

  return 

$output;

}

?>

Нужно в общем получить такую структуру кода html

<div class="nav">
<ul class="topmenu">
<li><a href="">Meny1</a>
<ul class="submenu">
<li><a href="">Meny 1-2</a>
<ul class="submenu">
<li><a href="">Meny 1-2-1</a></li>
<li><a href="">Meny 1-2-2</a></li>
</ul>
</li>
<li><a href="">Meny 1-3</a>
<ul class="submenu">
<li><a href="">Meny 1-3-1</a></li>
<li><a href="">Meny 1-3-2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="">Meny 2</a>
<ul class="submenu">
<li><a href="">Meny 2-1</a>
<ul class="submenu">
<li><a href="">Meny 2-1-1</a></li>
<li><a href="">Meny 2-1-2</a></li>
</ul>
</li>
<li><a href="">Meny 2-2</a>
<ul class="submenu">
<li><a href="">Meny 2-2-1</a></li>
<li><a href="">Meny 2-2-2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>

Как видим, тут самый первый тег ul имеет свой класс topmenu, а другие ul submenu. Что поменять в функции php?

0 Thanks

Лучший ответ

Аватар пользователя Rest Rest 18 июня в 15:15

Вопрос решил с помощью селекторов jquery.

Комментарии

Аватар пользователя Rest Rest 18 июня в 10:53
<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:

Только один вопрос = зачем?
селектор css = :first-child
селектор jQuery = :first

Нужен класс свой для первого тега ul, чтобы меню работало. Я прописываю класс к тегу в функции, но он применяется ко всем ul.