Beta2 Breadcrumb&action=edit

De KumbiaPHP Framework Wiki

¿Que es un Breadcrumb?[editar]

El Breadcrumb es un elemento de orientación dentro del sitio, por lo regular este elemento se encuentra posicionado entre la cabezera y en contentenido principal del sitio.

El Breadcrumb ofrece al usuario su ubicación actual dentro del sitio. El término viene de la pista de migas de pan que dejan Hansel y Gretel en el popular cuento.

En ejemplo de su vista en el sitio web, seria de la siguiente manera.

Home > Sección Página > Subsección página o Portada del sitio > Sección del sitio > Página de la subsección

Tipos de Breadcrumb[editar]

Existen 3 tipos:

  • Ruta de acceso: Son dinámicas y muestran la ruta que el usuario ha empleado para llegar a una página.
  • Ubucación: Son de tipo estatico e informa del lugar, dentro del sitio web, donde se encuentra la página y es independiente a la navegación que el usuario a seguido
  • Atributo: Muestran información que categoriza la página actual.

Instalación[editar]

Descarga de la clase[editar]

Descargar la clase del la siguiente liga Breadcrumb para kumbiaPHP

Instalación de la clase[editar]

Descomprimir el .rar y pegar el archivo en la siguiente ruta default\app\libs\

Ejemplo Breadcrumb para kumbiaPHP[editar]

Modificar el archivo de configuración[editar]

Agregamos al archivo default\app\config\config.ini el switch breadcrumb que activa(true) o inactiva(false) la impresion del partial breadcrumb.

locale = es_MX
routes = On
breadcrumb = true

Crear partial breadcrumb.phtml[editar]

Crear en default\app\views\_shared\partials\ el archivo breadcrumb.phtml con el siguiente contenido.

<?php if(Config::get('config.application.breadcrumb')): ?>
<div id="breadcrumb">
  <?php
    $Crumb = new Breadcrumb();
    $Crumb->addCrumb(0, _('Inicio'), Router::get('module'));
    $Crumb->addCrumb(1, Router::get('controller'), Router::get('module') . '/' . Router::get('controller'));
    $Crumb->addCrumb(2, Router::get('action'), Router::get('module') . '/' . Router::get('controller') . '/' . Router::get('action'));
    echo $Crumb->display();
  ?>
</div>
<?php endif; ?>

Configuraciones al Breadcrumb[editar]

$Crumb->separator[editar]

(string)Modifica el separador para los item del crumb, por default es ».

$Crumb->separator = '&nbsp;|&nbsp;';

$Crumb->class_ul[editar]

(string)Nombre de la clase para ul en la lista, por default es NULL.

$Crumb->class_ul = 'breadcrumb_ul';

$Crumb->class_separator[editar]

(string)Nombre de la clase para li del separador, por default es NULL.

$Crumb->class_separator 'breadcrumb_li';

$Crumb->camel_case[editar]

(bool)Aplica notación CamelCase(ucwords) a los titulos de los items, por default es true.

$Crumb->camel_case = true

$Crumb->upper_case[editar]

(bool)Transforma a mayusculas(strtoupper) los titulos de los items, por default es false.

$Crumb->upper_case = false

$Crumb->lower_case[editar]

(bool)Transforma a minusculas(strtolower) los titulos de los items, por default es false.

$Crumb->lower_case = false

$Crumb->cut[editar]

(bool)Corta los titulos de los items, por default es false.

$Crumb->cut = false

$Crumb->cut_len_max[editar]

(int)Longitud maxima del titulo, si esta activado $Crumb->cut evalua si la longitud del titulo es mayor a $Crumb->cut_len_max para realizar el corte, por default es 10.

$Crumb->cut_len_max = 10

Desde el controlador[editar]

Modificar el switch del Breadcrumb[editar]

Activar la impresion del Breadcrumb.

Config::set('config.application.breadcrumb', true)

Inactivar la impresion del Breadcrumb.

Config::set('config.application.breadcrumb', false)

Breadcrumb::_addCrumb($title, string $url)[editar]

Agrega un crumb al final del Breadcrumb.

string $title => Titulo del crumb.

string $url => URL destino.

Breadcrumb::_updateCrumb($key, $title, $url)[editar]

Actualiza un crumb siempre y cuando este definido, para respetar el valor original de title o url se debe pasar como parametro un punto(.).

int $key => Index del crumb.

string $title => Titulo del crumb.

string $url => URL destino.


Bueno espero haberme explicado de manera clara, cualquier problema nos vemos en el IRC.

--Saludos iBet7o 04:49 9 ago 2010 (UTC)