2011-01-05 18 views
0

正如你會猜測我是新來的PHP。謝謝你的幫助。 我有這樣一段代碼在頭TPL: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> 

我想和PHP函數調用包括。 問題是,我想調用這個tpl,指出哪個li將會應用「selected」類,我該怎麼做?正如我告訴過你的,對於任何擁有基本PHP體驗的人來說都很容易。 謝謝。

回答

1

您可以基於它關閉了在您的電話設置變量(非模板)邏輯。例如,在智者,你可以在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)中。

+0

是的,這個答案更好 – 2011-01-05 23:54:58

+0

最後,我用{include file =「tpl/menu.tpl」location =「home」} – 2011-01-06 01:03:43

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

瘋狂快速高效答案!!! – 2011-01-05 23:34:14