PHP: BreadCrumb
De Foros del Web
Definición de BreadCrumb
- Es la navegación basada en el "paso a paso", vea el ejemplo:
Home -> Produtos -> Mp3 - Información sacada de http://guia.mercadolibre.cl/glosario-seo-20759-VGP
Codigo
- Creas un archivo, por ejemplo, llamado breadcrumb.php
- Codigo obtenido de http://www.mindpalette.com/tutorials/breadcrumbs/index.php
<?php $convert_toSpace = true; // true if script should convert _ in folder names to spaces $upperCaseWords = true; // true if script should convert lowercase to initial caps $topLevelName = "HOME"; // name of home/root directory $separator = " > "; // characters(s) to separate links in hierarchy (default is a > with 2 spaces on either side) // find index page in directory... function MPBCDirIndex($dir) { $index = ''; @$dir_handle = opendir($dir); if ($dir_handle) { while ($file = readdir($dir_handle)) { $test = substr(strtolower($file), 0, 6); if ($test == 'index.') { $index = $file; break; } } } return $index; } // make clean array (trim entries and remove blanks)... function MPBCTrimArray($array) { $clean = array(); for ($n=0; $n<count($array); $n++) { $entry = trim($array[$n]); if ($entry != '') $clean[] = $entry; } return $clean; } // function to prep string folder names if needed... function MPBCFixNames($string) { global $convert_toSpace; global $upperCaseWords; if ($convert_toSpace) $string = str_replace('_', ' ', $string); if ($upperCaseWords) $string = ucwords($string); return $string; } $server = (isset($_SERVER)) ? $_SERVER : $HTTP_SERVER_VARS; $htmlRoot = (isset($server['DOCUMENT_ROOT'])) ? $server['DOCUMENT_ROOT'] : ''; if ($htmlRoot == '') $htmlRoot = (isset($server['SITE_HTMLROOT'])) ? $server['SITE_HTMLROOT'] : ''; $pagePath = (isset($server['SCRIPT_FILENAME'])) ? $server['SCRIPT_FILENAME'] : ''; if ($pagePath == '') $pagePath = (isset($server['SCRIPT_FILENAME'])) ? $server['SCRIPT_FILENAME'] : ''; $httpPath = ($htmlRoot != '/') ? str_replace($htmlRoot, '', $pagePath) : $pathPath; $dirArray = explode('/', $httpPath); if (!is_dir($htmlRoot.$httpPath)) $dirArray = array_slice($dirArray, 0, count($dirArray) - 1); $linkArray = array(); $thisDir = ''; $baseDir = ($htmlRoot == '') ? '' : $htmlRoot; for ($n=0; $n<count($dirArray); $n++) { $thisDir .= $dirArray[$n].'/'; $thisIndex = MPBCDirIndex($htmlRoot.$thisDir); $thisText = ($n == 0) ? $topLevelName : MPBCFixNames($dirArray[$n]); $thisLink = ($thisIndex != '') ? '<a href="'.$thisDir.$thisIndex.'">'.$thisText.'</a>' : $thisText; if ($thisLink != '') $linkArray[] = $thisLink; } $results = (count($linkArray) > 0) ? implode($separator, $linkArray) : ''; if ($results != '') print('<div class="backlinks">'.$results.'</div>'); ?>
Instrucciones
- El archivo breadcrumb.php lo debes colocar en el directorio principal.
- En cada archivo que quieras que se vea el código, debes usar:
<?php include($_SERVER['DOCUMENT_ROOT']."/breadcrumb.php"); ?>
- Este include debe ir en los archivos que estén en un subdirectorio. No va a verse el código funcionando si lo usas en un archivo que esté en el directorio principal.
- Debes colocar el código en donde quieres que aparezca la información del breadcrumb.
- Las variables que salen al principio se pueden modificar y su funciones son:
- $convert_toSpace = true;
true Si deseas que el código convierta los underscore (_) en espacios - $upperCaseWords = true;
true Si deseas que el código convierta los nombres de los directorios que tengan la primera letra en minúscula en mayúscula - $topLevelName = "HOME";
Nombre del directorio principal - $separator = " > ";
Caracter(es) que vas a usar para separar en forma de jerarquía (por defecto es un > con espacios en ambos lados)
- $convert_toSpace = true;
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
