ADMIN_MEMBER_SELECTION_BOX() does now return a select-tag with the member list
[mailer.git] / inc / functions.php
index f4fa1f7e6ae4d055188c7dc025d8476a9dc4a5d9..c73058b0a52d1d88e0751a55f50c02ad3f6f4d81 100644 (file)
@@ -53,6 +53,7 @@ function is_INCWritable($inc) {
 // Open a table (you may want to add some header stuff here)
 function OPEN_TABLE($PERCENT = "", $CLASS = "", $ALIGN="left", $VALIGN="", $td_only=false) {
        global $table_cnt;
+
        // Count tables so we can generate CSS classes for every table... :-)
        if (empty($CLASS)) {
                // Class is empty so count one up and create a class
@@ -272,20 +273,20 @@ function LOAD_TEMPLATE($template, $return=false, $content="") {
                );
 
                // Probe for it...
-               if (file_exists($file2)) $file = $file2;
+               if (FILE_READABLE($file2)) $file = $file2;
 
                // Remove variable from memory
                unset($file2);
        }
 
        // Does the special template exists?
-       if ((!file_exists($file)) || (!is_readable($file))) {
+       if (!FILE_READABLE($file)) {
                // Reset to default template
                $file = $BASE.$template.".tpl";
-       }
+       } // END - if
 
        // Now does the final template exists?
-       if ((file_exists($file)) && (is_readable($file))) {
+       if (FILE_READABLE($file)) {
                // The local file does exists so we load it. :)
                $tmpl_file = implode("", file($file));
 
@@ -646,7 +647,7 @@ function GET_LANGUAGE() {
        // Check GET variable and cookie
        if (!empty($lang)) {
                // Check if main language file does exist
-               if (file_exists(PATH."inc/language/".$lang.".php")) {
+               if (FILE_READABLE(PATH."inc/language/".$lang.".php")) {
                        // Okay found, so let's update cookies
                        SET_LANGUAGE($lang);
                }
@@ -853,13 +854,13 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") {
        }
 
        // Does the special template exists?
-       if ((!@file_exists($file)) || (!is_readable($file))) {
+       if (!FILE_READABLE($file)) {
                // Reset to default template
                $file = $BASE.$template.".tpl";
        } // END - if
 
        // Now does the final template exists?
-       if ((@file_exists($file)) && (is_readable($file))) {
+       if (FILE_READABLE($file)) {
                // The local file does exists so we load it. :)
                $tmpl_file = @implode("", @file($file));
                $tmpl_file = addslashes($tmpl_file);
@@ -904,7 +905,7 @@ function MAKE_TIME($H, $M, $S, $stamp) {
 }
 //
 function LOAD_URL($URL, $addUrlData=true) {
-       global $CSS, $_CONFIG, $link, $db, $footer;
+       global $CSS, $_CONFIG, $footer;
 
        // Check if http(s):// is there
        if ((substr($URL, 0, 7) != "http://") && (substr($URL, 0, 8) != "https://")) {
@@ -1248,42 +1249,34 @@ function bigintval($num, $castValue = true) {
 // Insert the code in $img_code into jpeg or PNG image
 function GENERATE_IMAGE($img_code, $header=true) {
        global $_CONFIG;
-       if ((strlen($img_code) > 6) || (empty($img_code)) || ($_CONFIG['code_length'] == 0))
-       {
+
+       if ((strlen($img_code) > 6) || (empty($img_code)) || ($_CONFIG['code_length'] == 0)) {
                // Stop execution of function here because of over-sized code length
                return;
-       }
-        elseif (!$header)
-       {
+       } elseif (!$header) {
                // Return in an HTML code code
                return "<IMG src=\"".URL."/img.php?code=".$img_code."\">\n";
        }
 
-       switch ($_CONFIG['img_type'])
-       {
-       case "jpg":
-               // Loads JPEG image
-               $img = sprintf("%s/theme/%s/images/code_bg.jpg", PATH, GET_CURR_THEME());
-               if ((file_exists($img)) && (is_readable($img))) {
+       // Load image
+       $img = sprintf("%s/theme/%s/images/code_bg.%s", PATH, GET_CURR_THEME(), $_CONFIG['img_type']);
+       if (FILE_READABLE($img)) {
+               // Switch image type
+               switch ($_CONFIG['img_type'])
+               {
+               case "jpg":
                        // Okay, load image and hide all errors
                        $image = @imagecreatefromjpeg($img);
-               } else  {
-                       // Exit function here
-                       return;
-               }
-               break;
+                       break;
 
-       case "png":
-               // Loads PNG image
-               $img = sprintf("%s/theme/%s/images/code_bg.png", PATH, GET_CURR_THEME());
-               if ((file_exists($img)) && (is_readable($img))) {
+               case "png":
                        // Okay, load image and hide all errors
                        $image = @imagecreatefrompng($img);
-               } else {
-                       // Exit function here
-                       return;
+                       break;
                }
-               break;
+       } else {
+               // Exit function here
+               return;
        }
 
        // Generate text color (red/green/blue; 0 = dark, 255 = bright)
@@ -2039,15 +2032,14 @@ function scrambleString($str) {
 
                // Add it to final output string
                $scrambled .= $char;
-       }
+       } // END - for
 
        // Return scrambled string
        //* DEBUG: */ echo "***Scrambled=".$scrambled."***<br />";
        return $scrambled;
 }
 //
-function descrambleString($str)
-{
+function descrambleString($str) {
        global $_CONFIG;
        // Scramble only 40 chars long strings
        if (strlen($str) != 40) return $str;
@@ -2061,11 +2053,10 @@ function descrambleString($str)
        // Begin descrambling
        $orig = str_repeat(" ", 40);
        //* DEBUG: */ echo "+++Scrambled=".$str."+++<br />";
-       for ($idx = 0; $idx < 40; $idx++)
-       {
+       for ($idx = 0; $idx < 40; $idx++) {
                $char = substr($str, $idx, 1);
                $orig = substr_replace($orig, $char, $scrambleNums[$idx], 1);
-       }
+       } // END - for
 
        // Return scrambled string
        //* DEBUG: */ echo "+++Original=".$orig."+++<br />";
@@ -2085,11 +2076,11 @@ function genScrambleString($len) {
                // Check for it by creating more numbers
                while (array_key_exists($rand, $scrambleNumbers)) {
                        $rand = mt_rand(0, ($len -1));
-               }
+               } // END - while
 
                // Add number
                $scrambleNumbers[$rand] = $rand;
-       }
+       } // END - for
 
        // So let's create the string for storing it in database
        $scrambleString = implode(":", $scrambleNumbers);
@@ -2097,8 +2088,7 @@ function genScrambleString($len) {
 }
 // Append data like session ID referral ID to the given URL which would
 // normally be stored in cookies
-function ADD_URL_DATA($URL)
-{
+function ADD_URL_DATA($URL) {
        global $_CONFIG;
        $ADD = "";
 
@@ -2127,7 +2117,7 @@ function ADD_URL_DATA($URL)
                        // Add current session
                        $ADD .= $BIND."PHPSESSID=".session_id();
                }
-       }
+       } // END - if
 
        // Add all together and return it
        return $URL.$ADD;
@@ -2183,8 +2173,8 @@ function FIX_DELETED_COOKIES ($cookies) {
                        if (get_session($cookieName) == "deleted") {
                                set_session($cookieName, "");
                        }
-               }
-       }
+               } // END - foreach
+       } // END - if
 }
 
 // Output error messages in a fasioned way and die...
@@ -2405,6 +2395,70 @@ function RESET_ADD_INCLUDES () {
                UPDATE_CONFIG("last_month", $currMonth);
        } // END - if
 }
+// Handle extra values
+function HANDLE_EXTRA_VALUES ($filterFunction, $value, $extraValue) {
+       // Default is the value itself
+       $ret = $value;
+
+       // Do we have a special filter function?
+       if (!empty($filterFunction)) {
+               // Do we have extra parameters here?
+               if (!empty($extraValue)) {
+                       // Put both parameters in one new array by default
+                       $args = array($value, $extraValue);
+
+                       // If we have an array simply use it and pre-extend it with our value
+                       if (is_array($extraValue)) {
+                               // Make the new args array
+                               $args = array_merge(array($value), $extraValue);
+                       } // END - if
+
+                       // Call the multi-parameter call-back
+                       $ret = call_user_func_array($filterFunction, $args);
+               } else {
+                       // One parameter call
+                       $ret = call_user_func($filterFunction, $value);
+               }
+       } // END - if
+
+       // Return the value
+       return $ret;
+}
+// Check if given FQFN is a readable file
+function FILE_READABLE($fqfn) {
+       // Check all...
+       return ((file_exists($fqfn)) && (is_file($fqfn)) && (is_readable($fqfn)));
+}
+// Converts timestamp selections into a timestamp
+function CONVERT_SELECTIONS_TO_TIMESTAMP(&$POST, &$DATA, &$id, &$skip) {
+       // Init test variable
+       $TEST2 = "";
+
+       // Get last three chars
+       $TEST = substr($id, -3);
+
+       // Improved way of checking! :-)
+       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)) {
+                       // Generate timestamp
+                       $POST[$TEST] = CREATE_TIMESTAMP_FROM_SELECTIONS($TEST, $POST);
+                       $DATA[] = "$TEST='".$POST[$TEST]."'";
+
+                       // Remove data from array
+                       foreach (array("ye", "mo", "we", "da", "ho", "mi", "se") as $rem) {
+                               unset($POST[$TEST."_".$rem]);
+                       } // END - foreach
+
+                       // Skip adding
+                       unset($id); $skip = true; $TEST2 = $TEST;
+               } // END - if
+       } else {
+               // Process this entry
+               $skip = false; $TEST2 = "";
+       }
+}
 //
 //////////////////////////////////////////////////
 //                                              //
@@ -2419,7 +2473,7 @@ if (!function_exists('html_entity_decode')) {
                $trans_tbl = array_flip($trans_tbl);
                return strtr($string, $trans_tbl);
        }
-}
+} // END - if
 
 //
 ?>