RADICORE v1.81.0 released

This version contains some changes to the Data Dictionary, a new transaction pattern, and some minor bug fixes and enhancements.

This version contains the following changes:

Database changes:

  • run script menu/sql/menu.menu_export(2013-10-17).sql to change the contents of the MENU database.
  • run script dict/sql/dict.menu_export(2013-10-26).sql to change the contents of the MENU database.
  • run script dict/sql/mysql/alter_table(2013-10-26).sql to change the structure of the DICT database.

Other changes:

  • updated 'radicore.simplexmlelement.inc' (which is used to convert a PHP array to XML) so that if the first element is an index number then it is output as '<index index="0">' instead of '<0>' which is invalid XML.
  • updated 'include.library.inc' so that the format_xml_document() function will abort if the $doc->loadXML() or $doc->load() functions find an error.
  • updated 'std.table.class.inc' to include '$this->fields_not_for_trimming' property. This is an indexed array containing names of fields whose contents should not be trimmed when either the '_validateInsert()' or '_validateUpdate()' function is called. By default all string values are trimmed to remove leading and trailing spaces, but in rare cases these may be valid parts of the string.
  • fixed bug in 'std.validation.class.inc' when dealing with very large floating point numbers.
  • fixed bug in getTableAlias1/2/3() functions in 'include.library.inc' when the string contains newline characters.
  • updated database import functionality in the Data Dictionary so that if multiple servers are defined in the CONFIG.INC file then it will show all databases from all those servers which have yet to be imported. Previously this was limited to only that server which contained the DICT database itself.
  • updated 'dml.mysqli.class.inc' so that after an insert it will retrieve the value of an auto_increment field even if it is not the primary key.
  • added 'MULTI6' to the list of transaction patterns.
  • renamed task 'dict_table(popup1)' to 'dict_table(popup2)' as it actually uses the 'popup2' pattern.
  • updated list of relationship types in the Data Dictionary to include 'IGNORE' which will cause no action to be taken on the child table when the parent is deleted.
  • update the DICT_RELATIONSHIP table to include a 'key_name' column to identify which key in the parent/senior table is to be used in the relationship. This will default to the PRIMARY key, but may be changed to one of the other UNIQUE keys.
  • updated all page controllers to rename the 'submit' button to 'submitBtn' so that it does not clash with the javascript 'submit()' function.
  • added the $object->updateFieldArray() and $this->_cm_updateFieldArray() methods to 'std.table.class.inc' so that if a form is submitted by the javascript 'submit()' function and not a SUBMIT button all changes can be made available to the application objects. All relevant page controllers have been updated to call this method.
  • removed the '_cm_setParentData()' method as it is now redundant. Please refer to the getParentData() and setParentData() methods below.
  • Where a transaction uses more than one object in a parent-child or parent-child-grandchild relationship the page controller will automatically populate the $parent_object and $child_object properties in each relevant object. The contents of $fieldarray in these objects can be obtained using either $this->getParentData() or $this->getChildData(). This data can also be updated using the $this->setParentData() or $this->setChildData() methods.
  • modified 'dml.mysqli.class.inc' to that it will automtically sync MySQL's timezone with PHP's timezone in order to avoid the problem reported in http://www.radicore.org/forum/index.php?t=msg&th=688&goto=3870#msg_3870. It is therefore *IMPERATIVE* that you have the correct timezone specified in your php.ini file.
  • created script fix_audit_tbl(batch).php to update the 'pkey' column in the 'audit_tbl' table to remove any errant spaces between the field name and the '=' sign. This prevents recors from being retrieved when using the 'Audit Trail' button on the navigation bar.

Published: 01 December 2013