Как вы поддерживаете содержание боковой панели на странице в Zotonic?

Я хотел бы иметь постраничный контент на боковой панели в Zotonic:

  • связи
  • белые бумаги
  • Вебинары

Какой хороший способ сделать это и какие фрагменты шаблонов мне понадобятся, чтобы это работало?

1 ответ

Решение

Войдите в интерфейс администратора Zotonic.

Создать предикаты:

  • Ссылки (текст-> текст)
  • Белые документы (текст-> документ)
  • Вебинары (текст-> текст)

Эти предикаты затем отображаются в Page Connections в редакторе страниц. Добавьте ссылки на другие страницы, ссылки на официальные документы и ссылки на страницы вебинара таким образом.

Добавьте следующее к _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 %}

Когда вы добавляете предикат, он позволяет вам добавлять метаданные в ваши RSC (страницы, медиа и т. Д.) В Zotonic. Каждый предикат позволяет вам соединять набор RSC с RSC в интерфейсе Zotonic. Эта коллекция хранится и доступна как идентификаторы RSC.

Метаданные предиката затем доступны в шаблонах. Выражение m.rsc[id].links выбирает коллекцию идентификаторов RSC, подключенных к текущей странице, в качестве ссылок.

Выражение m.rsc[id] выбирает RSC для отображаемой страницы. Выражение m.rsc[text] выбирает RSC для подключенного RSC.

Выражение {% ifequal text id %}class="current"{% endifequal %} условно отображает атрибут класса CSS, который изменяет стиль ссылки, чтобы указать, что это текущая страница.

Другие вопросы по тегам