Search

Some of you might know that I wrote a Campfire Service (symphony 1.7 extension) to integrate Picasa Web Albums with Symphony. With Symphony 2 and dynamic XML datasources there is no need for an extension to allow integration between the two applications.

Prerequisites:

Symphony v2.x (http://github.com/symphony/symphony-2/tree/master)

Optional extensions:

Create a section called “picasa albums” with these fields:

  • textfield: username (required)
  • textfield: albumhandle (required)
  • textfield: authkey
  • textfield: title
  • textfield: description
  • image upload & preview field (or upload field): cover
  • entry order field: order

Create the following datasources from the “picasa albums” section:

  • picasa - albums: select these fields for xml output: title, description, cover. Sort by “order”, descending.
  • picasa - username: filter by {$id}, max-results: 1, output parameter: username, no xml output
  • picasa - albumhandle: filter by {$id}, max-results: 1, output parameter: albumhandle, no xml output
  • picasa - authkey: filter by {$id}, max-results: 1, output parameter: authkey, no xml output

Create the following dynamic XML datasources:

  • picasa – xml: use this url: http://picasaweb.google.com/data/feed/base/user/{$ds-picasa-username}/album/{$ds-picasa-albumhandle}?alt=rss&imgmax={$picasa-image-width}&thumbsize={$picasa-thumbnail-width}
  • picasa – xml - auth: use this url: http://picasaweb.google.com/data/feed/base/user/{$ds-picasa-username}/album/{$ds-picasa-albumhandle}?alt=rss&authkey={$ds-picasa-authkey}&imgmax={$picasa-image-width}&thumbsize={$picasa-thumbnail-width}

Create a Global Parameter Set “picasa albums”:

  • parameter name “picasa-image-width” with value: 800 (maximum that can be embedded)
  • parameter name “picasa-thumbnail-width” with value: 72c (more values and explanation in Picasa reference, see link below)

Create a Page called “albums” with:

$id as page parameter, the datasources you just created, and some code. You can use this code as a starting point: http://gist.github.com/128041

Adapt the code to create the layout you need. You can change the order of your albums with the order entry extension. You can add more parameters to the dynamic XML datasource URLs and use the Global Parameter Loader to populate them. You can also use the Global Parameter Loader to change these values on certain pages.

Useful links:

das ist sauber!

As I understand it u use private albums and add them to a section one by one, in order to include their authkey? This means it is not possible to just return a feed with all albums on your account unless they are public? And the pictures might end up in search results before the pages of your website they are used on…

I suppose using and updating a real auth- token is not researched?

interesting…i’ve been working on an ajax solution to this with google ajax feeds. i’ll post more info once i’m done with the site. i’ll try and integrate what you have here for the javascript-deprived crowd =)

I have made this extension partly because I do not want any pictures to show up in Picasa’s search results, but I do want them displayed on the website.

I have not researched how the more advanced authentication functionality works, but I do not think it will be that hard to integrate.

I am afraid that it would require a special extension. Out of the box it won’t work.

Does anyone has experience with hardcoding (dragging image in field, or copy paste) a google hosted image?

http://lh5.ggpht.com/_7J....

The lhsubdomain seems random, so the question is does it change over time, or is it fixed to a certain image. When requesting pics from the feed, you wouldnt notice if it changed, since you automatically update it. however when you just use this path once and store it in a field, will it keep working?

Hi, there seem to be some changes concerning the Picasa API I think. Long story short, I cannot make it work for whatsoever reason. Would be very kind if you could help me. Thanks in advance.

I have looked at a website that uses the same code and it still works.

If you provide some additional information I might be able to help you better.

Mh, if you say so i must have made some kind of stupid mistake. I’ll get a friend to check my spelling. I’ll report back here, if I cannot find anything.

Hi, the extension was not working for me either.

I found out that the new API does not support the “kind=base” parameter in the dynamic XML source URLs and returns an error if you use it…

Now it works! Thanks!

Reference: http://code.google.com/intl/de-DE/apis/picasaweb/docs/2.0/reference.html

Correct picasa–xml url: http://picasaweb.google.com/data/feed/base/user/{$ds-picasa-username}/album/{$ds-picasa-albumhandle}?alt=rss&imgmax={$picasa-image-width}&thumbsize={$picasa-thumbnail-width}

Correct picasa–xml-auth url: http://picasaweb.google.com/data/feed/base/user/{$ds-picasa-username}/album/{$ds-picasa-albumhandle}?alt=rss&authkey={$ds-picasa-authkey}&imgmax={$picasa-image-width}&thumbsize={$picasa-thumbnail-width}

Thanks for clarifying this, didi.

I discovered that I was already using the URL’s that you mention, so I don’t know where the kind=base parameter sneaked in. I will change the tutorial in a moment have changed the tutorial to include the correct URL versions.

hm, had already fixed that, but it doesn’t work for me - maybe I made a mistake when creating the data sources, but I’m not able to locate it. Would it help to provide the files here for you carsten? or screenshots? I bet it’s a pretty dumb mistake.

Which version of Symphony are you using? Can you verify that all extensions work?

What code for picasa-xml does the debug screen show?

Ok, I’ve managed to have it working now, but when I say /albums/?debug it shows me the picasa-xml xml data. When I want to see /albums/28/?debug (e.g.) only picasa-albums xml, but not picasa-xml.

Did you set the page parameter id on the albums page?

Do you filter the picasa-albums data source by System Id?

Is the $ds-picasa-albumhandle page param set in ?debug=params?

Oh god, I finally found the mistake :(

Username wasn’t filtered by System ID, but by username – should have gotten that a lot earlier. Sorry for taking your time on such a dumb mistake carsten :( happy now to have it working, finally :>

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details