Простейшие хлебные крошки (breadcrumbs)

Главные вкладки

Аватар пользователя Химический Али Химический Али 2 сентября 2009 в 21:31

Модуль Taxonomy_Breadcrumbs у меня так и не заработал, поэтому по-тупому намалевал себе модуль для генерации хлебных крошек на основе таксономии. Он
а) выбирает из числа словарей, сопоставленных типу ноды, один с наибольшим "весом",
б) выбирает из числа терминов этого словаря 1,
в) включает ссылку на этот термин в хлебные крошки,
г) добавляет к хлебным крошкам название материала (на любителя).

Получается что-то вроде: Главная › Audi › Audi A8 L будут собирать в Венесуэле.

Если структура словаря древовидная, в цепочку будут добавлены все термины дерева в порядке вложенности.

Состоит из одной функции (основа выдрана из другого модуля :). Можно не мучаться и изменить функцию так, чтобы цепочка строилась исключительно из данных о терминах, заключенных в объекте $node.

Внимание, говнокод! Использовать на свой страх и риск.

ВложениеРазмер
Иконка пакета simple_crumbs-6.x-1.x-demo.zip982 байта

Комментарии

Аватар пользователя PVasili PVasili 6 августа 2012 в 11:49

Вдруг кому и для 7-ки сгодится заготовка (только пути свои поправьте):


<?php
/**
 * Implementation of hook_node_view().
 */
function simple_crumbs_node_view($node$view_mode) {
  
$s_node_type =  'catalog';  // the type work node
                              // field_catalog - the name of field

  

if (($view_mode == 'full') AND ($node->type == $s_node_type)) {
    if (
$node->field_catalog) {
      
$parents   array_reverse(taxonomy_get_parents_all($node->field_catalog['und'][0]['taxonomy_term']->tid));

      

$breadcrumb = array();
      
$breadcrumb[] = l(t('Home'), NULL);
      
$breadcrumb[] = l(t('directory'), "directory");

      foreach (

$parents as $parent) {
        
$breadcrumb[] = l($parent->name"directory/$parent->tid");
      }
      
drupal_set_breadcrumb($breadcrumb);
    }
  }
}
?>