Zotonic でページごとのサイドバー コンテンツを作成したいと考えています。
- リンク
- 白い紙
- ウェビナー
これを行うにはどうすればよいですか? また、それを機能させるにはどのようなテンプレート スニペットが必要ですか?
Zotonic でページごとのサイドバー コンテンツを作成したいと考えています。
これを行うにはどうすればよいですか? また、それを機能させるにはどのようなテンプレート スニペットが必要ですか?
Zotonic 管理インターフェースにログインします。
述語の作成:
これらの述語は、ページ エディターの [ページ接続] に表示されます。この方法で、他のページへのリンク、ホワイト ペーパーへのリンク、ウェビナー ページへのリンクを追加します。
に次を追加します_article_sidebar.tpl
。
{% with m.rsc[id].links as texts %}
{% if texts %}
<h2>See also:</h2>
<ul>
{% for text in texts %}
<li><a href="{{ m.rsc[text].page_url }}" {% ifequal text id %}class="current"{% endifequal %}>{{ m.rsc[text].title }}</a></li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
{% with m.rsc[id].white_papers as texts %}
{% if texts %}
<h2>White papers:</h2>
<ul>
{% for text in texts %}
<li><a href="{{ m.rsc[text].page_url }}" {% ifequal text id %}class="current"{% endifequal %}>{{ m.rsc[text].title }}</a></li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
{% with m.rsc[id].webinars as texts %}
{% if texts %}
<h2>Related webinars:</h2>
<ul>
{% for text in texts %}
<li><a href="{{ m.rsc[text].page_url }}" {% ifequal text id %}class="current"{% endifequal %}>{{ m.rsc[text].title }}</a></li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
Predicate を追加すると、Zotonic の RSC (ページ、メディアなど) にメタデータを追加できます。各述語を使用すると、RSC のコレクションを Zotonic インターフェイスの RSC に接続できます。このコレクションは、RSC の ID として保存およびアクセスされます。
その後、テンプレート内で述語メタデータにアクセスできます。この式m.rsc[id].links
は、現在のページにリンクとして接続されている RSC の ID のコレクションを選択します。
この式m.rsc[id]
は、レンダリングされるページの RSC を選択します。この式m.rsc[text]
は、接続された RSC の RSC を選択します。
この式{% ifequal text id %}class="current"{% endifequal %}
は、現在のページであることを示すためにリンク スタイルを変更する CSS クラス属性を条件付きでレンダリングします。