3

Zotonic でページごとのサイドバー コンテンツを作成したいと考えています。

  • リンク
  • 白い紙
  • ウェビナー

これを行うにはどうすればよいですか? また、それを機能させるにはどのようなテンプレート スニペットが必要ですか?

4

1 に答える 1

3

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 クラス属性を条件付きでレンダリングします。

于 2010-09-23T13:51:17.243 に答える