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

Главные вкладки

Аватар пользователя Dec0der Dec0der 11 января 2008 в 3:14

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

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

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

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

Комментарии

Аватар пользователя Reno Reno 11 января 2008 в 9:37

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

Аватар пользователя Dec0der Dec0der 11 января 2008 в 13:57

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

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

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

Аватар пользователя Reno Reno 11 января 2008 в 15: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 Dec0der 11 января 2008 в 16: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 Dec0der 12 января 2008 в 13:15

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

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

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

Как?