silverstripe 函数返回菜单级别

发布于 2024-11-27 22:53:34 字数 449 浏览 1 评论 0原文

我正在尝试编写一个函数,返回页面上可见的菜单级别...目前我正在使用 <% if %>;模板中的语句,即:

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

如果页面上有 3 个菜单级别,则返回

我想要的是一个仅返回最低级别的函数当前页面的级别菜单,即

谢谢

I'm trying to write a function that returns what menu levels are visible on the page...at the moment I'm using <% if %> statements in the template, ie:

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

Which, if there are 3 menu levels on a page, returns <div class="navA navB navC">

What I want is a function that returns just the lowest level menu on the current page, ie <div class="navC">

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

誰認得朕 2024-12-04 22:53:34

这是完全有可能的。
只需将以下内容添加到您的 Page_Controller 类中:

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

现在您可以在模板中调用它,如下所示:

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

$LowestLevel 将打印“level1”、“level2”等,

以防您的类名称必须类似于“ navA','navB'...您需要进行一些匹配,例如'level1'->'navA',这应该不会太难 - 如果您需要任何帮助,请回来找我。

that's perfectly possible.
just add the following to your Page_Controller class:

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

now you can call it in your template like so:

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

$LowestLevel will print 'level1', 'level2' etc.

in case your class names have to be like 'navA', 'navB'... you need to do some matching like 'level1'->'navA', which shouldn't be too hard - come back to me if you need any help on this.

独﹏钓一江月 2024-12-04 22:53:34

以下内容怎么样(未经测试):

您可能需要考虑在控制器中使用一些自定义代码来处理逻辑繁重的内容,但是这应该会让你继续...

What about the following (untested):

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

You might want to consider using some custom code in the Controller for logic-heavy stuff, but this should get you going...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文