$v) { $v = trim($v); if (empty($v)) { // Header ends here (+1) $pos = $k + 1; break; } } $response2 = array(); for($i = $pos; $i < count($response); $i++) { $response2[] = trim($response[$i]); } $response = $response2; unset($response2); unset($pos); // Which is the latest version on server? $ONLINE = array( 'version' => str_replace("\n", "", $response[0]), 'changed' => str_replace("\n", "", $response[1]), 'revision' => str_replace("\n", "", $response[2]), ); // Array for available patches $PATCHES = array( 'fname' => array(), 'fsize' => array(), 'ctime' => array() ); if (($response[3] != "[EOF]") && ($ONLINE['version'] == FULL_VERSION)) { // We have found new patches (newer than FULL_VERSION) $max = str_replace("\n", "", $response[sizeof($response) - 2]); $TOTAL_SIZE = 0; // Maximum of available pacthes extracted (above). Now we can get all informations for ($idx = 0; $idx < $max; $idx++) { // List only newer patches $TEST = substr(str_replace("\n", "", $response[$idx * 5 + 2]), 0, strlen($_CONFIG['patch_level'])); // I have removed the addional test for the stored timemark in database or you cannot find // new updates on my server when you haven't installed it before I upload a patch... :-( if (bigintval($TEST) > bigintval($_CONFIG['patch_level'])) { // Copy every data from the response array $PATCHES['fname'][] = str_replace("\n", "", $response[$idx * 5 + 2]); $PATCHES['fsize'][] = str_replace("\n", "", $response[$idx * 5 + 3]); $PATCHES['ctime'][] = str_replace("\n", "", $response[$idx * 5 + 4]); switch (GET_LANGUAGE()) { case "de": $PATCHES['descr'][] = str_replace("\n", "", $response[$idx * 5 + 5]); break; // Load german description default : $PATCHES['descr'][] = str_replace("\n", "", $response[$idx * 5 + 6]); break; // Load english description as default } // Add patch's size to total $TOTAL_SIZE += $PATCHES['fsize'][$idx]; } } array_pk_sort($PATCHES, array("ctime", "fname")); // All done here! $ONLINE['code'] = "200 OK"; } } else { // 404 / 403 error from server $ONLINE['code'] = $response[0]; } } // Is a newer version available? if (empty($ONLINE['version'])) { // Disconnected? LOAD_TEMPLATE("admin_settings_saved", false, "".ADMIN_CANNOT_CHECK_VERSION." (".$ONLINE['code'].")"); } elseif (($ONLINE['version'] != FULL_VERSION) || ($ONLINE['revision'] != CURR_SVN_REVISION)) { // New full-version available (all previous released patches are included in this version!) define('__ONLINE_VERSION', $ONLINE['version']); define('__ONLINE_CHANGE' , MAKE_DATETIME($ONLINE['changed'], "2")); define('__ONLINE_REVISION', $ONLINE['revision']); // Load template LOAD_TEMPLATE("admin_update_download"); /* * DEACTIVATED ON 09/11/2008,02:47 AM * } elseif (sizeof($PATCHES['fname']) > 0) { // Some patches are available $OUT = ""; $SW = "2"; foreach ($PATCHES['fname'] as $idx => $file) { $SIZE = TRANSLATE_COMMA(round($PATCHES['fsize'][$idx]/102.4)/10); $content = array( 'sw' => $SW, 'patch_url' => SERVER_URL."/patches/".$file, 'patch_title' => str_replace("_", " ", str_replace(".zip", "", $file)), 'patch_ctime' => MAKE_DATETIME($PATCHES['ctime'][$idx], "2"), 'patch_size' => $SIZE, 'patch_desc' => COMPILE_CODE($PATCHES['descr'][$idx]), ); // Evaluate descrition code $eval = "\$content['patch_desc'] = \"".$content['patch_desc']."\";"; eval($eval); // Load template, switch color and count total size up $OUT .= LOAD_TEMPLATE("admin_patches_row", true, $content); $SW = 3 - $SW; } define('__PATCH_ROWS', $OUT); // Total size define('__TOTAL_SIZE', TRANSLATE_COMMA($TOTAL_SIZE / 1024)); // Load main template LOAD_TEMPLATE("admin_patches"); */ } else { // You have the latest version! LOAD_TEMPLATE("admin_settings_saved", false, NO_UPDATES_AVAILABLE); } // ?>