djangocms-flexslider

A Django CMS image slider plugin that uses FlexSlider.


Keywords
djangocms-flexslider, flexslider, django, image-slider
License
MIT
Install
pip install djangocms-flexslider==1.0.0

Documentation

https://travis-ci.org/tdsymonds/djangocms-flexslider.svg?branch=master https://coveralls.io/repos/github/tdsymonds/djangocms-flexslider/badge.svg?branch=master&t=1:target:https://coveralls.io/github/tdsymonds/djangocms-flexslider?branch=master

djangocms-flexslider

This is a simple django-cms plugin that implements the JavaScript FlexSlider library.

Dependencies

  • django>=1.8
  • django-cms>=3.2

Installation

To install:

pip install djangocms-flexslider

Then add djangocms-flexslider to your installed apps:

INSTALLED_APPS = [
    ...
    'djangocms_flexslider',
    ...
]

If you're not already using django-filer, easy-thumbnails and djangocms-text-ckeditor then these too will need to be added to your installed apps:

INSTALLED_APPS = [
    ...
    'djangocms_text_ckeditor',
    'easy_thumbnails',
    'filer',
    ...
]

And run the migrations:

./manage.py migrate

The package assume that jQuery has been added to the site already. So if you're not using already, please add to you templates/base.html:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

Configuration

The FlexSlider JS and CSS are by default loaded from the below CDN. If you wish to override this, this can be done in your settings.py file by adding the below with your updated URLs. This is optional.

DJANGOCMS_FLEXSLIDER = {
    'JS_URL': 'https://cdnjs.cloudflare.com/ajax/libs/flexslider/2.6.1/jquery.flexslider.min.js',
    'CSS_URL': 'https://cdnjs.cloudflare.com/ajax/libs/flexslider/2.6.1/flexslider.min.css'
}

Usage

The slider plugin is added to page, where the configuration for the slider is set. The settings allow you to add a carousel thumbnail slider if you wish, you are also provided the ability to pass the JSON config for both the carousel and the slider.

There are many FlexSlider examples on their site, or you can view the full FlexSlider properties. The configuration JSON object is optional, so you have no obligation to provide this. A simple example of the config with a carousel is provided below.

Once the slider has been setup, slides are added by adding child slide plugins to the slider. Each slide has to have an image, (I've used django-filer for the images), and can optionally have an explicit height and/or width, a caption, url link or page link as well.

Example JSON Config

Slider:

{
  animation: "slide",
  smoothHeight: true,
  controlNav: false,
  animationLoop: false,
  slideshow: false,
  sync: "#carousel"
}

Carousel:

{
  animation: "slide",
  controlNav: false,
  animationLoop: false,
  slideshow: false,
  itemWidth: 210,
  itemMargin: 5,
  asNavFor: '#slider'
}