Fixes/rewrites for missing sql_patches and check on admin's default access mode ...
[mailer.git] / inc / mysql-manager.php
index 24265384c80e46fe530ecaeddd6a1171f3beeb86..db3015241a05653e8326fa33ccd6c73562a577eb 100644 (file)
@@ -59,7 +59,7 @@ function ADD_MODULE_TITLE ($mod) {
                        incrementConfigEntry('cache_hits');
                } elseif (!EXT_IS_ACTIVE("cache")) {
                        // Load from database
-                       $result = SQL_QUERY_ESC("SELECT title FROM `{!_MYSQL_PREFIX!}_mod_reg` WHERE module='%s' LIMIT 1",
+                       $result = SQL_QUERY_ESC("SELECT title FROM `{!_MYSQL_PREFIX!}_mod_reg` WHERE `module`='%s' LIMIT 1",
                                array($mod), __FUNCTION__, __LINE__);
                        list($name) = SQL_FETCHROW($result);
                        SQL_FREERESULT($result);
@@ -142,7 +142,7 @@ function checkModulePermissions ($mod) {
                }
        } elseif (!EXT_IS_ACTIVE("cache")) {
                // Check for module in database
-               $result = SQL_QUERY_ESC("SELECT locked, hidden, admin_only, mem_only FROM `{!_MYSQL_PREFIX!}_mod_reg` WHERE module='%s' LIMIT 1",
+               $result = SQL_QUERY_ESC("SELECT locked, hidden, admin_only, mem_only FROM `{!_MYSQL_PREFIX!}_mod_reg` WHERE `module`='%s' LIMIT 1",
                        array($mod_chk), __FUNCTION__, __LINE__);
                if (SQL_NUMROWS($result) == 1) {
                        // Read data
@@ -255,7 +255,7 @@ function ADD_DESCR ($ACC_LVL, $FQFN, $return = false, $output = true) {
                        $modCheck = $GLOBALS['module'];
                        break;
                }
-               $AND = " AND (what='' OR `what` IS NULL)";
+               $AND = " AND (`what`='' OR `what` IS NULL)";
        } elseif (substr($file, 0, 5) == "what-") {
                // This is an admin what file!
                $type = "what";
@@ -371,7 +371,7 @@ function ADD_MENU ($MODE, $act, $wht) {
        } // END - if
 
        // Load SQL data and add the menu to the output stream...
-       $result_main = SQL_QUERY_ESC("SELECT title, action FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE (what='' OR `what` IS NULL)".$AND." ORDER BY `sort`",
+       $result_main = SQL_QUERY_ESC("SELECT title, action FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE (`what`='' OR `what` IS NULL)".$AND." ORDER BY `sort`",
                array($MODE), __FUNCTION__, __LINE__);
        //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*<br />\n";
        if (SQL_NUMROWS($result_main) > 0) {
@@ -692,21 +692,21 @@ function VALIDATE_MENU_ACTION ($MODE, $act, $wht, $UPDATE=false) {
        $ret = false;
 
        // Look in all menus or only unlocked
-       $ADD = "";
-       if ((!IS_ADMIN()) && ($MODE != "admin")) $ADD = " AND `locked`='N'";
+       $add = "";
+       if ((!IS_ADMIN()) && ($MODE != "admin")) $add = " AND `locked`='N'";
 
        //* DEBUG: */ echo __LINE__.":".$MODE."/".$act."/".$wht."*<br />\n";
        if (($MODE != "admin") && ($UPDATE === true)) {
                // Update guest or member menu
-               $sql = SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_%s_menu` SET counter=counter+1 WHERE `action`='%s' AND `what`='%s'".$ADD." LIMIT 1",
+               $sql = SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_%s_menu` SET counter=counter+1 WHERE `action`='%s' AND `what`='%s'".$add." LIMIT 1",
                        array($MODE, $act, $wht), __FUNCTION__, __LINE__, false);
        } elseif (($wht != "overview") && (!empty($wht))) {
                // Other actions
-               $sql = SQL_QUERY_ESC("SELECT id, what FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE `action`='%s' AND `what`='%s'".$ADD." ORDER BY action DESC LIMIT 1",
+               $sql = SQL_QUERY_ESC("SELECT id, what FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE `action`='%s' AND `what`='%s'".$add." ORDER BY action DESC LIMIT 1",
                        array($MODE, $act, $wht), __FUNCTION__, __LINE__, false);
        } else {
                // Admin login overview
-               $sql = SQL_QUERY_ESC("SELECT id, what FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE `action`='%s' AND (what='' OR `what` IS NULL)".$ADD." ORDER BY action DESC LIMIT 1",
+               $sql = SQL_QUERY_ESC("SELECT id, what FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE `action`='%s' AND (`what`='' OR `what` IS NULL)".$add." ORDER BY action DESC LIMIT 1",
                        array($MODE, $act), __FUNCTION__, __LINE__, false);
        }
 
@@ -883,7 +883,7 @@ function SEND_MODE_MAILS($mod, $modes) {
 function countModuleHit($mod) {
        if ($mod != "css") {
                // Do count all other modules but not accesses on CSS file css.php!
-               SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET clicks=clicks+1 WHERE module='%s' LIMIT 1",
+               SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET clicks=clicks+1 WHERE `module`='%s' LIMIT 1",
                        array($mod), __FUNCTION__, __LINE__);
        } // END - if
 }
@@ -1017,22 +1017,29 @@ function GET_PAY_POINTS ($pid, $lookFor = "price") {
        return $ret;
 }
 
-// Remove a receiver's ID from $ARRAY and add a link for him to confirm
-function REMOVE_RECEIVER (&$ARRAY, $key, $uid, $pool_id, $stats_id="", $bonus=false) {
+// Remove a receiver's ID from $receivers and add a link for him to confirm
+function REMOVE_RECEIVER (&$receivers, $key, $uid, $pool_id, $stats_id="", $bonus=false) {
+       // Default is not removed
        $ret = "failed";
+
+       // Is the userid valid?
        if ($uid > 0) {
                // Remove entry from array
-               unset($ARRAY[$key]);
+               unset($receivers[$key]);
 
                // Is there already a line for this user available?
                if ($stats_id > 0) {
                        // Only when we got a real stats ID continue searching for the entry
                        $type = "NORMAL"; $rowName = "stats_id";
                        if ($bonus) { $type = "BONUS"; $rowName = "bonus_id"; }
+
+                       // Try to look the entry up
                        $result = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_user_links` WHERE %s='%s' AND userid=%s AND link_type='%s' LIMIT 1",
                                array($rowName, $stats_id, bigintval($uid), $type), __FUNCTION__, __LINE__);
+
+                       // Was it *not* found?
                        if (SQL_NUMROWS($result) == 0) {
-                               // No, so we add one!
+                               // So we add one!
                                SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_user_links` (%s, userid, link_type) VALUES ('%s','%s','%s')",
                                        array($rowName, $stats_id, bigintval($uid), $type), __FUNCTION__, __LINE__);
                                $ret = "done";
@@ -1051,18 +1058,18 @@ function REMOVE_RECEIVER (&$ARRAY, $key, $uid, $pool_id, $stats_id="", $bonus=fa
 }
 
 // Calculate sum (default) or count records of given criteria
-function GET_TOTAL_DATA ($search, $tableName, $lookFor, $whereStatement = "userid", $countRows = false, $add = "") {
+function GET_TOTAL_DATA ($search, $tableName, $lookFor = "id", $whereStatement = "userid", $countRows = false, $add = "") {
        $ret = 0;
        //* DEBUG: */ echo $search."/".$tableName."/".$lookFor."/".$whereStatement."/".$add."<br />\n";
-       if (empty($search)) {
+       if ((empty($search)) && ($search != "0")) {
                // Count or sum whole table?
                if ($countRows === true) {
                        // Count whole table
-                       $result = SQL_QEURY_ESC("SELECT COUNT(`%s`) FROM `{!_MYSQL_PREFIX!}_%s`".$add,
+                       $result = SQL_QUERY_ESC("SELECT COUNT(`%s`) FROM `{!_MYSQL_PREFIX!}_%s`".$add,
                                array($lookFor, $tableName), __FUNCTION__, __LINE__);
                } else {
                        // Sum whole table
-                       $result = SQL_QEURY_ESC("SELECT SUM(`%s`) FROM `{!_MYSQL_PREFIX!}_%s`".$add,
+                       $result = SQL_QUERY_ESC("SELECT SUM(`%s`) FROM `{!_MYSQL_PREFIX!}_%s`".$add,
                                array($lookFor, $tableName), __FUNCTION__, __LINE__);
                }
        } elseif (($countRows === true) || ($lookFor == "userid")) {
@@ -1465,7 +1472,11 @@ function GET_ADMIN_DEFAULT_ACL ($aid) {
        // By default an invalid ACL value is returned
        $ret = "***";
 
-       if (isset($GLOBALS['cache_array']['admins']['def_acl'][$aid])) {
+       // Is sql_patches there and was it found in cache?
+       if (!EXT_IS_ACTIVE("sql_patches")) {
+               // Not found, which is bad, so we need to allow all
+               $ret =  "allow";
+       } elseif (isset($GLOBALS['cache_array']['admins']['def_acl'][$aid])) {
                // Use cache
                $ret = $GLOBALS['cache_array']['admins']['def_acl'][$aid];
 
@@ -1535,13 +1546,19 @@ function ADD_OPTION_LINES ($table, $id, $name, $default="", $special="", $where=
 }
 // Activate exchange
 function activateExchange () {
+       // Is the extension 'user' there?
+       if (!EXT_IS_ACTIVE("user")) {
+               // Silently abort here
+               return false;
+       } // END - if
+
        // Check total amount of users
        $totalUsers = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true, " AND max_mails > 0");
 
        if ($totalUsers >= getConfig('activate_xchange')) {
                // Activate System
                SET_SQLS(array(
-                       "UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `locked`='N', hidden='N', mem_only='Y' WHERE module='order' LIMIT 1",
+                       "UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `locked`='N', hidden='N', mem_only='Y' WHERE `module`='order' LIMIT 1",
                        "UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='order' OR `what`='unconfirmed' LIMIT 2",
                        "UPDATE `{!_MYSQL_PREFIX!}_config` SET activate_xchange='0' WHERE config=0 LIMIT 1"
                ));
@@ -2050,16 +2067,16 @@ function USER_STATS_INSERT_RECORD ($uid, $type, $data) {
 function GET_USER_REF_POINTS ($uid, $level) {
        //* DEBUG: */ print "----------------------- <font color=\"#00aa00\">".__FUNCTION__." - ENTRY</font> ------------------------<ul><li>\n";
        // Default is no refs and no nickname
-       $ADD = "";
+       $add = "";
        $refs = array();
 
        // Do we have nickname extension installed?
        if (EXT_IS_ACTIVE("nickname")) {
-               $ADD = ", ud.nickname";
+               $add = ", ud.nickname";
        } // END - if
 
        // Get refs from database
-       $result = SQL_QUERY_ESC("SELECT ur.id, ur.refid, ud.status, ud.last_online, ud.mails_confirmed, ud.emails_received".$ADD."
+       $result = SQL_QUERY_ESC("SELECT ur.id, ur.refid, ud.status, ud.last_online, ud.mails_confirmed, ud.emails_received".$add."
 FROM `{!_MYSQL_PREFIX!}_user_refs` AS ur
 LEFT JOIN `{!_MYSQL_PREFIX!}_user_points` AS up
 ON ur.refid=up.userid AND ur.level=0