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 %}

当您添加谓词时,它允许您将元数据添加到 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 回答