1.3.1 (xxxx-xx-xx)
----
- Coding standards have changed for concatenating strings.
- Bugfix: template compiler now allows two equal iterations within another iteration.
- Rewrote SpoonLog so it doesn't use any statics, but requires you to create an instance.
- Changed method_exists to is_callable throughout the library.
- When using UTF-8 as charset forms will be forced to submit as UTF-8
- SpoonLocale: Added getConjunction() and getConjunctions().
- SpoonFilter::urlise(): Added third optional parameter $language. You can provide this to get 
  language-specific alternatives for the '&' char.
- SpoonSession::destroy now works decently in Chrome under flaky circumstances
- SpoonForm::getTemplateExample has been cleaned up (in particular for checkboxes)
- SpoonFormTime::isValid now is a bit more precise and doesn't allow extra characters.

1.3.0 (2011-02-18)
----
- Template options may now start with an integer e.g. {option:404}
- The WHERE clause in SpoonDatabase::update and SpoonDatabase::delete may now be null instead of an 
  empty string.
- Added option for headers.sortingIcon in datagrid.tpl - empty <img> elements are no longer shown 
  for default sorting settings.
- Fixed the sorting problem when setting the sortParameter option in a datagrid.
- Bugfix: some classes were using non-existing exceptions, fixed this issue.
- Rewrote a few methods in SpoonFilter for consistency and performance reasons.
- Bugfix: when providing a template to SpoonTemplate::display a few extra checks are performed.
- Bugfix: multiple forms on the same page would produce ambiguous id's resulting in 'invalid' 
  markup.
- Feature: a callback mechanism for exceptions has been added. New constant 
  'SPOON_EXCEPTION_CALLBACK'.
- Feature: you can now overwrite the token error message in SpoonForm.
- Bugfix: add FOLLOW_LOCATION to SpoonFile::download cURL call so rewrites pose no problem.
- Bugfix: fixed SpoonFilter::isFloat and SpoonFilter::isInteger to work on every float and int 
  instead of relying on regexes.
- Rewrote some small snippets of code to improve performance.
- Bugfix: rewrote SpoonFilter::isInternalReferrer to use PHP's internal parse_url function.
- Bugfix: createThumbnail had been missing from SpoonFormImage.
- Bugfix: form tokens are now working when you have more than one form on your page.
- Feature: SpoonFilter::arrayMapRecursive() now has an optional third parameter $allowedKeys, which 
  allows you to map callback to specified array keys only.
- Bugfix: Custom keys didn't work correctly for SpoonDatagridSourceArray, they do now.
- htmlspecialchars now uses ENT_NOQUOTES by default instead of ENT_QUOTES
- Bugfix: SpoonDatagrid::getColumn no longer triggers an exception when the datagrid contains no 
  results.
- Bugfix: SpoonDropdown::isFilled will no longer equal true when allowExternalData is disabled and 
  the value is not found in the initial
  list of values. (thx to Dieter Vanden Eynde)
