首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Zotonic模板访问菜单模型?

如何从Zotonic模板访问菜单模型?
EN

Stack Overflow用户
提问于 2010-09-30 02:34:19
回答 2查看 271关注 0票数 0

我想写我自己风格的菜单,但我更喜欢在模板中这样做,而不是让我自己的菜单scomp。

我基本上希望能够做一些事情,比如:

代码语言:javascript
复制
{% if m.menu %}
  <ul>
  {% for top_level_id in m.menu %}
    {% with m.rsc[top_level_id] as top_level %}
      <li><a href="{{ top_level.page_url }}">{{ top_level.title }}</a>
      {% if top_level.menu %}
        <ul>
        {% for mid_level_id in top_level.menu %}
          {% with m.rsc[mid_level_id] as mid_level %}
            <li><a href="{{ midlevel.page_url }}">{{ mid_level.title }}</a></li>
          {% endwith %}
        {% endfor %}
        </ul>
      {% endif %}
      </li>
    {% endwith %}
  {% endfor %}
  </ul>
{% endif %}

如何从Zotonic模板访问菜单模型?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-30 17:03:24

来补充我之前的回答。标准_menu.tpl接收包含所有菜单项的列表。该列表是对完整菜单进行深度优先树遍历的结果。每个菜单都是一个记录,其中

代码语言:javascript
复制
{MenuRscId, DepthOfMenu, NrInSubMenu, HasSubMenuFlag}

其中顶层菜单的深度为1,并且菜单中的第一个菜单项的nr为1。

当前用户不允许查看的所有菜单项都会被过滤掉。

默认模板的代码:

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2010-09-30 03:23:14

即将发布的0.5版本和Zotonic的提示使用了一个模板来显示菜单。检查mod_menu/templates/_menu.tpl

该模板由菜单scomp调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3824756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档