Changelog

Das Changelog gibt Einblicke in die Änderungen, die zwischen zwei Versionen vollzogen wurden. Jedoch erhebt das Changelog keinen Anspruch auf Vollständigkeit, sondern zeigt nur Ausschnitte aus den gesamten Änderungen.

Kajona 3.1.1 "taskforce"

modul_filemanager

  • NEW: Samplecontent installer creates a filemanager-repository for files in /portal/downloads too

modul_system

  • NEW: Adminskins: Skin-CSS files are now static; renamed to styles.css and styles_portaleditor.css
  • NEW: Adminskins: CSS files are loaded before JS-files (page appears to load faster)
  • NEW: .htaccess in /admin denys access to *.php files (#278)
  • NEW: uniStrtolower() in functions.php
  • BUG:  heavy JS errors with IE 6 and 7 caused by JS function addLoadEvent in combination with YUI ->  continuous use of YUI's YAHOO.util.Event.onDOMReady in admin, addLoadEvent will be replaced in 3.2.0
  • BUG: admin crashed in IE 6 and 7 due to missing JS dependencies for dragndrop (dragndrop-min.js was loaded to late)
  • BUG: Adminwidget boxes exploded in IE -> overflow: hidden
  • BUG: pagename was not escaped correctly in case of german umlaute
  • BUG: When modifying a rights-record via the api, the cache was not flushed. this could lead to wrong permissions when modifying a single record multiple times.
  • BUG: class_db checks for presence of debug-values before printing them in case of errors

Kajona 3.1.1 "taskforce" BETA

element_form

  • BUG: Missing / in UL-End-Tag in contact.tpl (#233)

element_tellafriend

  • BUG: tellafriend-email missed to include the current language while generating the links

modul_gallery

  • NEW: systemtask to flush the images cache (#231)
  • NEW: loading animation for gallery-tooltip-thumbnails in admin

modul_guestbook

  • NEW: guestbook-posts can be edited in the admin
  • BUG / SECURITY: portal-list missed to check the correct permissions before rendering a post

modul_languages

  • BUG: missing translation in module_languages: isDefault

modul_pages

  • NEW: master-template <-> page-template cross-check:   before generating an element being placed on the master-page, the availability of the corresponding placeholder in the page-template of the page is being checked. if not present, the generation of the element is skipped in order to speed up the generation. (#217)
  • NEW: flush page cache moved from the pages-admin-part into its own systemtask (#231)
  • BUG: Linebreaks in page descriptions aren't escaped by html-BRs when being saved to the database (#235)
  • BUG: when the /installer-folder was deleted and gzip-compression was enabled, the elements-list of module pages forced the administration to crash. (#267)

modul_postacomment

  • BUG: Postacomment templates doesn't load the captcha image on every request - it will now load when the user opens the comment form
  • BUG: infinite JS loop in module postacomment AJAX templates

modul_search

  • NEW: table and row defintions for the pages-seach plugin are now stored in single files. This way, new elements can be included by creating a file named "searchdef_pages_ELEMENTNAME.php" containing the tables and rows to be searched through

modul_stats

  • NEW: report common: reduced the number of days per load-interval to 10 to reduce memory used by PHP

modul_system

  • NEW: removed updates pre 3.0 systemwide (#230)
  • NEW: class_image supports drawArc()
  • NEW: systemtasks. systemtasks are small units that take care of every-day work, e.g. dumping or restoring the database. To implement your own worker, implement the interface interface_admin_systemtask and extend the abstract class class_systemtask_base. See the sample-tasks to get the way tasks work.
    moved the db-dumping, db-restoring and db-consistency check to external tasks.
  • NEW: updated YUI, browscap.ini and FCKEdit (2.6.1) to its latest versions. FCKEdit now supports safari, too.
  • NEW: rights-icon is being determined by the function getRightsImageAdminName(). This function checks, whether the record inherits its' rights or not. (#236)
  • NEW: YUI-Calendar reads values out of the form fields so calendar and form fields are synced in both directions
  • NEW: tooltips.js deleted, integrated in kajona.js to decrease HTTP requests
  • NEW: added lines in .htaccess to activate deflate compression for all output (recommended!). Have the internal compression disabled when compressin via .htaccess is enabled!
  • NEW: consolidated getLinkPortal & getLinkPortalRaw: getLinkPortal calls getLinkPortalRaw in order to remove redundant code. (#259)
  • NEW: class_exception also sends a few POST values (systemid, module, action and page) in error mails
  • NEW: getLinkPortalPopup() added to functions.php
  • NEW / SKINCHANGE: new icon icon_key_inherited.gif (#236)
  • NEW / SKINCHANGE: old jscalendar replaced by the YUI-calendar
  • NEW / APICHANGE: db-drivers new method "public function getDatatype($strType)". does a mapping of the kajona-internal db-datatypes to the db-specific database. used within creates and alter statements.
  • NEW / APICHANGE: Kajona JS fold() function has new parameter "callbackShow"  - used to call a function in case the container was made visible
  • NEW / APICHANGE: Portal JS function "toggle" is now called "fold" like the equivalent function in admin  - also includes callback option (see rev 2058)
  • NEW: general image preloader for use in admin-skins
  • BUG: the presence of imageantialias() is checked before the graphs are created using antialiasing. In some strange php-gd-configs, this funtion is missing
  • BUG: default-skin: modules-dropdown-button is removed if no entries are in admin-modules-dropdown (#248)
  • BUG: skins: fixed portaleditor styles for Firefox 3 (#260: thanks to jokey for the bugreport)
  • BUG: classes overwriting doAdditionalCleanupsOnDeletion() of class_root check if their module is installed (e.g. if the module exists in the filesystem but not the database). otherwise db-errors may occur.
  • BUG: PortalEditor loads wrong language. NOTE: the text-system was changed massively in order to solve this bug. From now on, languages and areas set in the text-class are taken more strictly.  (#238)

modul_users

  • NEW: number of users in a group is displayed in the groups-list. thx to emocan. (#245)

 

Kajona 3.1.0 "kangaroo"


modul_dashboard
  • NEW: Adminwidget Systemcheck checks the presence of /debug
  • NEW: systemifo-widgets checks the latest kajona-version
  • NEW: weather widget (#188)
  • NEW: RSS-Feed widget (#187)
  • NEW: added missing header-image (#198)
modul_downloads
  • NEW: downloads samplecontent
  • SECURITY: sync excludes .htaccess files
  • BUG: downloads created by the samplecontent are downloadable by guests
  • BUG:  page-element reacted on commands even if tree not in own dl-tree and switched to the requested, but not assigned tree. adopted to the galleries, too. (#214)
modul_faqs
  • NEW: foldable faqs template (#206)
  • NEW: faqs samplecontent (#207)
modul_gallery
  • BUG:  page-element reacted on commands even if tree not in own dl-tree and switched to the requested, but not assigned tree. adopted to the galleries, too. (#214)
modul_guestbook
  • BUG: captcha is being checked against empty strings, too
modul_languages
  • BUG: sc-installer set language of new pages to ''. the language is updated during the languages-sc-installation. otherwise, an exisiting portal-language (e.g. from an installer-run before without having closed the session / browser) may confuse the installer resulting in wrong assignes pageproperties.
modul_navigations
  • NEW: disable pe-output for each navigation entry won't be implemented, portal-editor is disabled for the module navigation. when implementing only one pe-toolbar for a complete navigation-tree, the pe has to able to traverse the navigation tree. at the moment, the pe is only able to open a form , so no traverals here. to avoid conflicts, the pe is disabled in navigations. (#221)
modul_news
  • BUG: when saving news, _ webpath _ is being replaced
  • BUG: news portal- view missed to generate sourrounding img-tag. now being placed into an image.php img-tag
modul_pages
  • NEW: element_universal table added to searchable fields
  • NEW: when saving a pagename, strtolower is being used more agressively
  • NEW / BUG / APICHANGE: Hidden anchor links making portal site not xhtml valid anymore
    elements can decide on their own, whether they provide an anchor-tag or not. solved via inheritance, the method getAnchorTag() can be overwritten by the subclasses. (#222)
  • BUG: SQL-Error while copying a page: elements declaring an emtpy table failed while being duplicated (#209)
  • BUG: no path-navigation when editing pages-content in the portaleditor
modul_postacomment
  • NEW: added english templates
  • BUG: ajax-template didn't submit the pagename
  • BUG: xml-handler missed to save page & systemid in some cases
  • BUG: when loading a list of comments, a missing systemid is handled as expected. before all posts belonging to the current page were shown
modul_samplecontent
  • NEW: new defaultlayout
  • installer
    • samplecontent installers register navigation-entries to the correct trees
modul_search
  • NEW: report searchqueries: language : the language is being logged when a searchrequest was fired and being printed in the stats-report (#203)
modul_stats
  • NEW:  the old ip2country table is removed. instead, the counties are being resolved using an external lookup-server being located at http://ip2c.kajona.de. the resolved ips are being cached in the systems database. ips are being resolved by a new worker. increases the speed of the topCountries report significantly!
modul_system
  • NEW / APICHANGE:  db-interface provides a new method: encloseTableName(). e.g. needed in alter-table statements. fixes #216.
    adopted new method to existing alter table statements in existing installers post 3.0.9 updates
  • NEW: remoteloader. caches external requests and tries to handle various query-ways. this should be the common interface to external sources!!!
    caches external requests, e.g. xml-requests and use a centralized api :
    the class class_remoteloader is the new gateway to external sources. tries to load them via the built-in php-functions or via sockets. caches the responses to reduce the number of external requests. the max cachetime is settable by the systemsettings. adopted the new API to all existing external calls. (#218)
  • NEW: include system-specific id in session key (#223)
  • NEW: made default text- portallanguage settable via config.php: if no languages are installed, the default language for texts & co is read vom class_texte. moved this setting to config.php. (#225)
  • BUG: sort-order of module-list in the backend differed from the order of the setPos() method
  • BUG: removed access to some non-existing variables
  • BUG: getLinkPortalRaw() failed when generating links containing an anchor
  • BUG:  graphs:  large numbers are being cut off at the left side, e.g. when being placed in stats-graphs (#215)
  • BUG: administration loads the default-module when an emtpy module is passed by url instead of printing an error message
  • SECURITY: If a captcha-lookup results in an empty string, a new systemid is generated and returned. this will force later comparisons to fail.
  • admin-skins
    • NEW: show ajax-save-status only in case of an error or in debug mode, configurable via the common debuglevel set in config.php (#220)
    • classic-skin
      • BUG: various css fixes in the portaleditor
    • default-skin
      • NEW: appearance optimized for smaller screens (#171)
      • NEW: eclipse-like dropdown for modules. this avoids the admin-skin to get a too high width
      • BUG: onload-focus on login-site fixed
      • BUG: fixed portaleditor styles (#211)
      • BUG: Fixed minor probles wirth IE (#226)
element_image
  • NEW: image-element: maximum image dimensions can be specified (#213)
element_imagelightbox
  • NEW pageelement (#204)
element_portalregistration
  • NEW pageelement supporting an opt-in mail confirmation (#212)
element_rssfeed
  • NEW: dates are formatted in a more human readable way

Kajona 3.1.0 "kangaroo" BETA

modul_downloads
  • BUG: Fixed typo in installer
  • BUG: removed the md5 placeholder. sensless when being calculated by request (#200)
modul_faqs
  • BUG: Fixed typo in installer
modul_news
  • NEW: Additional template providing a foldable news-teaser
  • NEW: if no news are available, a message is shown instead of an empty list
modul_stats
  • ip2country data insert runs in a single transaction. much more faster when using tx-enabled tables
modul_system
  • SKINCHANGE / APICHANGE: Reverted checkin 1844 (renaming of toolkit-form-elements' ids depending on the type on input field) - this problem should be saved within the skin
  • SKINCHANGE: section modulenavi_main_row_hidden added, if not defined in the skin, modulenavi_main_row is being used instead. modulenavi_main_row_hidden is used after the 7th module to reduce the size of the modules list (as being used by the default skin)
    Fixed in classic-skin by checkin 1859 (reverts/fixes checkins 1844 and 1856)
  • NEW (default-skin): number of modules being represented as tabs is limited. Other modules can be accessed by an eclispse-like dropdown (#171)
  • NEW (default-skin): decreased the space reserved for the 3 on the left side
  • NEW: postgresql driver. PLEASE NOTE: THIS DRIVER IS STILL IN AN ALPHA STADIUM AND RECOMMENDED FOR TESTINSTALLATIONS ONLY
  • BUG: after editing records' permissions, the correct page is being loaded again (#199)
  • BUG: pageselector missed to pass the admin-language when browsing the elements being available on a page
  • BUG / SECURITY: Fixed a low-risk potential sql-injection possibility in mysql-drivers when fetching columns of a given table
  • BUG: cleaned up sql-code towards standard-conform sql code
  • BUG: system handles "" as lockId the same way on mysql and on postgres
  • BUG: when using + in a pagename, portal failed to load the page. fixed by using a stricter urlencoding of url params (#202)
  • installer
    • NEW: while being registered by the installers, new constants are being defined to the current runtime-environment, too
    • NEW / APICHANGE / INSTALLERCHANGE:
      installers need to crreate tables by using public function createTable($strName, $arrFields, $arrKeys, $arrIndices = array(), $bitTxSafe = true) instead of fireing sql directly to the database. see the phpdocs for further informations
    • NEW: added support for the postgres-driver to be selected during installation

Kajona 3.1.0 "kangaroo" ALPHA

modul_dashboard
  • NEW: new module acting as the future "home site" of the administration. provides a simple api to allow delevopers to write their own widgets. includes a full widget engine and supports the rearranging of widgets by drag n drop (#32)
  • NEW: sample widgets
  • NEW: widgets settings can be saved to an be restored from the db
modul_downloads
  • NEW: drag n drop for admin-list
  • BUG: Pagecache gets flushed after masssyncs
modul_faqs
  • APICHANGE: renamed filter-param from filter_id to filterId
  • BUG: faqs will be displayed on the portal, even if theres no category created and assigned yet (#163)
  • BUG: if all categories were selected to be shown, faqs won't get listed twice
modul_filemananger
  • NEW: uploadform can be extend by additional upload-fields to allow more than one file to be uploaded (#166)
  • BUG: Wrong inheritance relations in class_modul_filemanager_repo.php , extended class_root instead of class_model (#181)
modul_folderview
  • NEW: when browsing sites (e.g. for links), links can be selected down to single pageelement. Therefore an a-element is renderd into the output for each element (#167)
  • BUG: some texts appeared twice
modul_gallery
  • NEW: page-element interprets 0 images per row as unlimited images per row and uses the template-section piclist_unlimited instead of piclist
  • NEW: portal supports a pageview
  • BUG: Pagecache gets flushed after masssyncs
modul_guestbook
  • BUG: Encoded newlines are transformed to html-breaks when showing the post
  • BUG: Post-validation errors are shown again
modul_navigations
  • NEW: drag n drop for admin-lists
  • NEW: if navi-point uses an image, the imgs' alt-tag is filled with the point-text
  • BUG: navigation-point replaces http://www.kajona.de in image-paths when set to ""
modul_news
  • NEW: lists in admin support the pageview
  • APICHANGE: renamed filter-param from filter_id to filterId
  • BUG: when creating news, entities won't be encoded (now behaves as when updating news)
  • BUG: When html-entities have been provided by the user (ü typed into the new title-field), the system missed to decode them before creating the xml. (#183)
  • BUG: Saving news with no category assigned raised an php-warning. fixed by counting the selected cats before looping them by a foreach()
modul_pages
  • NEW: If there are elements in the db which can't be assigned to a placeholder, the system won't try to find a best matching placeholder anymore. Instead, a warning and the list of elements is shown. Prevents strange ghost-element effects (#159)
  • NEW: flat list uses the pageview
  • NEW: pages' elements-list searches for installers of elements not yet installed. if found, a row is displayed at the bottom of the page. allows to install page-elements without having an installer present or without calling an installer. this means: to install elements provided by the common installer, you don't have to call the installer.php anymore. those elements can be installed right out of the module_pages elements list. (as far as all requirements are given)
  • NEW: xml-classes to access the module_pages by xml
  • NEW: pages can be copied (#21)
  • BUG: preview in lists encodes html correct (#158)
  • BUG: page elements haven't been deleted when working with languages
  • BUG: sql generated by the pages-content admin part encloses table names
  • BUG: pages-content admin part update query now runs in its own tx
modul_postacomment
  • NEW: new module allowing users to post comments to different pages on the portal. makes use of the kajona ajax backend when choosing the ajax-template
modul_samplecontent
  • NEW: Guestbook entry form layouted
  • NEW: placeholder pic_subtitle included in gallery templates (#165)
  • NEW: renamed kajona.php to kajona.css
  • NEW: Gallery provides samplecontent
modul_search
  • BUG: search runs searchterms twice against the database, using encoded and decoded html-entities. avoids double-encoding as up till now (#184)
modul_stats
  • NEW: updated browscap.ini
  • BUG: error when running mysql in strict mode in the ip2country csv (#185)
  • BUG: ie6 / ie7 caches graphs when filtering period: added time as optional param to the image url to force a reload-request (#189)
modul_system
  • NEW: class_image includes filesize when creating a cachename to be able to recognize updates pics on the filesystem
  • NEW: .htaccess has all mod-rewirte options commented by default to avoid errors with missing mod-rewrite package
  • NEW: rewrite-urls will be created shorter, if no sysid, action an seo text is given. (#164)
    former page....language.html becomes page.language.html
    Note: Therefore, languages have to be exactly 2 characters long!
  • NEW: system-setting 'nr of records per page' to configure the pageview (administration)
  • NEW: db-connections are closed when destroying the class_db instance
  • NEW: encapsulates transactions are handled as expected. mutliple tx begin, tx commit and tx rollback are supported
  • NEW / APICHANGE: when deleting a system-record by calling deleteSystemrecord(), classes extending class_model can be informed by overwriting class_model::doAdditionalCleanupsOnDeletion($strSystemid). This can be useful, if a module has other records dependent from the record to be deleted.
    Note: All classes extending class_model will be called, not only the classing belonging to the corresponding model. So use this function with care to avoid high database traffic!
  • NEW: admin-field can validate the type "systemid"
  • NEW: included the Yahoo! User Interface library on admin and portal side to provide basic ajax funtions
  • NEW: massive js-changes to encapsulate the YUI toolkit and to provider new funtions
  • NEW: moved portal js files from pages to the system
  • NEW: method setAbsolutePosition($strIdToSet, $intPosition) to set the pos of a record absolut. NOTE: works only with the system_prev_id-sorts (so NOT in pages_content)
  • NEW: Drag n Drop in admin-lists to rearrange the order of the items (if the module supports it) possible
  • NEW: js-statuswindow to display short messages, animated
  • NEW: xml-classes to access the system-kernel by xml
  • NEW: drag n drop for module-list
  • NEW: updated fckeditor to 2.4.3
  • NEW: admin-toolkit provides a pageSelector element. supports the suggestion of possible pages loaded by ajax
  • NEW: if the inclusion of necessary files failed, a more readable error is shown
  • NEW: setting to force the use of https when loading the admin-area (#178)
  • NEW: db-cache can be disabled. usefull when debugging (#175)
  • NEW: db-layer provides a method getColumnsOfTable($strTable)
  • NEW: config.php uses only single quotes for array keys
  • NEW: if a user is allowed to login in using the portal and is not allowed to load the admin, the portalEditor is disabled. otherwise the pe fails when loading the corresponding admin-parts (what is a wanted side-effect!)
  • NEW: mail in case of exceptions includes the source hostname / ip and the querystring
  • APICHANGE: removed getImageAdminShort() duo to redundancy to getImageAdmin()
  • APICHANGE: Module-Action-Navis are generated using a two-dim array. this includes an implicit rights-validation and reduces the loc a developer has to implement.
    * array[
    * array["right", "link"],
    * array["right", "link"]
    * ]
  • SKINCHANGE: Skins need to provide two new sections: dragable_list_header and dragable_list_footer
  • SCHEMACHANGE / APICHANGE: the explicit classname (for portal / admin classes) in modules is not needed, can be generated out of the filename. removed from classes and db. adopted to installers and factory-methods (#179)
  • SKINCHANGE: id's of form fields now have the type of the field as a prefix, e.g. <input type="text" name="page" id="input_page" /> . we had naming problems which caused style-errors (a form field was called "content" which is already a used id by the default skin)
  • BUG: conditionalGet uses same checksum for request and response, additional cache-headers are sent
  • BUG: sepcial chars in filenames are replaces as expected again (#154)
  • BUG: when no driver object present, the db-class won't try to access the driver in order to close the db connection (#173)
  • BUG: classic-skin uses its own css-classes for the pe-toolbar
  • BUG: new constants are only created, if not defined (class_config)
  • BUG: SQL-Syntax error while saving page to cache. when magic_quotes_gpc is set to on, stripslashes is called before calling addslashes to avoid double escaping
    the on / off value is handled as expected (#193)
  • installer
    • NEW: registerConstant() checks that the constant to be created is not yet existing
    • APICHANGE: interface_installer declares getMinSystemVersion(). if a implementation returns any other value then "", the installer checks, if the module_system is installed at least in the requested version. If not, the module / element cannot be installed.
    • APICHANGE: Moved class_installer_base and interface_installer from /installer to /system. This supports using the classic-installer routines when installing elements as addons into the system after having deleted the installer-folder
    • APICHANGE: samplecontent installers moved to external sub-installers placed within the corresponding module.
      So all samplecontent-ressources for a given module are maintained within the module now. the samplecontent just loads the subinstallers and calles their hook-methods (#180)
    • BUG: admin-password was shown as plaintext in the install-log (#157)
    • BUG: installer flushes the db-query-cache after a module-registration
    • BUG: larger installer-box background (#190)
element_tellafriend
  • BUG: added missing phpDoc package tag
element_portallogin
  • NEW: element provides a basic form to change the users data
  • BUG: typo flipped array keys in the text-files
element_rssfeed
  • NEW: new pageelement. allows to include external rss 2.0 and atom feeds into the portal