Changelog 3.4.x

Kajona V 3.4.1 "connectivity"


Module Eventmanager
NEW: added template section "event_details_registerlink" in modul_eventmanager so the register link will only be visible if the event allows registrations and the user has the permission to do so
BUG: modul_eventmanager didn't use SEO features
BUG: modul_eventmanager sent text/xml content type instead of application/json

Module LDAP
NEW: moved module ldap from playground to trunk

Module News
BUG: disabled a closure since not support by php < 5.3. will be renabled for kajona 3.4

Module Pages
BUG: wrong link in toolbar when editing page properties
BUG: portal language has to be passed to portal editor admin links
BUG: slightly modified error-handling. if an exception is thrown during the generation of page-elements, the error-page is shown for errors. this redirect can be disabled during development by setting the config.phps' debug-entry "debuglevel".

Module Samplecontent
BUG: samplecontent installer missed to escape br on error-page

Module Stats
NEW: migrated stats-queries to prepared statements
BUG: fixed error in stats-common report query
BUG: charts could crash in rare cases due to an excessive padding. quick fix for 3.x series, v4 will be based on client side charts.

Module System
NEW: added application/json to content types to get compressed by apache mod_deflate
NEW: included jQuery 1.6.4 for the use in the portal. Will replace YUI with Kajona 3.5/4.0
BUG: padding to axis label is onlay added when label is not empty
BUG: mysqli-driver missed to add a detailed error-description in case of compile-errors for prepared statements
BUG: fixed the modifier of class_array_iterators' member vars so that they may be used by subclasses

Module User
NEW: The Kajona-User-Subsystem allows logins with older, md5-hashed passwords

Kajona V 3.4.0.2 "connectivity" (3.4 BETA)

Kajona V 3.4.1 BETA "connectivity"; Revision 3913 - 4132

Element Directorybrowser
NEW: moved directorybrowser from playground to trunk

Element Portalupload
NEW: the portalupload-element no longer requires a downloads-archive and a filemanger-repo, the downloads-archive is sufficient. the internal, hidden filemanager-repo is used for uploads instead.

Systemtask Pageexport / Pageimport
NEW: moved pageimport/export from playground to trunk

Module Dashboard
BUG: a single users widgets are deleted from the database as soon as the user gets deleted, too

