]> git.mxchange.org Git - mailer.git/blobdiff - inc/mysql-manager.php
(no comment)
[mailer.git] / inc / mysql-manager.php
index 61a98d58c70fcdd46e45dae4a10e07575dcdd792..d3a95764bcf77dd162d25ba37e56b149c9d1ffe7 100644 (file)
@@ -693,7 +693,8 @@ function VALIDATE_MENU_ACTION ($MODE, $act, $wht, $UPDATE=false)
 
        // Free memory
        SQL_FREERESULT($result);
-       //* DEBUG: */ var_dump($ret);
+
+       // Return result
        return $ret;
 }
 //
@@ -1044,6 +1045,9 @@ function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $lock
 {
        global $DEPTH, $_CONFIG, $DATA, $link;
 
+       // Debug message
+       //DEBUG_LOG(__FUNCTION__.": uid={$uid},points={$points}");
+
        // When $uid = 0 add points to jackpot
        if ($uid == "0") {
                // Add points to jackpot
@@ -1067,48 +1071,65 @@ function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $lock
        // Which points, locked or normal?
        $data = "points"; if ($locked) $data = "locked_points";
 
+       // Check user account
        $result_user = SQL_QUERY_ESC("SELECT refid, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s AND status='CONFIRMED' LIMIT 1",
         array(bigintval($uid)), __FILE__, __LINE__);
+
        //* DEBUG */ echo "+".SQL_NUMROWS($result_user).":".$points."+<br />\n";
        if (SQL_NUMROWS($result_user) == 1) {
                // This is the user and his ref
                list ($ref, $email) = SQL_FETCHROW($result_user);
-               SQL_FREERESULT($result_user);
 
-               $result = SQL_QUERY_ESC("SELECT %s FROM "._MYSQL_PREFIX."_%s WHERE level='%s' LIMIT 1",
+               // Debug message
+               //DEBUG_LOG(__FUNCTION__.": ref={$ref},email={$email},DEPTH={$DEPTH}");
+
+               // Get referal data
+               $result_lvl = SQL_QUERY_ESC("SELECT %s FROM "._MYSQL_PREFIX."_%s WHERE level='%s' LIMIT 1",
                 array($percents, $table, bigintval($DEPTH)), __FILE__, __LINE__);
                //* DEBUG */ echo "DEPTH:".$DEPTH."<br />\n";
-               if (SQL_NUMROWS($result) == 1) {
-                       list($per) = SQL_FETCHROW($result);
-                       SQL_FREERESULT($result);
-                       $P = $points * $per / 100;
-                       //* DEBUG */ echo "ADD:".$P."<br />\n";
+               if (SQL_NUMROWS($result_lvl) == 1) {
+                       // Get percents
+                       list($per) = SQL_FETCHROW($result_lvl);
+
+                       // Calculate new points
+                       $ref_points = $points * $per / 100;
+
+                       // Debug message
+                       //DEBUG_LOG(__FUNCTION__.": percent={$per},ref_points={$ref_points}");
 
                        // Update points...
-                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET %s=%s+%s WHERE userid=%s AND ref_depth=%s LIMIT 1",
-                        array($data, $data, $P, bigintval($uid), bigintval($DEPTH)), __FILE__, __LINE__);
-                       if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 0) {
+                       SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET %s=%s+%s WHERE userid=%s AND ref_depth=%d LIMIT 1",
+                        array($data, $data, $ref_points, bigintval($uid), bigintval($DEPTH)), __FILE__, __LINE__);
+
+                       // Debug log
+                       //DEBUG_LOG(__FUNCTION__.": affectedRows=".SQL_AFFECTEDROWS().",DEPTH={$DEPTH}");
+
+                       // No entry updated?
+                       if (SQL_AFFECTEDROWS() == 0) {
                                // First ref in this level! :-)
-                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_points (userid, ref_depth, %s) VALUES (%s, %s, %s)",
-                                array($data, bigintval($uid), bigintval($DEPTH), $P), __FILE__, __LINE__);
-                       }
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_points (userid, ref_depth, %s) VALUES (%s, %d, %s)",
+                                array($data, bigintval($uid), bigintval($DEPTH), $ref_points), __FILE__, __LINE__);
+
+                               // Debug log
+                               //DEBUG_LOG(__FUNCTION__.": insertedRows=".SQL_AFFECTEDROWS()."");
+                       } // END - if
 
                        // Update mediadata as well
                        if (GET_EXT_VERSION("mediadata") >= "0.0.4") {
                                // Update database
-                               MEDIA_UPDATE_ENTRY(array("total_points"), "add", $P);
-                       }
+                               MEDIA_UPDATE_ENTRY(array("total_points"), "add", $ref_points);
+                       } // END - if
 
                        // Points updated, maybe I shall send him an email?
                        if (($send_notify) && ($ref > 0) && (!$locked)) {
                                //              0                1      2              3
-                               $DATA = array($per, bigintval($DEPTH), $P, bigintval($ref));
+                               $DATA = array($per, bigintval($DEPTH), $ref_points, bigintval($ref));
                                $msg = LOAD_EMAIL_TEMPLATE("confirm-referral", "", bigintval($uid));
 
                                SEND_EMAIL($email, THANX_REFERRAL_ONE, $msg);
                        } elseif (($send_notify) && ($ref == 0) && (!$locked) && ($add_mode == "direct") && (!defined('__POINTS_VALUE'))) {
                                // Direct payment shall be notified about
-                               define('__POINTS_VALUE', $P);
+                               define('__POINTS_VALUE', $ref_points);
 
                                // Load message
                                $msg = LOAD_EMAIL_TEMPLATE("add-points", REASON_DIRECT_PAYMENT, $uid);
@@ -1124,7 +1145,13 @@ function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $lock
                                ADD_POINTS_REFSYSTEM($ref, $points, $send_notify, $ref, $locked);
                        }
                }
