-rafael- 1 Denunciar post Postado Agosto 2, 2010 ola a todos, minha primeira postagem aqui no laboratório, espero que gostem! é uma classe para Breadcrumb, que me foi muito util, entao estou passando ela pra frente, muito simples de usar. Ela utiliza session para gravar o caminho. a classe: <?php class Breadcrumb{ /* * Breadcrumb navigation class * Mick Sear * http-~~-//www.ecreate.co.uk * * The key to using this is to decide on a $level for each page. (array, starting position 0) * This determines where in the trail a link will be placed. So, I normally make the homepage level 0, * then every page that can be accessed from the top level nav becomes level 1, and every page * from that second level becomes level 2, and so on. When users return to a higher level (e.g. level 1) * the surplus links are removed. Only one page can occupy a $level in the crumb trail. * There might be several routes to a page. In which case, the trail will reflect the route that the * user actually took to get to that page. */ var $output; var $crumbs = array(); var $location; /* * Constructor */ function Breadcrumb(){ if (!isset($_SESSION)) session_start(); if (isset($_SESSION['breadcrumb']) && $_SESSION['breadcrumb'] != NULL){ $this->crumbs = $_SESSION['breadcrumb']; } } /* * Add a crumb to the trail: * @param $label - The string to display * @param $url - The url underlying the label * @param $level - The level of this link. * */ function add($label, $url, $level){ $crumb = array(); $crumb['label'] = $label; $crumb['url'] = $url; if ($crumb['label'] != NULL && $crumb['url'] != NULL && isset($level)){ while(count($this->crumbs) > $level){ array_pop($this->crumbs); //prune until we reach the $level we've allocated to this page } if (!isset($this->crumbs[0]) && $level > 0){ //If there's no session data yet, assume a homepage link $this->crumbs[0]['url'] = "/index.php"; $this->crumbs[0]['label'] = "Home"; } $this->crumbs[$level] = $crumb; } $_SESSION['breadcrumb'] = $this->crumbs; //Persist the data $this->crumbs[$level]['url'] = NULL; //Ditch the underlying url for the current page. } /* * Output a semantic list of links. See above for sample CSS. Modify this to suit your design. */ function output(){ //echo "<div id='breadcrumb'><ul><li>Click trail: </li>"; echo '>'; foreach ($this->crumbs as $crumb){ if ($crumb['url'] != NULL){ //echo "<li> > <a href='".$crumb['url']."' title='".$crumb['label']."'>".$crumb['label']."</a></li> "; echo " > <a href='".$crumb['url']."' title='".$crumb['label']."'>".$crumb['label']."</a>"; } else { echo " > ".$crumb['label']; } } //echo "</ul></div>"; } } ?> para utiliza-lá é bem simples: <?php require "breadcrumb.php"; //supondo que voce tenha salvo o codigo em outro arquivo $trail = new Breadcrumb(); // instancia a classe $trail->add('Pagina', $_SERVER['PHP_SELF'], 0); //os codigos do crumb $trail->output(); //a saida ?> para configura-la basta colocar o nome da sua pagina na onde esta escrito 'Pagina', e onde tem o numero 0 (zero), voce coloca o nivel da pagina Exemplo: supondo que você esteja na home.php <?php require "breadcrumb.php"; $trail = new Breadcrumb(); $trail->add('Home', $_SERVER['PHP_SELF'], 0); $trail->output(); ?> vai aparecer >> Home na segunda pagina voce colcocaria assim: <?php require "breadcrumb.php"; $trail = new Breadcrumb(); $trail->add('2a Pagina', $_SERVER['PHP_SELF'], 1); //foi trocado de 0 para 1 $trail->output(); ?> vai aparecer >> Home > 2a Pagina Obs: essa classe não pega o caminho que esta na barra de endereços do navegador. Ela segue uma sequencia criada pelo programador e salva em session. espero que seja útil. retirado de http://www.roscripts...crumbs-118.html Compartilhar este post Link para o post Compartilhar em outros sites