xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Программная установка хлебных крошек

Опубликовано в

До того как хлебные крошки прошли через theme_breadcrumb(), изменить их можно с помощью ф-ии drupal_set_breadcrumb().

Пример установки хлебных крошек в функции генерации страницы со списком тегов (page callback):

function mymodule_page_callback() {
  $breadcrumbs[] = l(t('Home'), null);
  $breadcrumbs[] = l(t('Blog'), 'blog');
  $breadcrumbs[] = l(t('Tags'), 'blog/tags');
  drupal_set_breadcrumb($breadcrumbs);
 
  return '... tags ...';
}

Результат:

Кастомные хлебные крошки

А вот так можно установить свои крошки в template.php:

function phptemplate_preprocess_page(&$vars) {
  if ($_GET['q'] == 'blog/tags') {
    $breadcrumbs[] = l(t('Home'), null);
    $breadcrumbs[] = l(t('Blog'), 'blog');
    $breadcrumbs[] = l(t('Tags'), 'blog/tags');
    $vars['breadcrumb'] = theme('breadcrumb', $breadcrumbs);
  }
}
Написанное актуально для Drupal 6.x
Похожие записи

Комментарии RSS

Для конкретного типу ноди:

  function THEME_NAME_preprocess_page(&$variables) {
    if ($variables['node']->type == 'produkt') {
 
      $breadcrumb   = array();
      // previous page link
      $breadcrumb[] = l(t('Home'), '<front>');
      $breadcrumb[] = l(t('Catalog'), 'node/16');
 
      // taxonomy page
      $vid = 1;
      if($term = current($variables['node']->taxonomy)) {
        if ($term->vid = $vid) {
          // add parent term
          if($parents = taxonomy_get_parents($term->tid)) {
            $breadcrumb[] = l($parents[$vid]->name, taxonomy_term_path($parents[$vid]).'/all');
          }
 
          // add current term
          $breadcrumb[] = l($term->name, 'taxonomy/term/' . $term->tid);
        }
      }
 
      // current page
      $breadcrumb[] = l(drupal_get_title(), $_GET['q']);
 
      $variables['breadcrumb'] = theme('breadcrumb', $breadcrumb);
 
    } elseif ($variables['node']->type == 'news') {
      $breadcrumb   = array();
      $breadcrumb[] = l(t('Home'), '<front>');
      $breadcrumb[] = l(t('News'), 'news');
      $breadcrumb[] = l(drupal_substr(drupal_get_title(), 0, 55), $_GET['q']); 
 
      $variables['breadcrumb'] = theme('breadcrumb', $breadcrumb);     
    }

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании