From: Roland Häder <roland@mxchange.org>
Date: Sat, 7 Mar 2009 02:04:26 +0000 (+0000)
Subject: Fix for getActualVersion()
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=4ba0d29f12dae79ebde25004a1df4155e0faf69c;p=mailer.git

Fix for getActualVersion()
---

diff --git a/inc/functions.php b/inc/functions.php
index 96ed81d53f..90c2bdbed1 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -2558,28 +2558,30 @@ function getActualVersion ($type = 'Revision') {
 			|| count($GLOBALS['cache_array']['revision']) < 3
 			|| !$GLOBALS['cache_instance']->loadCacheFile("revision")) $new = true;
 
-		if ($new){
-
+		// Is the cache file outdated/invalid?
+		if ($new === true){
 			$GLOBALS['cache_instance']->destroyCacheFile(); // @TODO isn't it better to do $GLOBALS['cache_instance']->destroyCacheFile('revision')?
 
 			// @TODO shouldn't do the unset and the reloading $GLOBALS['cache_instance']->destroyCacheFile() Or a new methode like forceCacheReload('revision')?
 			unset($GLOBALS['cache_array']['revision']);
+
 			// Reload load_cach-revison.php
-			LOAD_INC('inc/loader/load_cache-revision.php');
-		}
+			LOAD_INC("inc/loader/load_cache-revision.php");
+		} // END - if
 
