Хлебные(Breadcrumbs)

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

Аватар пользователя Mamy Mamy 13 апреля 2011 в 17:26

Посоветуйте решение, пожалуйста. как в результаты поиска выводить хлебные крошки для найденных файлов. Пока получилось только реализовать главная/имя ноды или главная/имя предшествующей градации. а весь путь не отображается

Комментарии

Аватар пользователя AI AI 13 апреля 2011 в 18:45

Открываем template.php и пишем в него функцию

<?php
function MyThemeName_breadcrumb($breadcrumb) {//MyThemeName заменить на название подопытной темы
  // Provide a navigational heading to give context for breadcrumb links to
  // screen-reader users. Make the heading invisible with .element-invisible.
  
if (!empty($breadcrumb)) {
    switch (
arg(0)) {
    case 
node$breadcrumb[] = drupal_get_title(); break; //К хлебным крошкам добавляем название ноды.
    
case search$breadcrumb[] = arg(0);//На странице поиска нужные значения аргумента можно добавить
                 
$breadcrumb[] = arg(1);// как душе угодно.
                 
foreach () {
                   
$breadcrumb[] = do_something(); //Пишем кусок кода, который заполнит нам крошки
                 
}
                 
$breadcrumb[] = l(t('my cool page'), path_to_my_cool_page); //Произвольный сухарик
                 
break;
    default: break; 
//для остальных страничек сайта $breadcrumb не будет заполняться
    
}
    
$tmp array_pop($breadcrumb);// Вырезаю последний элемент массива крошек чтобы потом
           //его же добавить в вывод, но уже обрамленным совсем другим html тегом - в целях темизации.
    
return '<div class="breadcrumb"> <span>' implode('</span> &rarr; <span>'$breadcrumb) .
           
'</span> &rarr; <div class="breadcrumbtrail">' $tmp '</div>
           </div>'
// Собственно возвращаемые крошки с маслом
  
}
}
?>

Читаем комменты к коду, постигаем легкость настройки крошек и мягкость их темизации.
Чтобы было легче понять где и какой arg(0) всплывает (т.е. какой он на конкретной странице), можно секцию default: дополнить print (arg(0));. Не забываем потом подчистить это, дабы на продакшн сайтеге не всплывало...

Надеюсь поможет.............

UPD. Простите милая барышня. Взглянув в ваш профиль, ужаснулся: поймете ли вы мои абракадабры выше разжеванные? Ваши часы на сайте тикают всего ничего - неделю.

Аватар пользователя AI AI 13 апреля 2011 в 19:57

Я Вас правильно понял.

"AI" wrote:

<?php
case search$breadcrumb[] = do_something();//На странице поиска нужные значения аргумента
//можно добавить как душе угодно.
?>


Именно этот case, равный значению search, отработает на странице поиска. Именно здесь Вы должны определить Ваши хлебные крошки. И именно эти результаты Вы обязаны будете увидеть в том месте, которое изображено у Вас в скриншоте. Заметьте: в секции search я чуть более разнообразно написал варианты дополнения крошек. И комментарии постарался написать понятным языком по-русски.

Естественно, если вы сами знаете что надо засунуть в эту навигационную линейку, то применив навыки php-программирования и API.drupal, Вы сумеете максимально гибко реализовать потребности. В противном случае я могу посоветовать обратить внимание на огромное количество модулей, которые якобы позволяют задать кастомные правила поведения крошек. И почему-то ни один из них меня не поверг в восторг, заставляя продолжать писать переопределения на свой лад.