Pregunta

Como supondrá que soy nuevo en PHP. Gracias por tu ayuda. Tengo este código en un encabezado TPL:

<div class="menu">
            <ul>                                                                         
                <li class="selected"><a href="#">home</a></li>
                <li><a href="#">carta</a></li>
                <li><a href="#">delicias artesanas</a></li>
                <li><a href="#">contacto</a></li>
                <li><a href="#">d&oacute;nde estamos</a></li>
            </ul>
        </div>

que me gustaría llamar con la función PHP incluye. La cuestión es que quiero llamar a esto TPL, lo que indica cuál de los LI tendrá la clase "seleccionada" aplicada, ¿cómo puedo hacerlo? Como te dije, Peasy fácil para cualquier persona con experiencia básica de PHP. GRACIAS.

¿Fue útil?

Solución

Puede basarlo en una variable que se establece en su lógica de llamada (no plantilla). Por ejemplo, en Smarty podría hacer esto en el PHP:

// Determine which section user is in and pass to tpl
$smarty->assign('location', 'home');

Luego, en su plantilla, puede verificar esa variable:

<li{if $location eq 'home'} class="selected"{/if}><a href="#">home</a></li>
<li{if $location eq 'carta'} class="selected"{/if}><a href="#">carta</a></li>

Mantiene HTML fuera de su biz lógica (PHP) y en su lógica de pantalla (TPL).

Otros consejos

hacer una función para eso:

function menu($selected = null) {
    echo '<ul class="menu">';
    $options = array('home', 'carta', 'delicias artesanas', 'contact', 'd&oacute;nde estamos');
    foreach ($options as $li) {
        echo '<li' . ($li == $selected ? ' class="selected"' : '').'><a href="#">'.$li.'</a></li>'."\n";
    }
    echo '</ul>';
}

Y luego llámalo más tarde:

menu('d&oacute;nde estamos');
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top