PHP-CSS-HTMLテンプレートを使用してPHPを介してクラスをタグに適用する
-
25-09-2019 - |
質問
あなたが推測するように、私はPHPに慣れていません。ご協力いただきありがとうございます。ヘッダー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>
PHP関数で呼び出したいと思います。事は、このTPLと呼びたいと思っています。どのLiのどれが「選択された」クラスが適用されるかを示しています。どうすればよいですか?私があなたに言ったように、基本的なPHPエクスペリエンスを持つ人にとっては簡単です。ありがとうございました。
解決
呼び出し(テンプレート以外の)ロジックに設定されている変数に基づいてベースにすることができます。たとえば、Smartyでは、PHPでこれを行うことができます。
// Determine which section user is in and pass to tpl
$smarty->assign('location', 'home');
次に、テンプレートでは、その変数を確認できます。
<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>
htmlは、bizロジック(php)および表示ロジック(tpl)から除外します。
他のヒント
そのための関数を作成します:
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>';
}
そして、後でそれを呼び出すだけです:
menu('dónde estamos');
所属していません StackOverflow