TODCM 1.2.0 Release Notes




We have changed the TODCM release numbering scheme from 4 levels to 3 levels. The previous release is and the new release is 1.2.0. The Chrome browser is now officially supported by TODCM. The MAC OS X server environment is now part of TODCM's QA testing environment in addition to Linux and Windows. Some issues were found in the MAC OS X server environment and they are fixed in this release. TODCM is now certified to run on PHP 5.4.


This is a major release with many significant changes and fixes. We have added and modified over 20,000 lines of code in total, a typical small open source project is around 10,000 lines. We have also upgraded many of the third-party open source packages utilized by the application. The list of all changes is extremely long therefore only the significant changes are listed in this document. Some of the changes were PHP and database optimizations, the application now runs 10-40% faster on any given page compare to the previous release. These optimizations are very important as the application now has more than a quarter million lines of code, this is not a small project by any means, and performance can become an issue given the large size and complexity of the software internal.


A new professional version of TODCM has been added. The professional version relies on the open source package and comes with additional advanced features such as full site protection security layer, inline display of images, PDFs, Microsoft Word documents and web links on the unit template, single zip download for a unit, custom time periods instead of start date and end date for the unit template, collapsible unit stages etc. Each professional version feature is a plug-in module that can be drop into the open source package individually; this ensures the professional version can never be separated from the open source version. The TODCM open source version can be upgraded to the professional version at any time with or without production data. A TODCM professional site can also be reverted back to the open source version without any data loss, all the professional version specific data is retained in the database.


Database Changes


  • Modified the ci_session table according to the upgraded CodeIgniter version (1.2.0, this is CI version and not TODCM version).
  • Added 2 new columns to table config.


Enhancements and New Features


Issue 211 - Refresh whole menu tree instead of refreshing selective nodes. This makes the code simpler and less problems.


Issue 269 - Captcha support for guest LDAP login.


Issue 274 - Add admin option to control guest download.


Issue 305 (Pro only) - Add persistent cache.


Issue 313 - Make admin config option change to refresh the page when necessary.


Issue 315 - Reset menu tree after switching from todcm to todcm2 template or vice versa.


Issue 316 (Pro only) - Add professional version manager to mange professional version specific features.


Issue 319 - Move constant files from directory cms to config directory and use CodeIgniter to load them.


Issue 320 - Upgrade to CodeIgniter version 1.2.0.


Issue 322 - New DB upgrade system.


Issue 324 (Pro only) - Single zip file download support for unit pages.


Issue 325 - Add config option to show benchmarks with or without learning targets.


Issue 326 - Add server environment check to admin area. This uses the same page from the installation. This is useful when the server is upgraded or a TODCM site is moved to a new server.


Issue 328 - Add more environment checks in the installation.


Issue 329 - Certify TODCM to run on PHP 5.4.


Issue 332 - Add htaccess override check to installation.


Issue 334 - Add code to the template engine to get the list of uploads available in a unit.


Issue 335 (Pro only) - Make all unit stages collapsible.


Issue 340 (Pro only) - Add custom time period support to unit page, course page, unit calendar, and mapping searches.


Issue 344 - Add titles to sort buttons for learning targets page.


Issue 346 - Optimize template engine token security layer.


Issue 348 - Add application clean up routines to various sub-systems.


Issue 349 - Add application specific PHP exception class.


Issue 357 (Pro only) - Add new security layer to fully secure all site URLs. This makes TODCM impossible to hack without a password. It also protects the site against unauthorized guest access.


Issue 358 - Add redirect button to session timeout message window.


Issue 363 - This issue contains multiple enhancements and/or fixes. Add cache cleanup, enhance ajaxPostform function, enhance installation, fix server check list alignment problem with IE, Change DB upgrade to browser window from Iframe, add bustcache to all menu tree URLs to fix IE cache issue, enhance osa_remove_directory function, tookout old menu tree refresh code, fix all jscript syntax issues.


Issue 376 - Add enable and disable buttons to admin category management page.


Issue 377 - Make PDF rendering code more secure.


Issue 379 - Change save button behavior for unit edit and course description edit pages. They now refresh the head section and stay in editing mode.


Issue 381 - Upgrade Plupload to version 1.5.2.


Issue 383 - Clean up unused old menu tree JavaScript code.


Issue 384 - Text misalignment in admin strand and standard management pages, happens with Firefox only.


Issue 385 - Rewrite JavaScript code for session check and update.


Issue 386 - Completely take out CodeIgniter dynamic session id generation.


Issue 388 - Disable TinyMCE math formula images generation if PHP GD library is missing.


Issue 397 - Rewrite Ajax library.


Issue 398 (Pro only) - Add persistent cache to mapping template.


Issue 399 - Optimize history comparison feature.


Issue 401 - Minify all JavaScripts and CSS files.


Issue 409 - Upgrade swfobject from 2.1 to 2.2.


Issue 410 - Add .pdf extension to all view PDF links.


Issue 413 - Put page in edit mode after creating a new unit.


Issue 417 - Add browser cache for all downloads.


Issue 422 (Pro only) - Add ability to show uploaded files directly on a unit page.


Issue 430 - Add unofficial CGI support to TODCM installation.


Issue 433 - Add dynamic config file generation library.


Issue 439 - Optimize flash chart generation.


Bug Fixes


 Issue 312 - DB connection problem during installation. The MySQL anonymous user caused the TODCM installation to fail when a user relies on TODCM to create the DB schema and DB user by supplying the MySQL root password. This was originally discovered in the Mac environment but it applies to all operating systems.


Issue 314 - Chrome and Safari browsers don't clear menu tree cookies correctly.


Issue 317 - Init area of class variables can't use TODCM PHP constants. Have to load TODCM constant files before CodeIgniter initiates a controller class.


Issue 327 - Check PHP memory limit when calculating maximum upload size.


Issue 343 - Fix course title alignment in admin course management.


Issue 345 - Error occurred in unit reflection with shared units.


Issue 356 - New exception class corrupts TODCM installation.


Issue 361 - Read-only teachers can't see and edit unit reflection in shared units.


Issue 362 - Download can run out of memory with big files.


Issue 365 - Guest users can not access second unit page for units such as MYP and PYP that have multiple pages per single unit.


Issue 372 - Admin and course editors can not edit unit reflection for shared units.


Issue 374 - Copy unit page unit sorting issue.


Issue 389 - File unit_resread_view.php still using old download links.


Issue 396 - Unit page popup gets hidden by mapping search window.


Issue 400 - Survey error due to new JavasScript session code.


Issue 405 - Some pages showed warning message due to the new post controller class that manages the template security tokens. Need to add output buffering.


Issue 406 - Chrome can not print or save generated PDF. Chrome always get a new copy of the PDF from the server which gets deleted after the initial read.


Issue 415 - Search "Recently modified units" in mapping progress not using modified dates properly.


Issue 431 - Some admin features did not work in the Mac server environment.


Issue 438 - View evaluation failed due to new PDF detection routine.