Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/09/2009, 17:00
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
[APORTE] BreadCrumb

Definición de BreadCrumb
Codigo
Código PHP:
Ver original
  1. <?php
  2.  
  3. $convert_toSpace = true;    // true if script should convert _ in folder names to spaces
  4. $upperCaseWords = true; // true if script should convert lowercase to initial caps
  5. $topLevelName = "HOME";     // name of home/root directory
  6. $separator = " &gt; ";      // characters(s) to separate links in hierarchy (default is a > with 2 spaces on either side)
  7.  
  8. // find index page in directory...
  9. function MPBCDirIndex($dir) {
  10.     $index = '';
  11.     @$dir_handle = opendir($dir);
  12.     if ($dir_handle) {
  13.         while ($file = readdir($dir_handle)) {
  14.             $test = substr(strtolower($file), 0, 6);
  15.             if ($test == 'index.') {
  16.                 $index = $file;
  17.                 break;
  18.                 }
  19.             }
  20.         }
  21.     return $index;
  22.     }
  23.  
  24. // make clean array (trim entries and remove blanks)...
  25. function MPBCTrimArray($array) {
  26.     $clean = array();
  27.     for ($n=0; $n<count($array); $n++) {
  28.         $entry = trim($array[$n]);
  29.         if ($entry != '') $clean[] = $entry;
  30.         }
  31.     return $clean;
  32.     }
  33.  
  34. // function to prep string folder names if needed...
  35. function MPBCFixNames($string) {
  36.     global $convert_toSpace;
  37.     global $upperCaseWords;
  38.     if ($convert_toSpace) $string = str_replace('_', ' ', $string);
  39.     if ($upperCaseWords) $string = ucwords($string);
  40.     return $string;
  41.     }
  42.  
  43. $server = (isset($_SERVER)) ? $_SERVER : $HTTP_SERVER_VARS;
  44.  
  45. $htmlRoot = (isset($server['DOCUMENT_ROOT'])) ? $server['DOCUMENT_ROOT'] : '';
  46. if ($htmlRoot == '') $htmlRoot = (isset($server['SITE_HTMLROOT'])) ? $server['SITE_HTMLROOT'] : '';
  47.  
  48. $pagePath = (isset($server['SCRIPT_FILENAME'])) ? $server['SCRIPT_FILENAME'] : '';
  49. if ($pagePath == '') $pagePath = (isset($server['SCRIPT_FILENAME'])) ? $server['SCRIPT_FILENAME'] : '';
  50.  
  51. $httpPath = ($htmlRoot != '/') ? str_replace($htmlRoot, '', $pagePath) : $pathPath;
  52.  
  53. $dirArray = explode('/', $httpPath);
  54. if (!is_dir($htmlRoot.$httpPath)) $dirArray = array_slice($dirArray, 0, count($dirArray) - 1);
  55.  
  56. $linkArray = array();
  57. $thisDir = '';
  58. $baseDir = ($htmlRoot == '') ? '' : $htmlRoot;
  59. for ($n=0; $n<count($dirArray); $n++) {
  60.     $thisDir .= $dirArray[$n].'/';
  61.     $thisIndex = MPBCDirIndex($htmlRoot.$thisDir);
  62.     $thisText = ($n == 0) ? $topLevelName : MPBCFixNames($dirArray[$n]);
  63.     $thisLink = ($thisIndex != '') ? '<a href="'.$thisDir.$thisIndex.'">'.$thisText.'</a>' : $thisText;
  64.     if ($thisLink != '') $linkArray[] = $thisLink;
  65.     }
  66.  
  67. $results = (count($linkArray) > 0) ? implode($separator, $linkArray) : '';
  68. if ($results != '') print('<div class="backlinks">'.$results.'</div>');
  69.  
  70. ?>

Instrucciones
  • El archivo breadcrumb.php lo debes colocar en el directorio principal.
  • En cada archivo que quieras que se vea el codigo debes usar
    Código PHP:
    Ver original
    1. <?php include($_SERVER['DOCUMENT_ROOT']."/breadcrumb.php"); ?>
  • Este include debe ir en los archivos que esten en un subdirectorio. No va a verse el codigo funcionando si lo usas en un archivo que este en el directorio principal.
  • Debes colocar el codigo en donde quieres que aparezca la informacion 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 minuscula en mayuscula
    • $topLevelName = "HOME";
      Nombre del directorio principal
    • $separator = " &gt; ";
      Caracter(es) que vas a usar para separar en forma de jerarquía (por defecto es un > con espacios en ambos lados)
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 26/09/2009 a las 21:40