6

有没有办法在我的基本模板中制作全局占位符?我需要它在每个页面(横幅列表)上都相同。我怎样才能做到这一点?

4

3 回答 3

11

我通常在我的 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模板标签

于 2012-11-13T21:49:14.327 回答
7

现在有“static_placeholders”,http ://docs.django-cms.org/en/latest/reference/templatetags.html#static-placeholder

听起来这就是你以前需要的东西。

于 2014-08-17T06:08:13.920 回答
1

您可以使用以下方式为所有页面创建一个全局占位符。

  1. 在基本页面上创建一个占位符。{% 占位符“页脚”%}
  2. 通过django cms制作占位符的内容作为首页
  3. 然后为每个占位符页面显示相同的内容,添加 {% show_placeholder "footer" "home"%},这意味着从主页较早地显示新创建的页脚占位符,
  4. 这将在使用模板的所有页面的主页上显示现有页脚占位符的全部内容。
  5. 但是首页会有两个页脚显示,为了mengilangkannya,请修改使用CSS隐藏master占位符。
于 2012-11-19T02:42:16.210 回答