== 1.6.0 (2009-07-20) ==
* Added flags to control uniqueness/transferability of items.
* Crafting system implemented.
* A user can purchase recipes. These recipes have a list of materials; a user can then turn some
raw materials in to another item entirely.
* Two new pieces of artwork have been added. Thanks to Tigress once again!
* User_Item API refactored.
* Updated database ER diagram
* English inflections fixed up a bit.
* Updated library submodule versions. We're now using ActiveTable 2.5.0 and Smarty 2.6.26.
* Updated HTML Purifier to 4.0.
* Updated TinyMCE and Spry.
* Preferences page uses the (new) password/confirmation validations in Spry now.
* A TinyMCE / Spry conflict was observed and repaired (in the TinyMCE code).
== 1.5.0 (2009-07-05) ==
* Bugfix in moderation panel.
* Fixed a typo in the moderation panel.
* Second parameter of the redirect() function was made optional, as it
has been intended to be.
Note that all of these fixes have been available in Git for a long time,
but I am tagging them as 1.5.0 now.
== 1.4.0 (2008-04-20) ==
* Updated ActivePHP to 2.4.
* PostgreSQL support now included.
* ORDER BY dsl syntax added. Legacy SQL fragment mode is still supported.
* Fixed datetime and casting issues so Kitto will run on PostgreSQL.
* Added switch statements to Kitto where RDBMS-specific queries were used
for performance's sake.
* Added a 'category' dropdown to the board add/edit screens.
== 1.3.1 (2008-03-16) ==
* Updated to ActivePHP to 2.3.4.
* CSVIO now has the 'O'utput ability that its name implies it has.
* ActiveTable bugfixes related to magic PKs.
* Resul set slices can be pulled from #findBy() and #grab().
* Fixed a bug in the APC Cacher where it would not always prepend the database
name to the cachekeys.
* Refactored several pages/classes to use ActiveTable's new result set slicing
functionality. This reduces the amount of redundent pagination code in Kitto
and ties it to MySQL a bit less.
== 1.3.0.1 (2007-12-13) ==
* Fixed a small bug reported by Haywire. The user object would be made
unavailable to Smarty on the users online list because $user would be
overwritten with an online user array. This would only ever be an issue if
you wished to show user information in the footer.
== 1.3.0 (2007-12-09) ==
* A minor bug reported by Haywire has been fixed. If a non-logged-in client
attempted to view a forum post, instead of being asked to log in, a parse
error would be thrown.
* Items now stack in the inventory. More than one item can be used, given,
or destroyed at once. Certain classes of items can only be used one at a time
(ie, you only want to use one paint brush in a stack). These can still be
given and destroyed in bulk.
* Shop keeper, toy, and paintbrush images added. Art by Tigress.
* Boards now have categories. Like boards, entire categories may be permission-
protected to prevent people from seeing them. The breadcrumbs for each board
page have been updated to include the category.
== 1.2.2.4 (2007-10-10) ==
* The users online count in the footer now only counts logged-in users.
Previously, all users and guests were counted. However, guests online is not
a particularly interesting (and some would say it is downright misleading)
statistic.
* The search page would break if you attempted to search for a user/pet with
a special character in it. This bug has been fixed.
* Added the require for external_lib/Log.php. This has been mistakenly omitted
since 1.0.0. Oops.
* ActivePHP updated. The new version is focused on optimizing ActiveTable.
Previously, one or more DESCRIBE table; queries would be executed on the
primary table and any LOOKUP'd tables every time an object was instantiated.
Caching for the query results has been implemented.
The method of caching that will be done depends on your environment. If APC
is detected, it will be used to cache table structures, eliminating all of
the overhead involved in the DESCRIBEs - the queries are run once and cached
until the server reboots or the cache is otherwise cleared.
In lieu of APC being installed, $GLOBALS will be used. This ensures DESCRIBEs
are only one once per pageload, no matter how many classes are instantiated.
A single table will only be described once when a user hits a page.
== 1.2.2.3 (2007-10-09) ==
* Fixed the CAPTCHA image generator to fall-back to a non-TTF. Patra discovered
that the Kitto system check reported all-OK despite TTF support not being
enabled on their server, causing the CAPTCHA to fail.
== 1.2.2.2 (2007-10-03) ==
* System check script added. This file allows a user to know if their server is
capable of running Kitto.
* The include_path ini_set in the config file has been removed, and all
requires()s involving libraries in the external_libs folder now point
directly to external_libs. This should make installation easier for people
who have PHP setup to ignore ini_set directives.
* The RELEASE_MODE has been set to 'DEV' in the config file, and the blank PROD
case has been removed from the switch. Some Apache setups do not allow you to
set environment variables in .htaccess, so this should make Kitto easier to
install on those kinds of setups.
* The mysql4 and mysql5 DDL files have been consolidated into one DDL file that
supports both MySQL 4 and MySQL 5.
* There is a db/data/_all.sql file for those using PhpMyAdmin and wishing to load
in all of the data at once instead of doing it table-by-table.
== 1.2.2.1 (2007-09-30) ==
* Edward <are.you.cursed@gmail.com> discovered that the db/mysql4_ddl.sql file
in 1.2.2 had not been updated since 1.2.1 and was causing problems. This has
been corrected.
== 1.2.2 (2007-09-26) ==
* Added a page to display users/guests currently browsing the site.
* Added an option to the preferences page for surpressing a username from
showing up on the online users list.
* Added a user/pet search page.
== 1.2.1 (2007-09-23) ==
* Kitto no longer does the double-md5 to store the password hash. A unique
salt is generated per-user and used to generate the password hash. This
is similar to the way the throw-away tokens for the cookie are implemented,
and it provides greater protection against rainbow table attacks. - Fix
requested by Eurleif.
* Fixed the 'Account Information' section to not require the user to pick
a new password when changing their e-mail address. - Fix requested by
Eurleif.
== 1.2.0 (2007-09-23) ==
* Fixed a bug where Kitto would die with a fatal PHP error if the user your
cookies belonged to does not exist.
* The hash cookie now contains a throw-away token instead of the user's real
password hash. The token is generated using the password hash, the client's
IP address, and a random value. Even if an attacker is able to get this hash,
they will need to spoof the victim's IP to make it useful. These salts can
expire, too.
* Most of the admin section has had the Spry form validations added so
they are consistent with the rest of the site.
* Board admin section added.
* Boards can now be set to only allow users with certain permissions to view
them.
* Added external_lib/PEAR.php file - this is a required external lib that is
'usually' fine to leave out. In some cases, a shared host may not provide the
library.
* includes/meta/debug.php added with exception handlers. The production handler
should be customized.
* Item and restock admin has been added.
* Staff page added. It will list any staff groups (and members of those groups)
that have show_staff_group = Y. Appropriate options were added to the group
admin pages.
* Reset password page added.
* Terms and conditions page added with basic Ts & Cs.
* Added an ER diagram of the database to the docs/ folder.
* Locked threads now have an icon indicating that they are closed.
=== 1.1.0 (2007-09-09) ===
* Fixed p2nl modifier. Editing posts with the Rich Text Editor will no longer
cause too many newline characters to be inserted, causing the formatting to
look terrible.
* The error page for creating new threads has a 'back' button that will
preserve any title or message entered. This prevents you from losing your
post text if you forgot to enter a title.
* A real permission system has been implemented. Users belong to one or more
staff groups, and each group has certian permisisons mapped to it.
* The admin panel has been (mostly) completed. Items and shop restock jobs are not done,
but the rest of the site can be administrated.
* Form validations using Adobe's Spry library have been added to all forms. This change adds
visual cues and errors without the need to reload the page. Use of Spry will be expanded to
do AJAX requests in order to perform username lookups, autosuggests, etc., in the future.
=== 1.0.0 (2007-09-04) ===
* Initial release.