Carousel

by David Glick last modified Mar 15, 2013 12:36 PM

Carousel allows you to add user-configurable rotating banners to any section of a Plone site.

Project Description

Introduction

Carousel is a tool for featuring a rotating set of banner images in any section of your Plone site. Features:

  • Different sets of banners can be used in different sections of the site.
  • Banners can link to another page in the site, or an external URL.
  • Carousel provides options to customize the appearance of the banner as well as the length and type of transition.
  • An optional pager provides navigation among the banners.
  • Transition effects are implemented using the jQuery javascript library which is included with Plone, so they are pretty lightweight.
  • Banners do not rotate while the mouse cursor is hovering over the Carousel.
  • Banner and pager templates can be registered to customize the appearance of the Carousel.
  • Carousel implements jQuery events, allowing for integration with custom javascripts.
  • Carousel images can be lazily loaded, to conserve the user and the server bandwidth if the full carousel cycle is not shown
  • Carousel images can be made to appear in random order

Compatibility

Carousel requires Plone 3.0 or greater, mainly because it renders itself in a viewlet.

Installation

Add Products.Carousel to your buildout's list of eggs, and re-run buildout. If you get version conflicts while running buildout, you can use a known good version set to find versions compatible with plone.app.z3cform:

http://good-py.appspot.com/release/plone.app.z3cform/0.5.0-1?plone=4.0.2

Start Zope, go to Site Setup -> Add-on Products in your Plone site and install the Carousel product.

Detailed overview and tests

Viewing the banners

Now if we return to the home page, where we initially configured the banners, the banner we just added should be rendered (before the tabs):

>>> browser.open('http://nohost/plone')
>>> browser.contents
<BLANKLINE>
...Pirates and Cowboys...
...class="contentViews"...

Adding banners in other scenarios

Non-structural folder: put the carousel in the containing folder:

>>> self.setRoles(['Manager'])
>>> self.portal.invokeFactory('Folder', 'nonstructural')
'nonstructural'
>>> from zope.interface import alsoProvides
>>> from Products.CMFPlone.interfaces import INonStructuralFolder
>>> alsoProvides(self.portal.nonstructural, INonStructuralFolder)
>>> browser.open('http://nohost/plone/nonstructural')
>>> browser.getLink('Carousel').click()
>>> browser.url
'http://nohost/plone/carousel/@@edit-carousel'

Collection, not default item: put the carousel in the collection itself:

>>> try:
...     self.portal.invokeFactory('Topic', 'collection')
...     self.portal.default_page = 'collection'
... except:
...     self.portal.invokeFactory('Collection', 'collection')
'collection'
>>> browser.open('http://nohost/plone/collection')
>>> browser.getLink('Carousel').click()
>>> browser.url
'http://nohost/plone/carousel/@@edit-carousel'

Tests

To run tests see .travis.yml.

Making a release

Do with zest.releaser

Example:

# Install zest.releaser in venv and activate that venv
fullrelease

Support

  • Use stackoverlow.com for usage and development related questions
  • File bugs and patches at Github project

Change history

2.2.1 (2013-03-15)

  • Fixed error on hover. [kroman0]

2.2 (2012-12-12)

  • Browser view support for showing and hiding carousel viewlet added. [taito]
  • Lazily load carousel images [miohtama]
  • Don't display <img alt=""> text on the carousel images as it leads to confusing with partially load carousel images [miohtama]
  • Added checkbox to enable lazy loading carousel images. [kroman0]
  • A checkbox for randomizing the order of shown pictures [miohtama]
  • Added Plone 4.3 compatibility [davilima6]

2.1 (2011-09-06)

  • Updated i18n helper script to reflect current translations. [yomatters]
  • Added Finnish translation. [datakurre]
  • Allow users with the Site Administrator role to add Carousel banners by default. [davisagli]
  • Added collective.googleanalytics tracking plugin for tracking banner clicks. [yomatters]
  • Added Dutch translations. [jladage]

2.1b3 (2011-01-19)

  • Changed default banner to use the image URL first and then fall back to the uploaded image. [yomatters]
  • Made Carousel respect folder order of banners. [yomatters]
  • Fixed animation logic for sliding Carousel. [yomatters]
  • Made link URL optional. [yomatters]
  • Added the ability to enter an external image URL instead of uploading an image. [yomatters]
  • Fixed permission bug that affected unpublished Carousel folders. [yomatters]
  • Fixed Carousel banner lookup so that banner view permissions are respected. [yomatters]
  • Fixed a bug that affected folders containing an item with the ID 'carousel' that was not a Carousel folder. [yomatters]

