I was searching for a module for google Picasa intergration.
Functionality I need includes listing picasa albums for a certain user, and showing the pictures of these albums.
This is the easy part.
I also want to show public and private albums, creating blocks, searching for albums...
So I started to write 2 modules, based on the Zend GData libs of the Zend Framework.
These are (yet on local development, own Subversion):
- zend_gdata module
- zend_gdata_picasa module
The zend_gdata module currently:
- includes the Zend GData libs to the drupal system
- Loads the proper classes through the Zend_Loader::loadClass function
- includes a function to return a zend http client without authentication or with Client login
- includes admin pages to select the default authentication method, and optionaly login credentials (if ClientLogin is selected for default authentication)
- A database schema and functions to register blocks
The zend_gdata_picasa module currently:
- Uses the zend_gdata module to load the Zend classes and to get a http client
- Registers user-, album- and/or photo blocks and/or pages with the zend_gdata module
My ideas:
- The zend_gdata module should be the base module for other modules which want to use the Zend Gdata libs.
- The zend_gdata module handles classloading and authentication for sub-modules
- The zend_gdata module delivers blocks and pages to the Drupal system
The zend_gdata module holds a table with block configuration which contains:
- Block id
- submodule name (like picasa)
- an array with configuration (the sub-module-specific items, and the defaults like authentication methods)
There are functions/hooks in the submodule to render the blocks.
So the zend_gdata deligates the rendering of a picasa block to the picasa submodule
- The zend_gdata_picasa module handles the picasa logic, like showing album, user and/or photo data.
- The zend_gdata_picasa module intergrates with modules like jcarousel and views.
In the zend_gdata_picasa module I want to add/modify/delete blocks (and pages?), these blocks (and pages) should be configured for there use:
These items are now in the picasa module, but should be moved to zend_gdata (because this is also usefull for other submodules)
- an authentication method: none (public albums), ClientLogin or zend_gdata default
- if ClientLogin is selected and a username and password are given those will be used to authenticate
- if ClientLogin is selected and no username and/or password are given, the default of the zend_gdata will be used
- if ClientLogin is selected and none of the above are true, it falls back to a httpclient without authentication
- If ClientLogin is selected with invalid credentials an error is thrown.
specific configuration options:
- an user block should be configured with the picasa username who's albums should be listed
- an album block should be configured with the picasa username and the albumid which photos should be listed
- a photo block should be configured with the picasa username, the albumid and the photoid of the photo to be displayed
Other services (like Video, YouTube, spreadsheets) could be implemented on the same way as Picasa web albums.
Maybee the zend_gdata should support oAuth, but I think this is only usefull if a user authenticates agains google.
It's should be an option to look for (or create) an authentication/login module agains oAuth (like the OpenId-module).
Comments
Great idea
Hello there
I think that would be a great idea.
I'm currently developing a Picasa Module too - with the same functionalities you mentioned.
But I installed the Zend Gdata Lib manually...
If you're interested maybe i could help you out.
bye
benjamin