Есть ли способ сделать глобальный заполнитель в моем базовом шаблоне? Мне нужно, чтобы он был одинаковым на каждой странице (список баннеров). Как я могу это сделать?
Django-CMS — глобальный заполнитель?
Ответы (3)
Обычно я создаю страницу в своей CMS, которая не публикуется, но содержит заполнители, которые я хотел бы использовать в другом месте (нижний колонтитул/заголовок) и т. д.
Создайте новый шаблон extra_placeholders.html:
{% extends "base.html" %}
{% load cms_tags %}
{% block content %}
{% placeholder "Banner-List" %}
{% endblock %}
добавьте его в свои настройки:
CMS_TEMPLATES = (
('my/path/extra_placeholders.html', 'Extra Placeholder Page'),
...
)
теперь перейдите к администратору и создайте заполнитель с любым плагином, который вы хотите. Затем перейдите к базовому шаблону (вероятно, *base.html), от которого наследуются все остальные ваши страницы, и добавьте его везде, где вы хотите, чтобы заполнитель отображался:
{% load cms_tags %}
...
{% show_placeholder "Banner-List" "extra_placeholders" %}
Подробнее об этом можно прочитать в документации а>
ИЗМЕНИТЬ
Как отметил в комментариях @José L. Patiño, это решение необходимо только тем, кто использует django-cms
‹ 3.0. Для более новой версии вы можете просто использовать static_placeholder
тег шаблона
show_placeholder
ваша дополнительная страница-заполнитель должна иметь идентификатор extra_placeholders в разделе «Дополнительные настройки». Недостаточно ума, чтобы понять это прямо из слизняка...
- person Cerin; 24.05.2013
extra_placeholders
, не публикуются в режиме редактирования внешнего интерфейса. Нужно зайти в админку, открыть страницу и опубликовать страницу оттуда. Это очень сбивает с толку редакторов финального контента. Есть идеи?
- person toto_tico; 22.03.2014
Теперь есть «static_placeholders», http://docs.django-cms.org/en/latest/reference/templatetags.html#static-placeholder
Похоже, это то, что вам было нужно давным-давно.
Вы можете использовать следующие способы создания глобального заполнителя для всех страниц.
- создайте заполнитель на базовой странице. {% Заполнитель "нижний колонтитул"%}
- сделать содержимое заполнителя через django cms домашней страницей
- затем, чтобы отобразить то же самое для каждой страницы-заполнителя, добавьте {% show_placeholder "footer" "home"%}, это означает отображение недавно созданного заполнителя нижнего колонтитула ранее с домашней страницы,
- Это отобразит все содержимое существующих заполнителей нижнего колонтитула на главной странице всех страниц, использующих шаблон.
- но для домашней страницы будет отображаться два нижних колонтитула, чтобы изменить, пожалуйста, внесите изменения, чтобы использовать CSS, чтобы скрыть основной заполнитель.