RSS .92| RSS 2.0| ATOM 0.3
  • Inicio
  • Correo Web
  •  

    Menu > #current

    Febrero 5, 2008 @ 8:49
    Alex Sancho

    Diferenciar el enlace actual dentro de un menú es una tarea relativamente fácil, básicamente solo tenemos que comparar los enlaces del menú con la url actual y añadir una id al enlace en el caso de que coincidan.

    La siguiente técnica intenta facilitar este proceso, la idea es procesar un bloque de html mediante php y encontrar la coincidencia,

    el menú

    como ejemplo usare una lista desordenada para la estructura del menú

    $menu = '
            <div class="menu-container">
                <ul id="menu">
                    <li><a href="http://example.com/path/seccion1/">Seccion 1</a></li>
                    <li><a href="http://example.com/path/seccion2/">Seccion 2</a></li>
                    <li><a href="http://example.com/path/seccion3/">Seccion 3</a></li>
                </ul>
            </div>';

    Como podéis ver, la estructura del menú no presenta ninguna limitación, en este caso utilizo una lista, pero podría utilizar cualquier tipo de contenedor para el propósito.

    la función

    Creo que el método de uso no tiene secreto, pasamos nuestro menú a la función menu_current($menu);

    <?php
        funcion menu_current($menu)
        {
            $lines = split("\n", $menu);
            foreach($lines as $line)
            {
                preg_match('/href="([^"]+)"/', $line, $url);
                if (isset($url[1]))
                {
                    $section = end(explode("/", trim(parse_url($url[1], PHP_URL_PATH), '/')));
                    $request = explode("/", trim($_SERVER["REQUEST_URI"], '/'));
    
                    if(in_array($section, $request))
                        $line = str_replace('<a h', '<a id="current" h', $line);
                }
                $array[] = $line;
            }
            echo implode("\n", $array); 
        }
        ?>

    Comentarios (0) | | Digg It! | | ma.gnolia |




    del.icio.us:Menu > #current digg:Menu > #current spurl:Menu > #current wists:Menu > #current simpy:Menu > #current newsvine:Menu > #current blinklist:Menu > #current furl:Menu > #current reddit:Menu > #current fark:Menu > #current blogmarks:Menu > #current Y!:Menu > #current smarking:Menu > #current meneame:Menu > #current

    Articulos relacionados:
    Mapa genético de Europa
    Los mejores sitios para trabajar en España en 2008
    W2X: FW Exclusivo: En Vivo desde el Keynote de Fake Steve Jobs via Yahoo! Live
    PIGS
    La tapa de eink de Esquire

    Permalink Via Alex Sancho PHP

    Comentarios desactivados.