- SpoonFilter::isURL will now acccept domains such as 'spoon.local'
- Feature: added SpoonDirectory::isWritable, a better alternative to the native is_writable 
  function (that can not handle Windows' permissions properly)
- bugfix: fixed SpoonTemplate on Windows for file includes: absolute paths were identified as 
  relative paths
- Feature: added optional parameter to exclude certain columns in all relevant functions of 
  SpoonFileCSV
- Bugfix: SpoonFilter::isURL allows ip(v4 & v6) as URLS from now on
- Feature: when passing null as defaultvalue and type to SpoonFilter::getValue() the return will be 
  null instead of an empty string
- Feature: you no longer need to pass an array with values to a dropdown. A default element will be 
  generated with no value.
- Bugfix: SpoonEmail now uses the charset when building the emails' headers.
- Bugfix: template cycle tags now work as intended. (thx to Matthis Mullie)
- Bugfix: fixed check that used to always fail. Needs to be improved though. (thx to Dieter Vanden 
  Eynde)
- SpoonDatabase now prefixes fields with their tablename (insert/update)
- Exceptions now show the user-agent, if we can find it in the $_SERVER array
- Spoondatabase can now be used with custom ports
- SpoonTemplate does allow empty strings in the cycle-tag from now on.
- SpoonLocale::getCountry added, which allows you to fetch a country in a specific language.
- SpoonLocale: getMonth and getWeekDay added as well.
- SpoonFile::delete now allows you to delete an array of files.
- Rearranged the general authors/owners.
- Bugfix: you can now use named parameters within update queries.
- Bugfix: multiple dropdownfields weren't parsed because of the [].
- Feature: SpoonLocale now contains the supported language names.
- Template-syntax changed for include, iterations & variables
- Unassigned variables don't trigger a notice but gracefully degrade to the template-syntax when 
  SPOON_DEBUG is enabled
- Unassigned forms don't need template recompilation to work when they are in a later stadium
  assigned
- Cycle-tags now work correctly when nesting an iteration inside itself
- Variables can now go infinitely deep inside associative arrays
- Nearly every character is now allowed as a parameter for parameter-modifiers


1.2.0 (2010-05-18)
----
- The directory structure has changed for some packages.
- A few classes have been renamed based on the above changes. People new to Spoon should have an 
  easier time, trying 
  to find the location of the subpackages.
- Spoon::setObjectReference now also returns the instance you provide it.
- When an exception is thrown, we try to add the last PHP error message if it's available.
- SpoonFilter::isURL now allowes square brackets and semicolons.
- SpoonFilter::replaceURLsWithAnchors now allowes square brackets and semicolons.
- If an exception has a code, this code will be used to link to the documentation section on the 
  website which might
  contain more information about this specific exception.
- Template cycle tags may now contain a few more characters to give more flexibility in your 
  templates.
- Fixed a bug in SpoonTemplate which prevented first/last options to function normally when your 
  arrays did not start with
  the 0 key element.
- An extension check has been added to make sure 'mbstring' is loaded before you can use any Spoon 
  class.
- Fixed some comments in multiple files.
- Exception-mails are formatted with inline styles.
- Fixed a performance issue with SpoonFormDropdown in the parse method.
- Implemented an autoloader for Spoon.
- SpoonFile::download() now deletes empty file handles when the HTTP return status is not 200.
- Added SpoonDatagrid::getTemplate to retrieve the actual template object being used for parsing 
  your datagrid.
- Added initial version of the new SpoonFileCSV class.
- SpoonFilter::toCamelCase now allowes the separator to be a string OR array.
- Fixed a few issues with invalid markup generated by SpoonForm::getTemplateExample() for 
  radiobuttons/checkboxes.
- SpoonFilter now uses ctype & filter_var functions to speed up some checks methods.
- Fixed an issue with the SpoonDatagrid paging template file.
- An extra method 'createThumbnail' has been added to SpoonFormImage.
- Tokens have been implemented in SpoonForm. They are disabled by default.
- Fixed an issue in SpoonFilter::toCamelCase concerning words with uppercase characters in it. eg 
  SpOoN LiBrarY.
- SpoonFilter::getValue() now accepts arrays for the first argument, as well as 'array' for the 
  returnType argument.
- Added SpoonFilter::arrayMapRecursive(), a way to map multi-dimensional arrays with one or more 
  functions.


1.1.5 (2010-02-07)
----
- Added SpoonDate::getTimeAgo which presents you with a language dependant sentence based on the 
  provided timestamp in the past.
- Added SpoonTimeField::getTimestamp which returns a timestamp based on the provided values in 
  conjunction with the hh:ii format in
  the timefield.
- Fixed a bug in SpoonDateField::getTimestamp when not providing all the optional arguments.
- Template modifiers may now contain colons if you encapsulate with single quotes. 
  eg {$now|date:'Y-m-d H:i'}
- Modifiers are no longer allowed within cache/include tags.
- Implemented a few basic checks in SpoonTemplate for variables, iterations and options.


1.1.4 (2010-01-27)
----
- Added SpoonTemplate::getContent which returns the output of the executed template. Can not be used 
  in combination with cache tags.
- Added SpoonFilter::stripHTML, it strips all HTML elements from a string. Optional attributes 
  include:
	+ Replacing images with alt text
	+ Replacing anchor links with their href value
	+ Let paragraph elements receive an extra linebreak at the end to keep basic formatting
- SpoonEmail now uses SpoonFilter::stripHTML to generate plain-text contents.
- SpoonEmail now supports SSL and TLS in SMTP connections. Use SpoonEmail::setSMTPSecurity() to set 
  the SMTP security layer.
- When you create a datagrid, the column names will be used as the class attribute.
- SpoonSession::exists now works as intended, pretty similar to SpoonCookie::exists.
- Removed getLanguages from SpoonLocale since the source files were not reliable.
- You can now use SpoonDropDown::setOptionAttributes to add some custom attributes to specific 
  options in a dropdown.
  Examples are 'disabled' or 'rel'.
- Added htmlspecialcharsDecode to SpoonFilter.
- Reworked SpoonSession::delete to offer the same flexibility as SpoonCookie::delete.
- Added SpoonDataGrid::getColumn which grants you access to the actual SpoonDataGridColumn object, 
  providing you with more
  options to set for a column.
- Internal code has been refactored to implement the new naming conventions for arrays.


1.1.3 (2010-01-05)
----
- Added SpoonImageField, it extends SpoonFileField with some image-specific methods:
	- getExtension(): returns the extension based on the IMAGETYPE
	- hasMinimumDimensions(): checks if the image has minimum width and height
	- isValidMimeType(): a filter based on given MIME-types
- Added Dave to the main-authors (Welcome Dave!)
- Fixed some PHP-doc
- Fixed a bug in SpoonTemplateModifiers::createHTMLLinks(), it should handle urls correct from now 
  on
- Added an extra element in the return of SpoonFile::getInfo(). The element is called 
  human_readable_size and contains the size of 
  the file in a human readable way.
- $_FILES is now included in the variables-section of Exceptions.
- Added SpoonTemplate::getAssignedValue to fetch already assigned values.
- Fixed an issue with required files not being included.
- Rewrote the way SpoonCheckBox & SpoonRadioButton work. The number of required parameters & options 
  has been increased.
- SpoonCookie::unset now works as intended (thx to Dieter Vanden Eynde)
- Fixed an issue when using multiple cycle tags on one page
- Based on SPOON_DEBUG the error_reporting for a compiled template is set to E_WARNING or 
  E_ALL | E_STRICT


1.1.2 (2009-08-07)
----
- Fixed an issue with SpoonTemplateModifiers::getDate not having the right files required
- Fixed an issue in SpoonTemplateCompiler when using variables within template includes 
  eg. {include:file="{$path}/template.tpl"}
- Fixed an issue with assigning parameters in queries. (thx to Bert Pattyn)
- Fixed a bug in SpoonThumbnail concerning extension checking. (thx to Tom Vallaeys)
- Fixed a bug in SpoonDataGridSourceDB::getColumns concerning SpoonDatabase::getDriver. (thx to Tom 
  Vallaeys)


1.1.1 (2009-07-03)
----
- SpoonThumbnail: changed the name of checkFileType to isSupportedFileType
- There are no final classes anymore, everthing should be extendable
- Filesystem: created an alias for SpoonDirectory::move in SpoonFile
- Filesystem: SpoonDirectory move hasn't a strict-argument anymore and will trigger exceptions on 
  failure. If 
  the destinationpath doesn't exist it will be created
- Added a new Package: SpoonRESTClient, be carefull it is not backwards compatible with the version 
  pre 1.1.x
- SpoonTemplateModifiers::truncate(HTML) were removed for now, they need to be reworked.


1.1.0 (2009-07-02)
----
- An additional constant 'SPOON_CHARSET' has been added. This will be used by default.
- SpoonCookie & SpoonSession no longer use the 'strict' setting. They will return false on failure.
- SpoonHTTP::isSent no longer throws an Exception.
- SpoonDatabase is now using PHP's PDO which results in a speed increase.
- Added a method in SpoonFile to download a file (SpoonFile::download)
- Fixed a typo in SpoonDirectory::getSize
- Bugfix: SpoonDirectory::getList won't return files listed in the exclude-array anymore
- Bugfix: SpoonDirectory::delete doesn't use SpoonFile::getList anymore because this function 
  doesn't exist
- Bugfix: SpoonDirectory::getSize doesn't use SpoonFile::getList anymore because this function 
  doesn't exist
- SpoonLocale was added. This package contains some nifty lists in multiple languages (countries, 
  days of the week, ...)
- SpoonDate has now only 1 method related to dates. The others were moved to SpoonLocale.
- SpoonRadioButton, SpoonMultiCheckBox & SpoonDropDown now have an extra option that allows the 
  default security measurements
  to be overruled.
- SpoonDataGrid now seems to be in check with the changes made to the other parts of the library.
- SpoonFilter::isURL now allows tildes.
- Some classes are now united into one file for speed.


1.0.4 (2009-05-01)
----
- Fixed an issue with the template engine, when trying to parse inverse options (thx to Pieter De 
  Baets)
- Fixed a bug that caused the URL title with datagrid columns not to be used (thx to Pieter De 
  Baets)
- Added custom methods to add form elements to a form
- It's now possible to generate an example template form, based on the elements that were already 
  added
- Fixed an issue where the compile directory would not be passed to the datagrid
- Fixed an issue with SpoonDataGridColumn for confirm messages that contain special characters


1.0.3 (2009-02-13)
----
- Template engine now parses forms with their variable options to the compiled version (thx to 
  Pieter Meyvaert)
- SpoonDatabase: using tables instead of table as variable name
- SpoonDatabase: if the handler doesn't exist it should be created when calling getHandler
- SpoonImage: removed unused code
- SpoonDataGrid now has a method to retrieve the number of results (getNumResults)
- You can now set your compile directory for datagrid templates
- SpoonDataGrid::setAttributes now works as intended
- Added a number of methods to be able to clear attributes within datagrids.
- SpoonFilter::isURL allowes @ from now on
- SpoonRSS::isValid to check for valid feed
- SpoonRSS::readFromFeed will ignore invalid data
- SpoonDate updated the values of the keys when asking for days/months of the year.
- SpoonDatabase fixed minor issue where an exception could not be shown properly with parameter 
  issues
- Updated package info for SpoonThumbnail
- Fixed an issue with SpoonForm and the default enctype.
- Datagrid now has the correct colspan value made available in the template
- When using maxlength this will be used when retrieving the value with getValue()


1.0.2 (2009-01-25)
---- 
- Exceptions now include the hostname, if available
- Session variables via SpoonSession are no longer converted to a string
- Template includes now work as initially intended (thx to Pieter Meyvaert)
- Inverse template options using the ! sign are now available
- Template engine now has 2 default variables (TAB & CRLF)
- The form package has been tested with E_STRICT
- SpoonEmail now accepts templates and their needed variables through 2 new methods (setHTMLContent 
  and setPlainContent)
- Removed method setContent in SpoonEmail
- SpoonEmail now strips HTML tags from the HTML body when no plain template is chosen
- Fixed bug in SpoonEmail where returning output would sometimes trigger an error
- Made SpoonFilter::isEmail somewhat compatibele with RFC 5322 (not fully implemented yet)
- SpoonFilter::isURL supports ip-addresses. (thx to Pieter Claerhout)
- SpoonSession has an extra method: SpoonSession::delete($key)
- SpoonCookie has an extra method: SpoonCookie::delete($key)
- SpoonCookie::set fixed a bug, with serializing data


1.0.1 (2009-01-08)
----
- Renamed SpoonDatabase::getNumberOfExecutedQueries to getNumQueries.
- Fixed problem with SpoonDatabase::getNumRows
- Reworked the datagrid templates, based on the changes in SpoonTemplateCompiler
- SpoonRSS now requires SpoonRSSItem


1.0.0 (2009-01-05)
----
- More than you can imagine!