Module Eventmanager
NEW: the eventmanager supports a calendar-based view, based on the FullCalendar (http://arshaw.com/fullcalendar/) (#645)
NEW: added a samplecontent installer for module eventmanager

Module Navigations
BUG: systemtask "validate navigations" skips auto-generated navigations (#646)

Module News
NEW: added actionListCategories and actionListNews to the news-admin-class, accessible via xml
NEW: the languageswitch includes the news-title as seo-keywords when switching the language on news-details (#628)
NEW: updated the news-methods to be able to handle androids REST-requests

Module Pages
NEW: the portaleditor allows to set page-elements active or inactive. Therefore inactive elements are rendered on pages, too, as soon as the portaleditor is enabled. (#610)
NEW: made class_modul_pages_portal conform to all portal-classes (implementing interface_portal)
NEW: various performance-improvements. page-generation (portal & backend) may be up to 30% faster.
NEW: added the language-switcher to the admin-pages-list (was visible only on the pages-content list) (#634)
BUG: fixed portaleditor in IE
BUG: fixed method signatures to match strict standards
BUG: Pages folderview uses wrong page language when showing elements (#653)

Module PDF
NEW: Updated tcpdf to 5.9.103
NEW: class_pdf::setTextColor(R,G,B)

Module Stats
NEW: the stats-adminwidget renders a small chart, too
i18n for stats graph (#621)
BUG: query to determin top-searchterms was erroneous (#655)

Module System
Core:
NEW: class_modul_system_changelog::getSpecificEntries(), used to fetch records from the change-table filtered and limited by specific values
NEW: hacked a simple emulation of phpunit into autotest.php. simple tests may be run by browser again, complex ones won't be supported and should be run by phpunit out of your favorite IDE.
NEW: class_root loads details only on request (lazy loading). reduces the total number of queries significantly
NEW: added the config-option "loginproviders". can be used to activate additional login-providers. If not present, the system will use "kajona" as the fallback value.
NEW: class_config supports the handling of multiple config-files
NEW: xml-methods are no longer neccessarily defined in an _xml class. in addition, methods callable via the xml-interface can be marked with an @xml annotation. if given, the method is executable by an xml-call
NEW: added xml-annotation action loading to class_portal
NEW: added xml-annotation action loading to class_admin
NEW: class_request_dispatcher. harmonizes duplicate code in xml.php and index.php. may be refactored to a complete chaining-system in the future (compare java servlets)
NEW: constant _xmlLoader_ is set transparently, no need to set manually
NEW: removed system-setting _system_output_gzip_ - gzipping should be handled by apache rather than the system, much more error-safe
NEW: class_csv can skip the headers during export
NEW: massive internal api-changes. many methods located at class_model are moved to class_root. to be compatible with the logic of other model-classes, class_root now holds its properties like other value-objects and stores them back to the database as expected (by using a single update). reorganized a lof of low-level api-calls at class_admin / class_portal in order to be compatible with the new class_root. class_root is getting more strict concerning OO-patterns, so for many use-cases an instance of class_modul_system_common should be used in order to modify a system-record without its matching model-class-instance.
NEW: when calling the xml-interface, the mandatory <xml>-header may be suppressed by calling class_xml::setBitSuppressXmlHeader(true)
NEW: the mail sent in case of an exception contains the last urls called by the user (admin & portal)
NEW: added a first and still unfinished version of an oracle driver. therefore some of the db-parts had to me migrated to comply with the 30-char limit of table-names and column-names
NEW: when checking for registered subscribers of delete- and status-change-events, the system valdiates if the class to check is not abstract. this allows model-classes to be abstract, e.g. for common base-classes.
NEW: passed env-params are stored with class_carrier as a static var. this reduces the number of array_merge calls when calling getAllPassedParams().
NEW: debug-information are sent on xml-requests, too
NEW: the current aspect is cached, this boosts performance
NEW: added  class_wadlgenerator, is capable of generating a wadl-document required by REST-clients. class_modul_login_admin_xml makes use of this class
NEW: added more http-statuscodes, the xml-classes make more use of different statuscodes in order to pass more informations to the clients
NEW: added rewrite-rules for xml-requests to the .htaccess file. the wadls generated are capable of using full url-rewriting, other xml-handlers may follow. schema: /xml/[admin/]/module/action/systemid/
NEW / BUG: class_filesystem now provides the method readLastLinesFromFile() in order to explicitely read the end of a file. otherwise tail-like operation may have lead to a out of memory error. adopted to admin-log viewer and admin-widget. (#632)
BUG: fixed the index-creation for the sqlite3- and the postgresql-drivers
BUG: fixed some cases where the xmlLoader constant was checked erroneous
BUG: fixed method signatures to match strict standards
BUG: class_db checks dbprefix' position, too - and not only the existance
BUG: sqlite-driver used a wrong fetch-method for prepared-statements triggered by getArraySection() (only when using a special set of params)
BUG: setting a records' status could have fired the the status changed event twice
BUG: a records comment (system-table) could get lost in case of xml-setAbsolutePosition-calls
BUG: the mysqli-driver handles compile-errors of prepared-statements as expected (returns false instead of triggering a php-warning)
BUG: lockmanager missed to unlock records in rare cases
BUG: fixed rendering of x-axis labels for line-charts rendered by the ez components chart engine
BUG: the redirect-rules are checked before skipping all non-html & rss feeds. Otherwise the root-page (http://ddd.dd/) was skipped, too. (#564)
BUG: prepared-statement params missed to be included in debug-prints when calling pArraySection

Toolkits:
NEW: class_toolkit::registerMenu(), used to generate a java-script based menu for given items in the generated dom-tree
NEW: backend: the url-addon "printView" forces the system to load the skin using the template print.tpl. usefull if you want to provide print-view of the current backend-view
NEW: a fake-module "modul_commons" is introduced into the admin-lang section. the module should contain a list of lang-entries used multiple times in order to reduce duplicate lang-entries. adopted the new entries to some modules.
NEW: class_folderview_admin is now reduced to a minimal implementation. all methods have been moved to its base-implementations / modules. reduces fragmentation and increases maintainability. (#620)
NEW: added a new toolkit-field getFormUserSelector, used to select a user or a group. supports autocomplete out of the box.
NEW: updated YUI to 2.9.0
NEW: admin-js method selectCallback() takes an optional second callback-param. the callback is trigger between the passing of form-fields and the closing of the dialog
NEW: drag n drop handlers are initialized by their loader-callbacks instead of an internal safe-init method
BUG: drag&drop didn't work in IE9 (dirty HACK, the problem seems to be in KAJONA.admin.loader.load() -> http://trace.kajona.de/view.php?id=636) (#633)
BUG: validation-errors set manually are no longer ignored on form-validation
BUG: getLinkPortalHref() now takes the target-language into account when searching for seo-keywords (#628)
BUG: splitUpLink() failed in case of nested tags
BUG: in case of only a single aspect available, the aspect-chooser was rendered, too
BUG: when uploading a file in folderview mode using the fallback-upload (no flash), the folderview-param was lost on reload

Installer:
NEW: the installer checks the availability of the db-driver selected
BUG: sample-content installers failed in some cases, especially when trying to install non-existant elements (#638)
BUG: fixed the language-handling of the samplecontent installers. avoids problems with null-primary keys
BUG: during installation, the default-language is set before the current admin-language is read in order to pass it to the user created by the installer

Module Tags
BUG: fixed tags samplecontent installer
BUG: deleting a tag failed in some cases

Module User
NEW: introducing the new user-subsystem. provides a flexible way of handling different-login providers.
NEW: added ldap-support to the user-subsystem, but still in playground-repository
NEW: when creating a new user, the dashboard-widgets are created by the user-class itself and not by the calling class

Kajona V 3.4.0 "berlin"

Revision 3864-3912

Module Downloads
BUG: downloads' search plugin missed to add the action for links in generated results

Module Navigations
BUG: quotes have to be escaped when used in tooltip

Module News
BUG: news-edit out of PE in news-details-view failed (#625)

Module Pages
NEW: alias-page-nodes create the links to the target-page directly (instead of triggering an internal redirect)
NEW: pages and folders can be deleted recursively
NEW: folder may only be created on root-level
NEW: clicking tree nodes harmonized, loading the sublist in all cases
NEW: Page name now hidden for page aliases (not needed)
BUG: editing page-aliases didn't show language switch
BUG: a page may only be deleted if there are no other pages assigned to the page
BUG: class_modul_pages_page::generateNonExistingPagename() used the internal pagename instead of the passed one when cheking for duplicates
BUG: selecting the root-folder didn't work in folderview-mode
BUG: Folderview doesn't show 'apply' buttons for page aliases when it's not allowed to select aliases
BUG: when copying page elements, pages with anchor links could be chosen as target page
BUG: when trying to access an disabled page the errorpage should be shown (#624)

Module System

> Kernel / General
NEW: all modules are using the "new"-icon
NEW: changed datatype of rights-columns to text, avoids problems on system with many user-groups
NEW: added webfonts to list of cachable static files in htaccess
BUG: class_session masquerades session_start by @, avoids content sent before the regular headers (e.g. on cli)
BUG: zip-files contained an unnamed folder on first level (#622)
BUG: xml-parser missed to handle CDATA-sections correctly
BUG: constant _system_dbdump_amount_ was not handled corretly by the database-layer

> Toolkit
NEW: added params to class_systemtask_base::generateAdminForm() in order to trigger adminTasks outside of the system-admin-view
NEW: added param $bitElements for formInputPageSelector()
BUG: when deleting an element, the dialog escapes quotes in the js-dialog

Module Users
BUG: last-login entry in module users' list check the wrong permissions

 

 

Kajona V 3.3.1.10 "berlin" (3.4 BETA)

Revision 3398-3863

Element Languageswitch:
NEW: languageswitch.tpl adds full-length language name to A-title

Element Paragraph:
BUG / TEMPLATECHANGE: element_paragraph inserted empty <h2> tags when no title was given. Now there is another template section called paragraph_title_tag which is only used when there's a title available. Old templates aren't affected of this change.

Element Portallogin:
BUG: the element missed to compare the new password-validation correctly when requesting a new password

Module Dashboard:
NEW: implementation of a admin-system-wide calendar.
NEW: dashboards' calendar-view supports pageing, a legend and the rendering of events. in order to render events within the calendar, a module-admin class should implement the new interface interface_calendarsource_admin. The calender iterates the admin-instances and asks for events for a given intervall.
NEW: the elements.tpl section used to render a widget can be overwritten by a concrete widgets. this introduces the possibility to create widgets different from the default layout (e.g. increased width)
NEW: dashboard is able to handle aspects.
NEW: widgets are loaded asynchonous via AJAX. speeds up the loading of the dashboard. there are no changes required to the widgets themself (#572)
NEW: changed the signature of a few methods from private to protected in order to be overwritten by subclasses

Module Downloads:
NEW: integration of portal-editor to galleries and downloads. (#580)
BUG: partial sync failed on root-level of archive / gallery

Module Eventmanager:
NEW: new module

Mdoule Filemanager:
NEW: added option to cross-edit images not known directly to the filemanager. this introduces the possibility to edit image out of other forms, e.g. the element-image (#552)
NEW: the image-cropper is now operating in a overlay dialog. this reduces the clicks required to edit a single image.

Module Galleries:
NEW: edit image in galleries integrated into portaleditor
NEW: the gallery supports the overlay of transparent pngs, too. so, in addition to regular text-elements, pngs may be used. right now, only transparent pngs are supported, the usage of gifs may result in erroneous images. (#411)
NEW: integration of portal-editor to galleries and downloads. (#580)
BUG: partial sync failed on root-level of archive / gallery
BUG: empty piclist-sections in the gallery-template generated a division-by-zero warning. empty sections are now skipped completly in order to improve the performance.
BUG: galleryRandom element used wrong admin-element class
BUG: random-image doesn't register a new additional title with the current page

Module Guestbook:
BUG: guestbook admin list didn't trim the output so sometimes the layout broke
BUG: status of new guestbook posts was not set to inactive. refactored some parts of the classes. thx to js! (#611)
BUG: fixed null-contraints on guestbook-post table

Module Languages:
BUG: deleting the language currently set to be used for content-editing in the backend could lead to unassigned entries. up from now, the language is reassigned with the first out of the list of languages available. (#613)

Module Navigations:
NEW: navigations are sorted by their name in admin list
NEW: navigation-points can be reordered within the navigations' hierarchy (#573)
NEW: navigation-point placeholder %%lastmodified%%, containing a w3c conform date-time timestamp of the last modification of the linked page
NEW: implementation of an auto-generated navigation based on page-nodes.
NEW: navigation-generation is reworked. in the future, the navgation-tree is loaded once completely and cached by an internal array. the navigation-generation traverses this structure afterwards.

Module News:
NEW: merged news basic- and content view into a single view. therefore the permission "right1" (edit news content) is no longer used. (#565)
NEW: integrated the tags into the module news
BUG: news languageswtich missed to include the pe-param
BUG: news-element missed to return a boolean value when being loaded from cache -> the entry was invalid even if being valid

Module Pages:
NEW / APICHANGE: updates page-model, migrated static deletePage(id) method to local deletePage() method, now being called on the concrete object
NEW: added-page node type "alias". Used to link to external or internal pages, especially relevant for navigation generation (#619)
NEW: creating pages via the portaleditor is now fully supported (#474)
NEW: pages may be attached to pages, so folders are not longer necessary in order to build hierarchical structures (but still may be used)
NEW: pages-folder names are now language-dependant. refactored parts of the pages-admin-class
NEW: Tags backend integration, as a sample implemented for pages.
NEW: Page list is also showing the field 'browsername' (page title). The browsername is now a required field.
NEW: simplified workflow for copying page elements (#590)
NEW: removed system-setting _pages_max_cachetime_ since no longer needed. all cache-durations are set up via the elements.
NEW: the additional page-title is cached, too (affects only class_modul_pages_portal) (#566)
NEW: optimized check if the portaleditor is enabled. now evaluated only once (instead of two times)
BUG: portal-element used wrong systemid as cache-identifier, cache failed in some cases
BUG: pe-new menu failed on IE
BUG: fixed errors handling the shifting of page-elements. when creating new elements the current language wasn't taken into account temporarily, setting a position absolute failed in some rare cases
BUG: copying a page-element failed for some special characters (#584)
BUG: under some circumstances the hidden anchor links caused unwanted effects on the portal layout
BUG: fixed the handling of fallback and error pages for multiple languages

Module PDF:
NEW: moved from playground to trunk

Module Postacomment:
NEW: when creating a postacomment-post and a user is logged in, the username is populated into the field (#523)
BUG: the form to edit a postacomment-comment populated the comment-field with the username instead of the real comment
BUG: changed the cache-leasetime of postacomment elements to -1, avoids problems when validating forms

Module Ratings:
BUG: rating wasn't rounded in admin lists (#604)
BUG: fixes rating-styles in kajona_30 template

Module Search:
BUG: search highlighting did break links in some cases. right now solved with a workaround, at least the links remain working. may need some additional tweaking. (#600)

Module Stats:
NEW: the stats-dates and intervals are saved with the session, so are being kept during plugin-switches
NEW: stats remove trailing slashes from referers (#527)
NEW: the stats-report-content is loaded via a AJAX request after the delivery of the page itself. this way, the browser doesn't seem to be "blocked", the user is notified of the loading-operation instead

Module System:

> Cache
NEW: system constant system_browser_cachebuster to be added as a GET parameter to JS/CSS requests. The constant can be used in all templates. By increasing the value, browsers can be forced to reload the files from the server, regardless of the browsers caching configuration and sent HTTP headers. With the corresponding system task this can be done automatically. The system task is being called after every module update via the installer. (#516)
NEW: setting to count cache-hits removed from constants. from now on, the boolean debug-option "cache" provided in the config.php enables the counting of cache-hits. removed system-setting _system_cache_hits_. (#561)
NEW: moved system-cache-view to debug script
BUG: cache increased save-hits even if the record was dropped from saving to the cache
BUG: cache-hits weren't increased in some cases

> Database
NEW / APICHANGE: Dropped db-drivers mysql and sqlite, those do not support prepared statements. remaining drivers: mysqli, postgres, sqlite3
NEW / APICHANGE: added perpared statements to the database-layer. from now on, all new modules should make use of them. params are escaped by '?' only, conversions may be made by the specific drivers. Please note that there's no longer the use to run params through dbsafeString anymore, all string-cleanups are done by the database layer automatically.  Old queries & apis will remain functional. Up from version 3.4.1, using the old apis will create a warning in the system-log. up from version 3.5 / 4, the support of old plain queries may be dropped from the layer. The caching / management of precompiled queries is performed by each driver, the established database-cache remains functional on top of the driver-based cache. (#596)
NEW: class_element_admin::doBeforeSaveToDb() as a new callback method. Being called right before any element-content is saved to the database. Can be used to transform data. The param data is set before into class_element_admin::arrParamData
NEW: Added MariaDB to the list of supported databases
NEW: added db-column type longtext. required by some DBMS in order to handle large cache-entries
BUG: postgres' pg_query() result wasn't compared to a boolean in some cases causing the tests to fail
BUG: long-values caused errors on some php 5.2 && 32bit systems
BUG: sqlite3 driver in some cases chose wrong datatypes for params

> Installer
NEW: installer asks for admin-email-address. used for the admin-account, system-admin-email and the contact form. (#592)

> Kernel / General
NEW / APICHANGE: interface_admin::getOutputContent() and interface_admin::action($strAction = "") are no longer required to be implemented. The action() method is called internally and invokes the method matching the current action-param. Calling this method is done via a naming-convention. If the requested action is named listPages, the framework tries to call actionListPages(). Nevertheless, existing implementation remain valid since class_admin::action() can be overridden by subclasses of class_admin. The interface interface_admin remains as a marker-interface and may be populated with methods in future releases again.
NEW: Removed all sortUp and sortDown buttons in adminlists. This can now only be done via drag&drop.
NEW: new class_zip to create and extract zip-archives
NEW: systemtask "filedump", creates a backup of the all relevant entries of the filesystem
NEW: function numberFormat(), can be used to format a number into a localized string. The chars used to indicate thousands or decimals are set up in the lang-files to reflect regional differences.
NEW: class_logger includes the seconds into the logentry-timestamp
NEW: added an option to set session.use_only_cookies to 0, if set to 1 the flash-upload failes in some cases to .htaccess
NEW: the headers used to validate https connections can be configured in the config.php file, old values remain as a fallback.
NEW: updated YUI to 2.8.2r1 in portal & admin
NEW: config-options $config['cache_texts'] and $config['cache_db_extended']. Enabled additional caching-mechanisms, but should be used with care.
NEW: the db-driver set in the config.php file is validated before usage
NEW: plain-values from config.phps' config-array may be read even before the kernel started. fixes problems with custom https-headers.
NEW: Added systemtask "systemstatus", used to change the status of a given record
NEW: class_modul_system_module::getPortalInstanceOfConcreteModule(), acts as a factory method for portal-modules. this makes the overwriting of kajona-classes easier (register your new subclass in the table system_module, that's it). Updates elements to use the new factory.
NEW: actionMailForm in system-admin-class, to be used by other modules using a dialog in order to send mails. fields my be filled with values using url-params.
NEW: class_modul_system_changelog, model-class for a user-based changelog. create log-entries for property changes and renders a human readable list. this allow users to track changes made to a record. other modules have to make use of this function explicitly. Objects capable of logging / version now have to implement the interface interface_versionable. All relevant methods and callbacks are defined in this interface.
NEW: methods to access the system_create_date (system table) and to set the system_date_end (system_date table)
NEW: Kajonas' autloader is registered with the standard library if possible via spl_autoload_register()
NEW: class_csv supports an optional offset during import operations in order to skip rows at the top off the file
NEW: each system-record tracks its own creation date using the db-column system_create_date
NEW: system-admin-xml supports the command systemSessions creating a list of the sessions currently active
NEW: class_modul_system_admin_xml supports the action "moduleList", returning a xml-based list of all module installed
NEW: class_modul_system_admin_xml supports the action "systemInfo" (similar to regular systemInfo action). Moved methods generating the info-arrays to class_modul_system_common in order to avoid duplicate code.
NEW: getQuickHelp() marked as protected instead of private, allows implementing classes to overwrite the method
NEW: uniStrTrim() uses correct ellipsis character instead of three dots
NEW: getLinkAdminHref() supports a new optional param "$bitEncodedAmpersand" in order to avoid the encoding of ampersands. eg. may be used for links placed into mails.
NEW: class_filesystem::setFilePointerOffset() in order to set the current pointers' position explicitly
NEW: class_filesystem::getFileDetails() adds _realpath_ by default (if not set)
NEW: class_logger removes line-breaks from messages, creating more reader-friendly logfiles
NEW: class_modul_system_admin_xml::actionSystemlogEntries(), creates an xml-based view of the last systemlog.log entries
NEW: option to log in via the xml-interface. can be usefull for shell-scripts or remote-applications accessing Kajona, e.g. via REST (#598)
NEW: generalized class_admin::setPositionAndReload() in order to shift a record and reload the page
NEW: emails generated by the system make use if the current users-mailaddress if no from-address was set before
NEW: class_root::createSystemrecord() creates a correct system_sort entry based on the number of siblings of the current record
NEW: class_model::doAdditionalActionsOnStatusChange($strSystemid). get called as soon as a status is changed via class_root::setStatus(). can be overwritten to perform actions on a statuschange
NEW: includes.php updated to include workflow-handlers, too
NEW: mail generated in case of fatal errors containes the user-id of the current session
NEW: class_lockmanager::isLocked(), verififies if the current record is locked
NEW: class_date::getIntDayOfWeek() returns the day of the week, starting with 0 as sunday and ending with 6 as saturday. see phps' date('w', ...) function for details
NEW: bar-charts support the rendering of values on top of the diagram
NEW: global function getPostRawData(), returning the complete post-body as raw data, usefull for processing xml-requests or binary streams
NEW: migrated the existing tests to PHPUnit tests. Renamed the files in order to have them being included by phpunits' directory scan.
BUG: https wasn't determined correclty on some server-configs
BUG: cookies are set twice, one time for the current path and one time for the system-path. Some browsers can get confused with only the system-path one
BUG: fixed method signatures to comply with php6' strict standards
BUG: class_image::resizeAndCropImage() failed when original image already had the correct cropWidth and cropHeight
BUG: xml.php enforces https redirect in case of admin_only_https = true
BUG: getLinkAdminHref creates the title attribute only if the link-text and link-alt-text differ. otherwise the browser renders annoying mouseover-hints.
BUG: admin-form to change settings uses the ids instead of the names of the settings as form-element-identifiers. when using the names, the constants could be replaced by the template-engine leading to new, corrupt settings.
BUG: class_date allowed 24 as hour, now limited to 0-23
BUG: class_mail mail-encoding was enclosed in quotes, now as plain inline-text
BUG: copying a systemrecord creates proper sortids, up till now the ordering could be corrupted in some cases

> Toolkit
NEW / APICHANGE: mandatory form-elements are marked automatically if class_toolkit_admin::getValidationErrors() is called with the optional second param $strTargetAction
NEW / APICHANGE: modifier of class_admin::getRequiredFields() changed from protected to public in order to enable the automatic mandatory field detection
NEW / APICHANGE: NEW: initial implementation of charts based on the ez component library. those charts will replace the current ones based on pChart, pChart will move to the playground as an addon. Since the API is nearly the same, migration should be rather easily.
NEW / APICHANGE: class_graph_factory, generates the charting-engine based on the current system-settings. allows to switch between ezc and pChart. Updates all stats-reports to make use of the new factory
NEW: interface_chart, implemented by all charting-engines
NEW: js-function KAJONA.util.evalScript(); function to evaluate the script-tags in a passed string, e.g. loaded by an ajax-request
NEW: updated CKEditor to 3.5.3 (#602)
NEW: optional lang-entry for dateTime picker (skin dependant)
NEW: new form-validator-type "date"
NEW: treeview-node can be enrichted with a link, too
NEW: class_tookit_admin::getTooltipText($strText, $strToolip), generates a mouseover tooltip for the passed text if text and tooltip differ
NEW: class_toolkit_admin::formClose() includes a previous passed pv-param (pageView) by default
NEW: added the language files /lang/admin/modu_elemente/lang_common_*.php containing strings used often (e.g. template). those entries can be used by all elements resulting in less redundant lang-entries. furthermore, simple element can be shipped without any lang-files at all. the common-files will be extended in the future to reduce the number of remaining redundant entries even more.
NEW: added the basic model-implementation of aspects. aspects will provide a way to create a view-based filter of the ui. this means that the appereance of the ui can be configured in addition to the way provided by permissions. aspects will be integrated into the dashboard and the module-navigation (so the modules themselfs). modules can be assigend to aspects and are removed from the navigation if not in current aspect.
NEW: class_toolkit_admin::formInputSubmit() has new param $bitEnabled to show a disabled submit button
NEW: status-box is rendered by the toolkit, too
NEW: moved to logic to render the quickhelp-texts to the toolkit
NEW: user-browser, e.g. to select a single user for an input-field
NEW: folderview popups are now opened in modal dialogs (except the ones opened from CKEditor) (#562)
NEW: getLinkAdminDialog() to open a link in a modal dialog
NEW: class_toolkit_admin::formInputFileSelector() to insert an input field with a filebrowser button
NEW: widget "last modified pages" added to the default-set of admin-widgets
BUG: admin-module-list failed for some modules set inactive
BUG: class_toolkit_admin::formInputDropdown() sometimes showed the wrong selected option
BUG: calendar-loaded added a null-entry to the files to load, crashing in IE
BUG: YUI calendar throw a JS error after selecting a date (#597)
BUG: percent-beam rendered 100% including a small padding, now completly filled
BUG: folderviews bit_link param was missed to be included in some rare cases

Module Tags:
NEW: New Module
NEW: Tags backend integration, as a sample implemented for pages. All requests are done via ajax, autocomplete when entering tags is supported.

Module Users:
NEW: class_modul_user_group::getGroupByName, creates an instance of the group identified by its name
NEW: a new password may be sent to a user via the admin-backend. usefull for new users (initial password) or in case of forgotten passwords. (#608)
NEW: changed the signature of a few methods from private to protected in oder to be overwritten by subclasses
NEW: right1 (view logfile) is required in order to have statistical information included within the list of users
NEW: user-list can be filtered, e.g. to avoid the assignmnet of the current user to a field