你如何支持Zotonic的每页侧边栏内容?

时间:2010-09-22 14:49:55

标签: content-management-system erlang zotonic

我想在Zotonic中使用每页侧边栏内容:

  • 链接
  • 白皮书
  • 网络研讨会

有什么好方法可以做到这一点,我需要什么样的模板片段才能让它发挥作用?

1 个答案:

答案 0 :(得分:3)

登录Zotonic管理界面。

创建谓词:

  • 链接(text-> text)
  • 白皮书(文字 - >文件)
  • 网络研讨会(text-> text)

然后,这些谓词将显示在页面编辑器的“页面连接”中。以这种方式添加到其他页面的链接,白皮书的链接和网络研讨会页面的链接。

将以下内容添加到_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 %}

当您添加谓词时,它允许您在Zotonic中向RSC(页面,媒体等)添加元数据。每个Predicate允许您在Zotonic界面中将一组RSC连接到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类属性,该属性改变链接样式以指示它是当前页面。