This page came about as a result of this post that lists Tabs and Slideshow Modules in the Similar Module Review group. The linked post lists several modules that provide either tabbed content or rotating content.
There are two general use cases here:
- A device to provide access to large amounts of regular site content from one area of the page (tabbed content).
- A device to showcase featured content, often on the home page, in an eye-catching manner (rotating /sliding content).
This comparison page is limited to the latter use case. It is open to discussion whether the ideal eventual outcome of any consolidation between the best features of the best of the modules would be a package that includes both types of feature.
Available modules overview
There are many modules that provide some sort of slideshow / rotator functionality.
- Content Glider – Another jQuery plugin for image slider, very easy to use.
- Dynamic display block – Enables you to create and present blocks of content in a dynamic and attractive way. Uses the jQuery Cycle Plug-in.
- Views Nivo Slider – a Views style plugin using the Nivo style slider. Drupal 6 version requires imagecache, imagefield and jquery update.
- Views Slideshow – a Views style plugin using jquery cycle. The Drupal 6-2.0 version is an extensible API that allows other cycles, rotators, and carousels to plug into the module, so they don’t need to recreate the Views functionality.
- Views Slideshow: Dynamic display block – a Views slideshow plugin which enables you to present slideshows in an attractive way.
- Views Slideshow: ImageFlow – offers an ImageFlow option to Views Slideshow, similar to Apple’s CoverFlow.
- Slideshow Creator – adds an input format filter to allow you to add slideshow creation code to the body of a node and other text fields.
- Featured Content Slider – select nodes based on content type and create up to 3 blocks of featured content.
- Slider – create a "slider" content type with a multi-value nodereference field to create carousel-style sliders of the referenced nodes.
- Views Carousel – a Views style plugin using the jCarousel jQuery plugin for the rotation, suitable for e.g. a scrollable thumbnail viewer.
- Ajax Slideshow – Sequential presentation of any of the site nodes, using various effects. The slideshow is ajax-based which means the page load-time is agnostic to the amount of content included.
- Fancy Slide – create slideshows with thumbnails, descriptions and a selection of transition effects by using the imagecache module and optionally a nodequeue.
- Media Nivo Slider – Provides the ability to expose the content of a Media Gallery to a Nivo Slider block.
Deprecated modules
Other modules that could be included:
- Views Accordion – a Views style plugin using the Accordion jQuery plugin
Other modules won’t be included:
- Couloir Slideshow – this seems more like a Lightbox gallery type solution… without the Lightbox.
- Frontpage Slideshow – this requires a paid 3rd party library.
Module documentation/demo comparison
Module
5.x
6.x
7.x
Documentation
Demo Site
Dynamic display block
ddblock.myalbums.biz
Handbook page
README.txt
http://ddblock.myalbums.biz
Views Nivo Slider
dev
Documentation
http://nivo.dev7studios.com/
Views Slideshow
alpha-1
Handbook page (5.x only)
README.txt
http://drupalhub.org/videos
Views Slideshow: Dynamic display block
README.txt (V1.x)
README.txt (V2.x)
Tutorial (V1.x)
Tutorial (V2.x)
http://ddblock.myalbums.biz
Views Slideshow: ImageFlow
README.txt
http://finnrudolph.de/ImageFlow
Slideshow Creator
Documentation
http://wingedhearts.org/grounded/carpetpython
Featured Content Slider
README.txt
www.iGadgets.be/ (Example site)
Media Nivo Slider
Documentation
http://nivo.dev7studios.com/
Carousel style modules
Slider
README.txt
http://jqueryfordesigners.com/demo/coda-slider.html
Views Carousel
dev
dev
Handbook page
README.txt
http://sorgalla.com/jcarousel/
Ajax Slideshow
dofinity’s page
README.txt
news.com
Fancy Slide
README.txt
None
Module feature comparison
This feature comparison is based on a spreadsheet done by stephthegeek.
For the purposes of discussion and comparison of these modules, the word tab refers to "the bit that you click on to switch to the next piece of content". In many of the rotator modules this is refered to as a thumbnail.
Module
Tabs
Tab content
Main content
Nav links
Behaviour options
Styles included
Dynamic display block
Pagers with Numbers, prev/next, links, images, custom and scrollable pager
Image folder, node, nodequeue, blocks, views
Speed, timeout, all jcycle effects, custom, etc.
15 free ddblock themes, commercial themes available.
Views Slideshow
Title and teaser of the node
Output of a View
Speed, fade effect, sort order
None
Views Slideshow: Dynamic display block
Pagers with Numbers, prev/next, links, images, custom and scrollable pager
Output of a View (Mapped fields)
Speed, timeout, all jcycle effects, custom, etc.
6 free slideshow themes, commercial themes available.
Views Slideshow: ImageFlow
Image and Link
Output of a View (Images only)
Slider, Aspect Ratio, Cursor, Start Position
None
Slideshow Creator
Next/Prev
Images that you manually select
Speed, timeout, all jcycle effects, etc.
Style with html surrounding the slideshow and with css.
Featured Content Slider
Numbers
Nodes of a chosen type
Animation speed, animation direction
None
Carousel style modules
Slider
Node titles
Nodes from a multi-value CCK noderef field
None
None
Views Carousel
Output of a View
Speed, orientation, easing effect
Two skins provided
Node Carousel
Based on nodequeue or custom content
Optional
Speed, orientation
None
Ajax Slideshow
Titles, Numbers, Images, Any field brought by views, Prev/Next, Custom
Any set of nodes or views object (controlled by a view)
transition type, transition speed, slide duration, w/wo navigation, w/wo border, viewport height, content source, w/wo teaser, advanced options.
node template based
Fancy Slide
Thumbnails to move to a given slide
Images from a node or a nodequeue
Optional
Slide duration, transition, transition duration, transition direction, manual/automatic advancement
Defaults provided
Detailed analysis
Dynamic display block
Benefits over other modules:
- Multiple input possibilities: Images from a folder, node, Nodequeue, Blocks (e.g recent comments), Views
- 15 example themes available with number pager, prev/next pager, link pager, image pager and image/link and scrollable pager
- Commercial slideshow themes available
- Examples available of different settings
- Well documented
- In advanced slideshows you make fields available to the ddblock themes via preprocess functions (flexible)
Disadvantages or areas in need of improvement:
- Ajax loading of content
- In advanced slideshows you have to make fields available to the ddblock themes via preprocess functions
Of note:
- Uses the jQuery Cycle plugin
In summary:
Flexible module with multiple input options. Multiple pager options. Most needed settings of jQuery Cycle plugin configurable in configuration page, otherwise you can use custom jQuery Cycle plugin settings field to set other settings. Can work together with jQuery Easing plugin. For tabbed content easy to combine with Quicktabs module.
Views Rotator
Benefits over other modules:
- Simple to install (doesn’t require downloading a plugin as it’s included in the module)
- Very clean and smooth UX
- This useful feature is achieved in very few lines of code – the module files are few and short.
Disadvantages or areas in need of improvement:
- The options are very limited.
- It includes the jQuery Cycle plugin at the start of its own js file, but given that there currently is no real solution for jQuery Plugin management in Drupal as yet, it’s probably no worse than any other way of doing it.
Of note:
- This is a Views style plugin
- Uses the jQuery Cycle plugin
In summary:
This is quite a minimalist approach to the rotating Views idea. There are no transition effect options and – most significantly – no tabs. Otherwise, it is a very clean solution.
Views Cycle
Benefits over other modules:
- Optional tabs that can be configured to hold the output of any field from your View.
- Offers all the transition effects that come with the full jQuery Cycle plugin as options
- If using tabs, you can choose whether the transition happens on hover or click of the tabs.
- Straight-forward configuration
Disadvantages or areas in need of improvement:
- Need to download the jQuery Cycle plugin separately, which some may find awkward.
- No prev/next links
- The skin that’s provided with the module is quite buggy. Also, regardless of skin option, the output behaves strangely with regard to the ordered/unordered list of the main content – the first item gets its bullet or number displayed and the others don’t.
Of note:
- This is a Views style plugin
- Uses the jQuery Cycle plugin
In summary:
Views Cycle is a pretty powerful variation on the rotatable Views theme. The configurable tabs are a huge plus. Unfortunately they don’t as yet work with combined fields – see this issue.
Views Slideshow
Benefits over the other modules:
- Extensible API
- Has an option for tabs
- Seems like it is highly configurable for different use cases.
Disadvantages or areas in need of improvement:
- Configuration options are quite confusing
- Lacking the generous selection of transition effects that Views Cycle provides, this module only provides fade or nothing, though that’s probably enough for most people’s needs. (However, as future plugins to Views Slideshow are made available, this should be alleviated.)
- Tab content is not configurable
Of note:
- This is a Views style plugin
- Uses its own js for the rotation
- Has an API that allows other plugins to extend the functionality
In summary:
This module seems a little rough around the edges and could do with some clearer directions on the configuration screen. "Slideshow Mode: Thumbnail hover" means that you can have tabs that trigger the rotation, they do this on hover, and they contain the title and teaser of the node. When tried with a View that was outputting just title and an imagefield, the thumbnails contained the title and the imagefield and the rotating content consisted of title and teaser, which is not the expected behaviour. There’s also a "Mouse hover" option which has one single radio button, "hover", but it seems there would be other options if the "Hover Intent" module were installed and enabled. Overall, highly configurable but not a very intuitive interface.
Views slideshow: Dynamic display block
Benefits over other modules:
- Mapping of field to slideshow themes. (v2.x)
- 6 example themes available with number pager, prev/next pager, link pager, image pager and image/link pager and scrollable pager or a combination of these (v1.x – v2.x)
- Commercial slideshow themes available (v2.x)
- Example module available with different pager settings (v2.x)
- Well documented (v1.x – v2.x)
- Possibility to make fields available to the slideshow themes via preprocess functions (flexible) (v1.x – v2.x)
- For more information see project page.
Disadvantages or areas in need of improvement:
- Ajax loading of content
Of note:
- Uses the jQuery Cycle plugin
In summary:
Flexible module with several available slideshow layouts. Multiple pager options. Most needed settings of jQuery Cycle plugin configurable in configuration page, otherwise you can use custom jQuery Cycle plugin settings field to set other settings. Can work together with jQuery Easing plugin. For tabbed content easy to combine with Quicktabs module.
Views Slideshow: ImageFlow
Benefits over other modules:
- Implements a CoverFlow-like slideshow
- Uses the API offered by Views Slideshow and Drupal.behaviors, so it’s lightweight
Disadvantages or areas in need of improvement:
- Requires a third-party JavaScript plugin, which has a small fee for commercial uses
- The "reflection" option normally offered by the plugin is not currently available
Slideshow Creator
Of note:
- Uses jQuery Plugin module to add the Cycle plugin.
- Allows slideshows to be placed anywhere within text content by use of an input filter.
- Allows slideshows to consist of arbitrary images or entire directories of images.
In summary:
This module involves creating a new input format so that you can place code like this into your node body:
[slideshow: 2, img=|http://drupal.org/sites/all/themes/bluebeach/logos/drupal.org.png|drupal.org|Drupal|The ultimate CMS. Download it now!|Drupal|, img=|http://www.mysql.com/common/logos/mysql_100x52-64.gif|http://www.mysql.com|MySQL|Free and reliable SQL server and client.|_self|, dir=|files/|yes||Generic Photos|Aren't they great?||]
Featured Content Slider
Of note:
- Creates up to 3 blocks of sliding nodes
- Uses its own js code which is not jQuery
In summary:
This pulls nodes of a given type into a slider block. You can create up to 3 blocks using different node types for each. The JavaScript code suggests there is ajax loading functionality. Also, the js code is needlessly bulky as it does not leverage jQuery at all, never mind jQuery plugins. Otherwise, a fairly smooth UX.
Slider
Of note:
- Uses its own js in conjunction with jQuery.scroll.js to achieve a carousel effect.
In summary:
There’s a fair bit of set-up involved here to create a slideshow and it’s based on CCK multi-value nodereference fields. Not very flexible.
Easy Slider
Of note:
- Uses the Easy Slider jQuery plugin, which ships with the module.
In summary:
Very similar to Slider, except that it works with Views.
Views Carousel
Benefits over the other modules:
- Easy set-up
- Provides good basic styles
Disadvantages or areas in need of improvement:
- Easing effect option is a textfield with directions sending user to a jQuery docs page for options; one has to scroll down and search to eventually find this: ‘There are two built-in values, "linear" and "swing".’ – one would expect more options when being sent all the way to another site to find out what they are.
Of note:
- This is a Views style plugin
- Uses the jCarousel jQuery plugin
In summary:
A good, clean UI with straight-forward configuration options, an exemplary implementation of the jCarousel jQuery plugin for Drupal sites.
Node Carousel
Benefits over the other modules:
- Apparently has an AJAX option (untested)
Disadvantages or areas in need of improvement:
- The module is not well maintained and the documentation is out of date.
- No functional 6.x version available – looks like development simply stopped on this before it was ready
- No Views integration
Of note:
- Works with Nodequeue
- Uses the jCarousel jQuery plugin
In summary:
There is either a git tagging problem or a lack of adequate documentation: – the jcarousel plugin does not come with this module although it exists in git, and there are no instructions as to where to get it or where to put it. With the plugin in the module directory, Nodecarousel did not do anything. Also there were numerous php notices.
Ajax Slideshow
Benefits over other modules:
- Ajax-based slideshow which means scalability. The slideshow content can grow bigger without negatively impacting the page load-time.
- Slides can contain any content item (node) rather than images only
- Content and sequence ease of control due to the utilization of the views module for managing the slide set.
- Plug & Play – standard installation and the slideshow is up.
Disadvantages or areas in need of improvement:
- Need to implement additional out-of-the-box tabs styles.
Of note:
- Uses Views and JQuery plugins
In summary:
Straightforward, easy to install and manage module that allows sequential presentation of any set of content items. Performance is not dependent on the number of content items selected.
Fancy Slide
Features:
- Input from either a single node or from a nodequeue.
- Large number of settings.
- Integrates with imagecache to resize images automatically.
- Control bar with automatic thumbnails and image descriptions.
- ‘Pluggable’ transitions to provide the possibility to add further transitions using jQuery.
- Theme functions exposed to theme developers to build straight into themes.
Areas in need of improvement:
- No views integration.
In summary:
An early but stable slideshow module that aims to provide a nicer, fancier interface to the end user than other offerings, while maintaining an array of customisation options. More work is needed to bring views integration to the module.
Bottom line
You often remarks like this in project descriptions and issue queues:
– "EasySlider is being developed into a views plugin"
– "I’m thinking of rejiggering it as a views extension" (Nodecarousel)
– "I am planing its integration with Views" (Featured Content Slider)
There has already been so much duplicated effort here, it’s time for that to stop and for some consolidation to happen. Within the somewhat broad use case of eye-catching, rotating content, there are two distinct use cases, meaning justification for at MOST two modules here:
- Passive user: throw featured content at them while they’re on your front page
- Active user: allow users to navigate / scroll through content to find what they’re looking for (e.g. thumbnail images in a gallery)
Two modules that exemplify these two use cases are well {Views Cycle OR Views Rotator} and Views Carousel respectively. There’s no reason why features from Views Rotator / Views Cycle / Views Slideshow couldn’t be incorporated into one module and likewise with all the carousel/slider-type modules for the latter use case.
There is also a strong need for a standard way of including jQuery plugins, as per this thread. Wouldn’t it be awesome if you could just choose "jQuery plugin" as your Views style and then in the settings for that style you would choose which plugin to use, e.g. Cycle, Accordion or Carousel. Of course there are different config options for each of those but… maybe getting closer to that ideal isn’t too wacky an idea.