* $Author:: $ *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team *
* For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
} // END - if
// Add links for selecting some users
-function alpha ($sortby) {
+function addAlphabeticalSorting ($sortby) {
$add = '';
- foreach (array('page','offset','mode','status') as $param) {
+ foreach (array('page', 'offset', 'do', 'status') as $param) {
if (isGetRequestElementSet($param)) {
$add .= '&' . $param . '=' . getRequestElement($param);
} // END - if
} // END - foreach
- /* Creates the list of letters and makes them a link. */
+ // Creates the list of letters and makes them a link.
$alphabet = explode(',', 'A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,');
$num = count($alphabet) - 1;
+
+ // Add all letter links
$OUT = '';
while (list($counter, $ltr) = each($alphabet)) {
if (getRequestElement('letter') == $ltr) {
$OUT .= '<a href="{%url=modules.php?module=admin&what=' . getWhat() . '&letter=' . $ltr . '&sortby=' . $sortby . $add . '%}">' . $ltr . '</a>';
}
- if ((($counter / getConfig('user_alpha')) == round($counter / getConfig('user_alpha'))) && ($counter > 0)) {
+ if ((($counter / getUserAlpha()) == round($counter / getUserAlpha())) && ($counter > 0)) {
$OUT .= ']<br />[';
- } elseif ( $counter != $num ) {
+ } elseif ($counter != $num) {
$OUT .= '|';
}
} // END - while
// Prepare content
$content = array (
- 'alpha_selection' => $OUT
+ 'alpha_selection' => $OUT,
);
// Load template
$add = '&page=' . getRequestElement('page') . '&offset=' . getRequestElement('offset');
// Add status/ mode
- foreach (array('mode','status') as $param) {
+ foreach (array('do','status') as $param) {
if (isGetRequestElementSet($param)) {
$add .= '&' . $param . '=' . getRequestElement($param);
} // END - if
$OUT .= '<a href="{%url=modules.php?module=admin&what=' . getWhat();
// Add status/mode
- foreach (array('mode','status') as $param) {
+ foreach (array('do','status') as $param) {
if (isGetRequestElementSet($param)) {
$OUT .= '&' . $param . '=' . getRequestElement($param);
} // END - if
} // END - foreach
// Letter and so on
- $OUT .= '&letter=' . getRequestElement('letter') . '&sortby=' . getRequestElement('sortby') . '&page=' . $page . '&offset=' . getConfig('user_limit') . '%}">';
+ $OUT .= '&letter=' . getRequestElement('letter') . '&sortby=' . getRequestElement('sortby') . '&page=' . $page . '&offset=' . getUserLimit() . '%}">';
}
$OUT .= $page;
}
// Selects a random user id as the new referral id if they have at least X confirmed mails in this run
-// @TODO Double-check configuration entry here
function determineRandomReferralId () {
// Default is zero refid
$refid = NULL;
// Is the extension version fine?
- if (isExtensionInstalledAndNewer('user', '0.3.4')) {
+ if ((isRandomReferralIdEnabled()) && (isExtensionInstalledAndNewer('user', '0.3.4'))) {
// Get all user ids
- $totalUsers = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, " AND `rand_confirmed` >= {?user_min_confirmed?}");
+ $totalUsers = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, runFilterChain('user_exclusion_sql', ' AND `rand_confirmed` >= {?user_min_confirmed?}'));
// Do we have at least one?
if ($totalUsers > 0) {
- // Then choose random number
- $randNum = mt_rand(0, ($totalUsers - 1));
+ // Then choose random userid
+ $randUserid = mt_rand(0, ($totalUsers - 1));
// Look for random user
- $result = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `status`='CONFIRMED' AND `rand_confirmed` >= {?user_min_confirmed?} ORDER BY `rand_confirmed` DESC LIMIT %s, 1",
- array($randNum), __FUNCTION__, __LINE__);
+ $result = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` " . runFilterChain('user_exclusion_sql', "WHERE `status`='CONFIRMED'") . ' AND `rand_confirmed` >= {?user_min_confirmed?} ORDER BY `rand_confirmed` DESC LIMIT %s, 1',
+ array($randUserid), __FUNCTION__, __LINE__);
// Do we have one entry there?
if (SQL_NUMROWS($result) == 1) {
// Use that userid as new referral id
list($refid) = SQL_FETCHROW($result);
+
+ // Debug message
+ /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . $refid . ' - choosen!');
} // END - if
// Free result
// Check login data
if ((isExtensionActive('nickname')) && (isNicknameUsed($userid))) {
// Nickname entered
- fetchUserData($userid, 'nickname');
+ $isFound = fetchUserData($userid, 'nickname');
} elseif (isNicknameUsed($userid)) {
// No nickname installed
$errorCode = getCode('EXTENSION_PROBLEM');
} // END - if
} // END - if
+ // Debug message
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',isUserDataValid()=' . intval(isUserDataValid()) . ',userStatus=' . getUserData('status') . ',errorCode=' . $errorCode . ',ext=' . $ext . ',isFound=' . intval($isFound));
+
// Is there an entry?
if (($errorCode == '0') && (isUserDataValid()) && (getUserData('status') == 'CONFIRMED') && (!empty($content['userid']))) {
// Check for old MD5 passwords
// Procedure to checking for login data
if (($GLOBALS['bonus_payed'] === true) && (isExtensionActive('bonus'))) {
// Bonus added (just displaying!)
- $url = 'modules.php?module=chk_login&mode=bonus';
+ $url = 'modules.php?module=chk_login&do=bonus';
} else {
// Bonus not added
- $url = 'modules.php?module=chk_login&mode=login';
+ $url = 'modules.php?module=chk_login&do=login';
}
} else {
// Use this URL
$errorCode = generateErrorCodeFromUserStatus(getUserData('status'));
// Set userid in session
- setSession('current_userid', getUserData('userid'));
+ setSession('userid', getUserData('userid'));
} elseif (!isUserDataValid()) {
// User id not found
$errorCode = getCode('WRONG_ID');
redirectToUrl('modules.php?module=index&what=login&login=' . $errorCode);
}
} else {
- // id or email is wrong
- displayMessage('<span class="notice">{--GUEST_WRONG_ID_EMAIL--}</span>');
+ // Id or email is wrong
+ displayMessage('<span class="bad">{--GUEST_WRONG_ID_EMAIL--}</span>');
}
// Return the error code
// Fetch user data
if (!fetchUserData($userid)) {
// Not found, should not happen
- debug_report_bug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.');
+ reportBug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.');
} // END - if
// Load all data and add points
break;
default: // This should not happen
- debug_report_bug(__FUNCTION__, __LINE__, 'Unknown user status ' . $status . ' detected.');
+ reportBug(__FUNCTION__, __LINE__, 'Unknown user status ' . $status . ' detected.');
break;
} // END - switch
return $message;
}
+// "Getter" for total tester accounts
+function getTotalTesterUsers () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = countSumTotalData('', 'user_data', 'userid', '', true, runFilterChain('user_inclusion_sql'));
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Checks whether the admin is allowed to create more tester accounts
+function isNewUserTesterAllowed () {
+ // By default only admins are allowed
+ if (!isAdmin()) {
+ // This should not happen and must be fixed
+ reportBug(__FUNCTION__, __LINE__, 'isAdmin()=false - Not allowed.');
+ } // END - if
+
+ // Are more tester accounts allowed?
+ $isAllowed = (getTotalTesterUsers() < bigintval(getTesterUserMaximum() + 1));
+
+ // Return result
+ return $isAllowed;
+}
+
+// "Getter" for next free tester account number
+function getNextFreeTesterUserNumber () {
+ // Get current total amount because we start with zero
+ $nextTester = getTotalTesterUsers();
+
+ // Prepend zeros
+ $nextTester = prependZeros($nextTester, 6);
+
+ // Return it
+ return $nextTester;
+}
+
+// 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?}%'");
+}
+
+// Checks whether given surname is a test user name
+function isTesterUserName ($surname) {
+ // Determine it
+ return (substr($surname, 0, strlen(getTesterUserSurnamePrefix())) == getTesterUserSurnamePrefix());
+}
+
+// Creates a tester account from given POST data
+function createTesterUserAccount () {
+ // Add generated surname
+ setPostRequestElement('surname', (getTesterUserSurnamePrefix() . getNextFreeTesterUserNumber()));
+
+ // Is the registration data complete?
+ 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;
+ } // END - if
+
+ // Do registration
+ $isCreated = doUserRegistration();
+
+ // Remove cache to force recalculation of total tester accounts
+ unset($GLOBALS['getTotalTesterUsers']);
+
+ // Return status
+ return $isCreated;
+}
+
+//-----------------------------------------------------------------------------
+// EL code functions
+//-----------------------------------------------------------------------------
+
// Expression call-back function for fetching user data
function doExpressionUser ($data) {
// Use current userid by default
return $code;
}
+//-----------------------------------------------------------------------------
+// Template helper functions
+//-----------------------------------------------------------------------------
+
// Template call-back function for list_user admin function
function doTemplateAdminListUserTitle ($template, $clear = false) {
// Init title with "all accounts"
$code = '{--ADMIN_LIST_ALL_ACCOUNTS--}';
- // Do we have a 'status' or 'mode' set?
+ // Do we have a 'status' or 'do' set?
if (isGetRequestElementSet('status')) {
// Set title according to the 'status'
$code = sprintf("{--ADMIN_LIST_STATUS_%s_ACCOUNTS--}", strtoupper(getRequestElement('status')));
- } elseif (isGetRequestElementSet('mode')) {
- // Set title according to the "mode"
- $code = sprintf("{--ADMIN_LIST_MODE_%s_ACCOUNTS--}", strtoupper(getRequestElement('mode')));
+ } elseif (isGetRequestElementSet('do')) {
+ // Set title according to 'do'
+ $code = sprintf("{--ADMIN_LIST_DO_%s_ACCOUNTS--}", strtoupper(getRequestElement('do')));
}
// Return the code
return $code;
}
+// Template call-back function for displaying "username"
+function doTemplateDisplayUsername ($template, $clear = false, $userid = NULL) {
+ // Is a userid set?
+ if (!isValidUserId($userid)) {
+ // Please don't call this without a valid userid
+ reportBug(__FUNCTION__, __LINE__, 'template=' . $template . ',clear=' . intval($clear) . ',userid[' . gettype($userid) . ']=' . intval($userid) . ' - Invalid userid provided.');
+ } // END - if
+
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__][$userid])) {
+ // Generate code
+ $GLOBALS[__FUNCTION__][$userid] = $userid . ' ({%user,nickname,fixEmptyContentToDashes=' . $userid . '%})';
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__][$userid];
+}
+
+// ----------------------------------------------------------------------------
+// Wrapper functions for configuration entries
+// ----------------------------------------------------------------------------
+
+// Getter for user_alpha
+function getUserAlpha () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('user_alpha');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for user_limit
+function getUserLimit () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('user_limit');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_surname_prefix
+function getTesterUserSurnamePrefix () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_surname_prefix');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_maximum
+function getTesterUserMaximum () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_maximum');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_check_cat
+function getTesterUserCheckCat () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_check_cat');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_gender
+function getTesterUserGender () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_gender');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_family
+function getTesterUserFamily () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_family');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_password
+function getTesterUserPassword () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_password');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_street_nr
+function getTesterUserStreetNr () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_street_nr');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_zip
+function getTesterUserZip () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_zip');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_city
+function getTesterUserCity () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_city');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_email
+function getTesterUserEmail () {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('tester_user_email');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
// [EOF]
?>