RADICORE v2.10.0 released
This version contains a mixture of small updates and bug fixes. It also includes a fix for a BC break which appeared in PHP version 7.2 without warning, plus an update for when MySQL version 8 is in use so that it can use a Common Table Expression (CTE) for reading hierarchical structures.
This version contains the following changes:
Database changes:
- noneOther changes:
- updated std.help.inc to add flush() just before exit so that the buffer is cleared before it enters the shutdown_handler() function (which is defined in file error.inc).
- updated std.output3.inc and std.filedownload1.inc to flush the output buffer so that nothing is left over for processing by the shutdown_handler() function.
- updated std.datevalidation.class to improve validation in the getInternalDate() method.
- updated audit_tbl_s01.class.inc and audit_tbl_s02.class.inc to change addslashes() to addcslashes() so as not to escape double-quotes in the WHERE string.
- updated audit_trn.class.inc and audit_ssn.class.inc to fix a missing value in the trn/ssn_datetime field.
- updated php_session.class.inc to change arguments on calls to the logstuff() function.
- updated dml.mysqli.class.inc to set the correct size value for unsigned numbers.
- updated output4.screen.inc in DEFAULT folder to incorporate changes made to the OUTPUT4 pattern.
- updated _cm_pre_getData() method in dict_table.class.inc to deal with the possibility of using an alias name.
- updated logon.class.inc to look for a value to populate $_SESSION['party_id_functional'] in those installations which have a PARTY subsystem.
- updated mnu_task_s02.class.inc to move processing from the _cm_validateUpdate() method to the _cm_pre_updateRecord() method.
- fixed bug in mnu_task_s04.class.inc which did not allow for a user having multiple roles.
- fixed bug in mnu_nav_button.class.inc where the getNavButtons() method selected the 'task_desc' field instead of the 'task_name' field.
- fixed minor bugs in wf_workflow.class.inc, wf_workitem.class.inc and wf_arc.class.inc.
- updated workflow_engine.class.inc so that error messages are obtained from the language file in the correct directory.
- updated include.library.inc to fix bug in array_update_indexed() function.
- updated include.library.inc to cause the array2where() and selection2where() functions to use addcslashes() instead of addslashes() so that only single quotes are escaped.
- updated include.library.inc to allow the getForeignKeyValues() function to work in the direction child-to-parent as well as parent-to-child.
- updated include.library.inc to fix bug in the getPostArray() function.
- updated include.library.inc to allow the getTimeStamp() function to optionally use the user's timezone instead of the server's timezone.
- updated include.library.inc to allow the logStuff() function to deal with the $input argument as an array as well as a string.
- updated include.library.inc to force the logSqlQuery() function to write to the correct directory.
- updated include.library.inc to force the pasteData() function to not overwrite a date with an earlier date.
- updated std.tree_view1.inc and std.tree_view2.inc to call getExtraData() method, and to accept search criteria.
- updated std.tree_view1.inc and std.tree_view2.inc to call the getCollapsed() method.
- updated std.search1.inc to put the call to getInternalDate() in a try/catch block so that it can deal with invalid dates correctly.
- updated std.search1.inc so that if the output from $dbobject->post_search() is an indexed array it will be converted into an associative array.
- updated include.session.inc and include.batch.inc to deal with a BC break that was introduced in version 7.2 (see http://www.tonymarston.net/php-mysql/bc-break-in-7.2.html for details).
- updated include.batch.inc so that the batchScriptSequence() function can properly handle the situation when the scriptSequence() function is used in a CLI/background task.
- updated error.inc to change the sequence in which the data is output to the screen and written to the disk file.
- updated std.pdf.class.inc to allow a field definition in the ???.report.inc file to override the border settings for the current style. This will allow the top/bottom/left/right borders of a cell to be either added or removed.
- updated include.xml.php5.inc so that if a checkbox field does not have a value specified for optionlist it will default to the standard 'boolean' optionlist.
- updated output4_header.class.inc so that the _cm_updateFieldarray() method will allow unwanted values to be removed from the $postarray argument.
- updated std.add1/2.inc to include a call to $dbobject->changeActionButtons() to see if any buttons have been changed or deleted.
- updated std.add1/2.inc to include a call to $dbobject->quitButton() before returning to the previous script.
- updated std.csv.class.inc so that the outputCSV() method will nullify the $csvouth variable after it has been closed so that the controller (std.output1.inc) will not try to close it itself.
- fixed bug in std.link1.inc where it used $fieldarray instead of $outer_data.
- updated std.update1.inc so that if the CANCEL button is pressed it will call $dbobject->quitButton() before returning to the previous script.
- updated std.multi6.inc so that the calls to ->setFieldArray() do not reset $pageno and $numrows.
- updated std.multi6.inc so that the calls to ->updateFieldArray() include the switch which causes the call to _cm_commonValidation() to be skipped. This validation method will instead be called after the data has been re-fetched.
- updated std.multi6.inc to fix the pagination/scrolling issues caused by the $middle entity being allowed to contain either a single row (detail view) or several rows (list view).
- updated std.table.class.inc to include the array variable $drop_from_sql_select which will cause the nominated fields to be dropped from the SELECT clause of the SQL query when the _sqlAssembleWhere() method is called.
- updated std.table.class.inc to include the changeActionButtons() and _cm_changeActionButtons() methods to deal with the circumstances where action buttons are renamed.
- updated std.table.class.inc so that the clearEditableData() method will not clear any field which has the 'noclear' attribute set.
- updated std.table.class.inc to fix bug in currentOrHistoric() method so that it will not fail if the current table does not actually have a start_date and end_date field.
- updated std.table.class.inc so that the fetchRowChild() method will populate the object's $parent_data so that a call to getParentData() will provide the data for this child's parent.
- updated std.table.class.inc so that the formatData() method can handle date and datetime fields properly.
- updated std.table.class.inc so that the getColumnNames() method (as used in output4 patterns) will show a checkbox instead of a dropdown for the 'selected' field.
- updated std.table.class.inc to that the getData_raw() method will call the qualifyWhere() function on the $sql_search variable if it is not empty.
- updated std.table.class.inc so that the getParentData() method now includes an argument ($first_row_only=false) which can be set to TRUE so that the first row is returned as an associative array instead of a possible indexed array.
- updated std.table.class.inc so that when the getData_serial() method calls getParentData() it causes it to return an associative array instead of an indexed array.
- updated std.table.class.inc so that the getExtraData() method includes an extra argument ($no_foreign_data=false) which can be set to TRUE to cause the call to getForeignData() to be skipped.
- updated std.table.class.inc so that the getFieldArray() method includes an argument ($first_row_only=false) which can be set to TRUE to cause it return the first row as an associative array instead of all available rows in an indexed array.
- updated std.table.class.inc so that the getForeigndata() method can correctly handle the situation where an entry in $parent_relations contains a value for 'alias'.
- updated std.table.class.inc to comment out redundant code in the getNodeData() method.
- updated std.table.class.inc to include the getCollapsed() method for use in the tree1 and tree2 patterns.
- updated std.table.class.inc so that the initialise() method will ignore any values in the $_SESSION['search'] array which are not strings.
- updated std.table.class.inc so that the insertRecord() method will not supply the $old_data argument on the call to the _cm_commonValidation() method.
- updated std.table.class.inc so that the setFieldarray() method includes an extra argument ($reset_numrows=true) which can be set to FALSE so that the value in $this->numrows is not reset.
- updated std.table.class.inc so that the updateFieldArray() method includes an extra argument ($perform_validation=true) which can be set to FALSE so that the call to _cm_commValidation() will be skipped.
- updated std.table.class.inc so that the updateMultiple() method will ignore fields which do not exist in $this->fieldspec when copying data from the POST array to the object's $fieldarray.
- updated std.table.class.inc so that the _dml_getData() and _dml_getData_serial() methods can pass the data for Common Table Expressions to the database object.
- updated std.table.class.inc by adding the findDBVersion() method. This is to allow the use of MySQL version 8 to be detected so that an SQL query which is a Common Table Expression (CTE) can be used to traverse hierarchical structures.
- updated dml.mysql/sqlsrv/pgsql/oracle.class.inc to allow a Common Table Expressions (CTE) to be used in hierarchical structures which are displayed using std.tree_view1/2.inc. Note that this is not available for MySQL unless you are using version 8.
- updated _cm_getNodeData() method in x_tree_structure(tree2).php (XAMPLE subsystem) to show how Common Table Expressions can be used.
Published: 01 August 2018