Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django-CMS - Global placeholder?

Is there any way to make global placeholder in my base template? I need it to be the same on every page (banners list). How can I do that?

like image 677
tunarob Avatar asked Nov 13 '12 21:11

tunarob


3 Answers

I usually create a page in my CMS that isn't published, but contains placeholders that I would like to use elsewhere (footer/headers) etc.

Make a new template extra_placeholders.html:

{% extends "base.html" %}
{% load cms_tags %}

{% block content %}
    {% placeholder "Banner-List" %}
{% endblock %}

add it to your settings:

CMS_TEMPLATES = (
    ('my/path/extra_placeholders.html', 'Extra Placeholder Page'),
    ...
)

now go to the admin and create the placeholder with whatever plugin you want. Then go to you base template (*base.html probably) from which all your other pages inherit and add this wherever you want the placeholder to appear:

{% load cms_tags %}
...
{% show_placeholder "Banner-List" "extra_placeholders" %}

You can read more about it in the docs


EDIT

As @José L. Patiño has mentioned in the comments, this solution is only necessary for those using django-cms < 3.0. For the newer version you can simply use the static_placeholder template tag

like image 122
Timmy O'Mahony Avatar answered Nov 16 '22 03:11

Timmy O'Mahony


There is the "static_placeholders" now, http://docs.django-cms.org/en/latest/reference/templatetags.html#static-placeholder

Sounds like it's what you needed way back when.

like image 38
Joelbitar Avatar answered Nov 16 '22 02:11

Joelbitar


You can use the following ways to create a global palceholder for all pages.

  1. create a place holder on the base page. {% Placeholder "footer"%}
  2. make the contents of the placeholder through django cms as home page
  3. then to display the same for each placeholder page, add {% show_placeholder "footer" "home"%}, this means displaying the newly created footer placeholder earlier from the home page,
  4. This will display the entire contents existing footer placeholders on the home page of all pages that use the template.
  5. but for the home page there will be two footer is displayed, to mengilangkannya, please do modifications to use CSS to hide the master placeholder.
like image 1
Mario Ardi Avatar answered Nov 16 '22 03:11

Mario Ardi