Symfony plugin to add photos from a Picasa Web Album to your site. With AJAX fun.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Copyright (c) 2009-2010 D. M. Deller

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program (in the file LICENSE).  If not, see


- Symfony 1.3 or 1.4
- Prototype 1.6.1
- Scriptaculous 1.8.3
- Zend GData 1.9.6

Versions listed are the ones I tested with. It should also work with newer versions. It *may* work with older versions (maybe even Symfony 1.2), but if you try that, you're on your own.


1.  Unpack hnPhotoAlbumPlugin to your project's /plugins directory.

2.  If you don't already have it, get Scriptaculous: (We no longer use the deprecated sfProtoculousPlugin)

    Prototype is included with Scriptaculous. Move the files out of the 'lib' and 'src' directories and put them somewhere in your /web/js directory.

3.  If you don't already have it, get the Zend GData library:

    Move the 'Zend' folder out of the 'library' folder and put it somewhere in /lib/vendor.
    I haven't been able to get this library to work with Symfony's autoloading mechanism. If you find a way, please let me know.
    Otherwise, add this to your /config/ProjectConfiguration.class.php:

4.  Run 'symfony plugin:publish-assets' so your site can find the stylesheets, etc.


1.  Enable the plugin in your /config/ProjectConfiguration.class.php.

    If you are using $this->enablePlugins(), add it to the array. If you are using $this->enableAllPluginsExcept(), you probably don't need to do anything.

2.  Enable the 'photos' module in your app's settings.yml:

    enabled_modules:        [photos]

3.  Configure some settings in your app's app.yml:

    path_js_prototype:      /js           # web-accessible path where your prototype.js resides
    path_js_scriptaculous:  /js           # web-accessible path where your builder.js, effects.js, etc. reside
    picasa_username:        picasateam    # change this to your username. 'picasateam' has a bunch of sample photos.
                                          # for valid thumb values, see
    album_thumb_size:       160c          # size (width) for album thumbnails. default is 160px, cropped.
    photo_thumb_size:       160u          # size (width) for photo thumbnails. default is 160px, uncropped.
    photo_display_size:     800           # maximum size (width) for photos. default is 800px. note, no 'u' or 'c' is needed/allowed here.

4.  Optionally style the output. All of the plugin's HTML is wrapped in a div with the ID 'hnPhotoAlbumPlugin', so you can use that to target CSS rules for this particular plugin.

5.  <?php echo link_to('photos/index'); ?> somewhere on your site so visitors can find it! :)

Overriding stuff

You can override most settings, classes, etc. just like any other Symfony plugin. In case you don't know, this is done by creating the appropriate files in your local application structure.

For example, if you wanted to override:

You would create a new file:

And put your desired settings there.