
Completar los breadcrumb teniendo en cuenta la url
Descripción:
Hay veces que con drupal los breadcrumb se nos quedan un pelin cortos. El siguiente código (un hook_nodeapi en un módulo), modifica el breadcrumb. En este caso teniendo en cuenta la url. Hay dos ejemplos:
- /ejemplos/....
- /proyectos/...
- Cuando estes en ejemplos el breadcrumb será:
home >> Tipos de ejemplos (el enlace de ejemplos irá a: 'tipos_de_ejemplos' )
- Cuando estes en proyectos el breadcrumb será:
home >> proyectos (el enlace de proyectos irá a: 'proyectos')
codigo_code:
// drupal6 // En un modulo: function nombre_modulo_nodeapi(&$node, $op, $teaser, $page) { if ($node->type == 'page'){ // si solo se lo vamos a cambiar por eje a las paginas switch ($op) { case 'view': $url = drupal_get_path_alias($_GET['q']); // cogemos la url $uri = explode("/", $url); // la separamos por las barras if(count($uri)>=1){ // si la url tiene mas de 1 apartao.. // si x ejem solo nos interesa cnd la url empieza x ejemplos o proyectos if ($uri[0] == 'ejemplos' or $uri[0] == 'proyectos'){ $enlace[] = l('Home', ''); //la 1º parte del enlace for($i=0;$i<count($uri)-1;$i++){ if($i>0) { $ant = $uri[$i-1]."/".$uri[$i]; } else{ $ant = $uri[$i]; } // si por ejemplo cuando empiece por ejemplos, queremos q el breadcurm marque: "Tipos de ejemplos" y con la url ("tipos_de_ejemplos"): if ($uri[$i] == 'ejemplos'){ $enlace[] = l('Tipos de ejemplos', "tipos_de_ejemplos"); } // sino.. que ponga el nombre de la parte de la url y el enlace tb else{ $enlace[] = l(ucfirst(ereg_replace("_", " ", $uri[$i])), $ant); } } // guardamos el breadcrumb drupal_set_breadcrumb($enlace); } } break; } } }
Todavía estamos montando esta cocina con Drupal, así que probablemente más de un detalle esté sin acabar en esta web
Buscar
Book navigation
Tags de ARTÍCULOS
Inicio de sesión
Navegación
Nuevos
- fernando
- dsevila
- zialdoka
- ek10
- juanramonperez
Comentarios
Cortando por lo sano
Bueno, desde luego que el codigo es interesante, gracias bea!
Imagino que conocereis el modulo http://drupal.org/project/custom_breadcrumbs que permite cosas parecidas.
Aunque quizas esta solucion, con un pathauto configurado como es debido puede ser mas sencillo.
En cualquier lugar, gracias por compartirlo!
Un saludo desde Barcelona,
Manuel