5. Plugins reference

5.1. File

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

For installation be sure you have the following in the INSTALLED_APPS setting in your project’s settings.py file:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.file',
  4. # ...
  5. )

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 writable by the user under which django will be running.

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

Warning

The builtin 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.

5.2. Flash

Allows you to upload and display a Flash SWF file on your page.

For installation be sure you have the following in the INSTALLED_APPS setting in your project’s settings.py file:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.flash',
  4. # ...
  5. )

5.3. GoogleMap

Displays a map of an address on your page.

Both address and coordinates are supported to center 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 datamigration has been introduced to modify existing googlemap plugin instance to set the default value if level if is NULL.

For installation be sure you have the following in the INSTALLED_APPS setting in your project’s settings.py file:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.googlemap',
  4. # ...
  5. )

Displays a link to an arbitrary URL or to a page. If a page is moved the URL will still be correct.

For installation be sure to have the following in the INSTALLED_APPS setting in your project’s settings.py file:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.link',
  4. # ...
  5. )

Note

As of version 2.2, the link plugin no longer verifies the existence of link targets.

5.5. Picture

Displays a picture in a page.

For installation be sure you have the following in the INSTALLED_APPS setting in your project’s settings.py file:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.picture',
  4. # ...
  5. )

There are several solutions for Python and Django out there to automatically resize 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:

  1. {% load thumbnail %}
  2. {% if link %}<a href="{{ link }}">{% endif %}
  3. {% if placeholder == "content" %}
  4. <img src="{% thumbnail picture.image 300x600 %}"{% if picture.alt %} alt="{{ picture.alt }}"{% endif %} />
  5. {% else %}
  6. {% if placeholder == "teaser" %}
  7. <img src="{% thumbnail picture.image 150x150 %}"{% if picture.alt %} alt="{{ picture.alt }}"{% endif %} />
  8. {% endif %}
  9. {% endif %}
  10. {% 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 writable 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 CMS plugin and its cmsplugin_filer_image component instead.

5.6. Snippet

Renders an HTML snippet from an HTML file in your templates directories or a snippet given via direct input.

For installation be sure you have the following in the INSTALLED_APPS setting in your project’s settings.py file:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.snippet',
  4. # ...
  5. )

Note

This plugin should mainly be used during development to quickly test HTML snippets.

Warning

This plugin is a potential security hazard, since it allows admins to place custom JavaScript on pages. This may allow administrators with the right to add snippets to elevate their privileges to superusers. This plugin should only be used during the initial development phase for rapid prototyping and should be disabled on production sites.

5.7. Teaser

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

For installation be sure you have the following in the INSTALLED_APPS settings in your project’s settings.py file:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.teaser',
  4. # ...
  5. )

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 writable 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 CMS plugin and its cmsplugin_filer_video component instead.

5.8. Text

Displays text. If plugins are text-enabled they can be placed inside the text-flow. At this moment the following core plugins are text-enabled:

  • cms.plugins.link
  • cms.plugins.picture
  • cms.plugins.file
  • cms.plugins.snippet

The current editor is Wymeditor. If you want to use TinyMce you need to install django-tinymce. If tinymce is in your INSTALLED_APPS it will be automatically enabled. If you have tinymce installed but don’t want to use it in the cms put the following in your settings.py:

  1. CMS_USE_TINYMCE = False

Note

When using django-tinymce, you also need to configure it. See the django-tinymce docs for more information.

For installation be sure you have the following in your project’s INSTALLED_APPS setting:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.text',
  4. # ...
  5. )

5.9. Video

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

For installation be sure you have the following in your project’s INSTALLED_APPS setting:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.video',
  4. # ...
  5. )

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

  • 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 writable 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 CMS plugin and its cmsplugin_filer_video component instead.

5.10. Twitter

Display’s a number of a twitter user’s latest posts.

For installation be sure you have the following in your project’s INSTALLED_APPS setting:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.twitter',
  4. # ...
  5. )

Note

Since avatars are not guaranteed to be available over SSL (HTTPS), by default the Twitter plugin does not use avatars on secure sites.

5.11. Inherit

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

For installation be sure you have the following in your project’s INSTALLED_APPS setting:

  1. INSTALLED_APPS = (
  2. # ...
  3. 'cms.plugins.inherit',
  4. # ...
  5. )

Warning

The inherit plugin is currently the only core-plugin which cannot be used in non-cms placeholders.