Как вы поддерживаете содержание боковой панели на странице в Zotonic? - PullRequest
3 голосов
/ 22 сентября 2010

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

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

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

1 Ответ

3 голосов
/ 23 сентября 2010

Войдите в интерфейс администратора 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 %}

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

...