Location: PHPKode > projects > DIY Blog > diy-blog/readme.txt
DIY Blog


It is an open-source blog/content management engine, created as a sample application to demonstrate features of the DIY Framework. Internally, it is designed as 2 applications: frontend for website visitors and blog readers, and backend for website administrators and blog posters. We use it as the engine for this website.

Frontend application has post list with sorting and paging, post commenting, post archive, RSS feed, and search features.
Administrative backend interface with a user system allows creating and editing posts and pages (currently as XHTML source), managing comments, and uploading files.

Both applications have their own Controllers and Views, but share a single common Model (and an XML serializer for it).

Use of the DIY Framework implies that DIY Blog also uses Propel ORM for database abstraction and XSLT for templating. The application is standard-compliant: all output is well-formed and (with the default templates) valid XHTML. Currently, the administrative interface will not work properly in Internet Explorer because of the <button> element bug.

The application does not include any design themes or images and is styled using some basic CSS, which you can find in the static/css/ folder. You can also tweak the XSLT templates in frontend Views.

While you can create and edit post and pages and give them URLs, you cannot currently include their links in the website menu using the adminitrative interface. To do that, you have to manually edit the master XSLT template and add links to the pages you want to appear there, as well as to change the website title etc. The template can be found under classes/frontend/view/master.xsl.

By default, there is no Resource with the root (host) URI. You can either make it redirect to one of the other Resources (we redirect to Blog/) or change its URI to empty string, which means it will match root (host) URI.
Also by default, all static content that should not be handled by the application is supposed to be located in the static/ folder.

1. PHP 5 (not compatible with PHP 4)
2. PHP's XSL and MySQL (or some other database) extensions
3. MySQL (or another database supported by Propel, although this has not been tested)
4. URL rewriting enabled on the webserver (e. g. using Apache's mod_rewrite)

Propel 1.2 and Creole are included.

1. Extract archive into a folder
2. Set project.home in build.properties file as a full path to that folder
3. Define your database settings in the runtime-conf.xml file
4. Make sure that full paths of lib/propel/runtime/classes and lib/creole/runtime/classes are added to include_path in your php.ini
5. Run propel-gen.bat to generate Model classes and SQL with your settings
6. Execute schema.sql from the model/sql/ folder to create database tables
7. Execute initial-data.sql from the root folder to create initial data
8. Change the diy-blog.frontend.controller.FrontEndMapping::HOST constant value to your actual full host name with the trailing slash, e. g.: http://www.host.com/
9. Change the diy-blog.backend.controller.BackEndMapping::HOST constant value to the admininistrative folder URL on your host, including your actual full host name with the trailing slash, e.g.: http://www.host.com/Admin/
10. Check if the webserver is configured to use the .htaccess file in order for DIY Blog to handle all requests, except for the static/ folder. Add custom rewriting to the file if needed, e. g. rewrite URLs that do not start with www as your host name (example is given but commented).
11. Set appropriate permisions static/files/ folder to allow PHP to move uploaded files there
12. The site is ready to run!

The default user is "Admin" with the password "Admin".


Work needs to be done on:
* Moving to Propel 1.3
* Date and time handling with the new PHP's DateTime class
* Improved autoloading
* View repackaging
* A more interactive markup editor

The DIY Blog is released under a GPL license.
Return current item: DIY Blog