Делаем хлебные крошки из URL аргументов
В друпале система хлебных крошек по дефолту не удовлетворяет каждого пользователя, поэтому иногда приходится "поработать" над ними вручную. В этой статье мы рассмотрим способ, при помощи которого будут создаваться "хлебные крошки" из URL. Например мы имеем следующий URL адрес: mysite.org/news/newstitle, в результате в хлебных крошках мы увидим - Home >> News >> newstitle.
Создаем файл template.php, если он у вас еще не создан. Затем вставляем следующий код в него:
/**
* Override theme_breadcrumb().
*/
function [YOUR-THEME-NAME]_breadcrumb($breadcrumb) {
$links = array();
$path = '';
// Get URL arguments
$arguments = explode('/', request_uri());
// Remove empty values
foreach ($arguments as $key => $value) {
if (empty($value)) {
unset($arguments[$key]);
}
}
$arguments = array_values($arguments);
// Add 'Home' link
$links[] = l(t('Home'), '<front>');
// Add other links
if (!empty($arguments)) {
foreach ($arguments as $key => $value) {
// Don't make last breadcrumb a link
if ($key == (count($arguments) - 1)) {
$links[] = t(drupal_get_title());
} else {
if (!empty($path)) {
$path .= '/'. $value;
} else {
$path .= $value;
}
$links[] = l(t(drupal_ucfirst($value)), $path);
}
}
}
// Set custom breadcrumbs
drupal_set_breadcrumb($links);
// Get custom breadcrumbs
$breadcrumb = drupal_get_breadcrumb();
// Hide breadcrumbs if only 'Home' exists
if (count($breadcrumb) > 1) {
return '<div class="breadcrumb">'. implode(' » ', $breadcrumb) .'</div>';
}
}
?>
Внимание! Заместо [YOUR-THEME-NAME] - вставляйте название вашей темы. Единственный минус данного способа или просто я не знаю как это сделать - перевести их на русский язык. Т.е. если мы имеем адрес mysite.org/news/newstitle, в хлебных крошках мы увидим Главная >> News >> newstitle, если кто знает как это исправить - пишите в комментах.
UPDATED! Название линков обворачиваем в t и переводим через translate interface и все работает!
- Categories:
- heihachi's blog
- Add new comment
- 793 reads

Comments
А если у меня УРЛ на транслите?
В Вашем способе урл на английском и потом переводится функцией t на русский, а если у меня УРЛ на транслите как мне перевести его на русский?
А в чем сосбственно у вас
А в чем сосбственно у вас трудность? У вас ведь просто на транслите урл написаны типа: moya-stranichka?
Вы просто через admin/build/translate/search также делаете перевод вашего транслита.
Здравствуйте.
Этот код то что я уже ищу уже почти месяц! :)
Только он немного неверно работает. Можете дать аську или скайп, есть пару вопросов? :)
Drupal 7
Я правильно понял, что это для 6 друпала?
А можете сделать для седьмого? )
Верно, это для Drupal 6 :)
Верно, это для Drupal 6 :) Постараюсь и для 7ки сделать.