Base gallery product for plone with picasa and flickr support by Makina Corpus
Notes: gdata 2.0.10 doesn’t work properly: http://code.google.com/p/gdata-python-client/issues/detail?id=367#c1 please pin the version to 2.0.9
This add-on is gallery add-on for Plone.
It is tested with Plone 4 but it is also used with Plone 3.
This add-on is split in two parts: the UI and components
The goals are:
Have a simple to customize gallery add-on for plone (non intrusive).
Use very ligth weight resources
Don’t embed display configuration inside data
The user interface has been designed to be easy to customize. Files are located in the skin directory (easy to customize):
gallery.html.pt: Zope Page Template to render the html code
gallery.css: pure css design to display 400*400 photos
gallery.html.pt.metadata: to set the title of the page in display drop down menu
gallery_tooltip.png: the tooltip used to display the title/description of the photo
The user interface has many feature:
resize photo if too big by setting the width or height
paginate thumbs for navigation (5 by default)
opacity on mouse rollover thumbs
play / pause (autostart by default)
display more than 300 photos without any performance issue
display title and description throw a smart jquerytool tooltip
There are also two portets, which can be used:
“Show Galleries” portlet to display random photos from random galleries.
An itemview portlet to display specific photos.
No custom content type, only views
Works with lots of photos (is developed to work with +300 photos)
Ramcache setup with a default key to one hours + modification date
Works with Folder, Topic and Link content types
I18N: english, french and german are available
collective.gallery use zope.components to provide as much reusable as possible components.
First we have photo resources. Plone already manage this for you:
Folder and Large Plone Folder can contains Image
Topic can be criterized to list only Image
Link can be sources of photos throw picasaweb.google.com and flickr.com services.
Next you have the business component: IGallery. This interface is implemented at two levels:
As named adapter over IATLink to get photos from picasaweb or flickr.
As browserview to control the resource (@@gallery)
Folder & Image
Folder and Image content type can be used to build a gallery. Add a folder and then add every images in it. Once its done come up to the folder and choose ‘Gallery view’ in the display drop down menu and voila.
The folder gallery component query the portal_catalog and adapts brains to IPhoto.
Topic & Image
Topic can be used to build a gallery. Add a topic and add criteria on the Type to select only Image. Next choose the ‘Gallery view’ in the drop down menu and voila.
The topic gallery component use the topic’s queryCatalog method to get brains, then they are adapted to IPhoto
Link can be used to build a gallery. Add a link, set URL to one of the following services, validate and choose the ‘Gallery view’ in the drop down menu and voila.
The link gallery component get all named adapters from Link to IGallery and call the validate method. The first validated adapter is kept as resources.
In Plone, just paste the share link provided by picasaweb inside a Link content type and display your link content with the view ‘Gallery view’ available in the drop down display menu.
- SIZES32, 48, 64, 72, 104, 144, 150, 160, 94, 110, 128, 200, 220, 288, 320,
400, 512, 576, 640, 720, 800, 912, 1024, 1152, 1280, 1440, 1600
All metadatas are supported
In Plone, just paste the share link provided by flickr inside a Link content type and display your link content with the view gallery available in the drop down display menu.
Flickr service is not album centric but photo centric. Supported case:
http://www.flickr.com/photos/autowitch/sets/107460 It is an album, no problem
http://www.flickr.com/photos/rbpdesigner We have the username, return all photos
IPhoto.description metadata is not supported
In Plone as with other link you just have to paste the link inside a Link content type.
The album must be public.
IPhoto.description metadata is not supported
Smart image preloading after the page is loaded
Thumbnail navigation (with pagination)
jQuery.history plugin integration to support bookmark-friendly URLs per-image
Slideshow (with optional auto-updating url bookmarks)
Events that allow for adding your own custom transition effects
API for controlling the gallery with custom controls
Support for image captions
Support for multiple galleries per page
Because it is easy to customize, lets write some lines about how to fit gallery to your needs.
be fixed width. Photo are fixed, you want your gallery to be nice, lets fixed its width.
You can configure in properties the max photo size you want but backends may not support this settings.
All controllers can be placed where ever you want because they are accessed by #id
To register the “Show Galleries” portlet, you can add the following xml snippet to your portlets.xml Generic Setup file::
<assignment name="gallery-portlet" category="context" key="/" manager="plone.rightcolumn" type="collective.gallery.show_galleries" visible="True"> <property name="search_portal">True</property> <property name="num_pictures">1</property> <property name="image_size">mini</property> </assignment>
You want more ?
The picasaweb and flickr services let you embed a flash slideshow to display your photos. Views are already available to use those services:
But they are not integrated in the Plone UI.
This add-on is use in production here and there:
[1.0] finish the css
[1.1] exif integration
[2.0] add photos
[2.0] search photos
[2.0] collective.harlequin as an extra dependency
JeanMichel FRANCOIS aka toutpt <firstname.lastname@example.org>
Johannes Raggam <email@example.com>
Fix picasaweb url parser bug with authkey [toutpt]
update zcml import from Zope2.App [toutpt]
update facebook support (remove the need of BeautifulSoup, we now use json) [toutpt]
Updating schema of gallery portlet. [thet]
Add itemview gallery portlet [toutpt]
Add gallery portlet. [thet]
Add transifex configuration [toutpt]
Add support for News Item [toutpt]
Fix https picasaweb url doesn’t work [toutpt]
fix fast navigation bug (where imgs where added one upon the other) -> Need to position images in absolute [sylvainb toutpt]
German translation. [thet]
add a browser layer and register adapters in plone componentregistry
fix plone3 compatibility
add jquerytool tooltip to display title and description of each photo
add upgrade from previous releases
make gallery.js exit if no #gallerythumbs
add metadata file to set title of gallery.html page
fix facebook backend. Now it works with BeautifulSoup if installed (zcml condition)
remove dependency on paste. [thet]
add dependency on galleriffic. remove dependency on pikachoose
add id on photo api
improve galleriffic integration [toutpt jchambard]
add gallery.html view based on collective.js.galleriffic. add support for non well sized photo (if the backend doesn’t support sizes.)
Remove Large Plone Folder from default profile. Now install well on plone4
Move galleriffic integration into skin directory.
BrowserView are now used has controller: template is replaced by allowed_interface
Switch back galleriffic plone integration to example1
Fix a KeyError on exif data with folder implementation (topic and folder)
Add uninstall profile + Extensions/Install script to be used by quickinstaller
Move templates in browser/templates folder
Add ‘en’ locale
Add z3c.autoinclude target plone in entry points
1.0b1 - (2010/05/21)
remove harlequin and z3cform integration (too soon)
rename IImage to IPhoto and imgs() to photos()
Add rebuild i18n script as usual
Use collective.testcaselayer for tests
Add interfaces IImage and IExif on results returned by every services
Use jquery.galleriffic jquery plugin (example 1)
Add flickr support [toupt]
Add cache support with plone.memoize.ram
Add picasa private album support on both slideshow and link browserview
Add tests on picasa components
0.1.1 - 2009/12/29
Add picasa slideshow flash gallery view on link content type
Add integration tests
0.1 - 2009/12/28
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.