Changes from 3.2.0-2 to 3.2-1

*Kernel:
- Fixed proper escaping of matrix cell content.
- Renamed ScaleLargerThenOriginal to ScaleLargerThanOriginal.
- Added support for using class identifiers in class filter fetching
- Improved admin design. Added media tab and optional bookmarks and history list in menu.
- Added user preferences functions
- Rewritten URL alias handling, quicker and more flexible
- Added manual URL alias interface
- Added object moved functionality when accessing a re-named object by url alias. Sends correct HTTP 301 header.
- Added sorting to search results. It now supports the same as the content fetch function.
- Added navigation part identifier as override key for content view.
- Added new design to admin.
- Added setting for optional attribute translation, you can now select which attributes can be translated.
- Added simple HTTP POST form to e-mail processing.
- Added output washing to XML edit fields.
- Fixed object memory cache coherence after storing object and attributes
- Fixed bug in dealyed publishing workflow when re-publishing an object
- Added missing include to ezworkflowtype.php
- Fixed fallback to default siteaccess when requested access does not exist
- Added support for attribute level filtering. You can now filter the result depending on the attribute value.
- Added support for attribute level sorting. You can now sort on the values of any attribute, whose datatype supports it.
- Added sort key support for ezstring, ezdatetime and ezdate datatypes.
- Added display of class attribute id in class edit, for usage in attribute sorting.
- Added support for binary file indexing. The contents of binary files are extracted and indexed in the search engine.
  This allows searching inside different files. The parsing is plugin based so you can create plugins for any format quickly.
- Added PDF and word binaryfile indexing plugin
- Added support for subtree template override with the url_alias key in override.ini
- Fixed correct indexing of chinese/japanese multibyte characters in search engine
- By adding a specific postvariable it is now possible to avoid having the class edit try load in data
  for the attributes, this is required when a datatype redirects to another page and then back again.
- Added template fetch functions class/list and class/attribute_list.
- Added classFilter support for eZContentClass::fetchList which will only include classes of a given
  ID or identifier.
- Added function to create a temporary contentobject attribute from a contentclass attribute.
- Added a preStoreClassAttribute function to eZDataType which is called before the class attribute is stored.
- Added module object to eZContentClassAttribute::customHTTPAction which is stored in the contentclass
  attribute object and can be read from datatypes by using eZContentClassAttribute::currentModule.
- Moved functions for input validation, fixup and fetching from attribute_edit.php and into
  eZContentObject. This allows for easy reuse.
- Added function hasValidationError and setHasValidationError in eZContentObjectAttribute which
  can be used to suppress a validation error entry even if an error occured.
- Added convenience function classContent() to eZContentObjectAttribute which returns the content
  of the contentclass attribute.
- Added function handleCustomObjectHTTPActions to eZDataType which can be used by datatypes
  to handle action checking themselves and forward requests to subobjects.
- Added input and validation parameters to the validateInput function which can be read
  using inputParameters() and validationParameters() in eZContentObjectAttribute.
- Added function fetchActionValue to eZDataType which tries to extract values from action names.
- Modified advanced search to support search of integer attribute values, range search.
- Boolean datatype can be searchable.
- Added 'select all' function for site which has multiple checkboxes.
- Added empty trash, empty draft function.
- Added version management function. By editing content.ini, it is possible to define maximum versions can be kept for a particular
  class. If existing version numbers equals to the defined maximum versions, oldest archived version will be removed automatically 
  when a new version is created 
- Added version remove function.
- Added url management function. All links can be edited and will be checked by cronjob. Dead link will be moved to invalid list. 
  A link has a list of all objects ( verions ) which use this link.
- Added settings for DefaultPreviewDesign in content.ini.
- Added function to define customized image size by editing image.ini. Extended image sizes from small, medium, large, reference
  and original to no-limits.
- Fixed bug of unable to convert tiff, gif image. 
- Improved general cronjob text output.
- Improved workflow cronjob text output to include the number of process,
  the number handled and all current statuses on processes.
- Added support for collaboration notification event, this is event is created
  for all collaboration items which supports notification.
- Added support for a collaboration notification handler which takes care of
  configuring notifications for collaboration and handling events.
- Changed the behaviour of approval denying and removed the Defer/Pushback button. Now denying
  changes the object version as a draft and stops the workflow process.
- Fixed workflow status id to name function, now all status ids are converted.
- Improved google and simple navigator to allow url suffix data (eg. ?Search=)
- Improved search templates to use google navigator.
- PHP function to template operator mapping can now be controlled by template.ini, this means
  that it's possible to add new php functions as template operators without programming.
  Added urlencode to default list.
