diff --git a/api/Core/database.inc.php b/api/Core/database.inc.php index d93a1389..fce008d2 100755 --- a/api/Core/database.inc.php +++ b/api/Core/database.inc.php @@ -33,7 +33,25 @@ *******************************************************************************/ /* Check if this is a valid include */ -if (!defined('IN_SCRIPT')) {die('Invalid attempt');} +if (!defined('IN_SCRIPT')) {die('Invalid attempt');} + + +function hesk_dbCollate() +{ + global $hesklang; + + // MySQL vesions prior to 5.6 don't support some collations + if ( in_array($hesklang['_COLLATE'], array('utf8_croatian_ci', 'utf8_german2_ci', 'utf8_vietnamese_ci')) ) + { + if ( version_compare( hesk_dbResult( hesk_dbQuery('SELECT VERSION() AS version') ), '5.6', '<') ) + { + $hesklang['_COLLATE'] = 'utf8_general_ci'; + } + } + + return hesk_dbEscape($hesklang['_COLLATE']); + +} // END hesk_dbCollate() function hesk_dbSetNames() @@ -77,6 +95,16 @@ function hesk_dbTime() } // END hesk_dbTime() +function hesk_dbSetTimezone() +{ + global $hesk_settings; + + hesk_dbQuery('SET time_zone = "'.hesk_timeToHHMM(date('Z')).'"'); + + return true; +} // END hesk_dbSetTimezone() + + function hesk_dbEscape($in) { global $hesk_db_link; @@ -126,6 +154,9 @@ function hesk_dbConnect() // Check MySQL/PHP version and set encoding to utf8 hesk_dbSetNames(); + // Set the correct timezone + hesk_dbSetTimezone(); + return $hesk_db_link; } // END hesk_dbConnect() diff --git a/api/Core/database_mysqli.inc.php b/api/Core/database_mysqli.inc.php index 0734a2b5..d7a8e7fb 100755 --- a/api/Core/database_mysqli.inc.php +++ b/api/Core/database_mysqli.inc.php @@ -36,6 +36,24 @@ if (!defined('IN_SCRIPT')) {die('Invalid attempt');} +function hesk_dbCollate() +{ + global $hesklang; + + // MySQL vesions prior to 5.6 don't support some collations + if ( in_array($hesklang['_COLLATE'], array('utf8_croatian_ci', 'utf8_german2_ci', 'utf8_vietnamese_ci')) ) + { + if ( version_compare( hesk_dbResult( hesk_dbQuery('SELECT VERSION() AS version') ), '5.6', '<') ) + { + $hesklang['_COLLATE'] = 'utf8_general_ci'; + } + } + + return hesk_dbEscape($hesklang['_COLLATE']); + +} // END hesk_dbCollate() + + function hesk_dbSetNames() { global $hesk_settings, $hesk_db_link; @@ -77,6 +95,16 @@ function hesk_dbTime() } // END hesk_dbTime() +function hesk_dbSetTimezone() +{ + global $hesk_settings; + + hesk_dbQuery('SET time_zone = "'.hesk_timeToHHMM(date('Z')).'"'); + + return true; +} // END hesk_dbSetTimezone() + + function hesk_dbEscape($in) { global $hesk_db_link; @@ -128,6 +156,9 @@ function hesk_dbConnect() // Check MySQL/PHP version and set encoding to utf8 hesk_dbSetNames(); + // Set the correct timezone + hesk_dbSetTimezone(); + return $hesk_db_link; } // END hesk_dbConnect() diff --git a/build.php b/build.php index 354f8da4..6f978f4b 100644 --- a/build.php +++ b/build.php @@ -1,4 +1,4 @@ '3.0.4', 39 => '3.0.5', 40 => '3.0.6', + 41 => '3.0.7', ); function echoInitialVersionRows($version, $build_to_version_map) diff --git a/install/mods-for-hesk/js/version-scripts.js b/install/mods-for-hesk/js/version-scripts.js index b0210ce5..5efbc3f0 100644 --- a/install/mods-for-hesk/js/version-scripts.js +++ b/install/mods-for-hesk/js/version-scripts.js @@ -116,6 +116,9 @@ function processUpdates(startingVersion) { } else if (startingVersion < 40) { startVersionUpgrade('306'); executeUpdate(40, '306', '3.0.6'); + } else if (startingVersion < 41) { + startVersionUpgrade('307'); + executeUpdate(41, '307', '3.0.7'); } else { installationFinished(); } diff --git a/install/mods-for-hesk/modsForHesk.php b/install/mods-for-hesk/modsForHesk.php index f765a295..0b6756f5 100644 --- a/install/mods-for-hesk/modsForHesk.php +++ b/install/mods-for-hesk/modsForHesk.php @@ -118,6 +118,7 @@ hesk_dbConnect();