Пользовательское главное меню Drupal 7 - PullRequest
3 голосов
/ 14 мая 2011

Мне отчаянно нужна помощь.Я пытаюсь настроить главное меню (только) в Drupal 7 так, чтобы оно соответствовало моим потребностям blueprintcss.Я попытался найти ответ в документации, но простого примера для этого нет, что делает его немного сложным.

Основное требование - чтобы другие меню (навигация и т. Д.) Не затрагивались стилем главного меню..

My page.tpl.php включает в себя этот код:

<?php if ($main_menu): ?>
<div class="span-9" id="topmenu">
<?php print theme('links__system_main_menu', array(
'links' => $main_menu,
'attributes' => array(
'id' => 'main-menu',
'class' => array('links', 'inline', 'clearfix'),
),
)); ?>
</div>
<?php endif; ?>

Вывод показывает:

<div class="span-9" id="topmenu"> 
<ul id="main-menu" class="links inline clearfix">
 <li class="menu-151 first"><a href="/drupal/" title="">Home</a></li> 
 <li class="menu-152"><a href="/drupal/" title="">Contact Us</a></li> 
 <li class="menu-153 last"><a href="/drupal/" title="">About Us</a></li> 
</ul>
</div>

В то время как требуемый вывод долженбыть примерно таким:

<div class="span-9" id="topmenu">
 <div class="span-3 menu-151"><a href="/drupal/" title="">Home</a></div>
 <div class="span-3 menu-152"><a href="/drupal/" title="">Contact Us</a></div>
 <div class="span-3 menu-153 last"><a href="/drupal/" title="">About Us</a></div>
</div>

1 Ответ

3 голосов
/ 23 ноября 2011

Вы можете переопределить функцию темы, чтобы изменить сгенерированную разметку.

Для этого:

  1. Найдите функцию, которую вы вызываете (должна быть theme_links__system_main_menu).
  2. Скопируйте и вставьте код этой функции в пользовательскую функцию темы (может быть сделано в phptemplate или пользовательском модуле)
  3. Настройте функцию своей темы для использования divs вместо ul li

См. Официальную документацию по Drupal: Переопределение выводимых данных Раздел "Как изменить HTML способом Drupal"

...