Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Drupal »

Crear un nivel en el breadcrumb

Estas en el tema de Crear un nivel en el breadcrumb en el foro de Drupal en Foros del Web. Continuo trabajando sobre mi pagina de literatura, en ella tengo una vista en la url: /poemas en donde hay una tabla con todos los poemas ...
  #1 (permalink)  
Antiguo 28/12/2010, 08:45
Avatar de historiasdemaria  
Fecha de Ingreso: septiembre-2010
Ubicación: www
Mensajes: 433
Antigüedad: 14 años, 2 meses
Puntos: 54
Pregunta Crear un nivel en el breadcrumb

Continuo trabajando sobre mi pagina de literatura, en ella tengo una vista en la url: /poemas en donde hay una tabla con todos los poemas disponibles,

Lo que me gustaria es ver cuando estoy leyendo un poema, que el breadcrumb facilite la navegacion asi:

Inicio > poemas

Pero si estoy en el poema mismo solo veo
Inicio > o sea que falta un nivel
Claro que no todos los poemas pueden estar en al menu porque la lista se ira haciendo muy larga, pero como podria hacer que aparezca en el breadcrumb el nivel > poemas
para que la gente pueda ir al indice y facilitar la navegacion?

He pensado en la taxonomia, es la unica manera?

Gracias por vuestras respuestas
  #2 (permalink)  
Antiguo 28/12/2010, 10:36
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 2 meses
Puntos: 265
Respuesta: Crear un nivel en el breadcrumb

Este modulo te puede ayudar mucho:

http://drupal.org/project/custom_breadcrumbs

Su uso depende de como hayas estructurado vos tu contenido. Cuando creas un "poema", que haces? Creas un tipo de contenido poema? Creas un contenido generico categorizado en poema?

Ese modulo te permite, por cada tipo de contenido, poder crear tu propio breadcrumb personalizado, es muy util la verdad.

Proba usarlo y si tenes alguna duda postea! Pero aclarando como tenes estructurado tus datos.

Saludos.
  #3 (permalink)  
Antiguo 28/12/2010, 10:59
Avatar de historiasdemaria  
Fecha de Ingreso: septiembre-2010
Ubicación: www
Mensajes: 433
Antigüedad: 14 años, 2 meses
Puntos: 54
Respuesta: Crear un nivel en el breadcrumb

Cuando creo un poema es un tipo de contenido poema, y todos los poemas estan en la url poemas, asi:

/poemas/poema-1
/poemas/poema-2

etc..

De ser posible desearia evitar instlar otro modulo

Muchas gracias por la respuesta
  #4 (permalink)  
Antiguo 28/12/2010, 11:02
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: Crear un nivel en el breadcrumb

Y poemas que es? un tipo de contenido? como organizas para que si vas a /poemas solo veas los nodos poemas.
Partiendo de alli te puedo ayudar.

Saludos,
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 28/12/2010, 12:21
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: Crear un nivel en el breadcrumb

Quizás esto te de una idea de como poder hacerlo, tampoco soy de la idea de instalar módulos para todo, muchas veces no se usa ni el 10% de la capacidad real del modulo.

Código PHP:
Ver original
  1. <?php
  2. //template.php
  3.  
  4. function phptemplate_preprocess_page( &$variables ){
  5.  
  6.         $url = drupal_get_path_alias( $_GET[ "q" ] );
  7.         $uri = explode( "/", $url );
  8.        
  9.  
  10.         if( count( $uri ) >= 1 ){
  11.  
  12. //solo se mostrara el breadcrumb personalizado en caso de la url arg(0) sea "poemas")
  13.  
  14.         if( $uri[ 0 ] == 'poemas' ){
  15.            
  16.         $lnk = l( 'Home', '' );
  17.  
  18.  
  19.         $lnk .= " * " .  l( 'Poemas' , 'poemas' );
  20.  
  21.         $variables[ 'breadcrumb' ] = "<div>". $lnk . "</div>";
  22.  
  23.         }
  24.  
  25.     }
  26.     }

Se puede simplificar aun mas(usando solo arg()), pero lo hice para que te des una idea general de como son las rutas y que sea mas flexible, si lo quieres ampliar.
__________________
Drupal Argentina
  #6 (permalink)  
Antiguo 28/12/2010, 12:55
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 2 meses
Puntos: 265
Respuesta: Crear un nivel en el breadcrumb

Pero vos en /poemas/ tenes una vista con todos los poemas? Entonces ese modulo que te di te lo hace todo en dos pasos.
La solucion de arriba tambien es factible!

Saludos.
  #7 (permalink)  
Antiguo 29/12/2010, 05:36
Avatar de historiasdemaria  
Fecha de Ingreso: septiembre-2010
Ubicación: www
Mensajes: 433
Antigüedad: 14 años, 2 meses
Puntos: 54
De acuerdo Respuesta: Crear un nivel en el breadcrumb

Bueno, al fin!

La pista me la dio la funcion de NUCKLEAR, asi que en template.php escribi esta funcion




Código PHP:
Ver original
  1. /**
  2.  * Overrides the breadcrumbs for this theme
  3.  */
  4. function analytic_breadcrumb($breadcrumb)
  5. {
  6.     if (!empty($breadcrumb))
  7.     {
  8.         $lastitem = sizeof($breadcrumb);
  9.         $crumbs = '<div class="breadcrumbs">';
  10.         $a=1;
  11.         foreach($breadcrumb as $value)
  12.         {
  13.             if ($a!=$lastitem)
  14.             {
  15.                  $crumbs .= '<span>'. $value . '  »  ' . '</span>';
  16.                  $a++;
  17.             }
  18.             else
  19.             {
  20.                 $crumbs .= ' <span>'.$value.'</span>';
  21.             }
  22.         }
  23.         $crumbs .= '</div>';
  24.     }
  25.  
  26.  
  27.     // Patch for breadcrumbs by NUCKLEAR
  28.    
  29.     $url = drupal_get_path_alias( $_GET[ "q" ] );
  30.     $uri = explode( "/", $url );
  31.    
  32.    
  33.     if( count( $uri ) >= 1 )
  34.     {
  35.         //solo se mostrara el breadcrumb personalizado en caso de la url arg(0) sea "poemas")
  36.         if( $uri[ 0 ] == 'poemas' )
  37.         {
  38.             $crumbs = '<div class="breadcrumbs">';
  39.            
  40.             $lnk= l( 'Inicio', '' );
  41.             $crumbs.= '<span>'. $lnk . '  »  </span>';
  42.  
  43.             $lnk= l( 'Poemas' , 'poemas' );
  44.             $crumbs .= ' <span>'. $lnk . ' ' . '</span>';
  45.            
  46.             $crumbs .= '</div>';
  47.         }
  48.        
  49.         //solo se mostrara el breadcrumb personalizado en caso de la url arg(0) sea "novela")
  50.         if( $uri[ 0 ] == 'novela' )
  51.         {
  52.             $crumbs = '<div class="breadcrumbs">';
  53.            
  54.             $lnk= l( 'Inicio', '' );
  55.             $crumbs.= '<span>'. $lnk . '  »  </span>';
  56.  
  57.             $lnk= l( 'Novela' , 'novela' );
  58.             $crumbs .= ' <span>'. $lnk . ' ' . '</span>';
  59.            
  60.             $crumbs .= '</div>';
  61.         }
  62.     }
  63.  
  64.   return $crumbs;
  65. }

Y de paso tambien la puse para el tipo de contenido Novela

Muchisimas gracias, sois geniales!

Etiquetas: nivel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:09.