Привет всем,
Возникла такая проблема. Делаю темку для своего сайтика и возникланадобность переопределить стиль примари линкс, не меняя ядра, лишь корректируя файлы темки. Для пэйджера есть функция phptemplate_pager(), есть ли что-нибудь подобное для примари линкс?
Комментарии
Так у этих ссылок есть id = "primary". Почему бы не переопределить оформление в CSS?
Ну родной движок там и "колбасит" классы и ID Проще переопределить.
page.tpl.php
<?php if ($lang): print theme('menu_links', $primary_links /* или $secondary_links) */ ); endif; ?>
template.php
<?php
function ИмяШаблона_menu_links ($items, $type = 'free') {
if (!empty($items)) {
foreach ($items as $index => $link) {
$output = l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment']); /* или свою разметку*/
}
return $output;
}
?>
А что за функция l (эль) тут?
Ссылку формирует, посмотри в core модулях. Можешь вручную из переменных слепить вывод. Я написал основную идею
а подскажите, как можно реализовать primary links с помощью dl dt dd причем в dd чтобы писалось 'title' т.е. описание строки меню?
я попробовал вот так
if (!count($links)) {
return '';
}
$level_tmp = explode('-', key($links));
$level = $level_tmp[0];
foreach ($links as $index => $link) {
$output .= '<dl>\n <dt';
if (stristr($index, 'active')) {
$output .= ' class="active"';
}
$output .= ">". l("<span>".$link['title']."</span>", $link['href'], $link['attributes'], $link['query'], $link['fragment'], FALSE, TRUE) ."</dt>\n";
$output .= '<dd>'. $title ."</dd>\n";
$output .= '</dl>';
}
return $output;
}
а в page вот это
<?php print theme('links', $primary_links, array('class' => 'links primary-links')) ?>
<?php endif; ?>
ничего не выходит
точнее меню выводится по старой схеме
как мне вывести description ссылки?
мало ли на всяк случай в закладки. скопируйте в шаблон копию функции из menu.inc и делайте что хошь-либо слейте с ftp шаблон zen-там пример есть.
мало ли на всяк случай в закладки. скопируйте в шаблон копию функции из menu.inc и делайте что хошь-либо слейте с ftp шаблон zen-там пример есть.
1 пост удалите, точнее два- инет дохлий. два раза отправился
если убрать $attributes - то ссылки будут вообще в чистом виде.
page.php
<?php if (isset($primary_links)) : ?>
<?php print theme('primary_links', $primary_links, array('class' => 'links primary-links')) ?>
<?php endif; ?>
template.php
//вывод ссылок с разделителями "|"
<?php
function phptemplate_primary_links($links, $attributes = array('class' => 'links')) {
$output = '';
if (count($links) > 0) {
$num_links = count($links);
$i = 1;
foreach ($links as $key => $link) {
$class = '';
// Automatically add a class to each link and also to each LI
if (isset($link['attributes']) && isset($link['attributes']['class'])) {
$link['attributes']['class'] .= ' ' . $key;
$class = $key;
}
else {
$link['attributes']['class'] = $key;
$class = $key;
}
// Add first and last classes to the list of links to help out themers.
$extra_class = '';
if ($i == 1) {
$extra_class .= 'first ';
}
if ($i == $num_links) {
$extra_class .= 'last ';
}
// Is the title HTML?
$html = isset($link['html']) && $link['html'];
// Initialize fragment and query variables.
$link['query'] = isset($link['query']) ? $link['query'] : NULL;
$link['fragment'] = isset($link['fragment']) ? $link['fragment'] : NULL;
if (isset($link['href'])) {
$output .= l($link['title'], $link['href'], $link['query'], $link['fragment'], FALSE, $html);
}
else if ($link['title']) {
//Some links are actually not links, but we wrap these in for adding title and class attributes
if (!$html) {
$link['title'] = check_plain($link['title']);
}
$output .= ''. $link['title'] .'';
}
$output .= "\n";
if ($i < $num_links) {
$output .= " | ";
}
$i++;
}
$output .= '';
}
return $output;
}
?>