Посоветуйте решение, пожалуйста. как в результаты поиска выводить хлебные крошки для найденных файлов. Пока получилось только реализовать главная/имя ноды или главная/имя предшествующей градации. а весь путь не отображается
<?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> → <span>', $breadcrumb) . '</span> → <div class="breadcrumbtrail">' . $tmp . '</div> </div>'; // Собственно возвращаемые крошки с маслом } } ?>
Читаем комменты к коду, постигаем легкость настройки крошек и мягкость их темизации.
Чтобы было легче понять где и какой arg(0) всплывает (т.е. какой он на конкретной странице), можно секцию default: дополнить print(arg(0));. Не забываем потом подчистить это, дабы на продакшн сайтеге не всплывало...
Надеюсь поможет.............
UPD. Простите милая барышня. Взглянув в ваш профиль, ужаснулся: поймете ли вы мои абракадабры выше разжеванные? Ваши часы на сайте тикают всего ничего - неделю.
<?php case search: $breadcrumb[] = do_something();//На странице поиска нужные значения аргумента //можно добавить как душе угодно. ?>
Именно этот case, равный значению search, отработает на странице поиска. Именно здесь Вы должны определить Ваши хлебные крошки. И именно эти результаты Вы обязаны будете увидеть в том месте, которое изображено у Вас в скриншоте. Заметьте: в секции search я чуть более разнообразно написал варианты дополнения крошек. И комментарии постарался написать понятным языком по-русски.
Естественно, если вы сами знаете что надо засунуть в эту навигационную линейку, то применив навыки php-программирования и API.drupal, Вы сумеете максимально гибко реализовать потребности. В противном случае я могу посоветовать обратить внимание на огромное количество модулей, которые якобы позволяют задать кастомные правила поведения крошек. И почему-то ни один из них меня не поверг в восторг, заставляя продолжать писать переопределения на свой лад.
Комментарии
Открываем 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> → <span>', $breadcrumb) .
'</span> → <div class="breadcrumbtrail">' . $tmp . '</div>
</div>'; // Собственно возвращаемые крошки с маслом
}
}
?>
Читаем комменты к коду, постигаем легкость настройки крошек и мягкость их темизации.
Чтобы было легче понять где и какой
arg(0)
всплывает (т.е. какой он на конкретной странице), можно секциюdefault:
дополнитьprint (arg(0));
. Не забываем потом подчистить это, дабы на продакшн сайтеге не всплывало...Надеюсь поможет.............
UPD. Простите милая барышня. Взглянув в ваш профиль, ужаснулся: поймете ли вы мои абракадабры выше разжеванные? Ваши часы на сайте тикают всего ничего - неделю.
Вероятно, вы меня не так поняли.мне необходимо, чтоб хлебные были в результате поиска.
Я Вас правильно понял.
Именно этот
case
, равный значениюsearch
, отработает на странице поиска. Именно здесь Вы должны определить Ваши хлебные крошки. И именно эти результаты Вы обязаны будете увидеть в том месте, которое изображено у Вас в скриншоте. Заметьте: в секцииsearch
я чуть более разнообразно написал варианты дополнения крошек. И комментарии постарался написать понятным языком по-русски.Естественно, если вы сами знаете что надо засунуть в эту навигационную линейку, то применив навыки php-программирования и API.drupal, Вы сумеете максимально гибко реализовать потребности. В противном случае я могу посоветовать обратить внимание на огромное количество модулей, которые якобы позволяют задать кастомные правила поведения крошек. И почему-то ни один из них меня не поверг в восторг, заставляя продолжать писать переопределения на свой лад.