X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmysql-manager.php;h=2b879de773f2d4efce72164d78e206ed41886951;hb=262c3e87d0a80ec8a4435b2564d4b666fd329bf6;hp=35419355338adc3387f6e5ae719e61e8edc30cbc;hpb=20741b93fd58620af677a7f1039ffd16ea6ec689;p=mailer.git diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index 3541935533..2b879de773 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -279,7 +279,7 @@ ORDER BY } } else { // Not found - open - $OUT .= ''; + $OUT .= ''; } // Menu title @@ -294,7 +294,7 @@ ORDER BY } // END - if } else { // Not found - close - $OUT .= ''; + $OUT .= ''; } // Cunt it up @@ -340,16 +340,16 @@ ORDER BY //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'main_cnt=' . $main_cnt . ',getWhat()=' . getWhat()); if (SQL_NUMROWS($result_main) > $main_cnt) { - // Add seperator - $GLOBALS['rows'] .= loadTemplate('menu_seperator', true, $mode); + // Add separator + $GLOBALS['rows'] .= loadTemplate('menu_separator', true, $mode); // Should we display adverts in this menu? if ((isExtensionInstalledAndNewer('menu', '0.0.1')) && (getConfig($mode . '_menu_advert_enabled') == 'Y') && ($action != 'admin')) { // Display advert template $GLOBALS['rows'] .= loadTemplate('menu_' . $mode . '_advert_' . $action, true); - // Add seperator again - $GLOBALS['rows'] .= loadTemplate('menu_seperator', true, $mode); + // Add separator again + $GLOBALS['rows'] .= loadTemplate('menu_separator', true, $mode); } // END - if } // END - if } // END - while @@ -359,8 +359,8 @@ ORDER BY // Should we display adverts in this menu? if ((isExtensionInstalledAndNewer('menu', '0.0.1')) && (getConfig($mode . '_menu_advert_enabled') == 'Y')) { - // Add seperator again - $GLOBALS['rows'] .= loadTemplate('menu_seperator', true, $mode); + // Add separator again + $GLOBALS['rows'] .= loadTemplate('menu_separator', true, $mode); // Display advert template $GLOBALS['rows'] .= loadTemplate('menu_' . $mode . '_advert_end', true); @@ -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 { @@ -959,14 +988,14 @@ function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatemen // Count or sum whole table? if ($countRows === true) { // Count whole table - $result = SQL_QUERY_ESC("SELECT COUNT(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s`".$add, + $result = SQL_QUERY_ESC("SELECT COUNT(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s`" . $add . ' LIMIT 1', array( $lookFor, $tableName ), __FUNCTION__, __LINE__); } else { // Sum whole table - $result = SQL_QUERY_ESC("SELECT SUM(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s`".$add, + $result = SQL_QUERY_ESC("SELECT SUM(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s`" . $add . ' LIMIT 1', array( $lookFor, $tableName @@ -975,7 +1004,7 @@ function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatemen } elseif (($countRows === true) || ($lookFor == 'userid')) { // Count rows //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'COUNT!'); - $result = SQL_QUERY_ESC("SELECT COUNT(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`%s'%s'".$add, + $result = SQL_QUERY_ESC("SELECT COUNT(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`%s'%s'" . $add . ' LIMIT 1', array( $lookFor, $tableName, @@ -986,7 +1015,7 @@ function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatemen } else { // Add all rows //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SUM!'); - $result = SQL_QUERY_ESC("SELECT SUM(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`%s'%s'".$add, + $result = SQL_QUERY_ESC("SELECT SUM(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`%s'%s'" . $add . ' LIMIT 1', array( $lookFor, $tableName, @@ -1186,7 +1215,7 @@ function getAdminEmail ($adminId) { return $data['email']; } -// Get default ACL of admin id +// Get default ACL of admin id function getAdminDefaultAcl ($adminId) { // By default an invalid ACL value is returned $data['default_acl'] = 'NO-ACL'; @@ -1195,9 +1224,9 @@ function getAdminDefaultAcl ($adminId) { if (!isExtensionActive('sql_patches')) { // Not found, which is bad, so we need to allow all $data['default_acl'] = 'allow'; - } elseif (isset($GLOBALS['cache_array']['admin']['def_acl'][$adminId])) { + } elseif (isset($GLOBALS['cache_array']['admin']['default_acl'][$adminId])) { // Use cache - $data['default_acl'] = $GLOBALS['cache_array']['admin']['def_acl'][$adminId]; + $data['default_acl'] = $GLOBALS['cache_array']['admin']['default_acl'][$adminId]; // Update cache hits incrementStatsEntry('cache_hits'); @@ -1212,7 +1241,7 @@ function getAdminDefaultAcl ($adminId) { $data = SQL_FETCHARRAY($result_admin_id); // Set cache - $GLOBALS['cache_array']['admin']['def_acl'][$adminId] = $data['default_acl']; + $GLOBALS['cache_array']['admin']['default_acl'][$adminId] = $data['default_acl']; } // Free result @@ -1223,6 +1252,43 @@ function getAdminDefaultAcl ($adminId) { return $data['default_acl']; } +// Get menu mode (la_mode) of admin id +function getAdminMenuMode ($adminId) { + // By default an invalid mode + $data['la_mode'] = 'INVALID'; + + // Is sql_patches there and was it found in cache? + if (!isExtensionActive('sql_patches')) { + // Not found, which is bad, so we need to allow all + $data['la_mode'] = 'global'; + } elseif (isset($GLOBALS['cache_array']['admin']['la_mode'][$adminId])) { + // Use cache + $data['la_mode'] = $GLOBALS['cache_array']['admin']['la_mode'][$adminId]; + + // Update cache hits + incrementStatsEntry('cache_hits'); + } elseif (!isExtensionActive('cache')) { + // Load from database + $result_admin_id = SQL_QUERY_ESC("SELECT `la_mode` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `id`=%s LIMIT 1", + array(bigintval($adminId)), __FUNCTION__, __LINE__); + + // Do we have an entry? + if (SQL_NUMROWS($result_admin_id) == 1) { + // Fetch data + $data = SQL_FETCHARRAY($result_admin_id); + + // Set cache + $GLOBALS['cache_array']['admin']['la_mode'][$adminId] = $data['la_mode']; + } + + // Free result + SQL_FREERESULT($result_admin_id); + } + + // Return default ACL + return $data['la_mode']; +} + // Generates an option list from various parameters function generateOptionList ($table, $id, $name, $default = '', $special = '', $whereStatement = '', $disabled = array(), $callback = '') { $ret = ''; @@ -1255,13 +1321,13 @@ function generateOptionList ($table, $id, $name, $default = '', $special = '', $ } } else { // Data from database - $SPEC = ', `' . $id . '`'; + $SPEC = ',`' . $id . '`'; if (!empty($special)) { - $SPEC = ', `' . $special . '`'; + $SPEC = ',`' . $special . '` AS `special`'; } // END - if // Query the database - $result = SQL_QUERY_ESC("SELECT `%s`,`%s`".$SPEC." FROM `{?_MYSQL_PREFIX?}_%s` ".$whereStatement." ORDER BY `%s` ASC", + $result = SQL_QUERY_ESC("SELECT `%s` AS `id`,`%s` AS `name`".$SPEC." FROM `{?_MYSQL_PREFIX?}_%s` ".$whereStatement." ORDER BY `%s` ASC", array( $id, $name, @@ -1271,32 +1337,37 @@ function generateOptionList ($table, $id, $name, $default = '', $special = '', $ // Do we have rows? if (!SQL_HASZERONUMS($result)) { - // Found data so add them as OPTION lines: $id is the value and $name is the "name" of the option - // @TODO Try to rewrite this to $content = SQL_FETCHARRAY() - while (list($value, $title, $add) = SQL_FETCHROW($result)) { - if (empty($special)) $add = ''; - $ret .= ''; } // END - while } else { // No data found @@ -1423,8 +1494,8 @@ function generateCategoryOptionsList ($mode) { // Initialize array... $CATS = array( - 'id' => array(), - 'name' => array(), + 'id' => array(), + 'name' => array(), 'userids' => array() ); @@ -1471,7 +1542,7 @@ function generateCategoryOptionsList ($mode) { } // END - foreach } else { // No cateogries are defined yet - $OUT = ''; + $OUT = ''; } // Return HTML code @@ -1649,12 +1720,12 @@ function reduceRecipientReceivedMails ($column, $id, $count) { } // Creates a new task -function createNewTask ($subject, $notes, $taskType, $userid = NULL, $adminId = '0', $strip = true) { +function createNewTask ($subject, $notes, $taskType, $userid = NULL, $adminId = NULL, $strip = true) { // 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( - $adminId, - $userid, + convertZeroToNull($adminId), + convertZeroToNull($userid), $taskType, $subject, $notes