Как сделать неактивный пункт меню (на странице которой находимся)

Аватар пользователя igigo igigo 14 сентября 2010 в 8:11

Устанавливал модули менюшные, нигде не увидел такой возможности. Мне надо чтобы ссылка в меню была неактивной, если эта ссылка ведет на страницу на которой я в данный момент нахожусь.

0 Thanks

Комментарии

Аватар пользователя tornadoxxxl tornadoxxxl 14 сентября 2010 в 10:04

Как я понял Вам нужно чтоб активный пункт не выделялся от других?
Тогда это можно решить через css.
К активному пункту добавляется класс active переопределите его в файле css вашей темы и все.
Если нужно убрать вывод этого класса, тогда можете переопределить в теме вывод самого меню.

Аватар пользователя igigo igigo 14 сентября 2010 в 13:08
tornadoxxxl wrote:

Как я понял Вам нужно чтоб активный пункт не выделялся от других?

нет. Вот я на данный момент нахожусь например на странице ХХХ, ссылка меню (анкор) называется аналогично ХХХ, так вот мне надо чтобы этот текст в меню ХХХ был именно текстом а не ссылкой.
Остальные пункты остаются ввиде ссылки чтобы на них можно было перейти, но как только переходишь на пункт то он становится неактивным ввиде текста и так с каждой страницей пункта меню.

Аватар пользователя Full_acсess Full_acсess 14 сентября 2010 в 10:17

это не модули надо искать, а через template.php вообще сылка формируется функцией l() посмотрите в drupal API описание, там же ей и присваивается class="active" если совпадает с текущей страницей

Аватар пользователя nikolasiii nikolasiii 14 сентября 2010 в 10:43

да активной ссылке задается класс active tornadoxxx! правильно говорит, достаточно в css стилизировать ссылку.

Аватар пользователя penexe penexe 14 сентября 2010 в 13:16
<?php
function replace_active_link($text) {
  $pattern = "/<a[^>]* class=\"[^\"]*active[^\"]*\"[^>]*>([^<]*)<\/a>/";
  $replace = "<span class=\"active\">\${1}</span>";
  return preg_replace($pattern, $replace, $text);
}

?>

<?php print replace_active_link($menu) ?>

слався друпал.орг