]> git.mxchange.org Git - mailer.git/blobdiff - inc/mysql-manager.php
One more found
[mailer.git] / inc / mysql-manager.php
index c2387e336dad3eaef53316d07a6f4acb002eb7eb..50b4e88d02489c41851c72c2c4c821c64336099c 100644 (file)
@@ -270,7 +270,7 @@ ORDER BY
                                                } // END - if
 
                                                // Is ext-sql_patches up-to-date, and display_home_in_index is Y?
-                                               if ((isExtensionInstalledAndNewer('sql_patches', '0.8.3')) && (isDisplayHomeInIndexEnabled()) && ($content['sub_what'] == getIndexHome())) {
+                                               if ((getModule() == 'index') && (isExtensionInstalledAndNewer('sql_patches', '0.8.3')) && (isDisplayHomeInIndexEnabled()) && ($content['sub_what'] == getIndexHome())) {
                                                        // Use index.php as link
                                                        $OUT .= '<a name="menu" class="menu_blur" href="{%url=index.php%}" target="_self">';
                                                } else {
@@ -368,8 +368,8 @@ ORDER BY
 
                // Prepare data
                $content = array(
-                       'rows' => $GLOBALS['rows'],
-                       'mode' => $mode
+                       'rows'      => $GLOBALS['rows'],
+                       'menu_mode' => $mode
                );
 
                // Load main template
@@ -660,25 +660,44 @@ function addMaxReceiveList ($mode, $default = '', $return = false) {
 
 // Checks wether the given email address is used.
 function isEmailTaken ($email) {
+       // Default is no userid
+       $useridSql = ' IS NOT NULL';
+
+       // Is a member logged in?
+       if (isMember()) {
+               // Get userid
+               $useridSql = '!= ' . bigintval(getMemberId());
+       } // END - if
+
        // Replace dot with {DOT}
        $email = str_replace('.', '{DOT}', $email);
 
        // Query the database
-       $result = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `email` LIKE '%%%s%%' LIMIT 1",
-               array($email), __FUNCTION__, __LINE__);
+       $result = SQL_QUERY_ESC("SELECT
+       COUNT(`userid`) AS `cnt`
+FROM
+       `{?_MYSQL_PREFIX?}_user_data`
+WHERE
+       '%s' REGEXP `email` AND
+       `userid` %s
+LIMIT 1",
+               array(
+                       $email,
+                       $useridSql
+               ), __FUNCTION__, __LINE__);
 
        // Is the email there?
-       $isTaken = (SQL_NUMROWS($result) == 1);
+       list($count) = SQL_FETCHROW($result);
 
        // Free the result
        SQL_FREERESULT($result);
 
        // Return result
-       return $isTaken;
+       return ($count == 1);
 }
 
 // Validate the given menu action
-function isMenuActionValid ($mode, $action, $what, $updateEntry=false) {
+function isMenuActionValid ($mode, $action, $what, $updateEntry = false) {
        // Is the cache entry there and we shall not update?
        if ((isset($GLOBALS['action_valid'][$mode][$action][$what])) && ($updateEntry === false)) {
                // Count cache hit
@@ -897,7 +916,7 @@ function getPaymentPoints ($pid, $lookFor = 'price') {
 }
 
 // Remove a receiver's id from $receivers and add a link for him to confirm
-function removeReceiver (&$receivers, $key, $userid, $pool_id, $stats_id = 0, $isBonusMail = false) {
+function removeReceiver (&$receivers, $key, $userid, $poolId, $statsId = 0, $isBonusMail = false) {
        // Default is not removed
        $ret = 'failed';
 
@@ -907,7 +926,7 @@ function removeReceiver (&$receivers, $key, $userid, $pool_id, $stats_id = 0, $i
                unset($receivers[$key]);
 
                // Is there already a line for this user available?
-               if ($stats_id > 0) {
+               if ($statsId > 0) {
                        // Default is 'normal' mail
                        $type = 'NORMAL';
                        $rowName = 'stats_id';
@@ -919,20 +938,30 @@ function removeReceiver (&$receivers, $key, $userid, $pool_id, $stats_id = 0, $i
                        } // END - if
 
                        // 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($userid), $type), __FUNCTION__, __LINE__);
+                       $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,
+                                       bigintval($statsId),
+                                       bigintval($userid),
+                                       $type
+                               ), __FUNCTION__, __LINE__);
 
                        // Was it *not* found?
                        if (SQL_HASZERONUMS($result)) {
                                // 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($userid), $type), __FUNCTION__, __LINE__);
+                                       array(
+                                               $rowName,
+                                               bigintval($statsId),
+                                               bigintval($userid),
+                                               $type
+                                       ), __FUNCTION__, __LINE__);
 
                                // Update 'mails_sent' if sql_patches is updated
                                if (isExtensionInstalledAndNewer('sql_patches', '0.7.4')) {
                                        // Update the pool
                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_pool` SET `mails_sent`=`mails_sent`+1 WHERE `id`=%s LIMIT 1",
-                                               array(bigintval($pool_id)), __FUNCTION__, __LINE__);
+                                               array(bigintval($poolId)), __FUNCTION__, __LINE__);
                                } // END - if
                                $ret = 'done';
                        } else {
@@ -1465,8 +1494,8 @@ function generateCategoryOptionsList ($mode) {
 
        // Initialize array...
        $CATS = array(
-               'id'   => array(),
-               'name' => array(),
+               'id'      => array(),
+               'name'    => array(),
                'userids' => array()
        );
 
@@ -1695,8 +1724,8 @@ function createNewTask ($subject, $notes, $taskType, $userid = NULL, $adminId =
        // Insert the task data into the database
        SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_task_system` (`assigned_admin`,`userid`,`status`,`task_type`,`subject`,`text`,`task_created`) VALUES (%s,%s,'NEW','%s','%s','%s', UNIX_TIMESTAMP())",
                array(
-                       makeZeroToNull($adminId),
-                       makeZeroToNull($userid),
+                       convertZeroToNull($adminId),
+                       convertZeroToNull($userid),
                        $taskType,
                        $subject,
                        $notes
@@ -1709,8 +1738,10 @@ function createNewTask ($subject, $notes, $taskType, $userid = NULL, $adminId =
 // Updates last module / online time
 // @TODO Fix inconsistency between last_module and getWhat()
 function updateLastActivity($userid) {
-       // Run the update query
-       SQL_QUERY_ESC("UPDATE
+       // Is 'what' set?
+       if (isWhatSet()) {
+               // Run the update query
+               SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
 SET
        `last_module`='%s',
@@ -1724,6 +1755,22 @@ LIMIT 1",
                        detectRemoteAddr(),
                        bigintval($userid)
                ), __FUNCTION__, __LINE__);
+       } else {
+               // No what set, needs to be ignored (last_module is last_what)
+               // @TODO Rename last_module to last_what to make it more clear
+               SQL_QUERY_ESC("UPDATE
+       `{?_MYSQL_PREFIX?}_user_data`
+SET
+       `last_online`=UNIX_TIMESTAMP(),
+       `REMOTE_ADDR`='%s'
+WHERE
+       `userid`=%s
+LIMIT 1",
+               array(
+                       detectRemoteAddr(),
+                       bigintval($userid)
+               ), __FUNCTION__, __LINE__);
+       }
 }
 
 // [EOF]