From bd3a931f0639d074979aa28af5e91890787f2ffb Mon Sep 17 00:00:00 2001 From: quix0r Date: Sat, 7 Mar 2009 02:04:26 +0000 Subject: [PATCH] Fix for getActualVersion() --- inc/functions.php | 85 ++++++++++++++++++---------- inc/modules/guest/what-mediadata.php | 15 +++-- 2 files changed, 63 insertions(+), 37 deletions(-) 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("
".print_r($mapper, true).print_r($ins_vers, true)."
"); + // 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 -- 2.39.5