Ситуация такова. Сделал свою тему, за основу брал garland. Не было никаких ошибок и все работало прекрасно, но далее после подключения некоторых модулей и у меня пропали primary links. Все перерыл, модули отключал и включал, верстку проверял, даже css проверил полностью. Единственное меня файл template.php напрягал и то копался в нем, удалял содержимое - результат провал.
Вот частичный код:
page.tpl.php
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
<head>
<?php print $head ?>
<title><?php print $head_title ?></title>
<?php print $styles ?>
<?php print $scripts ?>
<script src="http://code.jquery.com/jquery-1.5.js" type="text/javascript"></script>
<script type="text/javascript">$(document).ready(function(){ $("#cmenu ul li a").wrapInner("<span>" + "</span>"); });</script>
</head>
<body>
<center>
<div id="header">
<div id="menu">
<div id="lmenu"></div>
<div id="cmenu">
<?php if (isset($primary_links)) { ?><?php print theme('links', $primary_links) ?><?php } ?>
</div>
template.php
$output = '';
if (count($links) > 0) {
$output = '<ul'. drupal_attributes($attributes) .'>';
$num_links = count($links);
$i = 1;
foreach ($links as $key => $link) {
$class = $key;
// Add first, last and active classes to the list of links to help out themers.
if ($i == 1) {
$class .= ' first';
}
if ($i == $num_links) {
$class .= ' last';
}
if (isset($link['href']) && ($link['href'] == $_GET['q'] || ($link['href'] == '<front>' && drupal_is_front_page()))) {
$class .= ' active';
}
$output .= '<li'. drupal_attributes(array('class' => $class)) .'>';
// wrap <span>'s around the anchor text
if (isset($link['href'])) {
$link['title'] = '<span>' . check_plain($link['title']) . '</span>';
$link['html'] = TRUE; }}}}
style.css
#cmenu ul, #cmenu ul li {
margin:0 5px 0 5px;
padding:0 3px 0 3px;
float:left;
list-style-type:none;
}
#cmenu ul li {
border-left:1px solid #333;
height:30px;
line-height:30px;
display:block;
margin-top:9px;
}
#cmenu ul li:first-child {
border:0;
}
#cmenu ul li a, #cmenu ul li a span {
color:#fff;
text-decoration:none;
display:block;
font-size:12px;
text-transform:capitalize;
height:29px;
padding-left:5px;
}
#cmenu ul li a span {
margin-right:-5px;
padding-right:9px;
}
#cmenu ul li a:hover, #cmenu ul li a:hover span {
color:#000;
}
#cmenu ul li a:hover {
background:url(images/menu-item.png) left 30px;
}
#cmenu ul li a:hover span {
background:url(images/menu-item.png) right 30px;
}
#cmenu ul li a.active, #menu ul li a.active span {
color:#ffffbb;
text-decoration:none;
display:block;
font-size:12px;
text-transform:capitalize;
height:29px;
padding-left:5px;
}
#cmenu ul li a.active {
background:url(images/menu-item.png) left 60px;
}
#cmenu ul li a.active span {
background:url(images/menu-item.png) right 60px;
}
Комментарии
Primary Links работают на других темах, на том же Garland, но до сих пор не могу найти ошибку в коде.
в css ток исправил:
#cmenu ul li a.active, #menu ul li a.active span {
на
#cmenu ul li a.active, #cmenu ul li a.active span {
Все, устранил. Ошибка в template.php функции.
Точно не понял в чем дело, но удалив её и сбросив кэш все стало на свои места