- Added fetch function for search.
- Changed the content normal and advanced search to allow the use of the new fetch search.
  The default behaviour searches using PHP code like before but the new mode can be turned on.
  The new fetch function can also be used in other template code.
- Moved search result list with navigator into a separate template, there's now a normal
  search result template and an 'edit' search result template.
- Added support for specifying result items per page for advanced search.
- Made sitemap template more useful
- Added support for search for objects which are published between two dates, the dates are
  specfyied using timestamps.
- Added posibilty to limit filter results of advanced search thru general search filter. Filter works for classes and subtree.
- Added new versionview and node view viewmode called plain which is used for plain read-only views
  on objects. It's currently being used in the collaboration approval system.
- Added plain override templates for most of the admin default classes.
- Added support for redirecting to a specific url after a content object is published, the
  uri is specified in the template as a HTTP POST variable.
- Added support for determing the how notification collections are made for collaboration items
  that supports notification. It currently supports one collection per item and one per
  participation role (approver, author etc.).
- Added support for specialized notifications for approvals, one notification is sent to approver
  and another to the author.
- Added version and relase numbers to database, that way it's possible to now
  the state of a database for future upgrades.
- Added custom attribute support for object and custom tag.
- Added new database indexes on search table and on object tree table.
- Added support for letting extensions override translations in the kernel translation files.
- Improved the i18n template operator to work with extensions. This means that the x18n
  operator is deprecated.
- Added support for having translation files in a specific charset. These translations
  are used when the internal charset is the same as the translation charset thus
  removing the need for charset translation.
- Improved the template parser for ezlupdate, it will now allow more whitespaces between elements.
- Added support for creating/updating multiple translations for ezlupdate.
- Added detection for non-strings in i18n translations in ezlupdate.
- The autoload path for templates are now defined in site.ini as an array instead of
  a semi-colon separated list. The new setting is called AutoloadPathList.
  The old setting is kept for compatability and will be read but is considered deprecated.
- Added support for having template autoload files in extension by
  using the ExtensionAutoloadPath setting in site.ini.
- Fixed wrong link in changepassword e-mail.
- Removed unused parameter 'headers' from eZMail::extraHeaders() and updated description
- Added ContentType setting in MailSettings in site.ini. If set, this will set the content type
  of all mail sent from eZ publish. Default is text/plain.
- Added error.ini, which controls the behaviour of eZ publish errors.
  Each error code can be set to display an error page, redirect to a url,
  rerun a module or embed a module in the error page.
  The error codes can also be mapped to HTTP error codes.
- Updated templates for error codes to make it easier to understand what is wrong.
- Added previous/next function for section list.
- Added login support using textfile which saved user account information.
- Added login support using LDAP server.
- Added empty class edit templates for datatypes which don't have them already.
  This was done to get rid of the warnings.
- Removed some old debug messages from datatypes.
- Fixed variable name typo in ezextension class.
- Created new class eZScript which takes care of starting, initializing and shutting down
  common things in scripts.
- Added pending list in personal
- Add content cache expiry variable in template which makes it possible to set cache limit or disable
  cache depending on template file.
- Added feedback message for forgot password if user use an invalid key to confirm.
- Fixed bug for content preview which can't show children.
- Fixed bug of unable to edit object although user has permission to create and edit this object using subtree policy.
- Added new module package which will handle listing, viewing and uploading of eZ publish packages.
- Added PHP accelerator information to the setup/info page.
- Added previous/next function for role list.
- Added support for turning debug includes on and off in eZScript and ezpm.php.
- Integrated the eZScript and eZCLI classes into the php scripts runcronjobs.php, updateezxmltext.php,
  updateniceurls.php and updatesearchindex.php.
- Made sure the bork translator didn't translate words that start with a % (percent).
- Added master control switch for template cache, if disabled all template based caches will be turned off.
- Added maximum limit value for the fetched page limit values in search and avancedsearch.
- Added reset button search statistics page.
- The MailSettings/AdminEmail is now the master setting for all other email settings, this means
  that it's possible to change all email adresses by changing this if the other ones are empty.
- Added setting for control whether unique email addresses are required when registering a new user,
  default is to require it.
- Added back the API reference viewer, it is now a separate module which can be used to view
  the generated reference as well as other references (in the future). The url is reference/view/ez/
- Added a site list to site.ini under SiteSettings, this is a list of sites which this installation
  has. Each item on the list is a siteaccess, often this is the user siteaccess for an installed
  package.
