Вывод активной ссылки меню

Прислано: Dec0der

пт, 11/01/2008 - 00:14

Другие статьи по теме:

Как вывести название активной ссылки меню?
Просто я не знаю php...
Но я так полагаю, что прописав через функцию или с помощью template это можно сделать.

Т.е. элементарно. Дапустим нажимам в меню на пункт "Новости". Открывается. И нужно что бы на странице отображалось название активной ссылки (в данном случае название - "Новости"). По сути - это будет название страницы. Не спрашивайте почему такими обходными способами... Просто трудно настроить breadcrumb для views (если используются фильтры).

мож эта переменная будет отображдать название: menu_get_active_title

Вообщем, незнаю. помогите пожалуйста!

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Reno в пт, 11/01/2008 - 06:37.

drupal_get_title()
Только учтите, что не отображается только во views, а в других местах у вас тогда будет дублироваться, получится что то типа главная >>не_новости>>не_новости . Поэтому поставте проверку на последний елемент массива breadcrumb если он совпадает, то не нужно выводить.(правда я использовал taxonomy_context и taxonomy_breadcrumb), теперь правда живу без последнего модуля, просто переписал theme_breadcrumb под свои нужды. Если не сможете сделать спрашивайте еще, просто я тоже когда то с этим намучался ;)


Опубликовано Dec0der в пт, 11/01/2008 - 10:57.

да да, я то же об этом подумал, что будет дублироваться... Но на всякий случай, уточните, как прписать полность функцию drupal_get_title()
(т.е. куда и что вставлять, а то я рнр не знаю).

Не совсем понял, как это: "поставте проверку на последний елемент массива breadcrumb если он совпадает, то не нужно выводить."
можно подробнее?

Поясню:
Дело в том, что в views я использую фильтры и аргументы. При выводе views и загаловок страницы и путь прописываются не полностью.
Вот я хочу востановить справедливость.


Опубликовано Reno в пт, 11/01/2008 - 12:39.

В общем если не включент taxonomy_breadcrumb работает такая конструкциия

function mytheme_breadcrumb($breadcrumb)
{
	$breadcrumb[] = drupal_get_title();
	return '<div class="breadcrumb">'. implode(' » ', $breadcrumb) .'</div>';
 
}

если дублируется
то можно так

//check last element in breadcrumb
	$check = array_reverse($breadcrumb);
	$last_breadcrumb_element = strtolower(strip_tags($check[0]));
		if($last_breadcrumb_element == drupal_get_title())
		{
			array_pop($breadcrumb);
		}
		$breadcrumb[] = drupal_get_title();
	return '<div class="breadcrumb">'. implode(' » ', $breadcrumb) .'</div>';

ну это просто кусок кода
А вобще добро пожаловать на друпал орг например сюда


Опубликовано Dec0der в пт, 11/01/2008 - 13:16.

В первом случае ничего не изменяется. А во втором, выдаёт ошибку:

warning: array_reverse() [function.array-reverse]: The argument should be an array in путь\template.php on line 17.
типа тут ошибка: $check = array_reverse($breadcrumb);

А как всё-таки правильно прописать функцию, что бы отобразилось название активной ссылки?
Пробывал вот так:
function phptemplate_breadcrumb($breadcrumb) {
if (!empty($breadcrumb)) {
//Append title of current page
$breadcrumb[] = menu_get_active_title();
return ''. implode(' > ', $breadcrumb);
}
}

путь правильный прописывается и активная ссылка прописывапется в конце пути.
Это хорошо. Но я хочу активную ссылку сделать не в конце пути, а как название страницы. Как это сделать? Как правильно прописать функцию?


Опубликовано Dec0der в сб, 12/01/2008 - 00:15.

кто поможет?


Опубликовано vadbars@drupal.org в сб, 12/01/2008 - 05:03.

Вы же используете функцию menu_get_active_title(). Что она выдает?
А переменная $node->title; ?


Опубликовано Dec0der в сб, 12/01/2008 - 10:15.

$node->title; не подайдёт
ведь тут используется views

Я не знаю рнр поэтому не знаю как нужно составить функцию, что бы menu_get_active_title() выдавала название активной ссылки обчным словом.

Т.е. как из menu_get_active_title построить отдельную функцию (что бы она выдавала просто слово), без связи с breadcrumb.

Как?


Опубликовано vadbars@drupal.org в сб, 12/01/2008 - 10:45.

Она же сама - функция. Выводите ее результат: <?php print menu_get_active_title();?>


Опубликовано Dec0der в сб, 12/01/2008 - 13:12.

СПАСИБО!