<?php
/************************************************************************
- * MXChange v0.2.1 Start: 01/16/2004 *
- * ================ Last change: 05/14/2004 *
+ * Mailer v0.2.1-FINAL Start: 01/16/2004 *
+ * =================== Last change: 05/14/2004 *
* *
* -------------------------------------------------------------------- *
* File : what-updates.php *
* -------------------------------------------------------------------- *
* Kurzbeschreibung : Prueft nach Updates *
* -------------------------------------------------------------------- *
- * *
+ * $Revision:: $ *
+ * $Date:: $ *
+ * $Tag:: 0.2.1-FINAL $ *
+ * $Author:: $ *
+ * Needs to be in all Files and every File needs "svn propset *
+ * svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
* -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder *
+ * Copyright (c) 2003 - 2009 by Roland Haeder *
+ * Copyright (c) 2009, 2010 by Mailer Developer Team *
* For more information visit: http://www.mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
************************************************************************/
// 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);
-}
+if ((!defined('__SECURITY')) || (!isAdmin())) {
+ die();
+} // END - if
// Add description as navigation point
-ADD_DESCR("admin", basename(__FILE__));
+addMenuDescription('admin', __FILE__);
// Init array
-$ONLINE['code'] = "???";
+$ONLINE['code'] = '???';
// Get response from our server in an array
-$response = MXCHANGE_OPEN("check-updates2.php");
+$response = sendGetRequest('check-updates3.php');
-if (empty($response[0]) && empty($response[1]) && empty($response[2])) {
+if (empty($response[0]) && empty($response[1]) && empty($response[2]) && empty($response[3])) {
// Error!
- $response = array("", "", "");
+ $response = array('', '', '');
} else {
// Analyse header for response code
- if (ereg("200 OK", $response[0])) {
+ if (isInStringIgnoreCase('200 OK', $response[0])) {
// Found, kill header
- $pos = 0;
+ $pos = '0';
foreach($response as $k => $v) {
$v = trim($v);
if (empty($v)) {
// Which is the latest version on server?
$ONLINE = array(
- 'version' => str_replace("\n", "", $response[0]),
- 'changed' => str_replace("\n", "", $response[1])
+ 'version' => trim(str_replace("\n", '', $response[0])),
+ 'changed' => trim(str_replace("\n", '', $response[1])),
+ 'revision' => trim(str_replace("\n", '', $response[2])),
+ 'code' => '200 OK'
);
-
- // 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];
// 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) {
+ loadTemplate('admin_settings_unsaved', false, '{--ADMIN_CANNOT_CHECK_VERSION--} (' . $ONLINE['code'] . ')');
+} elseif (($ONLINE['version'] != getFullVersion()) || ($ONLINE['revision'] > getCurrSvnRevision())) {
// 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"));
+ $ONLINE['changed'] = generateDateTime($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");
+ loadTemplate('admin_update_download', false, $ONLINE);
+} elseif ($ONLINE['revision'] < getCurrSvnRevision()) {
+ // Installed revision is newer than on server
+ loadTemplate('admin_settings_saved', false, '{--ADMIN_LOCAL_REVISION_IS_NEWER_THAN_UPDATE--}');
} else {
// You have the latest version!
- LOAD_TEMPLATE("admin_settings_saved", false, NO_UPDATES_AVAILABLE);
+ loadTemplate('admin_settings_saved', false, '{--ADMIN_NO_UPDATES_AVAILABLE--}');
}
-//
+// [EOF]
?>