+++ /dev/null
-<?php
-/************************************************************************
- * MXChange v0.2.1 Start: 01/16/2004 *
- * ================ Last change: 05/14/2004 *
- * *
- * -------------------------------------------------------------------- *
- * File : what-updates.php *
- * -------------------------------------------------------------------- *
- * Short description : Check for updates *
- * -------------------------------------------------------------------- *
- * Kurzbeschreibung : Prueft nach Updates *
- * -------------------------------------------------------------------- *
- * *
- * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder *
- * For more information visit: http://www.mxchange.org *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ************************************************************************/
-
-// Some security stuff...
-if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
-{
- $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
- require($INC);
-}
-// Add description as navigation point
-ADD_DESCR("admin", basename(__FILE__));
-
-// Init array
-$ONLINE['code'] = "???";
-
-// Get response from our server in an array
-$response = MXCHANGE_OPEN("check-updates2.php");
-if (empty($response[0]) && empty($response[1]) && empty($response[2]))
-{
- // Error!
- $response = array("", "", "");
-}
- else
-{
- // Analyse header for response code
- if (ereg("200 OK", $response[0]))
- {
- // Found, kill header
- $pos = 0;
- foreach($response as $k=>$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])
- );
-
- // Array for available patches
- $PATCHES = array(
- 'fname' => array(),
- 'fsize' => array(),
- 'ctime' => array()
- );
-
- if (($response[2] != "[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];
- }
-}
-
-OPEN_TABLE("100%", "admin_content", "center");
-// Is a newer version available?
-if (empty($ONLINE['version']))
-{
- // Disconnected?
- LOAD_TEMPLATE("admin_settings_saved", false, "<FONT class=\"admin_failed\">".ADMIN_CANNOT_CHECK_VERSION." (".$ONLINE['code'].")</FONT>");
-}
- elseif ($ONLINE['version'] != FULL_VERSION)
-{
- // 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"));
-
- // Load template
- LOAD_TEMPLATE("admin_update_download");
-}
- 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);
-}
-CLOSE_TABLE();
-//
-?>