Email class

I have added a simple email class to the documentation section.

When I have the time I will extend the email class to allow adding attachments, I will also create an iterator for sending multiple emails in one go, that way you will be able to pass in a complete email object, a bunch of addresses and a data array for text replacements.

Validation classes

I have added some validation classes to the documentation section.

The validation classes can be used on their own but they are intended to be used as part of the XML form builder, shortly I will update the example for the lib_form_builder_xml class to show correct usage and also add the processing class code and example.

The processor class is the one that reads the rules from the XML file and actually validates the submitted data before it can be passed of to the model/controller.

Projects Page – New Classes

I have made two changes to my website, the first being the removal of the applications page, it won’t be needed for a while and is therefore pointless, in its page I have added a projects page which details what I have been working on and what I am working on, which is mainly the Framework and Dlayer.

I have also uploaded a few extra class, a development version of the XML Form Builder, the hidden input form element class and my loader class.

The usage example for the form builder is quite simple, once I have added support for checkboxes and radio buttons I will add additional examples.

Freelance work

For the last couple of months (on and off) I have been working on building a shop for one of my previous employers.

The shop is an upgraded version of the e-commerce application that I developed whilst I worked with them. I made several amends to the system but the main one was the extension of the product system, different sections needed to display products in completely different ways, examples can be seen here 
http://pole.g3d-development.com/product.htm?product=28-lex-brass 
and http://pole.g3d-development.com/product.htm?product=white-satin-roller-blind

To do this I added ‘product types’, that way the base product class can be extended whenever required and the developer just chooses what methods of the core class they would like to override.

As a simple example, the default price for a simple product is taken from the products table, in the case of the blinds products though there is no such thing as a default price, the price depends on both the width and drop, in this case the ‘get_price’ method was simply extended to calculate the price based on the users input.

An unpopulated version of the system can been seen here http://pole.g3d-development.com