Scroll
Как сделать хлебные крошки как на Вашем форуме?
Как сделать хлебные крошки как на Вашем форуме?
Здравствуйте!
Как сделать "хлебные крошки" как на вашкм форуме, меня интересуют настройки путей контейнеров.
Вкладываю рисунок, чтобы было понятнее.
Заранее спасибо.
1 answer
votes: 762
Answer
В токенах написано должно быть что есть %node:taxonomy_forum, если это нода то у нее путь node/nid, видимо вам нужно через таб "аргументы" задать аргумент nid или поставить тип содержимого в аргументах.
Я не использую дополнительные модули для хлебных крошек. Обычно беру функции темизации из темы Zen и уже там добавляю обработку.
Нужно обрабатывать или аргументы через функции arg() если обрабатывать друпаловски пути вроде node/nid, taxonomy/term/tid. Если обрабатывать синонимы то можно использовать переменную $_SERVER, вот пример кода:
<?php function zen_breadcrumb($variables) { $breadcrumb = $variables['breadcrumb']; // Determine if we are to display the breadcrumb. $show_breadcrumb = theme_get_setting('zen_breadcrumb'); if ($show_breadcrumb == 'yes' || $show_breadcrumb == 'admin' && arg(0) == 'admin') { // Optionally get rid of the homepage link. $show_breadcrumb_home = theme_get_setting('zen_breadcrumb_home'); if (!$show_breadcrumb_home) { array_shift($breadcrumb); } // Return the breadcrumb with separators. if (!empty($breadcrumb)) { $breadcrumb_separator = theme_get_setting('zen_breadcrumb_separator'); $trailing_separator = $title = ''; if (theme_get_setting('zen_breadcrumb_title')) { $item = menu_get_item(); if (!empty($item['tab_parent'])) { // If we are on a non-default tab, use the tab's title. $title = check_plain($item['title']); } else { $title = drupal_get_title(); } if ($title) { $trailing_separator = $breadcrumb_separator; } } elseif (theme_get_setting('zen_breadcrumb_trailing')) { $trailing_separator = $breadcrumb_separator; } // Provide a navigational heading to give context for breadcrumb links to // screen-reader users. if (empty($variables['title'])) { $variables['title'] = t('You are here'); } if(arg(0) == 'node' && is_numeric(arg(1))){ $node = node_load(arg(1)); if(!empty($node->type)){ switch ($node->type){ case 'vacancy': dsm($breadcrumb); $breadcrumb[] = '<a href="/vakansii">Вакансии</a>'; break; case 'news': $breadcrumb[] = '<a href="/materialy-dlya-smi">Материалы для СМИ</a>'; $breadcrumb[] = '<a href="/news">Новости</a>'; break; case 'library': $breadcrumb[] = '<a href="/biblioteka-hartmann">Библиотека HARTMANN</a>'; $breadcrumb[] = l($node->field_library['und'][0]['taxonomy_term']->name, 'taxonomy/term/'.$node->field_library['und'][0]['tid']); break; } } } if(arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))){ $term = taxonomy_term_load(arg(2)); if(!empty($term)){ switch ($term->vid){ case 2: $breadcrumb[] = '<a href="/biblioteka-hartmann">Библиотека HARTMANN</a>'; break; } } } switch ($_SERVER['REQUEST_URI']){ case '/partnery/view-partners-fonds': $breadcrumb[] = '<a href="/partnery">Партнеры</a>'; break; case '/partnery/view-partners-society': $breadcrumb[] = '<a href="/partnery">Партнеры</a>'; break; case '/partnery/view-partners-obrazovatelnye': $breadcrumb[] = '<a href="/partnery">Партнеры</a>'; break; case '/partnery/view-partners-smi': $breadcrumb[] = '<a href="/partnery">Партнеры</a>'; break; case '/partnery/view-partners-institution': $breadcrumb[] = '<a href="/partnery">Партнеры</a>'; break; case '/partnery/view-partners-network': $breadcrumb[] = '<a href="/partnery">Партнеры</a>'; break; case '/partnery/view-partners-apteka': $breadcrumb[] = '<a href="/partnery">Партнеры</a>'; break; case '/partnery/view-partners-dilery': $breadcrumb[] = '<a href="/partnery">Партнеры</a>'; break; } // Unless overridden by a preprocess function, make the heading invisible. if (!isset($variables['title_attributes_array']['class'])) { $variables['title_attributes_array']['class'][] = 'element-invisible'; } $heading = '<h2' . drupal_attributes($variables['title_attributes_array']) . '>' . $variables['title'] . '</h2>'; return '<div class="breadcrumb">' . $heading . implode($breadcrumb_separator, $breadcrumb) . $trailing_separator . $title . '</div>'; } } // Otherwise, return an empty string. return ''; } ?>