]> git.mxchange.org Git - mailer.git/blobdiff - inc/functions.php
A lot while() conditions rewritten to SQL_FETCHARRAY(), see bug #107, @TODO tags...
[mailer.git] / inc / functions.php
index d10e1f844d0a7b2f33fa5b379f7453d90486bc03..dcdfdc6ea03845940ec3fa110573bb0b6d0564b3 100644 (file)
@@ -38,25 +38,17 @@ if (!defined('__SECURITY')) {
 }
 
 // Check if our config file is writeable or not
-function IS_INC_WRITEABLE($inc) {
+function IS_INC_WRITEABLE ($inc) {
        // Generate FQFN
-       $fqfn = sprintf("%sinc/%s.php", constant('PATH'), $inc);
+       $FQFN = sprintf("%sinc/%s.php", constant('PATH'), $inc);
 
        // Abort by simple test
-       if ((FILE_READABLE($fqfn)) && (!is_writeable($fqfn))) {
+       if ((FILE_READABLE($FQFN)) && (!is_writeable($FQFN))) {
                return false;
        } // END - if
 
-       // Test if we can append data
-       $fp = fopen($fqfn, 'a');
-       if ($inc == "dummy") {
-               // Remove dummy file
-               fclose($fp);
-               return unlink($fqfn);
-       } else {
-               // Close all other files
-               return fclose($fp);
-       }
+       // Test write-access
+       return is_writeable($FQFN);
 }
 
 // Output HTML code directly or "render" it. You addionally switch the new-line character off
@@ -375,7 +367,7 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) {
        // Do we have some content to output or return?
        if (!empty($ret)) {
                // Not empty so let's put it out! ;)
-               if ($return) {
+               if ($return === true) {
                        // Return the HTML code
                        return $ret;
                } else {
@@ -540,7 +532,7 @@ function GEN_PASS ($LEN = 0) {
        // Start creating password
        $PASS = "";
        for ($i = 0; $i < $LEN; $i++) {
-               $PASS .= $ABC[mt_rand(0, sizeof($ABC) -1)];
+               $PASS .= $ABC[mt_rand(0, count($ABC) -1)];
        } // END - for
 
        // When the size is below 40 we can also add additional security by scrambling it
@@ -954,7 +946,7 @@ function LOAD_URL ($URL, $addUrlData=true) {
                LOAD_TEMPLATE("redirect_url", false, str_replace("&amp;", "&", $URL));
                LOAD_INC("inc/footer.php");
        }
-       exit();
+       exit;
 }
 
 // Wrapper for LOAD_URL but URL comes from a configuration entry
@@ -1108,7 +1100,6 @@ function array_pk_sort (&$array, $a_sort, $primary_key = 0, $order = -1, $nums =
 
 //
 function ADD_SELECTION ($type, $DEFAULT, $prefix="", $id="0") {
-       global $MONTH_DESCR;
        $OUT = "";
 
        if ($type == "yn") {
@@ -1133,7 +1124,7 @@ function ADD_SELECTION ($type, $DEFAULT, $prefix="", $id="0") {
                break;
 
        case "month": // Month
-               foreach ($MONTH_DESCR as $month => $descr) {
+               foreach ($GLOBALS['month_descr'] as $month => $descr) {
                        $OUT .= "<option value=\"".$month."\"";
                        if ($DEFAULT == $month) $OUT .= " selected=\"selected\"";
                        $OUT .= ">".$descr."</option>\n";
@@ -1254,7 +1245,7 @@ function generateRandomCodde ($length, $code, $uid, $DATA="") {
        $keys   = constant('SITE_KEY').":".constant('DATE_KEY');
        if (isConfigEntrySet('secret_key'))  $keys .= ":".getConfig('secret_key');
        if (isConfigEntrySet('file_hash'))   $keys .= ":".getConfig('file_hash');
-       $keys .= ":".date("d-m-Y (l-F-T)", bigintval(getConfig('patch_ctime')));
+       $keys .= ":".date("d-m-Y (l-F-T)", getConfig(('patch_ctime')));
        if (isConfigEntrySet('master_salt')) $keys .= ":".getConfig('master_salt');
 
        // Build string from misc data
@@ -1596,11 +1587,6 @@ function SEND_ADMIN_EMAILS_PRO ($subj, $template, $content, $UID) {
        // Load email template
        $msg = LOAD_EMAIL_TEMPLATE($template, $content, $UID);
 
-       if (EXT_VERSION_IS_OLDER("admins", "0.4.0")) {
-               // Older version detected!
-               return SEND_ADMIN_EMAILS($subj, $msg);
-       } // END - if
-
        // Check which admin shall receive this mail
        $result = SQL_QUERY_ESC("SELECT DISTINCT admin_id FROM `{!_MYSQL_PREFIX!}_admins_mails` WHERE mail_template='%s' ORDER BY admin_id",
                array($template), __FUNCTION__, __LINE__);
@@ -1610,9 +1596,10 @@ function SEND_ADMIN_EMAILS_PRO ($subj, $template, $content, $UID) {
                        array($template), __FUNCTION__, __LINE__);
        } else {
                // Load admin IDs...
-               $aids = array();
-               while (list($aid) = SQL_FETCHROW($result)) {
-                       $aids[] = $aid;
+               // @TODO This can be, somehow, rewritten
+               $adminIds = array();
+               while ($content = SQL_FETCHARRAY($result)) {
+                       $adminIds[] = $content['admin_id'];
                } // END - while
 
                // Free memory
@@ -1622,7 +1609,7 @@ function SEND_ADMIN_EMAILS_PRO ($subj, $template, $content, $UID) {
                $result = false;
 
                // "implode" IDs and query string
-               $aid = implode(",", $aids);
+               $aid = implode(",", $adminIds);
                if ($aid == "-1") {
                        if (EXT_IS_ACTIVE("events")) {
                                // Add line to user events
@@ -1637,16 +1624,18 @@ function SEND_ADMIN_EMAILS_PRO ($subj, $template, $content, $UID) {
                        }
                } elseif ($aid == "0") {
                        // Select all email adresses
-                       $result = SQL_QUERY("SELECT email FROM `{!_MYSQL_PREFIX!}_admins` ORDER BY `id`", __FUNCTION__, __LINE__);
+                       $result = SQL_QUERY("SELECT email FROM `{!_MYSQL_PREFIX!}_admins` ORDER BY `id`",
+                               __FUNCTION__, __LINE__);
                } else {
                        // If Admin-ID is not "to-all" select
-                       $result = SQL_QUERY_ESC("SELECT email FROM `{!_MYSQL_PREFIX!}_admins` WHERE id IN (%s) ORDER BY `id`", array($aid), __FUNCTION__, __LINE__);
+                       $result = SQL_QUERY_ESC("SELECT email FROM `{!_MYSQL_PREFIX!}_admins` WHERE id IN (%s) ORDER BY `id`",
+                               array($aid), __FUNCTION__, __LINE__);
                }
        }
 
        // Load email addresses and send away
-       while (list($email) = SQL_FETCHROW($result)) {
-               SEND_EMAIL($email, $subj, $msg);
+       while ($content = SQL_FETCHARRAY($result)) {
+               SEND_EMAIL($content['email'], $subj, $msg);
        } // END - while
 
        // Free memory
@@ -1728,7 +1717,7 @@ function ADD_EMAIL_NAV ($PAGES, $offset, $show_form, $colspan, $return=false) {
        // Load navigation template
        $OUT = LOAD_TEMPLATE("admin_email_nav_row", true);
 
-       if ($return) {
+       if ($return === true) {
                // Return generated HTML-Code
                return $OUT;
        } else {
@@ -1899,7 +1888,7 @@ function SEND_RAW_REQUEST ($host, $request) {
        fputs($fp, $request);
 
        // Read response
-       while(!feof($fp)) {
+       while (!feof($fp)) {
                $response[] = trim(fgets($fp, 1024));
        } // END - while
 
@@ -1942,7 +1931,7 @@ function SEND_RAW_REQUEST ($host, $request) {
 }
 
 // Taken from www.php.net eregi() user comments
-function VALIDATE_EMAIL($email) {
+function VALIDATE_EMAIL ($email) {
        // Compile email
        $email = COMPILE_CODE($email);
 
@@ -2063,7 +2052,7 @@ function generateHash ($plainText, $salt = "") {
                $server = $_SERVER['PHP_SELF'].":".GET_USER_AGENT().":".getenv('SERVER_SOFTWARE').":".GET_REMOTE_ADDR().":".":".filemtime(constant('PATH')."inc/databases.php");
 
                // Build key string
-               $keys   = constant('SITE_KEY').":".constant('DATE_KEY').":".getConfig('secret_key').":".getConfig('file_hash').":".date("d-m-Y (l-F-T)", bigintval(getConfig('patch_ctime'))).":".getConfig('master_salt');
+               $keys   = constant('SITE_KEY').":".constant('DATE_KEY').":".getConfig('secret_key').":".getConfig('file_hash').":".date("d-m-Y (l-F-T)", getConfig(('patch_ctime'))).":".getConfig('master_salt');
 
                // Additional data
                $data = $plainText.":".uniqid(mt_rand(), true).":".time();
@@ -2580,7 +2569,7 @@ function LOAD_INC ($INC) {
        // Is the include file there?
        if (!FILE_READABLE($FQFN)) {
                // Not there so log it
-               DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Include file %s not found.", basename($INC)));
+               debug_report_bug(sprintf("Include file %s not found.", $INC));
                return false;
        } // END - if
 
@@ -2927,12 +2916,12 @@ function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $DATA, $seek=0) {
        return false;
 }
 // Send notification to admin
-function SEND_ADMIN_NOTIFICATION($subject, $templateName, $content=array(), $uid="0") {
+function SEND_ADMIN_NOTIFICATION ($subject, $templateName, $content=array(), $uid="0") {
        if (GET_EXT_VERSION("admins") >= "0.4.1") {
                // Send new way
                SEND_ADMIN_EMAILS_PRO($subject, $templateName, $content, $uid);
        } else {
-               // Send outdated way
+               // Send out out-dated way
                $msg = LOAD_EMAIL_TEMPLATE($templateName, $content, $uid);
                SEND_ADMIN_EMAILS($subject, $msg);
        }
@@ -3026,28 +3015,31 @@ function runResetIncludes () {
        // Update database
        if (!defined('DEBUG_RESET')) UPDATE_CONFIG("last_update", time());
 
-       // Create current week mark
-       $currWeek = date("W", time());
+       // Is the config entry set?
+       if (GET_EXT_VERSION("sql_patches") >= "0.4.2") {
+               // Create current week mark
+               $currWeek = date("W", time());
 
-       // Has it changed?
-       if (getConfig('last_week') != $currWeek) {
-               // Include weekly reset scripts
-               $INC_POOL = merge_array($INC_POOL, GET_DIR_AS_ARRAY("inc/weekly/", "weekly_"));
+               // Has it changed?
+               if (getConfig('last_week') != $currWeek) {
+                       // Include weekly reset scripts
+                       $INC_POOL = merge_array($INC_POOL, GET_DIR_AS_ARRAY("inc/weekly/", "weekly_"));
 
-               // Update config
-               if (!defined('DEBUG_WEEKLY')) UPDATE_CONFIG("last_week", $currWeek);
-       } // END - if
+                       // Update config
+                       if (!defined('DEBUG_WEEKLY')) UPDATE_CONFIG("last_week", $currWeek);
+               } // END - if
 
-       // Create current month mark
-       $currMonth = date("m", time());
+               // Create current month mark
+               $currMonth = date("m", time());
 
-       // Has it changed?
-       if (getConfig('last_month') != $currMonth) {
-               // Include monthly reset scripts
-               $INC_POOL = merge_array($INC_POOL, GET_DIR_AS_ARRAY("inc/monthly/", "monthly_"));
+               // Has it changed?
+               if (getConfig('last_month') != $currMonth) {
+                       // Include monthly reset scripts
+                       $INC_POOL = merge_array($INC_POOL, GET_DIR_AS_ARRAY("inc/monthly/", "monthly_"));
 
-               // Update config
-               if (!defined('DEBUG_MONTHLY')) UPDATE_CONFIG("last_month", $currMonth);
+                       // Update config
+                       if (!defined('DEBUG_MONTHLY')) UPDATE_CONFIG("last_month", $currMonth);
+               } // END - if
        } // END - if
 
        // Run the filter
@@ -3088,13 +3080,13 @@ function HANDLE_EXTRA_VALUES ($filterFunction, $value, $extraValue) {
 }
 
 // Check if given FQFN is a readable file
-function FILE_READABLE($fqfn) {
+function FILE_READABLE ($FQFN) {
        // Check all...
-       return ((file_exists($fqfn)) && (is_file($fqfn)) && (is_readable($fqfn)));
+       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) {
+function CONVERT_SELECTIONS_TO_TIMESTAMP (&$POST, &$DATA, &$id, &$skip) {
        // Init test variable
        $test2 = "";
 
@@ -3182,7 +3174,7 @@ function HANDLE_LOGIN_FAILTURES ($accessLevel) {
 // Rebuild cache
 function rebuildCacheFiles ($cache, $inc="") {
        // Shall I remove the cache file?
-       if ((EXT_IS_ACTIVE("cache")) && (is_object($GLOBALS['cache_instance']))) {
+       if ((EXT_IS_ACTIVE("cache")) && (isCacheInstanceValid())) {
                // Rebuild cache
                if ($GLOBALS['cache_instance']->loadCacheFile($cache)) {
                        // Destroy it
@@ -3213,7 +3205,7 @@ function CACHE_PURGE_ADMIN_MENU ($id=0, $action="", $what="", $str="") {
        if (!EXT_IS_ACTIVE("cache")) {
                // Cache extension not active
                return false;
-       } elseif (!is_object($GLOBALS['cache_instance'])) {
+       } elseif (!isCacheInstanceValid()) {
                // No cache instance!
                DEBUG_LOG(__FUNCTION__, __LINE__, " No cache instance found.");
                return false;
@@ -3361,7 +3353,7 @@ function DETERMINE_REFID () {
                $GLOBALS['refid'] = bigintval(get_session('refid'));
        } elseif ((GET_EXT_VERSION("sql_patches") != "") && (getConfig('def_refid') > 0)) {
                // Set default refid as refid in URL
-               $GLOBALS['refid'] = bigintval(getConfig('def_refid'));
+               $GLOBALS['refid'] = getConfig(('def_refid'));
        } elseif ((GET_EXT_VERSION("user") >= "0.3.4") && (getConfig('select_user_zero_refid')) == "Y") {
                // Select a random user which has confirmed enougth mails
                $GLOBALS['refid'] = SELECT_RANDOM_REFID();
@@ -3406,7 +3398,7 @@ function enableResetMode () {
 }
 
 // Checks wether the reset mode is active
-function isResetEnabled () {
+function isResetModeEnabled () {
        // Now simply check it
        return ((isset($GLOBALS['reset_enabled'])) && ($GLOBALS['reset_enabled'] === true));
 }
@@ -3417,6 +3409,11 @@ function isDebugModeEnabled () {
        return isBooleanConstantAndTrue('DEBUG_MODE');
 }
 
+// Checks wether the cache instance is valid
+function isCacheInstanceValid () {
+       return ((isset($GLOBALS['cache_instance'])) && (is_object($GLOBALS['cache_instance'])));
+}
+
 //////////////////////////////////////////////////
 // AUTOMATICALLY RE-GENERATED MISSING FUNCTIONS //
 //////////////////////////////////////////////////