Index: trunk/admin/install/install_lib.php =================================================================== diff -u -r1867 -r2000 --- trunk/admin/install/install_lib.php (.../install_lib.php) (revision 1867) +++ trunk/admin/install/install_lib.php (.../install_lib.php) (revision 2000) @@ -15,17 +15,28 @@ function VersionSort($a, $b) { - if ($a == $b) { - return 0; + preg_match('/inportal_upgrade_v(.*).(php|sql)$/', $a, $rets); + $a_version = $rets[1]; + $a_extension = $rets[2]; + + preg_match('/inportal_upgrade_v(.*).(php|sql)$/', $b, $rets); + $b_version = $rets[1]; + $b_extension = $rets[2]; + + if($a_version == $b_version) // got PHP and SQL file for one version + { + if($a_extension == $b_extension) + { + return 0; + } + else + { + return ($a_extension == 'php') ? 1 : -1; + } } - else { - $tmp_a = str_replace("inportal_upgrade_v", "", $a); - $tmp_a = str_replace(".sql", "", $a); - - $tmp_b = str_replace("inportal_upgrade_v", "", $b); - $tmp_b = str_replace(".sql", "", $b); - - return (ConvertVersion($a) < ConvertVersion($b)) ? -1 : 1; + else + { + return (ConvertVersion($a_version) < ConvertVersion($b_version)) ? -1 : 1; } } @@ -36,22 +47,23 @@ $upgrades_arr = Array(); $version = ''; - while ($file = $dir->read()) { - if ($file != "." && $file != ".." && !is_dir($admindirname.$file)) { - if (strstr($file, 'inportal_upgrade_v')) { - $upgrades_arr[] = $file; - } + while($file = $dir->read()) + { + if ($file != "." && $file != ".." && !is_dir($admindirname.$file)) + { + if (strstr($file, 'inportal_upgrade_v')) $upgrades_arr[] = $file; } } - + usort($upgrades_arr, "VersionSort"); - foreach($upgrades_arr as $file) { - $file_tmp = str_replace("inportal_upgrade_v", "", $file); - $file_tmp = str_replace(".sql", "", $file_tmp); + foreach($upgrades_arr as $file) + { + preg_match('/inportal_upgrade_v(.*).(php|sql)$/', $file, $rets); + $a_version = $rets[1]; - if (ConvertVersion($file_tmp) > ConvertVersion($version)) { - $version = $file_tmp; + if (ConvertVersion($a_version) > ConvertVersion($version)) { + $version = $a_version; } }