2011-01-05 2 views
0

あなたは私がPHPに慣れていると思います。ご協力いただきありがとうございます。私には、PHP機能を呼び出したいPHP-CSS-HTMLテンプレートを使ってPHPを介してタグにクラスを適用する

<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> 

: 私はヘッダTPLのコードのこの部分を有しています。 問題は、私はこのliを "選択された"クラスが適用されることを示す、このtplを呼びたいのですが、どうすればいいですか? 私が言ったように、基本的なPHPの経験を持つ人にとっては簡単です。 ありがとうございます。

答えて

1

あなたはあなたの呼び出し元に設定されている変数(非テンプレート)のオフに、それをベースにすることができます論理。例えば、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> 

ザ・あなたのビズ・ロジック(PHP)のうちのHTMLを保持し、あなたのディスプレイロジック(tpl)で。

+0

yep、この回答はより良いです –

+0

私は{include file = "tpl/menu.tpl" location = "home"}を使用しました。 –

0

そのための関数を作る:

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

してからちょうど後でそれを呼び出す:

menu('d&oacute;nde estamos'); 
+0

クレイジーで効率的な答え! –

関連する問題