0

独自のメニュースタイルを作成したいのですが、独自のメニューscompを作成するよりも、テンプレートで作成したいと思います。

私は基本的に次のようなことができるようになりたいです:

{% 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テンプレートからメニューモデルにアクセスするにはどうすればよいですか?

4

2 に答える 2

1

私の前の答えに追加します。標準_menu.tplは、すべてのメニュー項目のリストを受け取ります。このリストは、完全なメニューの深さ優先ツリーウォークの結果です。すべてのメニューは

{MenuRscId, DepthOfMenu, NrInSubMenu, HasSubMenuFlag}

トップレベルメニューの深さが1で、メニューの最初のメニュー項目のnrが1である場合。

現在のユーザーが表示を許可されていないすべてのメニュー項目が除外されます。

デフォルトテンプレートのコード:

<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>
于 2010-09-30T09:03:24.320 に答える
1

(今後の)0.5リリースとZotonicのヒントでは、テンプレートを使用してメニューを表示します。チェックしてくださいmod_menu/templates/_menu.tpl

このテンプレートは、メニューscompによって呼び出されます。

于 2010-09-29T19:23:14.487 に答える