2011-08-03 23 views
0

我正在尝试编写一个函数,它返回页面上可见的菜单级别...此刻,我正在使用<%如果模板中的%>语句,即:银色条纹功能返回菜单级别

<div class="<% if Menu(1) %>navA<% end_if %> <% if Menu(2) %>navB<% end_if %> <% if Menu(3) %>navC<% end_if %>">...</div> 

其中,如果有第3个菜单级别,返回<div class="navA navB navC">

我想是返回当前页面上只是最低级菜单的功能,即<div class="navC">

感谢

+1

提醒,放弃您的问题将导致社区对未来问题给出答案的动力减小。你应该尝试a)接受答案,b)发布反馈为什么给定的答案不能解决你的问题,或者c)发布你自己发现的解决方案,因此问题可以被标记为已解决(并且有同样问题的人可以在这里找到答案)。 – schellmax

回答

0

什么如下(未经测试):

<div class="<% if Menu(3) %>navC<% else_if Menu(2) %>navB<% else %>navA<% end_if %>">...</div>

你可能要考虑在控制器逻辑沉重的东西用一些自定义代码,但是这应该让你去...

+0

谢谢你,它确实有道理,但是是的...我希望把它变成控制器而不是模板。我只是无法找到任何文件来帮助这个。 – JimmyJazz

+0

在这种情况下,使用@ schellmax的解决方案 - '$ this-> getMenu($ level)'应该很好。恕我直言,这是非常前端特定的,所以我会坚持使用模板方法。例如,如果你想提供一个机器可读的信息表示,你可能会使用XML或JSON。在那里你可能不需要这个类(我假设你想用它来设计样式) - 所以我会把它保留在特定的模板中,而不是通用控制器。至少这是我解决这些问题的方法...... – xeraa

1

这是完全可能的。 只需添加以下到您的Page_Controller类:

function LowestLevel() { 
    $i = 1; 
    while($this->getMenu($i)->count() > 0) $i++; 
    return 'level'.($i-1); 
} 

现在你可以把它在你的模板,像这样:

<div>lowest level: $LowestLevel</div> 

$ LowestLevel将打印 '1级', '级别2' 等

万一你的类名必​​须像'navA','navB'...你需要做一些匹配,如'level1' - >'navA',这不应该太难 - 回到我身边你需要任何帮助。