Вед-дев, Сео, Манимейкинг

Делаем хлебные крошки из URL аргументов

В друпале система хлебных крошек по дефолту не удовлетворяет каждого пользователя, поэтому иногда приходится "поработать" над ними вручную. В этой статье мы рассмотрим способ, при помощи которого будут создаваться "хлебные крошки" из URL. Например мы имеем следующий URL адрес: mysite.org/news/newstitle, в результате в хлебных крошках мы увидим - Home >> News >> newstitle.

Создаем файл template.php, если он у вас еще не создан. Затем вставляем следующий код в него:

<?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(' &raquo; ', $breadcrumb) .'</div>';
  }
}
?>

Внимание! Заместо [YOUR-THEME-NAME] - вставляйте название вашей темы. Единственный минус данного способа или просто я не знаю как это сделать - перевести их на русский язык. Т.е. если мы имеем адрес mysite.org/news/newstitle, в хлебных крошках мы увидим Главная >> News >> newstitle, если кто знает как это исправить - пишите в комментах.
UPDATED! Название линков обворачиваем в t и переводим через translate interface и все работает!



Комментарии (0)

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Николай 3 дня 5 часов назад
    Сука ты не русская, ты кому это написал даун? 
  • Olzhas 1 неделя 6 дней назад
    Спасибо. С Новым Годом! 
  • Den 1 месяц 1 неделя назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 1 месяц 1 неделя назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 2 месяца 1 неделя назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 2 месяца 1 неделя назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 2 месяца 1 неделя назад
    захожу на mysql через ssh по команде  
  • admin 2 месяца 1 неделя назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 2 месяца 1 неделя назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 2 месяца 3 недели назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника?