Cache class rewritten to better convention
[mailer.git] / inc / functions.php
index 5c69d92..d5a4f20 100644 (file)
@@ -603,23 +603,17 @@ function TRANSLATE_COMMA ($dotted, $cut=true, $max=0) {
        if ($max > 0) $maxComma = $max;
 
        // Cut zeros off?
-       if ($cut) {
+       if (($cut) && ($max == 0)) {
                // Test for commata if in cut-mode
                $com = explode(".", $dotted);
-               if (count($com) > 1) {
-                       // Commata found, so only zeros?
-                       if ($com[1] == str_repeat("0", strlen($com[1]))) {
-                               // Only zeros, so display only one
-                               $maxComma = 1;
-                       } // END - if
-               } else {
+               if (count($com) < 2) {
                        // Don't display commatas even if there are none... ;-)
                        $maxComma = 0;
                }
        } // END - if
 
        // Debug log
-       //DEBUG_LOG(__FUNCTION__, __LINE__, "dotted={$dotted},maxComma={$maxComma}");
+       //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "dotted={$dotted},maxComma={$maxComma}");
 
        // Translate it now
        switch (GET_LANGUAGE()) {
@@ -712,19 +706,22 @@ function TRANSLATE_STATUS($status) {
 }
 //
 function GET_LANGUAGE() {
-       if (!empty($_GET['mx_lang'])) {
-               // Accept only first 2 chars
-               $lang = substr($_GET['mx_lang'], 0, 2);
-       } else {
-               // Do nothing
-               $lang = "";
-       }
+       global $cacheArray;
 
        // Set default return value to default language from config
        $ret = DEFAULT_LANG;
 
-       // Check GET variable and cookie
-       if (!empty($lang)) {
+       // Init variable
+       $lang = "";
+
+       // Is the variable set
+       if (!empty($_GET['mx_lang'])) {
+               // Accept only first 2 chars
+               $lang = substr($_GET['mx_lang'], 0, 2);
+       } elseif (isset($cacheArray['language'])) {
+               // Use cached
+               $ret = $cacheArray['language'];
+       } elseif (!empty($lang)) {
                // Check if main language file does exist
                if (FILE_READABLE(PATH."inc/language/".$lang.".php")) {
                        // Okay found, so let's update cookies
@@ -737,6 +734,11 @@ function GET_LANGUAGE() {
                // Fixes a warning before the session has the mx_lang constant
                if (empty($ret)) $ret = DEFAULT_LANG;
        }
+
+       // Cache entry
+       $cacheArray['language'] = $ret;
+
+       // Return value
        return $ret;
 }
 //
@@ -921,15 +923,15 @@ function MAKE_TIME($H, $M, $S, $stamp) {
 function LOAD_URL($URL, $addUrlData=true) {
        global $CSS, $_CONFIG, $footer;
 
+       // Compile out URI codes
+       $URL = COMPILE_CODE($URL);
+
        // Check if http(s):// is there
        if ((substr($URL, 0, 7) != "http://") && (substr($URL, 0, 8) != "https://")) {
                // Make all URLs full-qualified
                $URL = URL."/".$URL;
        }
 
-       // Compile out URI codes
-       $URL = COMPILE_CODE($URL);
-
        // Get output buffer
        $OUTPUT = ob_get_contents();
 
@@ -1100,76 +1102,86 @@ function array_pk_sort(&$array, $a_sort, $primary_key = 0, $order = -1, $nums =
        $array = $dummy;
 }
 //
-function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0")
-{
-       global $MONTH_DESCR; $OUT = "";
-       if ($type == "yn")
-       {
+function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") {
+       global $MONTH_DESCR, $_CONFIG;
+       $OUT = "";
+
+       if ($type == "yn") {
                // This is a yes/no selection only!
                if ($id > 0) $prefix .= "[".$id."]";
                $OUT .= "    <SELECT name=\"".$prefix."\" class=\"register_select\" size=\"1\">\n";
-       }
-        else
-       {
+       } else {
                // Begin with regular selection box here
                if (!empty($prefix)) $prefix .= "_";
                $type2 = $type;
                if ($id > 0) $type2 .= "[".$id."]";
                $OUT .= "    <SELECT name=\"".strtolower($prefix.$type2)."\" class=\"register_select\" size=\"1\">\n";
        }
-       switch ($type)
-       {
+
+       switch ($type) {
        case "day": // Day
-               for ($idx = 1; $idx < 32; $idx++)
-               {
+               for ($idx = 1; $idx < 32; $idx++) {
                        $OUT .= "<OPTION value=\"".$idx."\"";
                        if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
                        $OUT .= ">".$idx."</OPTION>\n";
-               }
+               } // END - for
                break;
 
        case "month": // Month
-               foreach ($MONTH_DESCR as $month => $descr)
-               {
+               foreach ($MONTH_DESCR as $month => $descr) {
                        $OUT .= "<OPTION value=\"".$month."\"";
                        if ($DEFAULT == $month) $OUT .= " selected=\"selected\"";
                        $OUT .= ">".$descr."</OPTION>\n";
-               }
+               } // END - for
                break;
 
        case "year": // Year
                // Get current year
                $YEAR = date('Y', time());
 
+               // Use configured min age or fixed?
+               if (GET_EXT_VERSION("other") >= "0.2.1") {
+                       // Configured
+                       $startYear = $YEAR - $_CONFIG['min_age'];
+               } else {
+                       // Fixed 16 years
+                       $startYear = $YEAR - 16;
+               }
+
+               // Calculate earliest year (100 years old people can still enter Internet???)
+               $minYear = $YEAR - 100;
+
                // Check if the default value is larger than minimum and bigger than actual year
-               if (($DEFAULT > 1930) && ($DEFAULT >= $YEAR))
-               {
-                       for ($idx = $YEAR; $idx < ($YEAR + 11); $idx++)
-                       {
+               if (($DEFAULT > $minYear) && ($DEFAULT >= $YEAR)) {
+                       for ($idx = $YEAR; $idx < ($YEAR + 11); $idx++) {
                                $OUT .= "<OPTION value=\"".$idx."\"";
                                if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
                                $OUT .= ">".$idx."</OPTION>\n";
-                       }
-               }
-                elseif ($DEFAULT == -1)
-               {
+                       } // END - for
+               } elseif ($DEFAULT == -1) {
                        // Current year minus 1
-                       for ($idx = 2003; $idx <= ($YEAR + 1); $idx++)
+                       for ($idx = $startYear; $idx <= ($YEAR + 1); $idx++)
                        {
                                $OUT .= "<OPTION value=\"".$idx."\">".$idx."</OPTION>\n";
                        }
-               }
-                else
-               {
-                       // Get current year and subtract 16 (for erotic content)
-                       $OUT .= "<OPTION value=\"1929\">&lt;1930</OPTION>\n";
-                       $YEAR = date('Y', time()) - 16;
-                       for ($idx = 1930; $idx <= $YEAR; $idx++)
-                       {
+               } else {
+                       // Get current year and subtract the configured minimum age
+                       $OUT .= "<OPTION value=\"".($minYear - 1)."\">&lt;".$minYear."</OPTION>\n";
+                       // Calculate earliest year depending on extension version
+                       if (GET_EXT_VERSION("other") >= "0.2.1") {
+                               // Use configured minimum age
+                               $YEAR = date('Y', time()) - $_CONFIG['min_age'];
+                       } else {
+                               // Use fixed 16 years age
+                               $YEAR = date('Y', time()) - 16;
+                       }
+
+                       // Construct year selection list
+                       for ($idx = $minYear; $idx <= $YEAR; $idx++) {
                                $OUT .= "<OPTION value=\"".$idx."\"";
                                if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
                                $OUT .= ">".$idx."</OPTION>\n";
-                       }
+                       } // END - for
                }
                break;
 
@@ -1180,7 +1192,7 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0")
                        $OUT .= "<OPTION value=\"".$idx."\"";
                        if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
                        $OUT .= ">".$idx."</OPTION>\n";
-               }
+               } // END - for
                break;
 
        case "hour":
@@ -1189,7 +1201,7 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0")
                        $OUT .= "<OPTION value=\"".$idx."\"";
                        if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
                        $OUT .= ">".$idx."</OPTION>\n";
-               }
+               } // END - for
                break;
 
        case "yn":
@@ -1284,6 +1296,9 @@ function bigintval($num, $castValue = true) {
        // Has the whole value changed?
        if ("".$ret."" != "".$num."") {
                // Log the values
+               print("<pre>");
+               debug_print_backtrace();
+               die("</pre>");
                DEBUG_LOG(__FUNCTION__, __LINE__, " num={$num},ret={$ret}");
        } // END - if
 
@@ -2238,7 +2253,7 @@ function mxchange_die ($msg) {
 
 // Display parsing time and number of SQL queries in footer
 function DISPLAY_PARSING_TIME_FOOTER() {
-       global $startTime, $_CONFIG;
+       global $_CONFIG;
        $endTime = microtime(true);
 
        // Is the timer started?
@@ -2301,23 +2316,23 @@ function set_session ($var, $value) {
 // Check wether a boolean constant is set
 // Taken from user comments in PHP documentation for function constant()
 function isBooleanConstantAndTrue($constName) { // : Boolean
-       global $constCache;
+       global $cacheArray;
 
        // Failed by default
        $res = false;
 
        // In cache?
-       if (isset($constCache[$constName])) {
+       if (isset($cacheArray['const'][$constName])) {
                // Use cache
                //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): ".$constName."-CACHE!<br />\n";
-               $res = $constCache[$constName];
+               $res = $cacheArray['const'][$constName];
        } else {
                // Check constant
                //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): ".$constName."-RESOLVE!<br />\n";
                if (defined($constName)) $res = (constant($constName) === true);
 
                // Set cache
-               $constCache[$constName] = $res;
+               $cacheArray['const'][$constName] = $res;
        }
        //* DEBUG: */ var_dump($res);
 
@@ -2326,12 +2341,12 @@ function isBooleanConstantAndTrue($constName) { // : Boolean
 }
 
 // Check wether a session variable is set
-function isSessionVariableSet($var) {
+function isSessionVariableSet ($var) {
        //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):var={$var}<br />\n";
        return (isset($_SESSION[$var]));
 }
 // Returns wether the value of the session variable or NULL if not set
-function get_session($var) {
+function get_session ($var) {
        global $cacheArray;
 
        // Default is not found! ;-)
@@ -2340,9 +2355,11 @@ function get_session($var) {
        // Is the variable there or cached values?
        if (isset($cacheArray['session'][$var])) {
                // Get cached value (skips a lot SQL_ESCAPE() calles!
+               //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): ".$var."-CACHE!<br />\n";
                $value = $cacheArray['session'][$var];
        } elseif (isSessionVariableSet($var)) {
                // Then  get it secured!
+               //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): ".$var."-RESOLVE!<br />\n";
                $value = SQL_ESCAPE($_SESSION[$var]);
 
                // Cache the value
@@ -2519,31 +2536,31 @@ function FILE_READABLE($fqfn) {
 // Converts timestamp selections into a timestamp
 function CONVERT_SELECTIONS_TO_TIMESTAMP(&$POST, &$DATA, &$id, &$skip) {
        // Init test variable
-       $TEST2 = "";
+       $test2 = "";
 
        // Get last three chars
-       $TEST = substr($id, -3);
+       $test = substr($id, -3);
 
        // Improved way of checking! :-)
-       if (in_array($TEST, array("_ye", "_mo", "_we", "_da", "_ho", "_mi", "_se"))) {
+       if (in_array($test, array("_ye", "_mo", "_we", "_da", "_ho", "_mi", "_se"))) {
                // Found a multi-selection for timings?
-               $TEST = substr($id, 0, -3);
-               if ((isset($POST[$TEST."_ye"])) && (isset($POST[$TEST."_mo"])) && (isset($POST[$TEST."_we"])) && (isset($POST[$TEST."_da"])) && (isset($POST[$TEST."_ho"])) && (isset($POST[$TEST."_mi"])) && (isset($POST[$TEST."_se"])) && ($TEST != $TEST2)) {
+               $test = substr($id, 0, -3);
+               if ((isset($POST[$test."_ye"])) && (isset($POST[$test."_mo"])) && (isset($POST[$test."_we"])) && (isset($POST[$test."_da"])) && (isset($POST[$test."_ho"])) && (isset($POST[$test."_mi"])) && (isset($POST[$test."_se"])) && ($test != $test2)) {
                        // Generate timestamp
-                       $POST[$TEST] = CREATE_TIMESTAMP_FROM_SELECTIONS($TEST, $POST);
-                       $DATA[] = "$TEST='".$POST[$TEST]."'";
+                       $POST[$test] = CREATE_TIMESTAMP_FROM_SELECTIONS($test, $POST);
+                       $DATA[] = sprintf("%s='%s'", $test, $POST[$test]);
 
                        // Remove data from array
                        foreach (array("ye", "mo", "we", "da", "ho", "mi", "se") as $rem) {
-                               unset($POST[$TEST."_".$rem]);
+                               unset($POST[$test."_".$rem]);
                        } // END - foreach
 
                        // Skip adding
-                       unset($id); $skip = true; $TEST2 = $TEST;
+                       unset($id); $skip = true; $test2 = $test;
                } // END - if
        } else {
                // Process this entry
-               $skip = false; $TEST2 = "";
+               $skip = false; $test2 = "";
        }
 }
 // Reverts the german decimal comma into Computer decimal dot
@@ -2605,9 +2622,9 @@ function REBUILD_CACHE ($cache, $inc="") {
        // Shall I remove the cache file?
        if ((EXT_IS_ACTIVE("cache")) && (is_object($cacheInstance))) {
                // Rebuild cache
-               if ($cacheInstance->cache_file($cache, true)) {
+               if ($cacheInstance->loadCacheFile($cache)) {
                        // Destroy it
-                       $cacheInstance->cache_destroy();
+                       $cacheInstance->destroyCacheFile();
                } // END - if
 
                // Include file given?
@@ -2807,7 +2824,7 @@ function DESTROY_ADMIN_SESSION () {
 // Checks if a given apache module is loaded
 function IF_APACHE_MODULE_LOADED ($apacheModule) {
        // Check it and return result
-       return (in_array($apacheModule, apache_get_modules()));
+       return (((function_exists('apache_get_modules')) && (in_array($apacheModule, apache_get_modules()))) || (!function_exists('apache_get_modules')));
 }
 
 //////////////////////////////////////////////////