Some commonly-used plugins

Warning

In version 3 of the CMS we removed all the plugins from the main repository into separate repositories to continue their development there. you are upgrading from a previous version. Please refer to Upgrading from previous versions

These are the recommended plugins to use with django CMS.

class djangocms_file.cms_plugins.FilePlugin

Important

See the note on The INSTALLED_APPS setting about ordering.

File

Available on GitHub (divio/djangocms-file) and on PyPi (djangocms-file).

Allows you to upload a file. A file-type icon will be assigned based on the file extension.

Please install it using pip or similar and be sure you have the following in the INSTALLED_APPS setting in your project’s settings.py file:

INSTALLED_APPS = (
    # ...
    'djangocms_file',
    # ...
)

You should take care that the directory defined by the configuration setting CMS_PAGE_MEDIA_PATH (by default cms_page_media/ relative to MEDIA_ROOT) is writeable by the user under which django will be running.

You might consider using django-filer with django filer CMS plugin and its cmsplugin_filer_file component instead.

Warning

The djangocms_file file plugin only works with local storages. If you need more advanced solutions, please look at alternative file plugins for the django CMS, such as django-filer.

GoogleMap

Available on GitHub (divio/djangocms-googlemap) and on PyPi (djangocms-googlemap).

Displays a map of an address on your page.

Both address and coordinates are supported to centre the map; zoom level and route planner can be set when adding/editing plugin in the admin.

New in version 2.3.2: width/height parameter has been added, so it’s no longer required to set plugin container size in CSS or template.

Changed in version 2.3.2: Zoom level is set via a select field which ensure only legal values are used.

Note

Due to the above change, level field is now marked as NOT NULL, and a data migration has been introduced to modify existing Googlemap plugin instance to set the default value if level if is NULL.

Please install it using pip or similar and be sure you have the following in the INSTALLED_APPS setting in your project’s settings.py file:

INSTALLED_APPS = (
    # ...
    'djangocms_googlemap',
    # ...
)
class djangocms_picture.cms_plugins.PicturePlugin

Picture

Available on GitHub (divio/djangocms-picture) and on PyPi (djangocms-picture).

Displays a picture in a page.

Please install it using pip or similar and be sure you have the following in the INSTALLED_APPS setting in your project’s settings.py file:

INSTALLED_APPS = (
    # ...
    'djangocms_picture',
    # ...
)

There are several solutions for Python and Django out there to automatically re-size your pictures, you can find some on Django Packages and compare them there.

In your project template directory create a folder called cms/plugins and in it create a file called picture.html. Here is an example picture.html template using easy-thumbnails:

{% load thumbnail %}

{% if link %}<a href="{{ link }}">{% endif %}
{% if placeholder == "content" %}
    <img src="{% thumbnail picture.image 300x600 %}"{% if picture.alt %} alt="{{ picture.alt }}"{% endif %} />
{% else %}
    {% if placeholder == "teaser" %}
        <img src="{% thumbnail picture.image 150x150 %}"{% if picture.alt %} alt="{{ picture.alt }}"{% endif %} />
    {% endif %}
{% endif %}
{% if link %}</a>{% endif %}

In this template the picture is scaled differently based on which placeholder it was placed in.

You should take care that the directory defined by the configuration setting CMS_PAGE_MEDIA_PATH (by default cms_page_media/ relative to MEDIA_ROOT) is writeable by the user under which django will be running.

Note

In order to improve clarity, some Picture fields have been omitted in the example template code.

Note

For more advanced use cases where you would like to upload your media to a central location, consider using django-filer with django filer CMS plugin and its cmsplugin_filer_image component instead.

Teaser

Available on GitHub (divio/djangocms-teaser) and on PyPi (djangocms-teaser).

Displays a teaser box for another page or a URL. A picture and a description can be added.

Please install it using pip or similar and be sure you have the following in the INSTALLED_APPS settings in your project’s settings.py file:

INSTALLED_APPS = (
    # ...
    'djangocms_teaser',
    # ...
)

You should take care that the directory defined by the configuration setting CMS_PAGE_MEDIA_PATH (by default cms_page_media/ relative to MEDIA_ROOT) is writeable by the user under which django will be running.

Note

For more advanced use cases where you would like to upload your media to a central location, consider using django-filer with django filer CMS plugin and its cmsplugin_filer_teaser component instead.

Text

Consider using djangocms-text-ckeditor for displaying text. You may of course use your preferred editor; others are available.

class djangocms_video.cms_plugins.VideoPlugin

Video

Available on GitHub (divio/djangocms-video) and on PyPi (djangocms-video).

Plays Video Files or YouTube / Vimeo Videos. Uses the OSFlashVideoPlayer. When uploading videos use either .flv files or H264 encoded video files.

Please install it using pip or similar and be sure you have the following in your project’s INSTALLED_APPS setting:

INSTALLED_APPS = (
    # ...
    'djangocms_video',
    # ...
)

There are some settings you can set in your settings.py to overwrite some default behaviour:

  • VIDEO_AUTOPLAY ((default: False)
  • VIDEO_AUTOHIDE (default: False)
  • VIDEO_FULLSCREEN (default: True)
  • VIDEO_LOOP (default: False)
  • VIDEO_AUTOPLAY (default: False)
  • VIDEO_BG_COLOR (default: "000000")
  • VIDEO_TEXT_COLOR (default: "FFFFFF")
  • VIDEO_SEEKBAR_COLOR (default: "13ABEC")
  • VIDEO_SEEKBARBG_COLOR (default: "333333")
  • VIDEO_LOADINGBAR_COLOR (default: "828282")
  • VIDEO_BUTTON_OUT_COLOR (default: "333333")
  • VIDEO_BUTTON_OVER_COLOR (default: "000000")
  • VIDEO_BUTTON_HIGHLIGHT_COLOR (default: "FFFFFF")

You should take care that the directory defined by the configuration setting CMS_PAGE_MEDIA_PATH (by default cms_page_media/ relative to MEDIA_ROOT) is writeable by the user under which django will be running.

Note

For more advanced use cases where you would like to upload your media to a central location, consider using django-filer with django filer CMS plugin and its cmsplugin_filer_video component instead.

class djangocms_twitter.cms_plugins.TwitterRecentEntriesPlugin
class djangocms_twitter.cms_plugins.TwitterSearchPlugin

Twitter

We recommend one of the following plugins:

Warning

These plugins are not currently compatible with Django 1.7.

class djangocms_inherit.cms_plugins.InheritPagePlaceholderPlugin

Inherit

Available on GitHub (divio/djangocms-inherit) and on PyPi (djangocms-inherit).

Displays all plugins of another page or another language. Great if you always need the same plugins on a lot of pages.

Please install it using pip or similar and be sure you have the following in your project’s INSTALLED_APPS setting:

INSTALLED_APPS = (
    # ...
    'djangocms_inherit',
    # ...
)

Warning

The inherit plugin cannot be used in non-cms placeholders.