PDA

Ver la Versión Completa : Migas de pan... (breadcrumbs)


movorack
20-05-2010, 18:50:03
Hola a todos...

aquí les dejo un pequeño aporte... un script para establecer las migas de pan o ruta de navegación de una web (breadcrumbs)...

algo como:

Inicio > seccion > articulo > deja tu comentario

bueno aquí la clase (le falta pulirla un tanto... o mas):


class breadcrumb {
public $links = "";
public $separator = "-";

private $_breadcrumb = array();
private $index = 0;

public function __construct($separator = "-"){
$this->separator = $separator;
if (!isset($_SESSION["breadcrumb"])){
$_SESSION["breadcrumb"] = array();
};
$this->_breadcrumb = $_SESSION["breadcrumb"];
$this->index = count($this->_breadcrumb)-1;
}

public function reset(){
$this->_breadcrumb = array();
$_SESSION["breadcrumb"] = $this->_breadcrumb;
}

public function add_crumb($index, $name, $url){
$this->_breadcrumb[$index]["name"] = $name;
$this->_breadcrumb[$index]["url"] = WEB_HOST.$url;
$this->index = $index;
$_SESSION["breadcrumb"] = $this->_breadcrumb;
}

public function display(){
$links = "";
for($i=0; $i <= count($this->_breadcrumb)-1; $i++){
if ($i > 0 && $i <= $this->index) { $links .= " $this->separator "; };
if ($i == $this->index){
$links .= "<span>{$this->_breadcrumb[$i]['name']}</span>";
} else if ($i < $this->index) {
$links .= "<a href=\"{$this->_breadcrumb[$i]['url']}\">{$this->_breadcrumb[$i]['name']}</a>";
};
};

$this->links = $links;
echo $this->links;
}
}

aquí la forma de usarla...


session_start();
$breadcrumb = new breadcrumb();
$breadcrumb->add_crumb(1, "Inicio", "index.php");
$breadcrumb->add_crumb(2, "Seccion", "seccion.php");
$breadcrumb->add_crumb(3, "Articulo", "articulo.php");
$breadcrumb->display();


la salida seria:

Inicio - Seccion - Articulo

obvio que manejarla tan así no es muy atractivo pero se puede automatizar un poco mas la forma en que se registran las migajas...


$breadcrumb->add_crumb(1, $web->lang_options[$web->secc], $_SERVER["SCRIPT_NAME"]);


bueno... es un pequeño aporte... saludos.