2011-01-05 19 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