 
Метод Router::hrefIsAncestor()
Меню - это не просто набор ссылок. Желательно отметить определенным классом те ссылки, которые являются предками текущей страницы (ближайший предок страницы — это родительская страница).
А ссылку на текущую страницу лучше инактивировать.
С последней задачей можно легко справиться, воспользуясь переменной шаблона $page (идентификатор текущей страницы). Нужно просто проверять для каждой ссылки из меню, совпадает ли идентификатор страницы, на которую указывает эта ссылка с идентификатором текущей страницы.
Для выделения же ссылок на предков страницы нужно воспользоваться методом Router::hrefIsAncestor().
В качестве аргумента метода нужно брать относительную ссылку (все равно какую: параметрическую или человекопонятную).
menu.tdd
<?php
$titles[1] = 'Ссылка';
$titles[2] = 'Наименование ссылки';
$types[1] = 'page';
$types[2] = 'varchar(100)';
$params['isMultiRec'] = true;
?>
menu.tpl
<ul>
<?php
foreach ($tab as $dat)
{
$href = Router::convert('?page='.$dat[1], array('name'=>$dat[2]));
# Стиль для ссылки на предка
$ancestorClass = Router::hrefIsAncestor($href) ? ' class="ancestor"' : '';
echo '<li>';
if ($dat[1] == $page) # Текущая страница
echo $dat[2];
else
echo '<a href="'.$href.'"'.$ancestorClass.'>'.$dat[2].'</a>';
echo '</li>';
}
?>
</ul>
Примечания
-
Не забывайте о возможностях, которые предоставляет таблица стилей. Например, задав параметры псевдо-класса A:visited в главном файле стиля _main.css, можно определенным образом выделять все посещенные ссылки (не только последнюю).
См. также
|