2.1b2 (2010-12-08)

  • Fixed javascript error on Plone 3. [yomatters]

2.1b1 (2010-12-06)

  • Fixed known good versions set link. [yomatters]
  • Made instructions for adding and modifying banners more prominent. [yomatters]
  • Added option for setting the ID of the Carousel. [yomatters]

2.0 (2010-11-19)

  • Split plugin into functions, making it easier to override parts of the Carousel behavior. [yomatters]

2.0b1 (2010-09-30)

  • Added slide as a possible transition type. [yomatters]
  • Refactored javascript as a jQuery plugin that triggers jQuery events on transitions. [yomatters]
  • Added settings to customize the appearance of the banner and pager and the length and type of transition. [yomatters]
  • Added an optional pager for navigation among banners. [yomatters]
  • Replaced description field on Carousel banners with a rich-text body field. [yomatters]
  • Remove the browser layer to help with use in Plone 2.5. [davisagli]

1.1 (2010-03-26)

  • In Plone 4, add viewlet to the abovecontent viewlet manager by default, to avoid weird styles. [davisagli]
  • Added Spanish translation. [tzicatl]
  • Only show published banners in the Carousel, even for users who have permission to see others. [davisagli]

1.0 (2009-03-31)

  • Changed behavior of text links to swap banner on mouseover. [davisagli]

1.0b3 (2009-02-07)

  • Add 'Carousel Banner' to types not searched. [davisagli]
  • Locate carousel folder correctly on containers used as default pages (e.g. a Topic) [davisagli]
  • Apply proper security declarations to the getSize and tag methods of the banner type so that the view works okay when customized TTW. [davisagli]
  • Only display the carousel on default view; not any of the other tabs. [davisagli]
  • Fix viewlet removal on uninstallation. [davisagli]
  • Fix duplicate entries in quick installer. [davisagli]

1.0b2 (2009-02-04)

  • Declare dependency of our custom GS import step on the viewlets step. [davisagli]
  • Separate the (globally-registered) template from the (locally-registered) viewlet, so that the former can be customized using portal_view_customizations. [davisagli]
  • Added banner description to the template. Changed the 'carousel-title' class to 'carousel-button' so I could split out 'carousel-title' and 'carousel-description'. [davisagli]
  • Handle non-structural folders correctly. [davisagli]

1.0b1 (2009-02-03)

  • Initial release. [davisagli]

Contributors

  • David Glick [davisagli], Groundwire, Author
  • Matt Yoder [yomatters], Groundwire
  • Noe Nieto [tzicatl], NNieto CS, Spanish translations
  • Taito Horiuchi [taito]
  • Mikko Ohtamaa [miohtama]

Current Release
Products.Carousel 2.2.1

Released Mar 15, 2013

Download file Get Carousel for all platforms
Products.Carousel-2.2.1.zip
If you are using Plone 3.2 or higher, you probably want to install this product with buildout. See our tutorial on installing add-on products with buildout for more information.

All Releases

Version Released Description Compatibility Licenses Status
2.2.1 Mar 15, 2013 More about this release… GPL final
2.2 Dec 12, 2012 More about this release… GPL final
2.1b3 More about this release… GPL beta
2.1b2 More about this release… GPL beta
2.1b1 More about this release… GPL beta
2.1 Sep 06, 2011 More about this release… GPL final
2.0b1 Adds settings to customize the appearance of the banner and pager and the length and type of transition. More about this release…
Plone 4
Plone 3
GPL beta
2.0 Nov 19, 2010 Adds settings to customize the appearance of the banner and pager and the length and type of transition. More about this release…
Plone 4
Plone 3
GPL final
1.1 Mar 26, 2010 Makes sure only published banners appear, and adds a Spanish translation. More about this release…
Plone 4
Plone 3
GPL final
1.0b3 More about this release… GPL beta
1.0b2 More about this release… GPL beta
1.0b1 Initial proof-of-concept release. More about this release…
Plone 3
GPL beta
1.0 Mar 31, 2009 Initial stable release. More about this release…
Plone 4
Plone 3
GPL final