+
+               // Free result
+               SQL_FREERESULT($result_lvl);
        }
+
+       // Free result
+       SQL_FREERESULT($result_user);
 }
 //
 function UPDATE_REF_COUNTER($uid)
@@ -1295,12 +1322,14 @@ function GET_ADMIN_HASH($login)
        return $ret;
 }
 //
-function GET_ADMIN_LOGIN($aid) {
+function GET_ADMIN_LOGIN ($aid) {
        global $cacheArray;
        $ret = "***";
-       if (!empty($cacheArray['admins']['login']['aid'])) {
+       if (!empty($cacheArray['admins']['login'])) {
                // Check cache
-               if (!empty($cacheArray['admins']['login'][$aid]))       $ret = $cacheArray['admins']['login'][$aid];
+               if (!empty($cacheArray['admins']['login'][$aid])) {
+                       $ret = $cacheArray['admins']['login'][$aid];
+               } // END - if
                if (empty($ret)) $ret = "***";
        } else {
                // Load from database
@@ -1309,6 +1338,9 @@ function GET_ADMIN_LOGIN($aid) {
                if (SQL_NUMROWS($result) == 1) {
                        // Fetch data
                        list($ret) = SQL_FETCHROW($result);
+
+                       // Set cache
+                       $cacheArray['admins']['login'][$aid] = $ret;
                }
 
                // Free memory
@@ -1549,35 +1581,37 @@ function GET_WHAT($MOD_CHECK) {
        return $wht;
 }
 //
-function MODULE_HAS_MENU($mod)
+function MODULE_HAS_MENU($mod, $forceDb = false)
 {
        global $cacheArray, $_CONFIG;
 
        // All is false by default
        $ret = false;
+       //* DEBUG: */ echo __FUNCTION__.":mod={$mod},cache=".GET_EXT_VERSION("cache")."<br />\n";
        if (GET_EXT_VERSION("cache") >= "0.1.2") {
-               if (isset($cacheArray['modules']['has_menu'][$mod]))
-               {
+               // Cache version is okay, so let's check the cache!
+               if (isset($cacheArray['modules']['has_menu'][$mod])) {
                        // Check module cache and count hit
-                       if ($cacheArray['modules']['has_menu'][$mod] == "Y") $ret = true;
+                       $ret = ($cacheArray['modules']['has_menu'][$mod] == "Y");
                        $_CONFIG['cache_hits']++;
-               }
-                elseif (isset($cacheArray['extensions']['ext_menu'][$mod]))
-               {
+               } elseif (isset($cacheArray['extensions']['ext_menu'][$mod])) {
                        // Check cache and count hit
-                       if ($cacheArray['extensions']['ext_menu'][$mod] == "Y") $ret = true;
+                       $ret = ($cacheArray['extensions']['ext_menu'][$mod] == "Y");
                        $_CONFIG['cache_hits']++;
                }
-       }
-
-       if ((GET_EXT_VERSION("sql_patches") >= "0.3.6") && ($ret === false)) {
+       } elseif ((GET_EXT_VERSION("sql_patches") >= "0.3.6") && ((!EXT_IS_ACTIVE("cache")) || ($forceDb === true))) {
                // Check database for entry
                $result = SQL_QUERY_ESC("SELECT has_menu FROM "._MYSQL_PREFIX."_mod_reg WHERE module='%s' LIMIT 1",
                 array($mod), __FILE__, __LINE__);
                if (SQL_NUMROWS($result) == 1) {
                        list($has_menu) = SQL_FETCHROW($result);
+
+                       // Fake cache... ;-)
+                       $cacheArray['extensions']['ext_menu'][$mod] = $has_menu;
+
+                       // Does it have a menu?
                        $ret = ($has_menu == "Y");
-               }
+               } // END  - if
 
                // Free memory
                SQL_FREERESULT($result);
@@ -1635,11 +1669,15 @@ function UPDATE_CONFIG ($entries, $values, $updateMode="") {
        }
 
        // Run database update
-       //* DEBUG: */ DEBUG_LOG(__FUNCTION__.":entries={$entries}");
+       //DEBUG_LOG(__FUNCTION__.":entries={$entries}");
        SQL_QUERY("UPDATE "._MYSQL_PREFIX."_config SET ".$entries." WHERE config=0 LIMIT 1", __FILE__, __LINE__);
 
-       // Destroy cache
-       if ((GET_EXT_VERSION("cache") >= "0.1.2") && (SQL_AFFECTEDROWS() == 1)) {
+       // Get affected rows
+       $affectedRows = SQL_AFFECTEDROWS();
+       //* DEBUG: */ echo __FUNCTION__.":entries={$entries},affectedRows={$affectedRows}<br />\n";
+
+       // Destroy cache?
+       if ((GET_EXT_VERSION("cache") >= "0.1.2") && ($affectedRows == 1)) {
                global $cacheInstance, $_CONFIG, $CSS;
                if ($cacheInstance->cache_file("config", true)) $cacheInstance->cache_destroy();
 
@@ -1647,5 +1685,55 @@ function UPDATE_CONFIG ($entries, $values, $updateMode="") {
                require(PATH."inc/load_cache-config.php");
        } // END - if
 }
+// Creates a new task for updated extension
+function CREATE_EXTENSION_UPDATE_TASK ($admin_id, $subject, $notes) {
+       // Check if task is not there
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE subject='%s' LIMIT 1",
+               array($subject), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0) {
+               // Task not created so it's a brand-new extension which we need to register and create a task for!
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, userid, status, task_type, subject, text, task_created) VALUES ('%s', '0', 'NEW', 'EXTENSION_UPDATE', '%s', '%s', UNIX_TIMESTAMP())",
+                       array($admin_id, $subject, $notes), __FILE__, __LINE__);
+       } // END - if
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+// Creates a new task for newly installed extension
+function CREATE_NEW_EXTENSION_TASK ($admin_id, $subject, $ext) {
+       // Not installed and do we have created a task for the admin?
+       $result = SQL_QUERY_ESC("SELECT `id` FROM `"._MYSQL_PREFIX."_task_system` WHERE `subject` LIKE '%s%%' LIMIT 1",
+               array($subject), __FILE__, __LINE__);
+       if ((SQL_NUMROWS($result) == 0) && (GET_EXT_VERSION($ext) == "")) {
+               // Template file
+               $tpl = sprintf("%stemplates/%s/html/ext/ext_%s.tpl",
+                       PATH,
+                       GET_LANGUAGE(),
+                       $ext
+               );
+
+               // Load text for task
+               if ((file_exists($tpl)) && (is_readable($tpl))) {
+                       // Load extension's own text template (HTML!)
+                       $msg = LOAD_TEMPLATE("ext_".$ext, true);
+               } else {
+                       // Load default message
+                       $msg = LOAD_EMAIL_TEMPLATE("admin_new_ext","", 0);
+               }
+
+               // Task not created so it's a brand-new extension which we need to register and create a task for!
+               $result_insert = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, userid, status, task_type, subject, text, task_created)
+VALUES (%s, 0, 'NEW', 'EXTENSION', '%s', '%s', UNIX_TIMESTAMP())",
+                       array(
+                               $admin_id,
+                               $subject,
+                               addslashes($msg),
+                       ),  __FILE__, __LINE__, true, false
+               );
+       } // END - if
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
 //
 ?>