Domanda

Come indovine, sono nuovo a PHP. Grazie per l'aiuto. Ho questo pezzo di codice in un'intestazione 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>

che vorrei chiamare con la funzione PHP include. Il fatto è che voglio chiamare questo TPL, indicando quale di LI avrà la classe "selezionata" applicata, come posso farlo? Come ti ho detto, facile per chiunque abbia esperienza di base PHP. GRAZIE.

È stato utile?

Soluzione

Puoi basarlo da una variabile impostata nella logica di chiamata (non-tempica). Ad esempio, in Smarty potresti farlo nel PHP:

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

Quindi nel tuo modello puoi semplicemente controllare quella variabile:

<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 fuori dalla logica Biz (PHP) e nella logica del display (TPL).

Altri suggerimenti

Fare una funzione per questo:

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>';
}

E poi chiamalo più tardi:

menu('d&oacute;nde estamos');
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top