RADICORE v1.83.0 released

This version allows different date formats to be defined for different languages, and allows user to have more than 1 Role. It also includes some minor bug fixes.

This version contains the following changes:

Database changes:

  • run script 'menu/sql/mysql/alter_table(2014-04-17).sql' to change the structure of the MENU database.
  • run script 'menu/sql/menu.menu_export(2014-04-17).sql' to change the contents of the MENU database.

Other changes:

  • updated the MNU_LANGUAGE table in the MENU database to add the 'input_date_format' and 'output_date_format' columns. This is to allow the ability to specify different input and output date formats for different languages instead of having a single output format for each installation. The input date format will restrict the user's input to that format instead of allowing it to be free-format and having the software guess what it is by using regular expressions (this does not work satisfactorily with certain unicode character sets).
  • updated the MNU_FAVOURITE table in the MENU database to add a UNIQUE index on user_id+task_id to prevent duplicate records.
  • updated the MENU database to remove the 'role_id' column from the MNU_USER table and move it to the new MNU_USER_ROLE table. This will allow a user to have more than one role. One role must be marked as 'primary' to identify the starting transaction.
  • updated the MENU database to include the MNU_USER_ALT table which allows users to have different names in different languages.
  • fixed bug in 'dml.*.class.inc' which prevented a candidate key from being changed from something to NULL.
  • updated 'std.csv.class.inc' so that when creating a CSV file it will by default set the BOM (byte order mark) to signify that the output is UTF8.
  • updated login.php so that after a successful login the session_id is regenerated. This procedure was advised in https://wblinks.com/notes/secure-session-management-tips/
  • updated htaccess.txt to include "session.cookie_httponly 1". This procedure was advised in http://simonholywell.com/post/2013/05/improve-php-session-cookie-security.html
  • fixed bug in '_dml_updateSelection()' and '_dml_deleteSelection()' methods which used the current value in $this->rows_per_page to limit the number of rows affected. This prevented more than one record being processed if the current value of $this->rows_per_page was 1, such as in an UPDATE1 transaction. This value is now ignored, which means that the code will process all available records and not just the first one.
  • modified the '__sleep()' method within 'std.table.class.inc' so that when the object is being serialised for storage in the session data the contents of $this->fieldarray will be modified to remove any fields which are not in the primary key. Note that the list of pkey fields can be temporarily adjusted by using the '_cm_getPkeyNames()' method. Note that this procedure is not performed if the current task has a pattern of ADD, UPD, MULTI or SRCH.
  • fixed issue http://www.radicore.org/forum/index.php?t=msg&th=1089&goto=4133 which caused the audit trail to find zero records.

Published: 01 May 2014