Como modificar el breadcrumb para un nodo de cierto tipo

El breadcrumb es el conjunto de enlaces que suele aparecer en la parte superior de las páginas para indicar el camino seguido para llegar hasta allí.

Pero, por default, no siempre queda tal cual se quiere.

En este caso, mostraré cómo se puede modificar usando el archivo template.php del tema shamrock, que es un subtema que hice del tema zen.

Ejemplo
Tengo un nodo proyecto, que tiene un campo CCK field_proyecto_tipo, que puede ser 'Nuevo' o 'Entregado'.

Se desea que el breadcrumb pueda conducir a las página proyectos-nuevos o proyectos-entregados según si el nodo presentado es de tipo 'Nuevo' o 'Entregado'.

function shamrock_preprocess_node(&$vars, $hook) {
  if ($vars['type']=='proyecto') {
    $tipo = $vars['field_proyecto_tipo'][0]['value'];
    $bc = drupal_get_breadcrumb();
    if ($tipo==t('Nuevo')) {
      $bc[] = l(t('Proyectos Nuevos'), 'proyectos-nuevos');
    } else if ($tipo==t('Entregado')) {
      $bc[] = l(t('Proyectos Entregados'), 'proyectos-entregados');
    }
    drupal_set_breadcrumb($bc);
  }

  // Optionally, run node-type-specific preprocess functions, like
  // shamrock_preprocess_node_page() or shamrock_preprocess_node_story().
  $function = __FUNCTION__ . '_' . $vars['node']->type;
  if (function_exists($function)) {
    $function($vars, $hook);
  }
}

Referencia

Comentarios

Entradas populares de este blog

Debug con Xdebug y Aptana (y Notepad++)

Drupal sí, drupal no

CSS3 para mejorar el breadcrumb de un tema Zen