RADICORE v2.20.0 released
This version contains a change in the way that downloaded files are made available to the user as well as some minor enhancements and bug fixes.
This version contains the following changes:
Database changes:
- noneOther changes:
- fixed bug in audit_table.s01.class.inc so that when used as the middle table in a LIST3 screen it will allow the $where string to be empty.
- updated various classes which create output files to include the SVN keywords $Date$, $Author$ and $Revision$ which will be updated with current values whenever the file is subject to a Subversion COMMIT operation:
- dict_database_s02.class.inc (which produces sql/<database>.dict_export.sql)
- dict_table_s02.class.in (which produces classes/<table>.class.inc and classes/<table>.dict.inc)
- dict_table_s04.class.inc (which produces <table>(<pattern>).php)
- mnu_subsystem_s01.class.inc (which produces text/<subsys>.menu_export.txt and sql/<subsys>.menu_export.sql)
- updated logon.class.inc so that if $_SESSION[‘timezone_server’] is set but $_SESSION[‘timezone_client’] is not it will set $_SESSION['timezone_client'] to the default value of ‘UTC’.
- updated mnu_motd.class.inc to add missing 3rd argument to method _cm_validateDelete().
- updated mnu_user_role.class.inc to add missing 3rd argument to method _cm_validateDelete().
- updated wf_place.class.inc to add missing 3rd argument to method _cm_validateDelete().
- updated error.inc so that includes any output from libxml_get_errors().
- updated dml.mysqli/pgsql/oracle/sqlsrv.class.inc so that the insertRecord() method will process the ‘autoinsert’ keyword if a field’s value is currently set to its default value as defined in the $fieldspec array.
- updated include.library.inc so that append2ScriptSequence() will not add $task_id to $_SESSION['script_sequence']) if it is already there.
- updated include.library.inc so that filterWhere1Where2() will take into account any leading or trailing spaces when comparing two values.
- updated include.library.inc to fix bug in getPostArray() which ignored a field’s value if it was an array and the $multiple argument was FALSE.
- updated include.library.inc so that qualifyOrderby() does not qualify a column name with its table name if the $sql_from string does not reference more than one table.
- updated include.library.inc so that qualifyWhere() will not try to qualify the contents of an expression if it is enclosed in ‘(’ and ‘)’ and there are no intervening ‘(’ or ‘)’ characters.
- updated include.library.inc to include a new function rebuildSelectString().
- updated include.library.inc to include a new function removeEmailSubFolder().
- updated include.library.inc to add an extra regex pattern to splitWhereByRow().
- updated include.library.inc to fix bug in where2indexedArray().
- updated include.session.inc so that if constant SKIP_CSRF_CHECK is TRUE then it will skip all CSRF checking.
- updated std.validation.class.inc so that the arguments on the implode() function are set in the correct order for PHP 8.
- updated std.validation.class.inc to prevent a primary or unique key from containing either a single or double quote.
- fixed bug in include.xml.php5.inc which sometimes failed to set the ‘checkbox_multi’ attribute which caused that field to be displayed incorrectly.
- updated std.table.class.inc to fix wrong spelling of the 2nd argument on the call to the _cm_convertSearchExpression() method.
- updated std.table.class.inc so that the format() method will not set a date or datetime field to NULL if it contains an invalid date so that it will still be visible on the screen alonmg with the error message.
- updated std.table.class.inc to include new method loadFieldSpec() which will act as an alias for getFieldSpec_original().
- updated std.table.class.inc so that the initialise() method will not call selection2PKeyOnly() if $settings[‘pkeyonly’] is set to ‘N’.
- updated std.table.class.inc so that if the insertRecord() method finds a non-empty field which has the ‘autoinsert’ or ‘autoupdate’ propert set and which has a ‘default’ value defined then it will be set to that default value.
- updated std.table.class.inc so that the insertRecord() method will finish by setting $this->dbchanges to the array of values which have just been inserted.
- updated std.table.class.inc so that if the validateDelete() method reads multiple rows from a child table then it will include the row number on each call to the _cm_validateDelete() method.
- updated std.table.class.inc to add a 3rd argument called $rownum to the _cm_validateDelete() method.
- updated std.table.class.inc so that the _sqlAssembleWhere() method so that after replacing the ‘*’ character in the $this->sql_select string with a list of column names it will remove any which have been specified in the $this->drop_from_sql_select array.
- updated std.table.class.inc to fix a bug in the _sqlProcessJoin() method.
- updated tasks which produce PDF or CSV output so that instead of displaying the output at the end of that task it is passed back to the calling task instead so that it can be displayed after the output task has terminated. This is because if the output is displayed in the task in which it is generated that task cannot then exit and return control to the calling task as headers have alreay been sent. This makes the framework believe that the output task is still active even though the screen that is deing displayed is that of the calling screen at the point when the navigation button for the output task was pressed:
- updated the relevant std.outputX.inc tasks to load the output into a variable called $script_vars[‘output_buffer’] instead of displaying it so it can exit.
- updated include.session.inc so that the initSession() function can detect that the $script_vars[‘output_buffer’] variable is not empty, which is then displayed instead of that task’s own screen.
- updated all the page controllers which produce HTML output to not do so if the contents of $script_vars[‘output_buffer’] was displayed instead.
Published: 01 September 2021