- Added mapping from class/attribute string to attribute id in attribute filtering and sorting.
- Added alphabetic sorting of role list.
- Made sure tiff files support the .tif extension as well.
- Made sure removal of objects cleaned up the url alias table correctly.
- Made sure newly created objects would remove old aliases with the same name from the alias table.
- Renamed the packages corporate_site to corporate and news_site to news.
- Changed title path listing to show the path in reverse, this makes the title better for bookmarking.

*DataType:
- Added new datatype eZSelection, which is made as a replacement for enum. It's faster and simpler to work with.
- Added new datatype eZMatrix.
- Added new datatype eZObjectRelationList which will replace eZObjectRelation and also supports
  inline editing.
- Made eZRangeOption datatype on by default.

*Optimizations:
- Optimized object view when XML field contains multiple related objects.
- Optimized override cache format, now uses switch instead of nested if statements
- Optimized object edit of XML fields containing multiple embeded related objects.
- Optimized object rendering of XML fields containing multiple links.
- Optimized object edit when XML field contains links. It was one db query pr link, now it's optimized to one db query pr XML field.
- Optimized text translation system, it will now only fetch requested contexts instead of all.
  The optimization reduced both time taken and memory used.

*Bugfixes:
- Fixed bug for copy object function.
- Fixed bug for role edit function which can't remove * if limitation changed from "allow all" to "allow limited".
- Add i18n(translation) support when create a new content object. The default name of the object could be translated. 
- Role list does now not show temporary roles.
- Fixed bug when assigning a node to it self.
- Fixed malfunctioning string/array operators
- Fixed showing correct title for object relation datatype
- Fixed setup safe mode test, http://ez.no/developer/ez_publish_3/bug_reports/ez_setup_tests
- Fixed using datatype enum as object pattern name in classes
- Fixed problem with object discard, http://ez.no/developer/ez_publish_3/bug_reports/problem_with_object_discard
- Fixed bug Guest (logged in) users cannot manage their bookmarks
- Fixed url checking of email adresses
  http://ez.no/developer/ez_publish_3/bug_reports/cronjobslinkcheckphp
- Fixed bug of user can't read own account information using policy read Class( User ), Owner( Self ).
- Fixed bug with notification system crashing when dirty data is present in the database.
  http://ez.no/developer/ez_publish_3/bug_reports/notification_crashes
- Fixed bug with phrase search
  http://ez.no/developer/ez_publish_3/bug_reports/problem_with_phrase_search
- Fixed storing SMTP settings during setup, http://ez.no/developer/ez_publish_3/bug_reports/setup_does_not_store_smtp_settings
- Fixed problem with new template creation
  http://ez.no/developer/ez_publish_3/bug_reports/template_creation_does_not_create_missing_dirs
- Fixed showing correct title for selection datatype
  http://ez.no/developer/ez_publish_3/bug_reports/value_of_datatype_ezselection_not_usable_as_content_object_name_pattern
- Made sure all fopen used 'rb' when opening, this avoids problems with MS Windows
  converting newlines in files.
- Fixed using whitespace in convert path
  http://ez.no/developer/ez_publish_3/bug_reports/convert_doesnt_work_when_located_in_a_directory_with_spaces_on_windows
- Fixed bug when creating new templates (in admin) for site accesses with different name than the site design

*Setup:
- Made new design
- Added help and install summary to each step
- Moved install steps from kernel/setup/parts/init to kernel/setup/steps
- Added install class, eZStepInstaller, which all install steps are derived from
- Added i18n support to all install steps
- Added site template step for choosing site template
- Moved database initialization to end of installation
- Added support to hide steps which to not need user interaction
- Made sure the password is used when connecting to database.
- Made sure some steps are not counted in the total number of steps when calculating percent.
- Fixed layout when choosing site templates
- Added back, next, refresh buttons in setup depending on setup steps
- Added image processor to summary during install
- Moves Language selection to after database selection.
- Var directory is now separate for each installed package, this avoids the cache and storage conflict.
- Made sure gallery files are placed in the var/gallery directory instead of var.
- The database dropdown in site details will now recognize databasenames that match the package name,
  if no match is found it assigns one unique database to each package.
- Added .windows and .linux detection to recognize use of windows or linux installers (apache, mysql, etc)
- Removed unused code
- Fixed url bug using windows installer
- Changed setup width to 780 pixels

*WebDAV:
- Added ezwebdavcontentserver which builds on ezwebdavserver. Provides webdav interface to the site content.

*Templates:
- Made default size of textarea fields like text line fields.
- Made sure that the new $attribute_base variable is used to generate post variable names in datatype edit templates.
  This is required for datatypes to be used in the new eZObjectRelationList.
