About

This page is intended to quickly describe Zenbook. It only scratches its surface, to make it easier to dwelve into it for those who wish to modify it. However beyond that, you're up to read the source. Hopefully function names are pretty self-explanatory.

Zenbook overview

Zenbook is a simple Facebook application that helps you to integrate your Zenphoto gallery with Facebook. It acts a kind of proxy between the Facebook platform and Zenphoto servers.

However as Zenphoto only serves HTML, integration is not as straightforward as it could be, and a few files must be installed on Zenphoto side to enable data-interexchange. Those files allow to expose Zenphoto objects as json data.

Architecture quick tour

A mini Model 2 architecture as been specifically developped for Zenbook, because 1. PHP is not my primary language of choice and it would have taken a lot more time to find a suitable framework, 2. There's a great chance that such a framework would have been an overkill. It remains quite simple, and you will find the classical layers you would expect: a. a model (pojo-like) layer, b. a dao layer (with hard-coded, manual, sql), c. a controller layer (which directly accesses the dao layer for sake of simplicity). MVC concerns are dealt with in the Dispatcher class.

There's a single entry point located in {app-name}/index.php, where {app-name} is the symbolic name of the application (used solely on the server, and distinct from the Facebook application name). Here {app-name} is zen-dev. Supposedly this could have covered multi- Facebook application hosting. However i had some troubles managing Facebook key, and i ended up installing the Zenbook application and the Zenbook-dev application on different servers. Multi-applications might or might not work on your server - i didn't invest too much time on this, so i don't know if this is a real bug (hence there's a flaw in the architecture), or if there was a server configuration issue.

Compatibility

There are a few major issues:

License

Zenbook source are provided under a modified GPL license - see section 11.

Download

Source and integration files