Bad things are now 'classified' as bad (CSS class 'bad' is being used instead of...
[mailer.git] / inc / mysql-manager.php
index 4c79c47eddec8640ebd55b2e57e58125e6d7b7ad..13b29b526495e831423a17e37a21d864ed2ad7ec 100644 (file)
@@ -17,7 +17,7 @@
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
- * For more information visit: http://www.mxchange.org                  *
+ * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * it under the terms of the GNU General Public License as published by *
@@ -46,7 +46,13 @@ function getTitleFromMenu ($mode, $what, $column = 'what', $ADD='') {
        // Fix empty 'what'
        if (empty($what)) {
                $what = getIndexHome();
-       } // END - if
+       } elseif ((isGetRequestElementSet('action')) && ($column == 'what')) {
+               // Get it from action
+               return getTitleFromMenu($mode, getAction(), 'action', $ADD);
+       } elseif ($what == 'overview') {
+               // Overview page
+               return '{--WHAT_IS_OVERVIEW--}';
+       }
 
        // Default is not found
        $data['title'] = '??? (' . $what . ')';
@@ -131,11 +137,12 @@ function addYouAreHereLink ($accessLevel, $FQFN, $return = false) {
                $GLOBALS['nav_depth'] = '0';
 
                // Run the pre-filter chain
-               $ret = runFilterChain('pre_youhere_line', array('access_level' => $accessLevel, 'type' => $type, 'content' => ''));
+               $ret = runFilterChain('pre_youhere_line', array('access_level' => $accessLevel, 'type' => $type, 'search' => $search, 'prefix' => $prefix, 'link_add' => $LINK_ADD, 'content' => '', 'add' => $ADD));
 
                // Add pre-content
                $prefix = $ret['content'];
 
+               // Add default content
                $prefix .= '<div class="you_are_here">{--YOU_ARE_HERE--}&nbsp;<strong><a class="you_are_here" href="{%url=modules.php?module=' . getModule() . $LINK_ADD . '%}">Home</a></strong>';
        } elseif ($return === false) {
                // Count depth
@@ -159,14 +166,16 @@ function addYouAreHereLink ($accessLevel, $FQFN, $return = false) {
                if (($type == 'what') || (($type == 'action') && ((!isWhatSet()) || (getWhat() == 'overview')))) {
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $type);
                        // Add closing div and br-tag
-                       $OUT .= '</div>';
                        $GLOBALS['nav_depth'] = '0';
 
                        // Run the post-filter chain
-                       $ret = runFilterChain('post_youhere_line', array('access_level' => $accessLevel, 'type' => $type, 'content' => ''));
+                       $ret = runFilterChain('post_youhere_line', array('access_level' => $accessLevel, 'type' => $type, 'search' => $search, 'prefix' => $prefix, 'link_add' => $LINK_ADD, 'content' => $OUT, 'add' => $ADD));
+
+                       // Get content from filter back
+                       $OUT = $ret['content'];
 
-                       // Add additional content
-                       $OUT .= $ret['content'];
+                       // Close div-tag, so not the filters have to do it
+                       $OUT .= '</div>';
                } // END - if
        } // END - if
 
@@ -184,7 +193,6 @@ function addYouAreHereLink ($accessLevel, $FQFN, $return = false) {
 function addMenu ($mode, $action, $what) {
        // Init some variables
        $main_cnt = '0';
-       $ADD = '';
 
        // is the menu action valid?
        if (!isMenuActionValid($mode, $action, $what, true)) {
@@ -192,13 +200,15 @@ function addMenu ($mode, $action, $what) {
        } // END - if
 
        // Non-admin shall not see all menus
-       if (!isAdmin()) {
-               $ADD = " AND `visible`='Y' AND `locked`='N'";
+       $ADD = " AND `visible`='Y' AND `locked`='N'";
+       if (isAdmin()) {
+               // Is admin, so make all visible
+               $ADD = '';
        } // END - if
 
        // Load SQL data and add the menu to the output stream...
        $result_main = SQL_QUERY_ESC("SELECT
-       `title`, `what`, `action`, `visible`, `locked`
+       `title`,`what`,`action`,`visible`,`locked`
 FROM
        `{?_MYSQL_PREFIX?}_%s_menu`
 WHERE
@@ -259,11 +269,17 @@ ORDER BY
                                                        $OUT = '<strong>';
                                                } // END - if
 
-                                               // Navigation link
-                                               $OUT .= '<a name="menu" class="menu_blur" href="{%url=modules.php?module=' . getModule() . '&amp;what=' . $content['sub_what'] . '%}" target="_self">';
+                                               // 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())) {
+                                                       // Use index.php as link
+                                                       $OUT .= '<a name="menu" class="menu_blur" href="{%url=index.php%}" target="_self">';
+                                               } else {
+                                                       // Regular navigation link
+                                                       $OUT .= '<a name="menu" class="menu_blur" href="{%url=modules.php?module=' . getModule() . '&amp;what=' . $content['sub_what'] . '%}" target="_self">';
+                                               }
                                        } else {
                                                // Not found - open
-                                               $OUT .= '<em style="cursor:help" class="notice" title="{%message,ADMIN_MENU_WHAT_404_TITLE=' . $content['sub_what'] . '%}">';
+                                               $OUT .= '<div style="cursor:help" class="bad" title="{%message,ADMIN_MENU_WHAT_404_TITLE=' . $content['sub_what'] . '%}">';
                                        }
 
                                        // Menu title
@@ -278,7 +294,7 @@ ORDER BY
                                                } // END - if
                                        } else {
                                                // Not found - close
-                                               $OUT .= '</em>';
+                                               $OUT .= '</div>';
                                        }
 
                                        // Cunt it up
@@ -324,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
@@ -343,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);
@@ -435,7 +451,10 @@ function fetchUserData ($value, $column = 'userid') {
        if (!isExtensionActive('user')) {
                // Absent ext-user is really not good
                return false;
-       } // END - if
+       } elseif (is_null($value)) {
+               // This shall never happen, so please report it
+               debug_report_bug(__FUNCTION__, __LINE__, 'value=NULL,column=' . $column . ' - value can never be NULL');
+       }
 
        // If we should look for userid secure&set it here
        if (substr($column, -2, 2) == 'id') {
@@ -451,10 +470,12 @@ function fetchUserData ($value, $column = 'userid') {
                        debug_report_bug(__FUNCTION__, __LINE__, 'User id ' . $value . ' is invalid.');
                } elseif (isUserDataValid()) {
                        // Use cache, so it is fine
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ' is valid, using cache #1');
                        return true;
                }
        } elseif (isUserDataValid())  {
                // Using cache is fine
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ' is valid, using cache #2');
                return true;
        }
 
