PHP-CSS-HTML, der eine Klasse über PHP mit Vorlagen auf ein Tag anwendet
-
25-09-2019 - |
Frage
Wie Sie erraten werden, bin ich neu in PHP. Danke für Ihre Hilfe. Ich habe diesen Code in einem Header 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ónde estamos</a></li>
</ul>
</div>
Was ich mit der PHP -Funktion aufrufen möchte. Die Sache ist, ich möchte dieses TPL nennen und angeben, in welcher der Li -Klasse die "ausgewählte" Klasse angewendet wird. Wie kann ich das tun? Wie ich Ihnen sagte, einfach Peasy für alle mit grundlegender PHP -Erfahrung. DANKE.
Lösung
Sie können es von einer Variablen stützen, die in Ihrer Aufruflogik (Nicht-Template) festgelegt ist. In Smarty können Sie dies beispielsweise im PHP tun:
// Determine which section user is in and pass to tpl
$smarty->assign('location', 'home');
Dann können Sie in Ihrer Vorlage diese Variable nur überprüfen:
<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>
Die HTML hält Ihre Biz -Logik (PHP) und in Ihrer Anzeigelogik (TPL) heraus.
Andere Tipps
Machen Sie eine Funktion dafür:
function menu($selected = null) {
echo '<ul class="menu">';
$options = array('home', 'carta', 'delicias artesanas', 'contact', 'dónde estamos');
foreach ($options as $li) {
echo '<li' . ($li == $selected ? ' class="selected"' : '').'><a href="#">'.$li.'</a></li>'."\n";
}
echo '</ul>';
}
Und dann nennen Sie es einfach später:
menu('dónde estamos');