- Added EditDirtyObjectAction in ContentSettings, to choose wether to always edit the current version,
  or show version list as usual.
- Added wizard for creating new datatypes.
- Added user/settings/<uID> into user admin user (class) template

*Package system:
- New system for handling eZ publish packages.

*Library :

eZ db:
- Added support for inserting an SQL file in eZDBInterface.
- Added support for setting the global instance.
- Added support for getting version number of database.
- Added support for getting all available databases for logged in user.
- Fixed insertFile() function to work with non-unix endlines in SQL files.

eZ utils:
- Fixed the detection of existing urls in eZHTTPTool::createRedirectURL, now username and password
  are detected and extracted.
- Moved the classes eZLog, eZFile and eZDir into the new eZFile library.
- Fixed magic quote problem for array variable if magic_quotes_gpc is ON in php setting.

eZ ini:
- Added support for more characters in accociative arrays defined in .ini files.
- Added support for fetching an ini file by supplying the full path thus ignoring
  overrides and cache files.
- Added check for existing settings directory, if it doesn't exist it creates the path.
- Added parameter to save() which controls if array should be reset before being dumped, the default
  is not to reset.

eZ debug:
- Added support for listing included files (off by default).
- Added support for stylized output when using plain text.
- Added support for suppressing the various debug levels, accumulators and timing points.
  Default is to show all of them, as before.

eZ i18n:
- Changed the 0 character into a chr( 0 ) to avoid problems with unpackers messing up the line.
- Added support for Unicode encoding which is an array with Unicode values. Conversion from
  and to this encoding is supported seamlessly.
- Cleaned up the code which decides how the conversion should be done from input charset to output charset.
- Removed bad use of reference in eZUTF8Codec.
- Added koi-r charset and the cp125* charsets to the charset info class.

eZ webdav:
- New library. Implements basic WebDAV server framework/functionality. May be used to build WebDAV servers.
- Added ezwebdavfileserver which builds on ezwebdavserver. May be used to serve a part of a flat/local filesystem.

eZ locale:
- Fixed sorting of the locale list, it was currently not work.
- Added support for querying the locale about allowed charsets.

eZ XML:
- Fixed regexp to match xml attribute to make it handle - (dash) as it should have been.
- Added convenience functions for querying if node has attributes or children and getting the count.
- Added functions to return one or multiple elements by name from the children.
- Added convenience function which allows fetching attribute names and values into PHP arrays.
- Added convenience function to append multiple attribute values which are defined in a PHP array.
- Added function to get all attributes in defined namespace.
- Added convenience functions for fetching the text content and attribute value of a child
  element by naming it.
- Added convenience function to fetch the children and first child of a named child element.
- Added convenience function to fetch the text content of all child elements with a given name.
- The appendChild and appendAttribute now returns the element and attribute that was added.

eZ template:
- Added basic string and array handling operators.
- Added support for defining template function and operator names dynamically trought a php function
  in template autoloading.
- Added support for turning off cache-block caching. A new setting in site.ini controls it.

eZ sys:
- Added the possibility to return indexDir and indexFile without siteaccess at the end.

eZ module:
- Added function to return the current redirection URI which is built from module, view and parameters.
- Made sure it's possible to do redirections and reruns from the error module.

eZ extension:
- Added the helper function expandedPathList to turn a list of extension with an optional
  subdirectory into real expanded paths.

eZ session:
- Added support for defining the name of the session variable.
- Added support for having a unique session name per siteaccess, thus allowing
  unique login per siteaccess even with url based siteaccess.
- Added two functions for stopping and removing the session.
- The session will now listen to the session-required in the site basics when it decides to start the session or not.
- Made sure the superglobal $_SESSION variable is used instead of session_register etc.
  for handling session variables in eZHTTPTool.

eZ cli:
- New class to handle terminal and CLI specific functionality.
- Moved class in to the eZ file library.

eZ dir:
- Added function directoryPermission() which returns the permission mask
  which should be used to create directories.
- Moved class in to the eZ file library.

eZ log:
- Moved class in to the eZ file library.

eZ file:
- New library for dealing with files, directories, archives and compressed files.
- Added create() function in eZFile which creates a file somewhere with some optional data.
- Added support for recursive directory copy in eZDir.

*Translations:
- Updated Norwegian translation.
- Updated Swedish translation.
- Updated Chinese translation.
- Added Hungarian translation
- Added Italian translation.
- Added Danish translation.

*Miscellaneous:
- Added the ezpublish.cron crontab file that takes care of running the runcronjobs.php script every 15th minute.
