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.
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.
There are a few major issues: