Fix for getActualVersion()
authorRoland Häder <roland@mxchange.org>
Sat, 7 Mar 2009 02:04:26 +0000 (02:04 +0000)
committerRoland Häder <roland@mxchange.org>
Sat, 7 Mar 2009 02:04:26 +0000 (02:04 +0000)
inc/functions.php
inc/modules/guest/what-mediadata.php

index 96ed81d..90c2bdb 100644 (file)
@@ -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;
 }
 
index 586451a..a78e3af 100644 (file)
@@ -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