Как вы поддерживаете содержание боковой панели на странице в 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, который изменяет стиль ссылки, чтобы указать, что это текущая страница.