CHANGES.txt (unformatted text; opens in new window)
Below is the latest version of CHANGES.txt
/program/CHANGES.txt $Id: CHANGES.txt,v 1.324 2016/06/28 14:38:47 peter Exp $ ------------------------------------------------------------------------------- ### Release 1.0.0 - 2016-06-29 / 2016062900 ### 2016-06-29 Finally: Website@School 1.0.0 is released! This release is dedicated to Dirk Schouten, the Website@School Project Leader, who passed away on June 29, 2015, after a short illness. For many years Dirk has devoted virtually all of his time and energy to the project: dreaming up ideas for new modules, finding donors for funding, coordinating translator activities, and writing the comprehensive Website@School manual. His efforts were recognised when he was appointed Member in the Order of Orange-Nassau by her Majesty the Queen of The Netherlands in 2012. Dirk was and will remain an inspiration to us all. He will be greatly missed. 2016-06-28 - import/update of all translations - new translations (work in progress): Hindi, Slovak. - preparations for the upcoming new release 2016-06-16 - changes in demodata: replaced the placeholder for 'news' with an instance of the aggregator; replaced placeholders for newsletter and newsletter archive with redirects to newsletter in showcase - modernised HTML-headers in install.php 2016-06-15 - new feature: statistics: overview of pageviews, per area or for all areas 2016-06-14 - added to the CREDITS.txt and donors.php: two donors 2016-06-02 - imported the original mime.types that was the basis of the mapping between file extensions and mime types in filelib.php. This file was retrieved from https://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types? revision=104298&view=co Original date: 2004-07-15. - imported up-to-date mime.types file from https://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types? revision=1742054&view=co Original date: 2016-05-03. According to the header this file has been placed in the public domain for unlimited distribution. [devel/import/mime.types]. - quick and dirty tool mimemerge.php for merging mime.types into filelib.php - re-arranged the logic that checks filename extensions and -mimetypes in filelib.php, filemanager.class.php main_file.php (and also in newsletter_admin.php) 2016-05-26 - moved queue_area_node_alert() from PageManager to waslib.php for general use - new feature: we now send alerts when a new post to an althing is submitted - new feature: we now send alerts when a new newsletter article is submitted - bugfix: althing moderation never yielded an alert 2016-05-18 - new feature: Session Tool allows for killing existing sessions, to be used when a user's browser has crashed or accidently closed and a page/section was still locked. - new permission in Admin for Session Tool (value 2048) 2016-05-17 - remove FK constraint on locked pages/sections from table 'nodes'; - bump internal version from 2015041100 to 2016051700 2016-04-26 - new feature: alert manager: add/edit/delete alerts 2016-04-19 - added context-sensitive help link for alerts - added context-sensitive help link for theme ruta 2016-04-18 - bump internal version from 2015033100 to 2016041100 after adding favicon 2016-04-13 - added download option for log message table [toolslib.php] - added prune function to log message viewer [toolslib.php] 2016-04-11 - added support for favicon.ico in main site configuration 2016-04-10 - Upgraded CKEditor from 4.4.5 to 4.5.8 (latest and greatest), including both the full source file and the already smaller, stripped sources in was/devel/imports 2016-04-08 - addition to snapshots module: the slideshow is now interactive; navigation is now possible with cursor keys and spacebar 2016-04-06 - final version of search module 2016-04-05 - all 12 modules now have a working interface for search: 2 x NOP: mypage, redirect 8 x 1-on-1: aggregator, confab, crew (workshop), htmlpage, mailpage, search, sitemap, snapshots 2 x 1-on-N: althing, newsletter 2016-04-04 - added two search pages to global demodata - added search support to newsletter module - bugfix: redacted posts could be seen in full by specifying ?post=n [althing] 2016-04-01 - new module: search - lots of changes in all other modules to accomodate search - minor tweaks 2016-03-23 - both profile and password dialog require additional authorisation to prevent passers by changing a user's profile [mypage] 2016-03-22 - new module: mypage - added new module mypage to demodata too - small changes in hotkeys in admin.php because ~D is now [~Done] - converted login dialogs to responsive html 5 (mobile first) 2016-03-21 - moved get_skin_names() and get_editor_names() from usermanager.class.php to waslib.php in order to reuse that code in the MyPage module - added redirect to global $USER for easier editing of profile in MyPage 2016-03-08 - updated license.html and about.html to be more responsive too - removed old-fashiond HTML-comment trick for STYLE tags [theme.class.php] - new theme Ruta 2016-02-29 - theme Frugal is completely responsivified both in changed code and style information [base.css, theme.class.php] 2016-02-23 - removed meta http-equiv Content-Style-Type from theme.class.php because text/css is the default anyway - moved Content-Script-Type from meta http-equiv to http headers allthough it may be a little suplerfluous nowadays - keep http-equiv Content-Type so charset UTF-8 is obvious when document is at rest - removed http-equiv MSSmartTagsPreventParsing alltogether - removed the old-fashioned comment/script transition - "description" and "keywords" are now user-editable instead of hard-coded in theme.class.php - cosmetics - added CFG->language_key to html root tag 2016-02-22 - added newsletter.html to context-sensitive help [manual.php] 2015-06-16 - bugfix: there was an error in the access control: some permissions did not cascade properly [pagemanager.class.php] 2015-05-29 - new module: newsletter 2015-04-23 - bugfix: dbsession_remove_obsolete_sessions() violated a FK constraint; we now first release the lock and subsequently drop the session record. 2015-04-03 - removed calls to cron_send_queued_alerts() from main_admin.php and pagemanager.class.php because we now have a 'real' cron function. This needs to be setup though: /cron.php should be called periodically for this to work smoothly (say: at least once per day), preferably every hour. 2015-04-02 - re-arranged code in main_file.php to easily check user file availabilty 2015-03-31 - added support for cron jobs: two new options in site configuration - cron.php now actually works and calls $module_cron for appropriate modules 2015-03-30 - funnel-mode is causing headaches combined with pagination; we now no longer enforce funnel mode on the pagination feature. 2015-03-08 - added functionality to Email class: . we can now handle multiple alternative message bodies automatically . it is now possible to add bot plain and related attachments . there is now a function to prepare a full message body without actually sending it 2015-02-06 - add support for mysqli interface: . new classes DatabaseMysqli and DatabaseMysqliResult [mysqli.class.php] . mysql/mysqli-specific code in Install Wizard 2015-02-03 - bugfixes: . typo in wasentry_script_name() [init.php, install.php] . replaced deprecated eregi() and ereg_replace() with preg_match and preg_replace() [translatetool.class.php, email.class.php, [toolslib.php] . renamed password_hash() to was_password_hash() to prevent nameclashes [loginlib.php, usermanager.class.php] . re-arranged function call to stop warning about pass by reference [theme.class.php, filemanager.class.php] ### Release 0.90.6a - 2014-11-17 / 2014111700 ### 2014-11-14 - showstopper in upgrade routine: wrong database engine for additional tables. Fixed in mysql.class.php. - Release 0.90.6 is NOT published. ### Release 0.90.6 - 2014-11-11 / 2014111100 ### 2014-11-11 - minor tweaks in various translations - added to the CREDITS.txt: translators, donors and others - final preparations for new release 2014-11-10 - Added 9 new languages: fil, fry, it, pap, ro, sh, vi, bg and ur. - Updated available translations for the other languages 2014-11-09 - Demodata for Aggregator is now complete (i.e. with demo snapshots too) - Minor tweaks 2014-11-08 - Added logo + link for four new donors: . Stichting Blindenhulp . Landelijke Stichting voor Blinden en Slechtzienden . Rotterdamse Stichting Blindenbelangen . Stichting tot Verbetering van het Lot der Blinden - Added demodata for Workshop (CREW) as much as possible. - Bugfix: no longer a hard-coded clear:both in aggregator pages - Partial demodata for Aggregator added. 2014-11-07 - Added CKEditor 4.4.5 too (latest and greatest), including both the full source file and the already smaller, stripped sources in was/devel/imports - Added option 'ckeditor3' to list of available editors in user manager and site configuration, including 12 translations. - Core version bumped due to change in config; forces update to new version. - Added refresh button to confab moderation NoMessage dialog - Added a contact form to the showcase in the demodata 2014-11-06 - Updated CKEditor 3.6.2 -> 3.6.6.2. - Removed the old source file from devel, added new one instead. 2014-11-03 - re-arranged moderation dialog; split into two parts [confab] - some code rearranged [confab] - up to date translations in confab - added special wide class to admin_base.css for use in confab moderation - all accesskeys are now in upper case [dialoglib.php] - added download button to confab report - added full sitemap to showcase - added redirect to website@school to showcase 2014-10-30 - added moderation option to confab - added style support for zebra-type listings to admin_base and admin_lowvision - added Dutch translation of Confab - minor tweaks and typos in other translations 2014-10-29 - added report selections to report a la Althing [confab_admin.php] 2014-10-28 - added hotkeys to general login dialogs [loginlib.php] - added hotkeys to the Confab join dialog too [confab_view.php] 2014-10-26 - added dynamic resizing to Visual interface to make the best use of available screen real estate - Visual interface is now complete (in 4 different CSS-flavours) - added support for minimised version visual.min.js in makedist.sh 2014-10-24 - more progress with Visual interface: automatic updates now work with XMLHttpRequest. 2014-10-22 - some progress with the Visual interface but still unfinished 2014-10-21 - added new variable to class Theme: $silent_mode: allows modules to suppress the regular $theme output if set to TRUE [theme.class.php] - added access keys to the input fields in Talk-screen [confab_view.php] - done with the Braille interface 2014-10-19 - bugfix; we now force our own session_expiry timeout [dbsession.php] - yet another confab-field added to database: message_from_id can keep track of partcipant colour display (attributes) in Visual interface 2014-10-16 - more or less done with the Braille interface - code cleanup [confab_view.php] - started with Visual interface 2014-10-14 - basic functionality of Braille interface now works 2014-10-09 - we now also accept 'friendly parameters' in login [main_index.php] - it is now possible to gain access to the Confab via the passcode - Confab login works 2014-10-08 - we no longer show the uneditable conversation_id in config dialog [config_admin.php] - added fields to keep track of userlist updates in Confab - minor cosmetics 2014-10-06 - added get_cookie_string() to validate/retrieve cookie in waslib.php 2014-10-02 - reporting function in confab added - minor cosmetics and typos 2014-10-01 - added confab-specific demodata, currently visible via 'report' (work in progress...) 2014-09-29 - start of confab module 2014-09-16 - a small refinement in the error message display in loginlib dialogs: we now show the word 'Message:' and the message in bold for users who have style switched off (graceful degradation). - we now attempt to logout the user in case of an error_exit() [init.php] - we now switch to a new area whenever one is specified in Page Manager. Furthermore, as a service, we open up the path to the specified node (if any) setting the tree view to custom. In combination with the login-feature that propagates the parameters, we can now send a 'deep link' by mail and let a user login and navigate to the correct place within the tree of an area. Handy for tending to moderations in the Althing module. 2014-09-12 - many, many changes in loginlib.php. Highlights: . we now are able to propagate path_info GET[] parameters during login; . the dialog boxes have all been styled via program/styles/login.css; . we no longer use HTML tables for layout (makes for a much nicer view with styling switched off, also more friendly for the visual impaired); . we now recognise the correct path while (re)setting session cookies, allowing multiple instances of was running simultaneous in sibling directories on the same domain; . processing of POSTed credentials now also checks for utf8 validity (mostly by employing validate_dialogdef()); . garbage collection is also performed after succesfull change of password; . we now set the focus to input fields near the end of the body rather than via onload() in the body tag; . added a few relevant keywords for this application via meta-tags; . many cosmetic changes and code cleanup. - correct cookie path via session_set_cookie_params() in main_index.php, main_admin.php and main_file.php - new feature in index.php: we can now login on-the-fly on our way to an intranet which requires valid username/password. If the area is still not available (non-existig or no permissions), the infamous error 080 is returned after all. 2014-09-09 - new parameter for text input fields: autocomplete="off" [dialoglib.php] 2014-09-05 - Bugfix: the Theme::get_address() routine did not properly handle magic quotes in $_GET[] and $_SERVER[]; fixed. - Bugfix: the AdminOutput::get_address() had the same issue: also fixed. - Two get_address() routines replaced with a single function get_page_address_url() in waslib.php, keeping wrappers for compatibility. - Removed translation for 'URL' because get_page_address_url() no longer prefixes the address with that translation. - Bugfix: a stupid typo in html_a() in htmllib.php. 2014-07-25 - added another parameter to the view-routine of the Althing-module: we can now show an individual post from the Althing via parameter 'post'. This is used in the alert e-mail messages. 2014-07-21 - Another change in the User Interface: we now show the module nickname next to the page_id, but only if user has edit permissions for that page. There is room for improvement here. - Added nicknames for all existing modules in English, Dutch. 2014-7-18 - Change in User Interface of Page Manager: now the title of a section opens/closes the section rather than opening the basic properties dialogue. Considerans: once a section exists it is far more likely that the section will be opened/closed rather thand edited. One can always use the pencil icon to go to the edit dialogue anyway. - Another change in the User Interface of Page Manager: in the treeview all pages (not sections) now have a (nick)name for the module associated with that page. This nickname is translatable and it could be empty. Also, in the title (mouseover) the full name of the module is now visible. 2014-07-17 - workaround for an issue in utf8validate(): PHP crashes if the string to test (via a Reqular Expression) is too long; implemented an alternative algoritm for longer strings [utf8lib.php] 2014-07-14 - workaround for known issue in file(1) with .css-files [filelib.php] - added .css as an allowable extension to installer [tabledata.php] and also to the updater [updatelib.php]. We can now upload .CSS-files to the datadirectory. 2014-07-11 - added multiple file upload adding the "multiple" attribute in the File Manager; it is now possible to select multiple files in a single file input widget - added automatic resizing of uploaded images to more convenient via a configurable dimension. - added new site configuration option: resize_dimension (default: 800px). Includes update of existing installations (core version bumped) - various changes and additions in translation texts, notably in File Manager (add a file) and Site Configuration. 2014-07-02 - bugfix in redirect-routine in main_admin.php 2014-06-13 - framing error: changed 'blog' to 'weblog' (blog is weblog without the "we") - added debugging info in generated BSSS per area/section/page 2014-06-08 - minor cosmetics in Althing moderation: it is no longer an error to have an empty remark if nothing (marbles, visibility) changed anyway - also added a feedback message in the case that nothing was changed - minor cosmetics in Mailpage: we now have the same regime as Althing for Cancel buttons, etc. 2014-06-06 - added Dutch translation of Althing (a lot of work) - returned main menu in demo data to Search (get rid of 'Find') - changed the MyPage-page into a section as a modules showcase with MyPage now as the first page in that section - bugfix in updatelib: the options of the althing were not set in an upgrade/install of the module. 2014-06-05 - added real pictures to Althing demo - minor tweaks in Althing demo data & code - re-arranged modules showcase: now under Find (previously Search) | Modules 2014-06-04 - added context-sensitive help for modules, themes [manual.php] - changed dimensions of the help pop-up from 640x480 to 760x570 and also added scrollbars and resize option [main_admin.php] 2014-06-01 - Althing reporting tool done. The Althing module is now feature complete. 2014-05-31 - started with report function: first draft is working more or less 2014-05-30 - still more tweaks in Althing: the post header now is completely configurable - re-arranged the default post header layout - added graphics for navigation up/down in Althing overview - the link after submitting a post now actually works (if the post is published) - shortened some translations 2014-05-29 - minor tweaks in Althing - added debug-parameter to InstallWizard via install.php?debug=1 - minor changes in althing demodata, tweaks in althing language - added sort and show/hide option in althing overview 2014-05-28 - done with althing alerts: we now send alerts too when a post is published by a moderator. - minor tweaks & cosmetics 2014-05-27 - minor cosmetics in althing_admin.php: cleanup email lists - save new post in althing_view.php - added new file with common constants & routines: althing_common.php - cosmetics in add a post dialog: toggle to show/suppress BBCode help - added sending of alerts for 6 of the 8 cases: this really works - bbcode help can now be made visible/hidden by clicking the title - still work in progress, but almost there (thankyou-screen) 2014-05-26 - althing: work in progress: . add a post dialog works (including link to File Manager for registerd users) . detailed explanation of available BBCode . validation of new posts (including BBCode syntax check) 2014-05-20 - various tweaks to the demodata, showing off BBCode-conversion to HTML - althing overview is done, including styling via a separate CSS-file - preparations for creating a form to add a post are underway, but still: work in progress 2014-05-19 - some code added for BBCode-handling: rendering & validating - better display of Althing messages in althing_view() (still work in progress) - small enhancement: user language now also displays language key in the edit user dialog [usermanager.class.php] - althing_view_show_post() is still work in progress 2014-05-16 - new feature: if a page/section is locked by another session the user can forcefully unlock (and relock) the page/section if the user_id's of both sessions are the same. This solves the problem of crashing browsers that leave nodes locked until the crashed session times out (which might take too long to be user friendly). [pagemanager.class.php, waslib.php] - althing: removed loooong explanations from submenu items; we do have a manual for that - moderation details screen: a few changes to win some screen real estate: . moderations: xx is and marbles are now on a single line . all radio buttons are now on a single line . the remark-field is limited to a single line - any empty post header lines (in the translation) are not displayed. the layout of the post details is now completely configurable via the Translate Tool. - added a preliminary 4th submenu option 'report' to Althing - removed even more cruft from the various submenu dialogs - Cancel in all submenu dialogs now return to the Althing Content dialog 2014-05-13 - added $fragment-parameter to html_a() in htmllib.php - basically done with the admin-interface of the Althing, only a few stubs are left (and also the Dutch translation). Next step: althing_view(). 2014-05-12 - Althing: change in the tabledefinitions: we now recognise three different values for initial visibility: 0=hidden, 1=registered users visible, anonymous cowards hidden, 2=visible. Althing configuration dialog is adjusted - added the post moderation dialog, including a complex interaction between two sets of two radiobuttons that together identify (and allow the moderator to change) the publication status and the visibility. Short explanation: you cannot UNpublish a post that has been visible, ever, even if it was only for a very short while. - added more sort options to the moderation list dialog: we can now also sort on the three visibility status-values: visible/hidden/unpublished or vice versa. - we also show the mtime in a (sortable) column: this shows the date of last modification/moderation. - added yet another demo-posting from an angry anonymous coward in reaction to the moderation action that Maria did earlier that night. This example/demo is beginning to get realistic. - removed the clickable date because it cluttered the screen; you can now zoom in on a particular post by clicking the ID in the 1st column - the sort order is retained while in the moderation detail screen, which makes that the links 'Next' and 'Previous' follow the chosen sort order. 2014-05-11 - added some more demodata and also created special permissions for members of the Seniors group so they can manage the demo-althing. 2014-05-10 - minor tweaks in althing_admin.php - added a preliminary set of demodata to Althing module including translation - added another field to the althings table to calculate display_id only once 2014-05-09 - minor cosmetics in Page Manager - new mailpage is now complete, including the Dutch translation - removed the submenu (mis)feature from Page Manager; we now have the new module interface with submenu options and all. 2014-05-08 - many changes in mailpage addresses add/edit/delete but still work in progress 2014-05-07 - we now always show the edit menu when editing content via the interface <module>_show_edit() and <module>_save(), even though it may distract the user (just a little). 2014-05-06 - obsoleted file htmlpage.class.php (long overdue) - some more code cleanup in htmlpage-module - added CSRF-prevention and [Done] button module Sitemap - added CSRF-prevention and [Done] button module Redirect - added CSRF-prevention and [Done] button module Snapshots - added CSRF-prevention and [Done] button module Aggregator - added CSRF-prevention and [Done] button module CREW - added CSRF-prevention and [Done] button module Mailpage (work in progress) - cosmetics: a little more space in tabular dialogs in the ACL-Mmanager. 2014-05-05 - undone two changes in show_menu_groupcapacity() and show_menu_group() in groupmanager.class.php because it added 'clutter' - added CSRF-prevention to 7 dialogs in PageManager - change in datadefinition: added field options to modules table - changed module interface: added extra options field in <module>_show_edit() and <module>_save(). - updated install.php to handle new modules options while reading the manifest - bumped internal version to 2014050500; this forces an upgrade which alters the database adding the options field to the module table [version.php] - modified the html-page module to work with the new module interface - added CSRF-protection and [Done] button to htmlpage-module - added two options to mailpage manifest, including translations in modules' language file (all very much work in progress) - added preliminary update function for existing mailpages (adding two options to module table; see mailpage_upgrade() in mailpage_install.php. - a little code cleanup in the htmlpage module 2014-05-01 - added CSRF-prevention to all 4 dialogs in File Manager - added CSRF-prevention to all 3 dialogs in Translate Tool - added CSRF-prevention to all 3 dialogs in ACL Manager - added [Done] button to all 3 dialogs in ACL Manager - added CSRF-prevention to all dialogs in UserManager - added [Done] button to all dialogs in UserManager - added CSRF-prevention to all dialogs in GroupManager - added [Done] button to all dialogs in GroupManager - added a link to the group's 'basic properties' in show_menu_groupcapacity() in order to make navigation easier between group/capacities and basic group properties. - added a link to the 'Groups' overview in show_menu_group() in order to make navigation easier between basic group properties and the groups overview. 2014-04-30 - added utility routines to prevent CSRF [dialoglib.php, waslib.php] - added CSRF-prevention to: . Area Manager . Theme Configuration in AreaManager (via ConfigAssistant) . Site configuration (via ConfigAssistant) . Module manager (via ConfigAssistant) - added thousands separators in upload dialog [filemanager.class.php]. - added [Done] button to upload dialog too - added [Done] button to create directory [filemanager.class.php] 2014-04-29 - added a new standard button 'done' in preparation of a massive change of the way most dialogs in W@S will behave: the current [Save] button will leave the user in the (saved and refreshed) dialog whereas the new [Done] button will save the data and subsequently leave the dialog. This is the answer to a feature request for 'save + edit again' notably in modules and also in the Theme configuration. This addition brings a lot of small changes in many source files and the addition of a button_done.gif icon file. - various dialogs in PageManager now have three buttons: [Save] [Done] [Cancel]: add page/section, edit page/section basic, edit page/section advanced. This includes 'following' the user when a page, section or small subtree is moved to another area and the user presses [Save]. (If she moves a node to another area and presses [Done] she stays in the 'old' area. - Still to come: add [Done] buttons to page Content dialogs (via module interface). - Added the [Done] button to various other dialogs throughout the system: . AreaManager . Theme Configuration in AreaManager (via ConfigAssistant) . Site configuration (via ConfigAssistant) . Module manager (via ConfigAssistant) 2014-04-25 - new feature in AdminOuput: we now also have a submenu to add to ($output->add_submenu()). The submenu is simply appended to the menu (at the end) allowing a module to add menu items below the main menu with 'Basic'. 'Advanced' and 'Content'. [main_admin.php] 2014-04-17 - bugfix: we can now create tables without any keys definition in the tabledef [mysql.class.php:480] 2014-01-28 - bugfix: wrong language domains caused untranslated menu-items in new languages (without $progdir/install/languages/$LL dir) under install ### Release 0.90.5 - 2013-07-11 / 2013071100 ### 2013-07-11 - final tweaks before release (updatelib.php:update_core_20130711()) 2013-07-10 - minor tweaks in varius stylesheets (input styling) - preparations for more tweaks in styling added [dialoglib.php] 2013-07-09 - all buttons now also have a class 'button' [dialoglib.php] - re-arranged styling for skins to use 'button' class - modified all default styles for existing themes to add styling for input elements - minor changes in existing skins too, also with button style 2013-07-03 - re-arranged location of contact page in demodata - added a demo of the redirect module (combined with contact page) - extra parameter 'friendly_url' now also available in demodata() - better failsafe loading of translations in install (always load 'en' too) - added Dutch translations for demo of mailpage in demodata() - minor cosmetics 2013-07-02 - almost done with the mailpage module including Dutch translation. - added demodata for the mailpage module in quicklinks (top) 2013-07-01 - additional validation in mailpage email address - we now suppress the destination listbox if there's only a single option 2013-06-29 - functional version of mailpage_view() 2013-06-28 - small improvements in buttons [dialoglib.php] - interim-version of mailpage_view() 2013-06-27 - finished with the 'tokens' for visitor forms; added tokenlib.php - temporarily increased version number to force database update for tokens 2013-06-26 - added new table 'tokens' to keep track of instances of visitor's forms - prepared for core update routine update_core_2013mmddxx() [updatelib.php] 2013-06-20 - added mailpage module - done with the admin-part of the mailpage module already 2013-06-14 - added new language Greek (el) - added new language Finnish (fi) - added new language Russian (ru) - added new language Swedish (sv) - updated all existing translations (based on distribution version 0.90.4) 2013-06-13 - minor tweaks in crew readme.txt 2013-06-12 - tweaks in the CREW module - added a tool to generate minimised javascript code [devel/tools/minjs.php] - added code to create crew.min.js in crew module [devel/tools/makedist.sh] - crewserver.zip unpacks in a subdir automatically [devel/tools/makedist.sh] - the 'running code download' also unpacks in subdir [crewserver.php] 2013-06-11 - bumped year in copyright messages where necessary - added special code to make a downloadable crewserver.zip in /program/modules/crew/crewserver.zip [devel/tools/makedist.sh] 2013-06-10 - fixed a few typos in the CREW module - corrected the message color in Theme Frugal [base.css] 2013-06-06 - added support for maximum # of shops and # of workers/shop via error code 1008: this disables all buttons etc. except [Cancel] [crew.js] 2013-06-04 - added an (arbitrary) limit on document size: 65536 characters [crew_view.php] - done with a preliminary version of CREW module (but no websocket server yet) 2013-06-03 - added missing html_tag_close() [htmllib.php] - added new standard button Edit [dialoglib.php and style/transalation files] - new utility function hmac() according to RFC2104 [waslib.php] - added Dutch translation for CREW-odule 2013-05=31 - typos in crew module - simplified the intro text for crew in module manager - added a few has_module_*() permission functions [useraccount.class.php] - rearranged internal structure of cached ACLs in Useraccount 2013-05-30 - added preliminary version of crew module (Collaborative Remote Educational Workshop) 2013-05-29 - added helptopic 'modulemanager' [manual.php] - implemented module manager [modulemanagerlib.php] 2012-11-01 - new theme: Cornelia 2012-07-03 - noscript-addition to SnapshotViewerInline (graceful degradation) - new module: aggregator (but still without demodata) 2012-07-02 - moved routine get_module_records to waslib.php 2012-07-01 - new class SnapshotViewerInline added in preparation for upcoming aggregator 2012-06-22 - [install.php] added the site reply-to: address to the demodata interface - new theme: Sophia 2012-06-18 - added SIDN to the list or donors 2012-05-31 - various bugfixes: . [main_admin.php] get_div_parameters() again correctly shows bullets (bug introduced in 0.90.4) . [waslib.php] get_friendly_parameter() now accepts parameter value '0' . [waslib.php] was_node_url() correctly now conveys friendly value '0' . [main_file.php] main_file() better check on tricks with /../ in path . [filemanager.class.php] file_url() better encodes file url - new module: redirect - moved two fields (link_href and link_target) to new module redirect from edit advanced node properties - moved all translations (link_href and link_target) from admin.php to redirect.php for all available languages. 2012-05-30 - new module: snapshots ### Release 0.90.4 - 2012-04-19 / 2012041900 ### 2012-04-18 - [main_admin.php] selective number of bullets in message list - bumped year in copyright messages where necessary - corrected a few typos in translations - [translatetool.class.php]: standardise on \n as EOL character - more preparations for upcoming release - more donors and translators in CREDITS 2012-04-17 - minor tweaks and typos - translation updates for de, es, fr, pl, tr and zh - additional languages: ar, da, fa, hu, pt - more translations for: de, zh - manifest updated for en and nl language - preparations for the upcoming new release: bumped internal version to 2012041900 2012-04-16 - minor adjustments in the skins: we now only display the phrase 'Messages' in the braille skin. - we now use separate CSS-files for braille and textonly instead of admin_high_visibility.css 2012-04-15 - more support for skins in area manager, translate tool, group manager, file manager, user manager and acl manager. - more fine tuning in alt-text translations - skins now also provide toplevel navigation items - additional style sheet for 'big' skin (PoC) - additional style sheet for 'lowvision' skin (PoC) - minor cosmetics 2012-04-14 - we now show the word 'Messages' in the yellow message area to make it easier for the vision impaired to identify error messages - changed a lot of alt texts to better convey the meaning of icons, ie. what is the effect of clicking on the icon rather than a description of a pretty picture (see http://webaim.org/techniques/alttext). 2012-04-13 - typo in translation: not implemented -> not YET implmemented. 2012-04-12 - better message stating module manager and statistics are not yet implemented - [main_admin.php] added display of donor logos to the start centre - added new theme 'axis' 2012-04-07 - [theme.class.php]: done with Bazaar Style Style Sheets - [filemanager.class.php]: bugfix: do caseINsensitive check on filename ext. 2012-04-06 - [updatelib.php, tabledefs.php]: . added field 'style' to table 'nodes' (for Bazar Style Style Sheets) . replaced field 'high_visibility' with field 'skin' in table 'users' and updated existing users in database: high_visibility=FALSE -> skin='base' and high_visibility=TRUE -> skin='textonly' - renamed variables $high_visibility to $text_only throughout preparing for the introduction of skins - [usermanager.class.php] relaced field 'high_visibility' with 'skin' in the edit user dialog - added a 'proof of concept' for the braille skin 2012-04-05 - [about.html]: the logo now links to the project website 2012-03-31 - imported CKEditor 3.6.2 (Minimum setup, ie. without source tree, samples, etc) - imported the original CKEditor 3.6.2 source tarball in the devel/imports directory - statement of chosen license for CKEditor added to /program/lib/ckeditor/legal.txt - updated several files in order to add ckeditor as an editor choice (this includes the install wizard and the demo data) - started with an update routine to change the acceptable settings for editors in existing installations. 2012-03-07 - [base.css, admin_base.css] minor omissions corrected 2011-10-11 - [rosalina.class.php]: typo in construction of (single) logo 2011-10-06 - [index.php, file.php]: re-arranged check for and redirect to maintenance.html - [manual.php]: we now offer a choice of manuals if more than one is installed ### Release 0.90.3 - 2011-09-30 ### 2011-09-30 - removed obsolete file area.class.php from repository - removed obsolete file module.class.php from repository - [updatelib.php]: added two files to list of obsolete files - [updatelib.php]: renamed the update routine to match the new release version - last minute update of Spanish: now completely up to date for 0.90.3 - Updated the list of contributors in CREDITS.txt - Bumped version/release/release date to 2011093000 / 0.90.3 / 2011-09-30 2011-09-29 - updated existing language files for Spanish, Chinese, French - added new language Polish - added new language files for German, Turkish - replace icons for account manager and help button with new versions kindly supplied by Greg Whitaker - [dialoglib.php]: additional input validation (UTF-8) 2011-09-27 - [demodata.php]: bufix: some demo nodes (siblings) had identical sort orders - removed obsolete file node.class.php from repository - removed obsolete file modulelib.php from repository - [updatelib.php]: we now check for obsolete files too - minor cosmetic changes 2011-09-26 - [pagemanager.class.php]: get rid of current area if it is no longer there - [pagemanager.class.php]: bugfix: sort order is now calculated correctly when inserting a new page/section - [updatelib.php]: added one-time fix for mixed-up sort orders in existing nodes - New configuration item 'pagemanager_at_end' allows inserting new nodes at the top or appending at the bottom of a (sub)section in the Page Manager. 2011-09-23 - [groupmanager.class.php] re-arranged some code, mainly dealing with group_delete() and group_save() (deletion of group/capacities) and also some cosmetics - [groupmanager.class.php] added additional warning when user tries to delete her own group/capacity - [areamanager.class.php]: we now also remove the empty data directory 2011-09-22 - renamed datadir_is_empty() to userdir_is_empty() - minor cosmetics - added function userdir_delete() and we now remove the (empty) userdirectory when the user account is deleted - [groupmanager.class.php]: we now enforce that the files must ber removed before the group can be deleted. Also, the user cannot delete a group of which she is a member. Order of delete rearranged to satisfy FK contraints 2011-09-21 - [instal.php] better test on JPG Support/JPEG Support specified by gd_info() - [waslib.php]: added small routine to test for (user)files in data directory - [usermanager.class.php]: additional checks before deleting user account, including blocking of delete own account; cosmetics - [filemanager.class.php]: minor UTF8-related changes + cosmetics - Global search and replace to change all references to the LOG_XXXX constants (replaced with WLOG_XXX) to circumvent a stupid difference between *nix and win platforms (see task_logview() in toolslib.php for more information). 2011-09-20 - [updatelib.php] Incorporated changes to nodes.modules_id in upgrade routine. - version.php: bumped internal version from '2011051100' to '2011092100' in preparation for the upcoming release '0.90.3'. - fixed two warning messages (E_STRICT) by explicitly defining objects $CFG and $PERFORMANCE to be of type stdClass (/index.php, /admin.php, /file.php, /cron.php, /program/init.php). - [areamanager.class.php] fixed error in deletion of area (unknown table 'user_areas', see also 2009-12-03) - [usermanager.class.php] Streamlined deletion of user account; renamed routine and user records are now deleted in the correct order. 2011-09-19 - [tabledefs.php] Removed the foreign key constraint for nodes.owner_id. - [tabledefs.php] Removed the foreign key constraint for areas.cuser_id. - [tabledefs.php] Removed the foreign key constraint for areas.muser_id. - [htmlpage_tabledefs.php] Removed the foreign key constraint for htmlpages.cuser_id. - [htmlpage_tabledefs.php] Removed the foreign key constraint for htmlpages.muser_id. - [sitemap_tabledefs.php] Removed the foreign key constraint for sitemaps.cuser_id. - [sitemap_tabledefs.php] Removed the foreign key constraint for sitemaps.muser_id. - [guestbook_tabledefs.php] Removed the foreign key constraint for m_guestbooks.cuser_id. - [guestbook_tabledefs.php] Removed the foreign key constraint for m_guestbooks.muser_id. - [mysql_class.php] Improved/streamlined create_table_sql() - [install.php] and [demodata.php]: adjusted the order of things so we do not violate FK constraints on initial install - Fixed FK constraint in nodes.module_id by allowing NULL values in case of a section; adapted pagemanager too. 2011-09-16 - [tabledefs.php] Removed the foreign key constraint for nodes.parent_id. 2011-09-09 - Resized several fields in database to stay within MySQL/InnoDB key limits of 767 bytes with charset utf8mb4 [see updatelib.php]: . areas.path: varchar(240) => varchar(60) . config.name: varchar(240) => varchar(80) . groups.groupname: varchar(255) => varchar(60) . groups.path: varchar(240) => varchar(60) . log_messages.remote_addr: varchar(255) => varchar(150) . login_failures.remote_addr: varchar(255) => varchar(150) . modules_properties.name: varchar(240) => varchar(80) . sessions.session_key: varchar(255) => varchar(172) . themes_areas_properties.name: varchar(240) => varchar(80) . themes_properties.name: varchar(240) => varchar(80) . users.path: varchar(240) => varchar(60) . users.username: varchar(255) => varchar(60) . users_properties.name: varchar(240) => varchar(80) . users_properties.section: varchar(240) => varchar(80) This applies to both the update routine and the tabledefs for a new installation. - Adapted dialogdefs in areamanager for new shorter path - Adapted dialogdefs in groupmanager for new shorter path and name - Adapted comments in dbsessionlib for new shorter session_key - Adapted dialogdefs in usermanager for new shorter path and name - waslib.php: made sanitise_filename() UTF-8 aware 2011-07-14 - main_admin.php: added a special intermediate screen for those intranet-users that accidently hit admin.php (prevents some confusion) 2011-06-30 - theme.class.php: removed all references to WAS_SCRIPT_NAME: we now use was_node_url() instead. - theme.class.php: better UTF-8 sanity check in get_address() - witemap_view.php: better handling of preview_mode 2011-06-29 - waslib.php: many important changes in the way node_id and/or area_id and other paramters is conveyed to index.php; we now accept calls like /was/index.php/35/photo/5/Picture_of_our_field_trip.html but also (still) the equivalent /was/index.php?node=35&photo=5. See get_requested_node() and was_node_url() for more information. - install.php: improved educated guesses in get_default_install_values() - waslib.php: slight changes to the was_node_url() code so we can use this routine for areas too - theme.class.php and rosalina.class.php: changed to use was_node_url() and removed a few superfluous routines (Theme::friendly_bookmark() and ThemeRosalina::rosalina_href()). 2011-06-27 - install.php: we now use trick with an invisible img to determine whether we can use the friendly URL feature - added a few more keywords to the demo data of frugal theme demodata 2011-06-25 - install.php and init.php: added complex routines to make sure that we use the correct value of the currently executing script. See the (long) comment for install_script_name() in install.php - waslib.php: streamlined internal url handling (was_url(), was_file_url()) 2011-06-19 - minor additions to install wizard: better processing of demo data 2011-06-17 - refined context-sensitive help in tools menu 2011-06-09 - minor tweaks in schoolyard theme 2011-06-07 - theme.class.php: added html-class 'current' to LI-tag in navigation bar too - theme.class.php: extra html-classes 'activepage' and 'activesection' in menu - added theme 'schoolyard' (designed by David Prousch, May 2006) to Website@School 2011-06-03 - installer: make demo data more accessible for additional themes and modules; we now also keep track of nodes, groups and users - added theme 'rosalina' (based on HV Menu by Ger Versluis (http://www.burmees.nl/) to Website@School 2011-05-31 - pagemanager.class.php: fixed a bug in calculate_updated_sort_order(): the calculations went wrong when sorting within a subsection 2011-05-29 - corrected a stupid typo in demodata.php - streamlined the fetching of module_id's in demodata.php - theme.class.php: show area in breadcrumbtrail for quicklinks too 2011-05-28 - pagemanager.class.php: better error handling in connecting and disconnecting modules and nodes - sitemap module: . added an optional header and introductory text to sitemap configuration . various cosmetic changes - added a real sitemap to the demodata, including a non-blank header and introduction (in all languages) 2011-05-27 - waslib.php: renamed function build_tree() to tree_build and changed the function calls everywhere else (theme.class.php, pagemanager.class.php, aclmanager.class.php, main_index.php) - waslib.php: moved routine calc_tree_visibility() from theme.class.php because it is even useful outside the theme - renamed calc_tree_visibility() to tree_visibility() and changed calls - added initial version of the sitemap module 2011-05-26 - theme.class.php: various cosmetics regarding the separators between quicklinks at the top/bottom of the page 2011-05-20 - waslib.php: added a routine was_url() to qualify relative URLs - theme.class.php: . the [Go] button is now always visible (reverses earlier decision to embed it in noscript-tag) . autosubmit now works with this.form.submit() instead of by naming the form . added class variables for separators in quicktop, quickbottom, breadcrumb trail (easier to change) . we can now indicate which menu to show via additional paramter menu_id in get_menu() . code cleanup / increased readablity . bugfix: we now actually obey the global 'friendly_url' configuration parameter . modified friendly_bookmark() to deal with UTF-8 and diacriticals in a slightly less ASCII-centric way 2011-05-18 - theme.class.php: we now add the area name to the breadcrumb trail - theme.class.php: . prepare the jump menu in the constructor (saves a trip to the database); adds an additional variable $jumps to the class . minor cosmetics 2011-05-17 - theme.class.php: the [Go]-button in the area jump-menu now only appears when the user has switched JavaScript 'off', otherwise we autosubmit the form. ### Release 0.90.2 - 2011-05-11 ### 2011-05-11 - configassistant.class.php: cosmetics in formatting of float parameter - theme.class.php: always indicate UTF-8 via http-equiv too - theme.class.php: minor cosmetics - version.php: bump release and release date to 0.90.2 and 2011-05-11 (the internal version was already bumped two days ago) 2011-05-09 - init.php: we now always include utf8lib.php with essential UTF-8 utilities - mysql.class.php: corrected stupid typo in dump(). - useraccount.class.php: yet another stupid typo (in Useraccount()) - updatelib.php: database conversion from charset 'whatever' and collation 'whatever_whichever_ci' to 'utf8' and 'utf8_unicode_ci' (or 'utf8mb4' and 'utf8mb4_unicode_ci'). - version.php: bumped internal version from '2011020100' to '2011051100' in preparation for the upcoming release '0.90.2'. 2011-05-08 - mysql.class.php: . cosmetic/documentation changes . added code for full / partial utf8 support (partial <5.5.3, full 5.5.3+) . set charset to utf8 or utf8mb4 on connect()ing to the database . also remember the MySQL-version in the backup (dump()) 2011-05-06 - install.php: https on a non-standard port yielded the wrong port number - utf8lib.php: added a function to map characters with diacriticals to plain ASCII as far as possible - install.php: added the utf8_strtoascii() mapping when generating data directories; makes it more readable for some languages compared to simply deleting all multibyte UTF-8 characters - demodata.php: better UFT-8 support and better sanitised directory names 2011-05-05 - added Chinese translation (based on 0.90.1) - updated Spanish translatation: now also based on 0.90.1 2011-05-04 - loginlib.php: explicitly go to 'index.php' in 'home' link in login dialog - install: added some more comments for translators in Ennglish languages files - added French translation (based on 0.90.1) - we now refer interested parties to http://websiteatschool.eu for a full overview of credits (see CREDITS.txt). 2011-05-02 - install.php: . suppress PHP-errors when realpath, opendir are outside the open_basedir tree . more checks on possible UTF-8 issues . added warning for obsolete MySQL-version (< 4.1) in database and compatibility screens (including Dutch and Spanish translation (partial)) - filenmanager: added the untranslated path to directory overview in task_list_directory() - dialoglib.php: . slight change of the meaning of ~ as hotkey-indicator: we now only accept ASCII-characters. UTF-8 characters are silently ignored. - main_admin.php: we now go explicitly to 'index.php' when navigating to the pulic area so a bare CFG->www_short will not take us to say index.html or default.htm. - pagemanager.class.php: same for the preview function: explicit link to index.php. 2011-04-29 - install.php: . UTF-8 support for password validation routine . UTF-8 aware use of substr() - uitf8lib.php: . added function utf8_substr() 2011-04-22 - install.php: . more support for UTF-8 in save_database() . additional input checks on absurd lengths 2011-04-18 - install.php: all input (GET/POST) is now checked for UTF-8 conformance 2011-04-15 - created utf8lib.php with essential routines for handling UTF-8 (based on Unicode 6.0.0, February 2011) - install.php: . we now explicitly check user input for valid UTF-8 . added 'accept-charset=UTF-8 to all forms (perhaps superfluous) . improved caseINsensitive check for the 'I Agree' prompt 2011-04-13 - install.php: added http-equiv Content-Type: text/html; charset=UTF-8 2011-03-11 - bugfix: there was a problem with the database dump: NULL-values were not properly dumped. - clarification: all relevant fields in the database can accomodate an IP-address of 15 or 39 characters because the relevant fields are varchar(255) - finetuning the message-id header field in email class - updated INSTALL.txt with instructions for upgrading and installing the manual - replaced email address for submission of translations (in the translate tool) ### Release 0.90.1 - 2011-03-09 ### 2011-03-09 - bugfix: a newly added language in the translate tool was always labeled 'active' even when the box was unchecked; fixed in translatetool.class.php - re-arranged the status overview table in updatelib.php: we now have additional columns for release date and release. - a new language without a corresponding manifest but added/created locally can now exist in the database without raising an error in the update status overview - changes in /program/version.php: . Bumped WAS_RELASE from 0.90.0 to 0.90.1 . Bumped WAS_RELEASE_DATE from 2011-02-01 to 2011-03-09 . WAS_VERSION remains unchanged at 2011020100 - bumped release/release date in various manifests too (languages, modules, themes). 2011-03-08 - done with install_theme() and install_module(): we can now install new themes and modules - corrected a few typos - added the Spanish translation of v0.90.0 to CVS - bumped all versions and releases of all existing languages, themes and modules to 2011020100 / 0.90.90 / 2011-02-01 in order to make it clear to which core version a particular subsystem belongs. Old (internal) versions: frugal: 2008022000, htmlpage: 2008112500, en: 2010092700, nl: 2010092700. This requires a manual update in the update manager (which is in fact a no-op). 2011-03-07 - added more clarification in htmlpage_install.php about inner workings - corrected a few typos - modified a few translations in 'en' and 'nl' - added the routine for updating existing modules - started on install_theme() and install_module() 2011-03-03 - added some more clarification in frugal_install.php about the inner workings of the call-back routines - we can now call the theme_upgrade() call-back from the Update Manager (updatelib.php). 2011-03-02 - streamlined the update status overview in updatelib.php - added code to update and install additional language packs in updatelib.php. 2011-02-21 - updated version of manual.php 2011-02-18 - bugfix: typo in /program/manual.php 2011-02-03 - the new Project Home Page is now at http://websiteatschool.eu; many, many sourcefiles modified to include the new location (mainly in copyright messages) ### Release 0.90.0 - 2011-02-01 ### 2011-02-01 Today the complete development of WebsiteAtSchool was transferred to CVS at the development site BerliOS (http://developer.berlios.de), using the current version (which we used to call 0.1.7). We now start with a new phase in the development, i.e. a publicly visible CVS-server and official releases etc. This is a good opportunity to bump both the internal version and the external version (release) and start with a more or less clean slate. Furthermore, we will be generating a first 'official' release today. Changes in /program/version.php: - Bumped WAS_RELASE from 0.1.7 to 0.90.0 - Bumped WAS_VERSION from 2010122100 to 2011020100 - Bumped WAS_RELEASE_DATE from 2010-01-20 to 2011-02-01 Changes in /program/lib/updatelib.php: - Added logic to update existing database versions to 2011020100 ***************************************************************** ***************************************************************** ******* ******* ******* BELOW THIS LINE ONLY OLD AND OBSOLETE CHANGES ******* ******* ******* ***************************************************************** ***************************************************************** 2011-02-01 - changed development colours to something more appropriate 2011-01-20 - completely overhauled version of devel/tools/makedist.sh: we can now generate 'official' releases too - updated copyright/license message in scripts in devel/tools - bumped release from 0.1.6 to 0.1.7 just to test the release procedure. After checking in version.php we need to add a revision tag with 'cvs rtag release-0_1_7 was' and see what happens. 2011-01-12 - added a simple counter/index to translate tool: makes it easier to refer to a particular translate string on the phone - added a devel tool to identify changed and added strings between versions in a convenient single HTML-page (langdiff.sh in the tools directory) - corrected a stupid typo in English and Dutch translations - bumped version from 0.1.5 to 0.1.6 2011-01-10 - Changed bottom line in main_admin.php: we now only display the execution time, # of queries and TOD when in debug-mode. - Removed the (empty demo-like) stubs in the group manager and user manager indicating configurable modules per user/group. This makes it easier to create realistic screenshots for the upcoming manual. - Bumped release from 0.1.4 to 0.1.5 2010-12-20 - completed the automatic execution of the update manager (called whenever there is a mismatch in the core version) - added update manager to tools menu - bugfix: removed double escape in version check icon in start center - bumped release from 0.1.3 to to 0,1,4 - bumped version from 2010120800 to 20101221 (just for testing purposes) 2010-12-17 - started with support for automatich update wizard (driven by internal version number mismatch) - bumped version to 0.1.3 2010-12-13 - bugfix: missing closing '>' in buttons in install.php - bumped release to 0.1.2 - bugfix: error with deleting of sections/nodes in pagemanager. 2010-12-10 - bugfix: if CFG->www_short is empty, the link to the public site was broken [main_admin.php] - bumped release to 0.1.1 2010-12-08 - mass update of all source files, now with the correct copyright text and link to license.html etc. (continued) - renamed DatabaseResult to DatabaseMysqlResult to prevent name clashes once DatabasePostgresql and DatabasPostgresqlResult once these are written - cleaned up various files (removed obsolete chunks of dead code) - added the 'registered trademark' message to the loginlib - removed the old (wrong) logo from the standard theme - updated base.css to increase height of quickbottom div - added a rel link to /program/graphics/favicon.ico (in main_admin.php) - bumped external version from 0.0.7 to 0.1.0 - bumped internal version from 2010092700 to 2010120800 2010-12-07 - cleanup of init.php; streamline the error_exit() routine - mass update of all source files, now with the correct copyright text and link to license.html etc. - various cosmetics - added link to on-line license.html in LICENSE.txt too 2010-12-02 - added the final version of license.html with all the legalese - added /program/about.html with 'Appropriate Legal Notices' - modified the installer to check for the exact version of license.html - added global definition: WAS_ORIGINAL in version.php - added some more logic to the online version check - bumped release from 0.0.6 to 0.0.7 - added a few graphics files for 'powered by' and 'based on' - added a new logo file of 284x71 (instead of 248x53) - incorporated the 'powered by' and 'based on' graphics in install.php - incorporated new logo in install.php - header height in base_admin.css from 53 to 71 pixels for new logo - added link to about.html via appropriate_legal_notices() in install.php - added link to about.html via appropriate_legal_notices() in main_admin.php - modified the translatable text in footer: we now force the English 'powered by' (or 'based on') even in other languages. - added an explanation for creating modified versions in '/program/about.html' - also changed the address for new users from schoutdi@knoware.nl to online@websiteatschool.org 2010-10-28 - raised the priority of logmessage when a virus is detected in filemanager.virusscan() 2010-10-27 - we now use UTF-8 in the default Theme class; send it to browser via http-headers - stupid typo in Theme class corrected (bugfix) - new function: log view (in tools menu) - added two more job permissions and changed existing: we now have separate permissions for translate tool, backup an logview. 2010-10-26 - minor cosmetics: we now have a database backup named host-database-prefix-date-time (either .zip or .sql) - we now have a 'hidden' feature that allows for downloading the uncompressed .sql by specifying 'download=sql' instead of 'download=zip'. 2010-10-21 - bugfix in rfc2047_qstring(): we now keep UTF8-tails together with the first octet in the sequence in the same 'encoded-word' - completed backup function in tools menu 2010-10-20 - implemented a (database-specific) database/SQL-dump in mysql class - first draft of database dump downloader in tools (no check on user perms yet) - minor cosmetics 2010-10-19 - moved a few mail-related routines from waslib to email.class - adapted loginlib: we now use email class to send mail - added a header implying that we send UTF-8 in login dialog too - added an extra download feature: file.php/websiteatschool/languages now returns a ZIP-file with all user-defined translations of active languages 2010-10-18 - added a supersimple mailer class in email.class.php - adapted translatetool to use this new email class - minor cosmetics 2010-10-17 - fixed some bugs in filemanager.class.php - preliminary changes in interfacing to mail() command (viruscan) - cosmetics 2010-10-15 - implementation of RFC2047-style quoted-printable mail header extensions in translate tool 2010-10-11 - implementation of conversion to quoted printable according to RFC2045 section 6.7 (waslib.php) - adapted routine to submit translatations to deal with quoted printable message - (finally) converted the program's native language to UTF-8, at least in AdminOutput in main_admin.php (we still need to deal with UTF-8 in the database) 2010-10-06 - translatetool.class.php: we can now really save user translation files under CFG->datadir/languages/ (submit of translations is still work in progress) - (later) initial version of sending translation works (more or less). - added a cache reset to $LANGUAGE to force re-read of the userfile just written 2010-10-05 - minor changes in language.class.php: . we now cache a list of _all_ (active+inactive) languages . removed obsolete and unused routine get_languages() . renamed get_language_names() to get_active_language_names() - minor changes in files which relied on the old language.class.php - nasty bug: a '.' in a fieldname yields a '_' in $_POST. Huh? workaround: use a ':' 2010-10-04 - translatetool: . we now have visible codes in the translation dialog. . we also have fields for metadata (per full_domain) . still work in progress 2010-09-30 - translatetool: we can now show a domain menu in the edit translation dialog but otherwise it is still work in progress 2010-09-29 - translatetool: we can now add new languages and edit existing ones but it still work in progress 2010-09-28 - translatetool is work in progress 2010-09-27 - changed the way languages are handled: we now store the name of the language expressed in the language itself in the languages table which required a change in the tabledefs - bumped version from 2010070700 to 2010092700 because of the changes in the database (table definition of 'languages'). 2010-09-23 (after the summer break) - bugfix (finally) in language class where valid translations were overwritten in memory when another phrase key was not found. 2010-07-08 - we now have a distinction between browsing files limited by filename extension and uploading files limited by extension. bottom line: in the file/image/flash browser the user can only see and upload selected files, in the file _manager_ the user can upload selected files but see _all_ files, including 'forbidden' files (eg. some random script uploaded by an intruder) - new feature: if a file is detected (in filemanager) which would currently not pass the test for allowable upload, the entry in the filemanager listing is displayed with the CSS error class and the preview links are completely disabled, preventing the user from accidently previewing a rogue file. 2010-07-07 - now suppress menu too in filebrowser/imagebrowser (via .CSS) - started with support for new job 'flashbrowser' (cousin of 'imagebrowser') - added support for three new configuration parameters that limit the allowable file extensions (as a shorthand for allowable file types) - bumped version from 2010063000 to 2010070700 because of the three new configuration options in the installer 2010-07-02 - initial version of thumbnail-based file/image browser (still incomplete) 2010-07-01 - added check on GD in installer - added a hint to print the summary page in installer 2010-06-30 - bumped WAS_VERSION from 2010052400 to 2010063000 because of a typo last week (it should have read 2010062400 but the actual value was 2010052400). Also, the new default value for 'thumbnail_dimension' decreased from 150 to 100 pixels. - added support for thumbnails in the basic style sheet (based on the new default dimension of 100). 2010-06-24 - added generation of thumbnails to file upload routine in file manager - added more about limits (file size, upload size) in file upload explanation - minor cosmetics - bumped WAS_VERSION from 2010051300 to 2010062400 because of new configuration option 'thumbnail_dimension' 2010-06-22 - re-arranged code and added new file /program/lib/filelib.php 2010-06-15 - filemanager extended so it can double as a filebrowser via job=filebrowser and image browser via job=imagebrowser - linked FCKEditor to the filebrowser and imagebrowser 2010-06-14 - draft version of link browser combined in filemanager (filebrowser) 2010-05-04 - done with file upload except for 1 small thing (sanitise file type) - minor cosmetics here and there 2010-05-13 - renamed new parameter 'files_upload_count' to 'upload_max_files' - bumped WAS_VERSION from 2010051200 to 2010051300 because of this - minor cosmetics here and there - implemented F_FILE in dialoglib 2010-05-12 - added comptibility check for Safe Mode (should be 'Off') in install.php - added support for clamscan anti-virus in install.php - added extra configuration options in site config for clamscan - added configuration option fo maximum number of simultaneous uploads - bumped WAS_VERSION from 2010010700 to 20100512 because of extra site configuration options 2010-04-14 - almost done with filemanager; what remains is file upload implementation 2010-04-13 - added file delete confirmation dialog to filemanager 2010-03-31 - filemanager: added a Javascript one-liner to select all files - filemanager: we can now add (create) subdirectories 2010-02-13 - filemanager: . directory listing layout done . sort option for three columns (ascending or descending) . human-readable filesize . various stubs for delete and add file/dir still work in progress though 2010-02-10 - filemanager: navigation basically works but still: work in progress 2010-02-08 - filemanager is still work in progress 2010-02-05 - added some more navigation to file manager 2010-02-03 - traded filemanagerlib.php for filemanager.class.php 2010-01-28 - for now done with main_file.php: we can serve files from the data directory using the correct (?) mime types etc. 2010-01-20 - Oops. Bug in tabledefs: there was no unique index on areas.path. Fixed. - Done with download of source code: we now recognise file.php/websiteatschool/program (program code) and file.php/websiteatschool/manual (manual in current language) - More oops. Another bug in tabledefs: we didn't have the unique index on path for users and groups either. Fixed. - Busy with file.php: validation and access control done. 2010-01-19 - started on file.php and download of source in .ZIP-file 2010-01-13 - created a new class Zip (in /program/lib/zip.class.php) which allows for creating ZIP-archives on the fly, including Deflate compression, file and archive type comments and zipping from memory or from existing file. 2010-01-09 - removed a lot of superfluous files from /program/lib/fckeditor - suppressed the option 'fcksource=true' in dialoglib: the user that sets that parameter in $_GET gets the plain text area instead of the source-variation of FCKeditor (which is mostly deleted from /program/lib/fckeditor and wouldn't work anyway). 2010-01-08 - added the full tarball FCKeditor_2.6.5.tar.gz to devel/imports so we have the original source nearby - added type F_RICHTEXT as a gateway to the FCKeditor in dialoglib - first steps to actually incorporate FCKeditor 2.6.5 in directory /program/lib/fckeditor ia CVS import function. We consider the extensions gif png swf pfx and fla to be binary files, the rest done via -ko. 2010-01-07 - added view-only field in edit user that shows the data directory name - removed the 'advanced' option from the edit user menu because there is no 'advanced' dialog (yet) - added editor selection to basic user properties, choices are: plain and fckeditor - added the logic for groups path parameter - added r/o view of data dir name in edit function in areamanager - added r/o view of data dir name in edit function in usermanager - added r/o view of data dir name in edit function in groupmanager - corrected some typos - added unique index on path field in areas table - bumped version from 2010010600 to 2010010700 because of changed tabledefinition - added the data path to the add area dialog - update demodata so we have readable area data dirs now instead of numbers 2010-01-06 - we now also make subdirectories 'users' and 'groups' in the data directory (next to 'areas' and 'languages') in the installer - we no longer record the words 'areas' and 'users' and 'groups' in the path fields in the corresponding tables, dirs are strictly separated now. - added global configuration option for generating friendly URLs instead of querystrings - added routine to sanitise filenames to waslib (used in creating datadirectories for areas, users and groups) - we now check to see if the user tries to install with a username that is also used in the demodata - we now actually create the datastructures in the datadir for all demo-data users, groups and also the areas - bumped version from 2009120300 to 2010010600 because of changed tabledefinitions - added more translation texts for new config items 'friendly_url' and 'editor' - fixed a few typos 2009-12-22 - done with pagemanager class - removed obsoleted pagemanagerlib.php 2009-12-21 - almost done with pagemanager class 2009-12-19 - 'playing' with stylesheet: we now see line-through on 'dimmed' links in high-visibility mode (works for funnel mode) 2009-12-18 - added funnel mode support to AdminOut 2009-12-17 - very busy re-arranging code in page manager 2009-12-08 - changed the has_..._permissions() routines in useraccount: we now test for 1 or more permissions, not an exact match anymore: ($perm & $mask) != 0 versus ($perm & $mask) == $mask. 2009-12-04 - finally decided on the issue of 'per-area' datadirectories: we simply use $CFG->datadir/areas/<area_id> - reworked the permissions in the area manager - we no longer allow changes in the path property of areas; the field isn't even shown anymore. 2009-12-03 - finally got rid of the tables users_areas and users_nodes because they are now replaced by the acls-tables. - removed fields job_permissions and permissions from users table because they are now replaced by the acls-tables. - implementing acls in the useraccount class (work in progress) - bumped version from 2009102100 to 2009120300 because of changed/removed tables - removed PERMISSION_VIEW from useraccount.class.php because it is now replaced by ACL_ROLE_INTRANET_ACCESS - removed PERMISSION_ADMIN (which was added 2008-10-01) from area manager. It still needs to go from pagemanager. 2009-11-30 - added an item to the CMS dialog in the installer to query the user for a generic demonstration data password (will be assigned to all demo accounts) 2009-11-04 - done with demodata: we now have a public area with 16 pages and 6 sections and a private area with 8 pages and 3 sections, alltogether in 2 languages (en and nl). Pfew! 2009-11-03 - demodata() now adds 3 areas, 4 groups and 8 users in 2 languages - demodata() now also adds many nodes in 2 languages (work in progress) - reduced the htmlpage_demodata() and frugal_demodata() to no-ops because all demodata is already inserted in the main demodata() routine. 2009-11-02 - finished logic for datadirectory name based on dataroot and quasi-random subdirectory (to obfuscate the datadir if it happens to be located within the document root) - we now create an empty index.html in both dataroot and datadir to prevent leakin information if dataroot is located within document root. - added creation of subtree 'languages' to datadirectory, also with empty index.html files 2009-10-23 - re-arranged the interface via manifest-files: we now fill the array manifests[] (plural), just like tabledefs[] - main logic for installing is done, only thing left to do is insert demodata - quick fix in set defaults for cms_dir 2009-10-21 - yet another changed tabledef: bumped version from 2009102000 to 2009102100 - we now install themes and languages too (not just modules) 2009-10-20 - bumped version to from 2009101600 to 2009102000 because of changed tabledefs 'modules', 'themes' and 'languages' - added manifest files for languages 'en' and 'nl' 2009-10-19 - changed manual.php: we made a start with linking topics and subtopics to html-files under /program/{$language}/ - changed handling of help_topic in install wizard (subtopics) - we now actually create the data directory if it doesn't exist already - we now return a link to check for new versions rather than the simple assumption 'OK' in the compatibility dialog in the install wizard 2009-10-16 - removed fields manifest_script and install_script from modules table; if necessary we can construct these from the manifest or use 'well known' script names (like 'tabledefs.php' and {$module}_manifest). - Bumped version from 2009061100 to 2009101600 because of change in the datadefinition of the modules table. - We now are able to install modules via their manifest (but not yet demodata) 2009-10-15 - extra debugging in database library and mysql class - almost done with actual installer 2009-10-13 - added more documentation to functions - added functionality to write config.php (if filesystem permits) 2009-10-12 - added a check on already installed - added optional version check in compatibility screen 2009-10-05 - the installer is still work in progress but all the dialogs are done 2009-10-01 - more checks/validation in the installer 2009-09-30 - re-arranged the code in install.php: we now have the InstallWizard class - re-arranged the order of the funnel: we now require valid databaase credentials before we leak any information - added delays to the database validation if something goes wrong, to scare off the spooks 2009-09-29 - added suppress_output mode to AdminOutput class 2009-09-24 - installer: work in progress 2009-09-23 - installer: work in progress 2009-09-22 - installer: work in progress - added an ad-hoc image for an OK-button 2009-09-21 - installer: work in progress 2009-09-18 - added style for previous and next buttons to admin_base.css + icon 2009-09-10 - we now require a new password twice when adding a new user - code cosmetics 2009-07-24 - done with pagemanager permissions in usermanager and groupmanager; we can now store and retrieve permissions on node level. - added minor cosmetics in the expanding/collapsing of areas in aclmanager: we now always keep the section to expand/collapse visible on the current screen by setting the offset to the offset of that area - updated translations 2009-07-23 - after a lot of time I finally got the pagemanager permissions in the ACL Manager right: we can now actually save the settings via a complex dialog (for the programmer) that deals with screens (in long lists) and also allows for opening and closing areas. *pfew* 2009-07-01 - more work on the pagemanager permissions dialog, including walking the node tree in an area (work in progress) 2009-06-30 - moved pagination code to AdminOutput() 2009-06-19 - we now have fully implemented the 'related-acls' feature for the user intranet access dialog and the user admin access dialog. - some more streamling in the install.php to navigate in tabledefs and datadump 2009-06-18 - we now also delete user associations with a group/capacity when a capacity is removed from a group in the groupmanager - (special request) we now have a jump-menu in the theme via which a visitor can jump to any area available to her (logged-in users also see private areas if they have permission) - added a users+groups summary to the account manager intro screen - added support for user privileges intranet and also user privileges for admin, the latter including the related feature - various typo's corrected 2009-06-17 - we can now manipulate a user's group memberships: view, add, delete 2009-06-16 - completed pagination routine with a limit on links to show - changed default number of links to show to 7 (was 5) 2009-06-11 - added pagination to users list in user manager - added configuration parameters for pagination to $CFG via config table - added 'memory' to users list: after editing you return to list/screen you started from (if possible) - bump version to 2009061100 2009-06-05 - added function for sorted list of languages to $LANGUAGE - saving basic properties of user now works 2009-06-04 - minor tweaks in loginlib in order to reuse the password/salt-code - added 'add user' - added 'delete user' - started with 'edit user' - added more Dutch translations, again 2009-05-31 - done with acl for admin jobs - fine-tune in groupc apacity menu: suppress pagemanager link if this group/capacity has no permission for page manager - more or less done with users overview (but Dutch translations lack) 2009-05-30 - code cleanup in group manager - more logging in group manager - some small convenient enhancements to the install.php making it easier to keep track of the logging - delete group function now works - added more Dutch translations 2009-05-29 - we can now save group data, including checks on ACLs etc. 2009-05-28 - busy with implementing ACL-configuration starting with intranet permissions - added more and more information to the demodata: now with an acls-record for every user and every group/capacity. 2009-05-26 - typo in tabledefs; bumped version to 2009052600 2009-05-22 - added a breadcrumb trail to the admin output object because we really need this to remember where we are in the account manager - added list of users per group-capacity (task=capacityoverview) - minor cosmetics (inluding correction of type in name Helen Parkhurst) - busy with the navigation between various screens dealing with group-capacity properties 2009-05-20 - added some 55 dummy-users and 15 dumy-groups to demodata in order to 'play' with the account manager - we now are able to add new groups, including up to 8 capacities per group 2009-05-19 - group manager: we can now show a list of existing groups and group-capacities including clickable links - addded some group data to the demodata - bumped the version to 2009051900 to make sure that the demodata is re-created in the testversion 2009-05-18 - updated logo's, now with ® - added new icon for account manager - moved usermanager around together with the group manager; there is now a top-level accountmanager for users and groups 2009-05-14 (after some two months of thinking we're back with more) - start with better access control via 6 new tables - added three tables for additional group-based access control - obsoleted two tables (users_areas and users_nodes) and some fields in the users table: the functionality is now available via ACLs. - bumped versions to 0.0.5 and 2009041500 - Deprecated the 'unsigned' attribyte in tabledefs because this is a non-standard feature which MySQL happens to implement but other DBMSs might not. In general 2^31 integers should suffice anyway. 2009-03-18 - rearranged code for calculating the URL for version checker on project's website - added support for Bazaar Style Style Sheets on static level and on area level (not yet on node level; todo) 2009-03-17 - fixed bug in dialog_validate(): viewonly fields should not need to be validated because they are not supposed to change anyway - added routine for manipulating/editing the main site configuration (via ConfigAssistant) - got rid of get_configuration(): we now use get_properties() for the main config too - done with the area manager except 1 little detail (the handling of the data directory) - added support for datatypes 'l' (picklist) and 'r' (radio) in ConfigAssistant; the type 'c' (checklist) still needs to be done 2009-03-14 - bumped version internal number to 2009031400 because of significant changes in the database (the extended configuration table format) - added begin of support for 'Cascading Cascading Style Sheets' or 'Bazaar Style Style Sheets'. - added yet more demodata to show the possibilities of the area manager 2009-03-06 - almost done with area manager; we only need to copy the theme parameters when adding a new area - rearranged/renamed some phrases in order to keep at least a little overview 2009-03-05 - added a configassistant class as a quick tool for editing generic configuration data (first used in editing theme properties in areamanager) 2009-02-27 - moved all code dealing with area management to seperate class 2009-02-26 - added functionality to delete areas - started with functionality to add areas 2009-02-25 - added fields mtime, muser_id, ctime, cuser_id to areas table - bumped internal version to 2009022500 - bumped external version to 0.0.4 - added copy of webmaster account to account 'textmaster' to demodata: easy checking text interface with permissions of webmaster - optimising queries on 'nodes' table by adding an index on field 'area_id' 2009-02-24 - (finally) started with configuration manager - added has_site_permissions() to user class so we can use access control in area manager - moved some code from pagemanagerlib to waslib so we can reuse it 2008-12-14 - incorporated a stub with base.css so we can see what a page will look like (more or less) - minor cosmetics in the demo data 2008-12-10 - more navigation in base theme: now tree-like menu - added language files en and nl to frugal theme - minor cosmetics 2008-12-08 - added table themes_areas_properties - added more demo data, including a quicklinks top + bottom in hidden sections - changes in the built-in theme object - bumped internal version to 2008120800 - added some more functionality to the built-in theme object 2008-12-04 - removed global $NODE and $AREA; we use a local variable $area in main_index() and information about the node is to be found in the local variable $tree - obsoleted file area.class.php - obsoleted file modulelib.php - obsoleted file module.class.php 2008-12-03 - moved some more code from pagemanagerlib.php to waslib.php - we no 'fix' circular references in function is_under_embargo() (this should be fixed and properly done in a database repair tool or something) 2008-12-01 - moved build_tree() to waslib because it is used from main_index() too and not just from main_admin() 2008-11-26 - some files re-arranged and renamed: e.g. /program/lib/adminlib.php now lives in /program/main_admin.php - added stubs to /cron.php (which call /program/main_cron.php) and /index.php (which call /program/main_index.php) - removed adminlib.php from CVS repository because it is now obsolete - added begin of support for Apache's PATH_INFO feature for specifying area and node like index.php/aaa/nnn or index,php/nnn. This does pose a few problems with relative urls... to be fixed 2008-11-25 - yet another change to the database: modules table - version bumped to 2008112500 2008-11-24 - added more logic to the garbage collection and expiry of obsolete sessions - added unconditional garbage collection after successful login - added a default value for session_expiry to demodata - renamed global config option sessionname to session_name throughout - version bumped to 2008112400 because of change in demodata 2008-11-21 - first attempt to actually save htmlpage content - version bumped to 20081121 because of change in data definition 2008-11-20 - added three stubs for modules: htmlpage, mypage and guestbook - we now actually delegate the task of editing content to the module admin code 2008-11-17 - we now take readonly into account when deleting nodes - documentation in dialoglib - minor cosmetics 2008-11-10 - save advanced node properties now working (except moving a non-empty subtree to another area) - bumped internal version number (WAS_VERSION) from 2008020100 to 2008111000. This forces an error message/condition code 050, which means that the database is not in sync with the program. Normally, this would mean that an updater should be executed which changes the database structure. In the development phase we simple need to reload the demodata. Naturally I changed the version number in the demodata too. - I also bumped the external version number from 0.0.1 to 0.0.2, just to gain some experience with changing versions. - Added a FAQ about condition code 050. - Added a field 'locked_since' to the nodes table, allowing to make the 'sorry, record is locked' message even more friendly 2008-11-09 - minor changes: . default visibility for a new page is now 'hidden' as per Dirk's request . field order in basic node properties now has module as last in the list . a 'default node' now loses the default node bit when the node is moved to another parent (preventing ending up with two defaults). - added a class 'current' to options in the menu (currently there are two menus: the area menu and the node edit menu). The current item is underlined (via CSS). 2008-11-08 - we now manipulate the sort order in such a way that the sort order of other nodes is increased/decreased in order to make room for the moved node. 2008-11-07 - added stubs for module_connect() and module_disconnect() so we can actually link a module to a node (and unlink too, obviously) - we can now almost save the data from the basic properties dialog (everything except the sort order by itself) 2008-11-06 - we can now fill the dialogs for editing a node with data from database - added Dutch translations for all prompts etc. 2008-11-05 - rearranging the translations in /program/languages/em/admin.php - minor change in admin_basic.css so we can indent options in a drop down list (tree) - added a comment feature to the English translation file admin.php: this allows for communicating the purpose and context of strings to the translators - completeted the dialogs for basic and advanced editing of nodes (but not yet the actual saving etc.) 2008-11-04 - removed PERMISSION_NODE_EDIT_CHILD from useraccount class, changed into PERMISSION_NODE_EDIT_NODE because that makes more sense, I think. - started with edit a node dialogs - cosmetics 2008-10-31 - cleaning up code (it takes time to condense rough code and make it more elegant) - added better logging to the alert feature - on special request: now new nodes are added at the top of their section rather than at the end (some logic is more logic than other logic) - we play a special trick when adding a node: we force switch to custom view with all ancestors opened and any other sections closed. 2008-10-30 - added a routine that churns out alert messages every now and then - added more logging + alert to change default routine - minor cosmetics 2008-10-29 - we now can add new sections and pages - we now accumulate alerts when a new page/section is added 2008-10-28 - a small diversion in the past week: add tables for alert function (alerts, alerts_areas_nodes) - updated demodata to 'play' with alerts - added function to lock records of nodes table, alerts table 2008-10-20 - added even more functionality to dialoglib.php + documentation - first attempt to do a dialog in pagemanager (no save yet) with new lib 2008-10-18 - added more functionality to dialoglib.php 2008-10-15 - added dialoglib.php 2008-10-13 - moved some html-utilities to new file /program/lib/htmllib.php - added some links + translations to the start center - first start on 'add a section' code 2008-10-10 - re-arranged icons, added new icons for visible/invisible page - modified page preview to use a one-time access code via md5-hash - documented all routines in pagemanagerlib.php, code cleanup - implemented the 'set home' function for nodes 2008-10-09 - changed layout of node tree a little bit: . add a node is now displayed at the top of the tree . we no longer show sort_order and node_id in the anchor text (we do show the node_id in the mouse-over (title) though) - added logic to switch between collapsed, customised, expanded tree view - we now have stubs in place for all tasks in pagemanager, including preview - we can now use index.php to show a preview (stub) 2008-10-08 - many changes in page manager: we now have an almost working tree view that can expand and collapse 2008-10-01 - inserted a new permission: PERMISSION_ADMIN. If this bit is set in the user's permissions (either site, area or node), the user has at least one permission bit set to manipulate the site, area or node. It is more or less shorthand for 'one of the permission bits is set'. - we now have an area menu in pagemanager 2008-09-30 - a few tweaks in adminlib.php (http-equiv headers) - added a help topic in help button in navigation in adminlib.php 2008-09-29 - moved workhorse /program/admin.php to /program/lib/adminlib.php to avoid confusion with file names (which 'admin.php' do you mean?) - further documented adminlib.php, tweaked the page layout 2008-09-26 - basic dispatcher in admin.php done - change in datadefinition: added field job_permissions to user table - change in datadefinition: added field high_visibility to user table - added support for high visibility via additional stylesheet - basic admin.php navigation is more or less done 2008-09-22 - further refined page layout for admin.php - added a basic version checker at http://siteatschool.org/version/index.php 2008-09-21 - started with admin.php 2008-06-10 - added shortcuts for $CFG->www and $CFG->progwww 2008-05-28 - changed $NODE, $AREA and $THEME into objects - added support for redirecting users if they accidently request a page with an external link - made a start with a base class for themes - started with a minimalistic theme called 'frugal' - created start of a theme factory - minor cosmetics 2008-05-09 - changed the creation of the $DB global object: we now use a database factory 2008-04-29 - removed some of the trigger_error() calls in waslib/calculate_node(); only database errors now emit to screen if debug is TRUE; the rest now use logger(...,LOG_DEBUG) which writes to the database in itself. - we now kick unauthorised users/passersby out of protected areas with a fatal error 070 (cannot find node in area). They should login the regular way IMHO. I re-used error code '070' on purpose in order not to leak information about protected areas. 2008-04-25 - changed name of config parameter for language from 'language' to 'language_key' to stay in sync with other (database) fields dealing with language codes. - moved all code dealing with translations and languages to a separate file and into a special class. 2008-04-23 - cleaned up loginlib.php, added more documentation - added logger() which logs important events in the database 2008-04-21 - done with t() and supporting routines - added en and nl translations for loginlib.php 2008-04-16 - busy with translating strings via function t() 2008-04-11 - changed interface for last_insert_id() method: use table+field instead of sequencename - added new table login_failures - loginlib.php now also implements the blacklist feature and the failures counters 2008-04-09 - login mostly works, except blacklisting/failure counts - added confirmation mail to user after succesful change of password 2008-04-08 - added a javascript alert in every login dialog (near the end) - created a random password/laissez passer-generator 2008-04-07 - changed password requirements in loginlib: now min 6 chars etc. - rearranged code in loginlib - added more demodata to play with 2008-04-05 - first draft of WAS-logo incorporated in login dialog 2008-04-04 - still working on login/logout and various failure modes and also on the 2-step laissez-passer + bypass routine 2008-04-03 - still working on login/logout and various failure modes 2008-04-02 - started with login/logout routines, added file loginlib.php 2008-04-01 - rearranged some code - we now always read the complete config table in core - added more config parameters in demodata - refined session handling code - added if_exist_session() type of routine to make sure we are not fooled by spurious cookies 2008-03-30 - added tabledef for users, sessions - added more support routines for database manipulation to waslib.php - added a new file dbsessionlib.php 2008-03-19 - renamed db_quoted() to db_escape_and_quote() to make the effect more obvious - we now know the $node and the $area and even the $theme to use - re-arranged some code; moved to waslib.php - added even more demodata to 'play' with index.php and we added a clickable breadcrumb trail (that was _easy_). 2008-03-17 - renamed the quote() method to escape() in Database class because it may add confusion; the difference between escaping apostrofs and adding apostrofs around a string in order to insert into the database like in db_quote(). - added a simple test-routine to dump data from the database 2008-03-14 - added optional parameters $limit and $offset to Database->query() method - we are now able to determine a valid area based on the user's request of 'area' and 'node'. 2008-03-13 - some more database manipulation routines added 2008-03-12 - evade the magic in magic_quotes_sybase by issuing a fatal error, circumvent the magic in magic_quotes_gpc() with function magic_unquote() - changed the format of demodata from SQL-statements to nested arrays 2008-03-03 - added version check in init.php: the database version MUST match the code version, or else... 2008-02-29 - started with demodata.php to play with 2008-02-20 - added a simple tabledef dumper to install.php so we can see tabledefs in a tabluar form - more tabledefinitions in tabledefs.php 2008-02-19 - added much to the main tabledefs.php 2008-02-16 - added a subtree under /program/install for tabledefs of the main system and also places for storing language specific demo data - started with main tabledefs - quick and dirty testcode in install.php to excercise/test the tabledefs 2008-02-15 - moved a lot of test code from install.php to /devel/test directory so I can 'play' with various subsystems without interfering with the real code. Currently /deve/test/test.php is focused on excercising the Database class. 2008-02-14 - added an extra dummy parameter to $DB->last_insert_id() as hook for future extension with other database drivers - added a function $DB->table_exists() - added a test with some 128 fielddefs in install.php (for now) 2008-02-12 - added $DB->debug (default FALSE), can be set via constructor - added $DB->drop_table() - added $DB->create_table() using 'generic' (not MySQL-specific) datadefinition - added another file to 'play' with: /program/install.php - moved diff_microtime() to init.php 2008-02-11 - added new object type DatabaseResult to deal with queries returning data - added a few more stubs in index.php to casually test Database/DatabaseResult-classes 2008-02-10 - documented $CFG->debug - got a few more methods working in mysql.class.php + q&d tests in index.php 2008-02-07 - experiments with the 'poor mans' database factory were more or less successful: the code works, but phpdoc fails badly when the same class is defined multiple times within the same package. However, a postgresql-driver in a separate @packages does work with phpdoc. Oh well. - re-arranged some code in the Database-class: we now have a separate method to connect to the server and open the database, we no longer do that from the constructor. Also, we no longer bail out on MySQL-errors because we can expect errors during install and we don't want to bail out at that point. - added error and errno to Database class which store the results from the underlying database, handy to find out what, exactly, went wrong. - added the parameter $CFG-debug in init.php - moved the unset($CFG) from config(-example).php to index.php in order to make certain that we won't be fooled by a stray global set via $_GET or whatever user input - added a fake microtime() function in case it doesn't exist in the environment. The fake version uses a fractional part of 0.0 but is otherwise 100% compatible with the real microtime() string format. The reported time will be off by at most 2 seconds, oh well. - Added a global object to record the performance, including the time of start and stop of the script execution. Could be used to identify bottlenecks. - rearranged the order of code in init.php - added error_reporting depending on the value of $CFG->debug. - brought the call to the new Database class in line with the new class definition - removed the calls to error_exit() from the Database class; they do not belong there. - documented the format of the release date variable in version.php to include the full seconds-resolution ISO 8601 date - added more error checking in Database class via $DB->errno and $DB->error 2008-02-06 - made a start with databaselib.php and mysql.class.php - some tweaking in version.php: now record full release date+time 2008-02-04 - re-arranged the comments in config-example.php, hopefully clarifies 2008-02-01 - added init.php - added version.php: keeps track of version of php-files (for comparison with database to determine necessary update actions) 2008-01-31 - added preliminary versions of README, INSTALL, etc. - completed a quick and dirty script to generate documentation with phpdoc - completed a script to generate both distribution version and development version of W@S 2008-01-28 - committed a first version of /index.php and config-example.php to CVS; we have now actually started creating program code