Foros del Web » Programando para Internet » PHP »

[APORTE] BreadCrumb

Estas en el tema de [APORTE] BreadCrumb en el foro de PHP en 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 ...
  #1 (permalink)  
Antiguo 26/09/2009, 17:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 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
  #2 (permalink)  
Antiguo 26/09/2009, 20:14
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 11 meses
Puntos: 21
Respuesta: [APORTE] BreadCrumb

Oh, muy útil... muchas gracias, con la web que estoy ahora no lo necesito, pero de seguro mas adelanto lo voy a necesitar, gracias.
  #3 (permalink)  
Antiguo 26/09/2009, 20:16
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: [APORTE] BreadCrumb

Eso está mas que excelente y ¡Probando!
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #4 (permalink)  
Antiguo 26/09/2009, 21:38
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 17 años, 1 mes
Puntos: 101
Respuesta: [APORTE] BreadCrumb

Buen aporte.. :P
__________________
Half Music - www.halfmusic.com
  #5 (permalink)  
Antiguo 29/09/2009, 10:29
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta Respuesta: [APORTE] BreadCrumb

Mi duda pasa por lo siguiente mi sistema es modular y tengo esta jerarquia de archivos
  • index
  • cabecera
  • pie
  • cuerpo
  • modulos
    • equipos
      • vistas
        • insertar
        • editar
      • contrlador
      • modulos
    • jugadores
    • etc
  • css

Bien cuando hago inicio de sesion en mi pie tengo este codigo
Código php:
Ver original
  1. <div id="footer">
  2. <p align="center"> Sede Social Calle: Junin 744 , (Sucre-Bolivia), Telefono: 64-51271 - 64-55460, FAX:(04) 64-55460 </p>
  3. <center>
  4. <p><a href="index.php?mod=informacion&pag=presentacion">Presentacion</a> |
  5.     <?php
  6.         if(empty($_SESSION['usuario_id'])) {
  7.     ?>
  8.     <a href="index.php?mod=login&pag=ingresar">Ingresar al Sistema</a>
  9.     <?php
  10.         } else {
  11.         ?>
  12.     <a href="index.php?mod=login&pag=panel">Volver al Panel</a>  |<?php include("modulos/breadcrumb.php"); ?>|  <a href="index.php?mod=login&pag=salir">Salir del Sistema</a>
  13.         <?php
  14.         }
  15.     ?>

Lo que no puedo hacer es que cuando añado esto.
<?php include("modulos/breadcrumb.php"); ?>

me sale en el pie una vez inicioado sesion asi
Presentacion | Volver al Panel |HOME > Proyecto Cisco| Salir del Sistema | Email | Contactos

Cuando quisiera que me salga asi
Presentacion | Volver al Panel |listado equipos |insertar| Salir del Sistema |Contactos

Alguien podria echarme una mano no encuentro nada de guia en la web

No hay ninguna sugerencia

Última edición por vili86; 29/09/2009 a las 11:41 Razón: para no crear otra nota mas
  #6 (permalink)  
Antiguo 29/09/2009, 11:51
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: [APORTE] BreadCrumb

El BreadCrumb se basa de acuerdo a los nombre de los directorios. Tendrías que usar str_replace o algo por el estilo para cambiar el nombre que detecte el breadcrumb al que tu quieras. Pero no tiene logica usar un breadcrumb y hacer lo que tu quieres hacer.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: aportes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:03.