@@ -486,7 +507,7 @@ function fetchUserData ($value, $column = 'userid') {
                if ((isExtensionInstalledAndNewer('user', '0.3.7')) && (isset($GLOBALS['user_data'][getCurrentUserId()]['last_failure']))) {
                        // Backup the raw one and zero it
                        $GLOBALS['user_data'][getCurrentUserId()]['last_failure_raw'] = $GLOBALS['user_data'][getCurrentUserId()]['last_failure'];
-                       $GLOBALS['user_data'][getCurrentUserId()]['last_failure'] = null;
+                       $GLOBALS['user_data'][getCurrentUserId()]['last_failure'] = NULL;
 
                        // Is it not zero?
                        if (!is_null($GLOBALS['user_data'][getCurrentUserId()]['last_failure_raw'])) {
@@ -592,13 +613,13 @@ function addMaxReceiveList ($mode, $default = '', $return = false) {
        switch ($mode) {
                case 'guest':
                        // Guests (in the registration form) are not allowed to select 0 mails per day.
-                       $result = SQL_QUERY('SELECT `value`, `comment` FROM `{?_MYSQL_PREFIX?}_max_receive` WHERE `value` > 0 ORDER BY `value` ASC',
+                       $result = SQL_QUERY('SELECT `value`,`comment` FROM `{?_MYSQL_PREFIX?}_max_receive` WHERE `value` > 0 ORDER BY `value` ASC',
                        __FUNCTION__, __LINE__);
                        break;
 
                case 'member':
                        // Members are allowed to set to zero mails per day (we will change this soon!)
-                       $result = SQL_QUERY('SELECT `value`, `comment` FROM `{?_MYSQL_PREFIX?}_max_receive` ORDER BY `value` ASC',
+                       $result = SQL_QUERY('SELECT `value`,`comment` FROM `{?_MYSQL_PREFIX?}_max_receive` ORDER BY `value` ASC',
                        __FUNCTION__, __LINE__);
                        break;
 
@@ -612,7 +633,7 @@ function addMaxReceiveList ($mode, $default = '', $return = false) {
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        $OUT .= '      <option value="' . $content['value'] . '"';
-                       if (postRequestParameter('max_mails') == $content['value']) $OUT .= ' selected="selected"';
+                       if (postRequestElement('max_mails') == $content['value']) $OUT .= ' selected="selected"';
                        $OUT .= '>' . $content['value'] . ' {--PER_DAY--}';
                        if (!empty($content['comment'])) $OUT .= '(' . $content['comment'] . ')';
                        $OUT .= '</option>';
@@ -685,7 +706,7 @@ function isMenuActionValid ($mode, $action, $what, $updateEntry=false) {
                        ), __FUNCTION__, __LINE__, false);
        } elseif (($what != 'overview') && (!empty($what))) {
                // 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,
                                $action,
@@ -693,7 +714,7 @@ function isMenuActionValid ($mode, $action, $what, $updateEntry=false) {
                        ), __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,
                                $action
@@ -747,9 +768,9 @@ function getActionFromModuleWhat ($module, $what) {
 
        if ($module == 'admin') {
                // Action value for admin area
-               if (isGetRequestParameterSet('action')) {
+               if (isGetRequestElementSet('action')) {
                        // Use from request!
-                       return getRequestParameter('action');
+                       return getRequestElement('action');
                } elseif (isActionSet()) {
                        // Get it directly from URL
                        return getAction();
@@ -769,11 +790,16 @@ function getActionFromModuleWhat ($module, $what) {
                $module = mapModuleToTable($module);
 
                // Guest and member menu is 'main' as the default
-               if (empty($data['action'])) $data['action'] = 'main';
+               if (empty($data['action'])) {
+                       $data['action'] = 'main';
+               } // END - if
 
                // Load from database
                $result = SQL_QUERY_ESC("SELECT `action` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `what`='%s' LIMIT 1",
-                       array($module, $what), __FUNCTION__, __LINE__);
+                       array(
+                               $module,
+                               $what
+                       ), __FUNCTION__, __LINE__);
                if (SQL_NUMROWS($result) == 1) {
                        // Load action value and pray that this one is the right you want... ;-)
                        $data = SQL_FETCHARRAY($result);
@@ -825,7 +851,7 @@ function getPaymentTitlePrice ($pid, $full=false) {
        $ret = '{--_PAYMENT_404--}';
 
        // Load payment data
-       $result = SQL_QUERY_ESC("SELECT `mail_title`, `price` FROM `{?_MYSQL_PREFIX?}_payments` WHERE `id`=%s LIMIT 1",
+       $result = SQL_QUERY_ESC("SELECT `mail_title`,`price` FROM `{?_MYSQL_PREFIX?}_payments` WHERE `id`=%s LIMIT 1",
                array(bigintval($pid)), __FUNCTION__, __LINE__);
 
        // Do we have an entry?
@@ -899,7 +925,7 @@ function removeReceiver (&$receivers, $key, $userid, $pool_id, $stats_id = 0, $i
                        // 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')",
+                               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__);
 
                                // Update 'mails_sent' if sql_patches is updated
@@ -933,14 +959,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
@@ -949,7 +975,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,
@@ -960,7 +986,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,
@@ -1160,7 +1186,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';
@@ -1169,9 +1195,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');
@@ -1186,7 +1212,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
@@ -1197,8 +1223,45 @@ 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 = '', $where = '', $disabled = array(), $callback = '') {
+function generateOptionList ($table, $id, $name, $default = '', $special = '', $whereStatement = '', $disabled = array(), $callback = '') {
        $ret = '';
        if ($table == '/ARRAY/') {
                // Selection from array
@@ -1229,13 +1292,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` ".$where." 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,
@@ -1245,32 +1308,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 .= '<option value="' . $value . '"';
-                               if ($default == $value) {
+                       // Found data so add them as OPTION lines
+                       while ($content = SQL_FETCHARRAY($result)) {
+                               // Is special set?
+                               if (!isset($content['special'])) {
+                                       // Set it to empty
+                                       $content['special'] = '';
+                               } // END - if
+
+                               $ret .= '<option value="' . $content['id'] . '"';
+
+                               if ($default == $content['id']) {
                                        // Selected by default
                                        $ret .= ' selected="selected"';
-                               } elseif (isset($disabled[$value])) {
+                               } elseif (isset($disabled[$content['id']])) {
                                        // Disabled!
                                        $ret .= ' disabled="disabled"';
                                }
 
                                // Add it, if set
-                               if (!empty($add)) {
-                                       $add = ' ('.$add.')';
+                               if (!empty($content['special'])) {
+                                       $content['special'] = ' (' . $content['special'] . ')';
                                } // END - if
 
                                // Is the call-back function set?
                                if (!empty($callback)) {
                                        // Call it
-                                       $title = call_user_func_array($callback, array($title));
+                                       $content['name'] = call_user_func_array($callback, array($content['name']));
                                } // END - if
 
                                // Finish option list
-                               $ret .= '>' . $title . $add . '</option>';
+                               $ret .= '>' . $content['name'] . $content['special'] . '</option>';
                        } // END - while
                } else {
                        // No data found
@@ -1354,9 +1422,9 @@ LIMIT 1",
 // Gets the matching what name from module
 function getWhatFromModule ($modCheck) {
        // Is the request element set?
-       if (isGetRequestParameterSet('what')) {
+       if (isGetRequestElementSet('what')) {
                // Then return this!
-               return getRequestParameter('what');
+               return getRequestElement('what');
        } // END - if
 
        // Default is empty
@@ -1403,7 +1471,7 @@ function generateCategoryOptionsList ($mode) {
        );
 
        // Get categories
-       $result = SQL_QUERY('SELECT `id`, `cat` FROM `{?_MYSQL_PREFIX?}_cats`' . $whereStatement . ' ORDER BY `sort` ASC',
+       $result = SQL_QUERY('SELECT `id`,`cat` FROM `{?_MYSQL_PREFIX?}_cats`' . $whereStatement . ' ORDER BY `sort` ASC',
                __FUNCTION__, __LINE__);
 
        // Do we have entries?
@@ -1445,7 +1513,7 @@ function generateCategoryOptionsList ($mode) {
                } // END - foreach
        } else {
                // No cateogries are defined yet
-               $OUT = '<option class="notice">{--MEMBER_NO_CATEGORIES--}</option>';
+               $OUT = '<option class="bad">{--MEMBER_NO_CATEGORIES--}</option>';
        }
 
        // Return HTML code
@@ -1479,7 +1547,7 @@ function addBonusMailToQueue ($subject, $text, $receiverList, $points, $seconds,
 
                // Add HTML mail
                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_bonus`
-(`subject`, `text`, `receivers`, `points`, `time`, `data_type`, `timestamp`, `url`, `cat_id`, `target_send`, `mails_sent`, `html_msg`)
+(`subject`,`text`,`receivers`,`points`,`time`,`data_type`,`timestamp`,`url`,`cat_id`,`target_send`,`mails_sent`,`html_msg`)
 VALUES ('%s','%s','%s',%s,%s,'NEW', UNIX_TIMESTAMP(),'%s',%s,%s,%s,'%s')",
                array(
                        $subject,
@@ -1496,7 +1564,7 @@ VALUES ('%s','%s','%s',%s,%s,'NEW', UNIX_TIMESTAMP(),'%s',%s,%s,%s,'%s')",
        } else {
                // Add regular mail
                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_bonus`
-(`subject`, `text`, `receivers`, `points`, `time`, `data_type`, `timestamp`, `url`, `cat_id`, `target_send`, `mails_sent`)
+(`subject`,`text`,`receivers`,`points`,`time`,`data_type`,`timestamp`,`url`,`cat_id`,`target_send`,`mails_sent`)
 VALUES ('%s','%s','%s',%s,%s,'NEW', UNIX_TIMESTAMP(),'%s',%s,%s,%s)",
                array(
                        $subject,
@@ -1603,7 +1671,9 @@ function reduceRecipientReceivedMails ($column, $id, $count) {
                        }
 
                        // Reduce this users total received emails?
-                       if ($num === 0) $userids[$data['userid']] = $data['userid'];
+                       if ($num === 0) {
+                               $userids[$data['userid']] = $data['userid'];
+                       } // END - if
                } // END - while
 
                if (count($userids) > 0) {
@@ -1621,12 +1691,12 @@ function reduceRecipientReceivedMails ($column, $id, $count) {
 }
 
 // Creates a new task
-function createNewTask ($subject, $notes, $taskType, $userid = '0', $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())",
+       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,
+                       makeZeroToNull($adminId),
+                       makeZeroToNull($userid),
                        $taskType,
                        $subject,
                        $notes
@@ -1640,7 +1710,15 @@ function createNewTask ($subject, $notes, $taskType, $userid = '0', $adminId = '
 // @TODO Fix inconsistency between last_module and getWhat()
 function updateLastActivity($userid) {
        // Run the update query
-       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `last_module`='%s', `last_online`=UNIX_TIMESTAMP(), `REMOTE_ADDR`='%s' WHERE `userid`=%s LIMIT 1",
+       SQL_QUERY_ESC("UPDATE
+       `{?_MYSQL_PREFIX?}_user_data`
+SET
+       `last_module`='%s',
+       `last_online`=UNIX_TIMESTAMP(),
+       `REMOTE_ADDR`='%s'
+WHERE
+       `userid`=%s
+LIMIT 1",
                array(
                        getWhat(),
                        detectRemoteAddr(),