+		// Return found value
 		return $GLOBALS['cache_array']['revision'][$type][0];
 
 	} else {
-		// old Version without ext-cache aktive (depricated ?)
+		// Old Version without ext-cache active (deprecated ?)
 
 		// FQFN of revision file
 		$FQFN = sprintf("%sinc/cache/.revision", constant('PATH'));
 
 		// Check if $_GET['check_revision_data'] is setted (switch for manually rewrite the .revision-File)
-		if (isset($_GET['check_revision_data']) && $_GET['check_revision_data'] == 'yes') {
+		if ((isset($_GET['check_revision_data'])) && ($_GET['check_revision_data'] == 'yes')) {
+			// Has changed!
 			$new = true;
-
 		} else {
 			// Check for revision file
 			if (!FILE_READABLE($FQFN)) {
@@ -2589,62 +2591,83 @@ function getActualVersion ($type = 'Revision') {
 				// Revision file found
 				$ins_vers = explode("\n", READ_FILE($FQFN));
 
+				// Get array for mapping information
+				$mapper = array_flip(getSearchFor());
+				//* DEBUG: */ print("<pre>".print_r($mapper, true).print_r($ins_vers, true)."</pre>");
+
 				// Is the content valid?
-				if ((!is_array($ins_vers)) || (count($ins_vers) <= 0) || (!isset($ins_vers[$type])) || (trim($ins_vers[$type]) == '') || ($ins_vers[0]) == "new") {
+				if ((!is_array($ins_vers)) || (count($ins_vers) <= 0) || (!isset($ins_vers[$mapper[$type]])) || (trim($ins_vers[$mapper[$type]]) == "") || ($ins_vers[0]) == "new") {
 					// File needs update!
 					$new = true;
 				} else {
-					// Revision-File has valid Data and isn't 'new' so return the Rev-Number
-					$ttype = array_search ($type,array_keys(getSearchFor()));
-					if ($ttype || $ttype != null) return trim($ins_vers[$ttype]);
-					else return false;
+					// Return found value
+					return trim($ins_vers[$mapper[$type]]);
 				}
 			}
 		}
+
 		// Has it been updated?
 		if ($new === true)  {
 			WRITE_FILE($FQFN, implode("\n", getAkt_vers()));
-		}
+		} // END - if
 	}
 }
 
+// Repares an array we are looking for
 function getSearchFor () {
-	$searchFor[] = 'Revision';
-	$searchFor[] = 'Date';
-	$searchFor[] = 'Tag';
-	$searchFor[] = 'Author';
+	// Add Revision, Date, Tag and Author
+	$searchFor = array('Revision', 'Date', 'Tag', 'Author');
 
+	// Return the created array
 	return $searchFor;
 }
 
 function getAkt_vers () {
-	$next_dir = '.';
-	$last_changed['path_name'] = '';
-	$last_changed['time'] = 0;
+	// Init variables
+	$next_dir = ".";
+	$last_changed = array(
+		'path_name' => "",
+		'time'      => 0
+	);
 	$akt_vers = array();
-	searchDirsRecoursive($next_dir, $last_changed); //Searches all Files and there date of the last modifikation and puts the newest File in $last_changed.
+	$res = 0;
+
+	// Searches all Files and there date of the last modifikation and puts the newest File in $last_changed.
+	searchDirsRecoursive($next_dir, $last_changed);
+
+	// Get file
 	$last_file = READ_FILE($last_changed['path_name']);
-	$ergeb = 0;
 	$searchFor = getSearchFor();
 
+	// @TODO What does this loop/regex do? Document it, please.
 	foreach ($searchFor as $search) {
-		$ergeb += preg_match('@\$'.$search.'(:|::) (.*) \$@U', $last_file, $t);
+		$res += preg_match('@\$'.$search.'(:|::) (.*) \$@U', $last_file, $t);
 		if (isset($t[2])) $akt_vers[$search] = trim($t[2]);
-	}
+	} // END - foreach
 
-	if ($ergeb && $ergeb >= 3) {
+	if ($res && $res >= 3) {
 		// Prepare content
-		preg_match('@(....)-(..)-(..) (..):(..):(..)@',$akt_vers['Date'],$match_d);
-		$akt_vers['Date'] = mktime($match_d[4],$match_d[5],$match_d[6],$match_d[2],$match_d[3],$match_d[1]);
-		if (isset($akt_vers['Author']) && $akt_vers['Author'] != 'quix0r') $akt_vers['Tag'] .= '-'.strtoupper($akt_vers['Author']);
+		preg_match('@(....)-(..)-(..) (..):(..):(..)@', $akt_vers['Date'], $match_d);
+
+		// Prepare timestamp for date
+		$akt_vers['Date'] = mktime($match_d[4], $match_d[5], $match_d[6], $match_d[2], $match_d[3], $match_d[1]);
+
+		// Add Tag if the author is set and is not quix0r (lead coder)
+		if ((isset($akt_vers['Author'])) && ($akt_vers['Author'] != "quix0r")) {
+			$akt_vers['Tag'] .= '-'.strtoupper($akt_vers['Author']);
+		} // END - if
 	} else {
-		// no valid Data from the last modificated file so read the Revision from the Server. FallbackSolution!! Could be removed I think.
+		// No valid Data from the last modificated file so read the Revision from the Server. Fallback-solution!! Could be removed I think.
 		$version = GET_URL("check-updates3.php");
+
 		// Prepare content
 		$akt_vers['Revision'] = trim($version[10]);
-		$akt_vers['Date'] = trim($version[9]);
-		$akt_vers['Tag'] = trim($version[8]);
+		$akt_vers['Date']     = trim($version[9]);
+		$akt_vers['Tag']      = trim($version[8]);
+		$akt_vers['Author']   = "quix0r";
 	}
+
+	// Return prepared array
 	return $akt_vers;
 }
 
diff --git a/inc/modules/guest/what-mediadata.php b/inc/modules/guest/what-mediadata.php
index 586451a0cc..a78e3af01d 100644
--- a/inc/modules/guest/what-mediadata.php
+++ b/inc/modules/guest/what-mediadata.php
@@ -46,6 +46,7 @@ if (!defined('__SECURITY')) {
 // Add description as navigation point
 ADD_DESCR("guest", __FILE__);
 
+// @TODO Rewrite all constants
 define('value', "value");
 define('lang', "lang");
 define('rows', "rows");
@@ -54,7 +55,7 @@ define('rows', "rows");
 define('user_confirmed'  , round(GET_TOTAL_DATA("CONFIRMED"  , "user_data", "userid", "status", true)));
 define('user_unconfirmed', round(GET_TOTAL_DATA("UNCONFIRMED", "user_data", "userid", "status", true)));
 define('user_locked'     , round(GET_TOTAL_DATA("LOCKED"     , "user_data", "userid", "status", true)));
-define('user_count'      , (user_confirmed + user_unconfirmed + user_locked));
+define('user_count'      , (constant('user_confirmed') + constant('user_unconfirmed') + constant('user_locked')));
 
 // Start of this exchange
 define('__MT_START', MAKE_DATETIME(getConfig('mt_start'), "3"));
@@ -64,16 +65,18 @@ define('__MT_STAGE', getConfig('mt_stage'));
 
 // Project timestamp when number of members are reached
 $PROJECTED = 0;
-if (user_count > 0) {
-	$PROJECTED = round((time() - getConfig('mt_start')) / user_count * getConfig('mt_stage') + getConfig('mt_start'));
+if (constant('user_count')> 0) {
+	// @TODO Find a better formular than this one
+	$PROJECTED = round((time() - getConfig('mt_start')) / constant('user_count') * getConfig('mt_stage') + getConfig('mt_start'));
 }
 
-$YEAR = date('Y', $PROJECTED); $MONTH = date("m", $PROJECTED); $DAY = date("d", $PROJECTED);
-$TEST = mktime(0, 0, 0, $MONTH, $DAY, $YEAR);
+// Generate timestamp
+$TEST = MAKE_TIME(0, 0, 0, $PROJECTED);
+
 if ($TEST > time()) {
 	define('__MT_PROJECTED', MAKE_DATETIME($PROJECTED, "3"));
 } else {
-	define('__MT_PROJECTED', USER_PROJECTION_UNKNOWN);
+	define('__MT_PROJECTED', getMessage('USER_PROJECTION_UNKNOWN'));
 }
 
 // User who can receive mails