如何在 Zotonic 中获得三级菜单项?

Posted

技术标签:

【中文标题】如何在 Zotonic 中获得三级菜单项?【英文标题】:How do you get third-level menu items in Zotonic? 【发布时间】:2010-10-20 23:00:20 【问题描述】:

我想在 Zotonic 中显示三级菜单项。

例如,如果我有如下层次结构中的页面:

关于我们 职业 为什么在这里工作?

我希望能够在下拉菜单中访问为什么在这里工作?

【问题讨论】:

【参考方案1】:

我使用了页面连接和修改后的菜单模板。这需要 Zotonic 0.5.0 或更高版本。

    创建一个名为Menu谓词,从texttext

    编辑/modules/mod_menu/templates/_menu.tpl:

    翻开原菜单模板:

    % if menu %
        <ul id=" id_prefix navigation" class="clearfix at-menu do_superfish">
        % for mid,depth,nr,has_sub in menu %
        % if not mid %
                % if depth > 1 %</ul></li>% endif %
            % else %
                % if nr == 1 and not forloop.first %<ul% if mid|member:path % class="onpath"% endif %>% endif %
                <li id=" id_prefix nav-item-nr" class="% if is_first %first % endif %% if is_last %last% endif %">
                    <a href=" m.rsc[mid].page_url "
                       class=" m.rsc[mid].name % if mid == id % current% else %% if mid|member:path % onpath% endif %% endif %"> m.rsc[mid].short_title|default:m.rsc[mid].title </a>
                % if not has_sub %</li>% endif %
            % endif %
        % endfor %
        % if forloop.last %% include "_menu_extra.tpl" %% endif %
        </ul>
    % endif %
    

    进入三级菜单版:

    % if menu %
        <ul id=" id_prefix navigation" class="clearfix at-menu do_superfish">
        % for mid,depth,nr,has_sub in menu %
        % if not mid %
                % if depth > 1 %</ul></li>% endif %
            % else %
                % if nr == 1 and not forloop.first %<ul% if mid|member:path % class="onpath"% endif %>% endif %
                <li id=" id_prefix nav-item-nr" class="% if is_first %first % endif %% if is_last %last% endif %">
                    <a href=" m.rsc[mid].page_url "
                       class=" m.rsc[mid].name % if mid == id % current% else %% if mid|member:path % onpath% endif %% endif %"> m.rsc[mid].short_title|default:m.rsc[mid].title </a>
                % if depth == 2 %
                    % for submenu in m.rsc[mid].menu %
                        % if forloop.first %<ul>% endif %
                        <li id=" id_prefix nav-item-nr" class="% if is_first %first % endif %% if is_last %last% endif %">
                            <a href=" m.rsc[submenu].page_url "
                               class=" m.rsc[submenu].name % if submenu == id % current% else %% if submenu|member:path % onpath% endif %% endif %"> m.rsc[submenu].short_title|default:m.rsc[submenu].title </a></li>
                        % if forloop.last %</ul>% endif %
                    % endfor %
                % endif %
                % if not has_sub %</li>% endif %
            % endif %
        % endfor %
        % if forloop.last %% include "_menu_extra.tpl" %% endif %
        </ul>
    % endif %
    

    通过为二级项的菜单页面连接添加特殊情况:

              % if depth == 2 %
                  % for submenu in m.rsc[mid].menu %
                      % if forloop.first %<ul>% endif %
                      <li id=" id_prefix nav-item-nr" class="% if is_first %first % endif %% if is_last %last% endif %">
                          <a href=" m.rsc[submenu].page_url "
                             class=" m.rsc[submenu].name % if submenu == id % current% else %% if submenu|member:path % onpath% endif %% endif %"> m.rsc[submenu].short_title|default:m.rsc[submenu].title </a></li>
                      % if forloop.last %</ul>% endif %
                  % endfor %
              % endif %
    

    Page Connections中添加*Menu*s到每个需要菜单中三级项的页面

【讨论】:

以上是关于如何在 Zotonic 中获得三级菜单项?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的 CSS 下拉菜单中添加第三级?

如何在 WPF 中获取“选定的菜单项”

使用 SiteMap 创建一个三级 ASP.NET 菜单,我该怎么做?

如何制作Excel一级,二级,三级及多级下拉菜单

将鼠标悬停在菜单项上时如何下划线?

menustrip控件 如何获得2级菜单个数