A simple Plone multimedia Portlet with an eye to accessibility
Project description
Documentation
Yet another multimedia/dynamic portlet for Plone that display images.
Why you can want this instead of other? Because it works with Javascript disabled (with an eye onto the Italian Accessibility Act) and is tested to work behind reverse-proxy (like Varnish).
How to use
The main information you must provide to the portlet is a Plone collection. The collection is used to retrieve all image-like contents from it. You can freely configure the collection to return also other content, but only ones marked as “image-able” are used (technically speaking: it also filter only contents that provides IImageContent, like “Image” and “News Item” content type already do).
From the target collection is also used the “Number of items” field, to show in the portlet only a limited number of images.
The “Limit Search Results” field is not directly used by this portlet, but change the collection behaviour. Enabling the client random feature with this check selected will only reorder a limited set of images.
Performance
What scare us about other Javascript-live multimedia portlet (besides accessibility) is the massive use of AJAX call to the server. This can lead to two problems:
too many request (and low performance)
random feature could work badly with cache in front of Plone
For this reason this portlet will not query every xyz seconds the server, but simply get from the server all the images, then randomly reload them client side.
The auto-reload feature can be disabled if you don’t like it. You still have a random image set at page load time.
Translations
When using client side reload feature, the user can (for accessibility reason) stop and restart the auto-reload task.
The portlet title will display an help message. To add additional translation you are able to not change the product source.
Just add something like this in one of your Javascript source:
jQuery.auslfe_multimedia = { i18n: { xx: { stopReload: '"Click to stop auto-reload" in xx language', restartReload: '"Click to restart auto-reload" in xx language' } } };
Change xx above with the 2-letters code of your language and customize other strings. Language loaded is taken from the language of the site (for any problem, fallback on english).
Credits
Developed with the support of Azienda USL Ferrara; Azienda USL Ferrara supports the PloneGov initiative.
Changelog
1.0.1 (2014-10-29)
removed references to jq jQuery alias [keul]
fixed install step: do not try to re-introduce the old imagesLoaded plugin [keul]
fixed random criteria that always show one image in some edge case [keul]
1.0.0 (Unreleased)
Fixed compatibility with new Plone 4 collections [andrea]
Added dependency to collective.js.imagesloaded [andrea]
Added uninstall step [andrea]
Added customizable reload timeout in portlet settings [andrea]
0.2.1 (2010-09-21)
integrated imagesLoaded jQuery plugin [keul]
fixed a bug (thanks to the plugin above): sometimes the image was not “faded-in” correctly [keul]
changed custom event name to “portletRefresh” [keul]
minor accessibility fix: click on the portlet title stop/start client images reload, if enabled [keul]
portlet title in Plone UI was always in italian language: fixed [keul]
template fix, now working also on different themes (and with more than two images for row) [keul]
removed the min-width CSS style, leave this to user Plone theme [keul]
0.2.0 (2010-06-09)
first public release (on pypi)
moved portlet specific CSS inside the product [keul]
added Javascript for client-side randomization (needed for maintain random images with Varnish) [keul]
internationalization support [keul]
in the portlet management, added the portlet title to every portlet [keul]
added a feature for client side random reload [keul]
0.1.0 (2010-06-09)
initial release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for auslfe.portlet.multimedia-1.0.1.zip
Algorithm | Hash digest | |
---|---|---|
SHA256 | 790dd8f7458160a81ea0a75f28258eaa33a9b9d092b823907620293f8c6696d3 |
|
MD5 | ace7207482f0bd45243a8df5cc970cca |
|
BLAKE2b-256 | 90c7cd449517fb8ce631afa7004ea9d826f34fa195ebe7dc62cf38ed716bd9d6 |