X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Flibs%2Fuser_functions.php;h=f4558fa77f05bdbdbc22191fa51f07fcfb41f626;hb=f2edf32502b2774dc17ef419a2e6a1c60e361c0a;hp=1168748f6c0c6fcd08a0c1d982f5a3a81ca1dcdb;hpb=b50d521ee7818a82eb2fb38f17cc6f2675747971;p=mailer.git diff --git a/inc/libs/user_functions.php b/inc/libs/user_functions.php index 1168748f6c..f4558fa77f 100644 --- a/inc/libs/user_functions.php +++ b/inc/libs/user_functions.php @@ -77,7 +77,7 @@ function addAlphabeticalSorting ($sortby) { ); // Load template - $OUT = loadTemplate('admin_list_user_alpha', true, $content); + $OUT = loadTemplate('admin_list_user_alpha', TRUE, $content); // Return generated code return $OUT; @@ -129,7 +129,7 @@ function addSortLinks ($letter, $sortby) { $content['list'] = substr($OUT, 0, -1); // Load template - $OUT = loadTemplate('admin_list_user_sort', true, $content); + $OUT = loadTemplate('admin_list_user_sort', TRUE, $content); // Return code return $OUT; @@ -181,7 +181,7 @@ function addPageNavigation ($numPages) { $content['list'] = $OUT; // Load template - $OUT = loadTemplate('admin_list_user_pagenav', true, $content); + $OUT = loadTemplate('admin_list_user_pagenav', TRUE, $content); } // END - if // Return code @@ -233,7 +233,7 @@ function determineRandomReferralId () { // Is the extension version fine? if ((isRandomReferralIdEnabled()) && (isExtensionInstalledAndNewer('user', '0.3.4'))) { // Get all user ids - $totalUsers = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, runFilterChain('user_exclusion_sql', ' AND `rand_confirmed` >= {?user_min_confirmed?}')); + $totalUsers = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', TRUE, runFilterChain('user_exclusion_sql', ' AND `rand_confirmed` >= {?user_min_confirmed?}')); // Is there at least one? if ($totalUsers > 0) { @@ -269,7 +269,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p $add = ''; $errorCode = '0'; $ext = ''; - $isFound = false; + $isFound = FALSE; // Init array $content = array( @@ -294,7 +294,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p } // No error found? - if (($errorCode == '0') && ($isFound === true)) { + if (($errorCode == '0') && ($isFound === TRUE)) { // Get user data array and set userid (e.g. important if we login with nickname) $content = getUserDataArray(); if (!empty($content['userid'])) { @@ -327,7 +327,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p array($content['hash'], $userid), __FUNCTION__, __LINE__); // No login bonus by default - $GLOBALS['bonus_payed'] = false; + $GLOBALS['bonus_payed'] = FALSE; // Is bonus up-to-date? if (isExtensionInstalledAndNewer('bonus', '0.2.2')) { @@ -342,7 +342,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p if ($probe >= getConfig('login_timeout')) { // Add login bonus to user's account $add = ',`login_bonus`=`login_bonus`+{?login_bonus?}'; - $GLOBALS['bonus_payed'] = true; + $GLOBALS['bonus_payed'] = TRUE; // Subtract login bonus from userid's account or jackpot if ((isExtensionInstalledAndNewer('bonus', '0.3.5')) && (getBonusMode() != 'ADD')) { @@ -366,7 +366,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p // Is a success URL set? if (empty($successUrl)) { // Procedure to checking for login data - if (($GLOBALS['bonus_payed'] === true) && (isExtensionActive('bonus'))) { + if (($GLOBALS['bonus_payed'] === TRUE) && (isExtensionActive('bonus'))) { // Bonus added (just displaying!) $url = 'modules.php?module=chk_login&do=bonus'; } else { @@ -427,7 +427,7 @@ function doNewUserPassword ($email, $userid) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'email=' . $email . ',userid=' . $userid . ' - ENTERED!'); // Init found-status and error $errorCode = ''; - $accountFound = false; + $accountFound = FALSE; // Probe userid/nickname if (!empty($email)) { @@ -439,13 +439,13 @@ function doNewUserPassword ($email, $userid) { } elseif ((isValidUserId($userid)) && (empty($email))) { // Direct userid entered $accountFound = fetchUserData($userid); - } else { + } elseif (isDebugModeEnabled()) { // Userid not set! logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',email=' . $email . ': Important variables are empty.'); } // Any entry found? - if ($accountFound === true) { + if ($accountFound === TRUE) { // Is the account confirmed if (getUserData('status') == 'CONFIRMED') { // Generate new password @@ -453,14 +453,17 @@ function doNewUserPassword ($email, $userid) { // Update database SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `password`='%s' WHERE `userid`=%s LIMIT 1", - array(generateHash($NEW_PASS), getUserData('userid')), __FUNCTION__, __LINE__); + array( + generateHash($NEW_PASS), + getUserData('userid') + ), __FUNCTION__, __LINE__); // Prepare data and message for email $message = loadEmailTemplate('guest_new_password', array( 'new_pass' => $NEW_PASS, 'nickname' => $userid - ), bigintval(getUserData('userid'))); + ), getUserData('userid')); // ... and send it away sendEmail(bigintval(getUserData('userid')), '{--GUEST_NEW_PASSWORD--}', $message); @@ -534,16 +537,16 @@ function insertUserStatsRecord ($userid, $statsType, $statsData) { // Is the extension installed and updated? if ((!isExtensionActive('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.6'))) { // Return zero here - return false; + return FALSE; } // END - if // Default is not working - $return = false; + $return = FALSE; // Does it exist? if ((!getEpocheTimeFromUserStats($statsType, $statsData, $userid)) && (!is_array($statsData))) { // Then insert it! - SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_stats_data` (`userid`,`stats_type`,`stats_data`) VALUES (%s,'%s','%s')", + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_stats_data` (`userid`, `stats_type`, `stats_data`) VALUES (%s,'%s','%s')", array( bigintval($userid), $statsType, @@ -573,7 +576,7 @@ function doConfirmUserAccount ($hash) { $userid = NULL; // Search for an unconfirmed or confirmed account - $result = SQL_QUERY_ESC("SELECT `userid`,`refid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `user_hash`='%s' AND (`status`='UNCONFIRMED' OR `status`='CONFIRMED') LIMIT 1", + $result = SQL_QUERY_ESC("SELECT `userid`, `refid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `user_hash`='%s' AND (`status`='UNCONFIRMED' OR `status`='CONFIRMED') LIMIT 1", array($hash), __FILE__, __LINE__); if (SQL_NUMROWS($result) == 1) { // Ok, he want's to confirm now so we load some data @@ -728,7 +731,7 @@ function getTotalTesterUsers () { // Is there cache? if (!isset($GLOBALS[__FUNCTION__])) { // Determine it - $GLOBALS[__FUNCTION__] = countSumTotalData('', 'user_data', 'userid', '', true, runFilterChain('user_inclusion_sql')); + $GLOBALS[__FUNCTION__] = countSumTotalData('', 'user_data', 'userid', '', TRUE, runFilterChain('user_inclusion_sql')); } // END - if // Return cache @@ -765,7 +768,7 @@ function getNextFreeTesterUserNumber () { // Wrapper function to return a selection box for tester user default referral id function addTesterUserDefaultRefidSelectionBox ($fieldName = 'tester_user_default_refid') { // Return it - return addMemberSelectionBox(getConfig('tester_user_default_refid'), false, true, true, $fieldName, " WHERE `surname` LIKE '{?tester_user_surname_prefix?}%'"); + return addMemberSelectionBox(getConfig('tester_user_default_refid'), FALSE, TRUE, TRUE, $fieldName, " WHERE `surname` LIKE '{?tester_user_surname_prefix?}%'"); } // Checks whether given surname is a test user name @@ -783,7 +786,7 @@ function createTesterUserAccount () { if (!isRegistrationDataComplete()) { // Then abort here //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isRegistrationDataComplete()=false, please check if you e.g. have selected the required minimum of categories.'); - return false; + return FALSE; } // END - if // Do registration @@ -798,31 +801,128 @@ function createTesterUserAccount () { // Checks whether the given sub id is fused by current member function isMemberSubIdFree ($subId) { + // Only do this for logged-in members + assert(isMember()); + // Check it - $isFree = (countSumTotalData(getMemberId(), 'user_subids', 'id', 'userid', true, sprintf(" AND `subid`='%s'", $subId)) == 0); + $isFree = (countSumTotalData(getMemberId(), 'user_subids', 'id', 'userid', TRUE, sprintf(" AND `subid`='%s'", $subId)) == 0); // Return result return $isFree; } -// Prepares given sub id for storage in database -function prepareSubId ($subId) { +// Checks whether the sub id is valid +function isValidSubId ($subId) { // First convert any spaces/dashes to underscores $subId = str_replace(' ', '_', str_replace('-', '_', $subId)); // Then filter out any unwanted characters - $subId = preg_replace('/([^a-zA-Z0-9_])/', '', $subId); + $subIdTest = preg_replace('/([^a-zA-Z0-9_])/', '', $subId); + + // Is it valid? + return ($subId == $subIdTest); +} // END - if + +// Prepares found sub id for updating in database +function prepareFoundSubId ($subId) { + // Then check if it is valid and available + if ((!isValidSubId($subId)) || (isMemberSubIdFree($subId))) { + // Is not free or invalid + $subId = FALSE; + } // END - if + + // Return prepared sub id + return $subId; +} - // Then Check if it is available - if (!isMemberSubIdFree($subId)) { - // Is not free - $subId = false; +// Validates sub id and returns FALSE if not valid +function validateSubId ($subId) { + // Then check if it is valid and available + if (!isValidSubId($subId)) { + // Is not free or invalid + $subId = FALSE; } // END - if // Return prepared sub id return $subId; } +// Prepares given sub id for inserting into database +function prepareSubId ($subId) { + // Then check if it is valid and available + if ((!isValidSubId($subId)) || (!isMemberSubIdFree($subId))) { + // Is not free or invalid + $subId = FALSE; + } // END - if + + // Return prepared sub id + return $subId; +} + +// Check whether given sub *id* is assigned to current member +function isUserSubIdAssignedToMember ($subId, $userid = NULL) { + // Is there cache? + if (!isset($GLOBALS[__FUNCTION__][$subId][$userid])) { + // Determine it + $GLOBALS[__FUNCTION__][$subId][$userid] = ( + ( + // Is a userid set or current set? + (isValidUserId($userid)) || (isMember()) + ) && ( + // .. and it assigned with subid's id? + countSumTotalData( + (isValidUserId($userid) ? $userid : getMemberId()), + 'user_subids', + 'id', + 'userid', + true, + sprintf(" AND `id`=%s", bigintval($subId)) + ) == 1 + ) + ); + } // END - if + + // Return cache + return $GLOBALS[__FUNCTION__][$subId][$userid]; +} + +// Getter for subid from given id number +function getSubId ($id) { + // Is there cache? + if (!isset($GLOBALS[__FUNCTION__][$id])) { + // Check database for record + $result = SQL_QUERY_ESC("SELECT `subid` FROM `{?_MYSQL_PREFIX?}_user_subids` WHERE `id`=%s LIMIT 1", + array(bigintval($id)), __FUNCTION__, __LINE__); + + // Is there an entry? + if (SQL_NUMROWS($result) == 1) { + // Load it + list($GLOBALS[__FUNCTION__][$id]) = SQL_FETCHROW($result); + } // END - if + + // Free result + SQL_FREERESULT($result); + } // END - if + + // Return cache + return $GLOBALS[__FUNCTION__][$id]; +} + +// "Getter for total count of current user's sub ids +function getTotalMemberSubIds () { + // Only do this for logged-in members + assert(isMember()); + + // Is there cache? + if (!isset($GLOBALS[__FUNCTION__])) { + // Determine it + $GLOBALS[__FUNCTION__] = countSumTotalData(getMemberId(), 'user_subids', 'id', 'userid', TRUE); + } // END - if + + // Return cache + return $GLOBALS[__FUNCTION__]; +} + //----------------------------------------------------------------------------- // EL code functions //----------------------------------------------------------------------------- @@ -875,7 +975,7 @@ function doExpressionUser ($data) { //----------------------------------------------------------------------------- // Template call-back function for list_user admin function -function doTemplateAdminListUserTitle ($template, $clear = false) { +function doTemplateAdminListUserTitle ($template, $clear = FALSE) { // Init title with "all accounts" $code = '{--ADMIN_LIST_ALL_ACCOUNTS--}'; @@ -893,7 +993,7 @@ function doTemplateAdminListUserTitle ($template, $clear = false) { } // Template call-back function for displaying "username" -function doTemplateDisplayUsername ($template, $clear = false, $userid = NULL) { +function doTemplateDisplayUsername ($template, $clear = FALSE, $userid = NULL) { // Is a userid set? if (!isValidUserId($userid)) { // Please don't call this without a valid userid @@ -915,7 +1015,7 @@ function doTemplateDisplayUsername ($template, $clear = false, $userid = NULL) { // ---------------------------------------------------------------------------- // For 'doing' add subid, the column-index is required -function addXmlSpecialMemberAddDoSubid () { +function addXmlSpecialMemberAddDoUserSubid () { // So set it all here $GLOBALS['__COLUMN_INDEX']['doXmlCallbackFunction'] = 'column'; $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_index'] = 'column';