I had to rework that area myself just after we installed vB. Understand that we run a corporate site where we might add only one user per week (after the initial load). Anyway, the main thing we wanted was to issue the welcome to the last N users rather than simple the last user to be registered. Here is what that looks like in index.php:
Code:
// get newest members
$homepage_ShowNewMembersMaxCount = 3; // show this many new members
$homepage_ShowNewMembersDaysCutoff = 7; // no longer new after this many days
$homepage_ShowNewMembersExclGroups = '3,4'; // never show users from these groups
$dateCutoffTmp = TIMENOW - ($homepage_ShowNewMembersDaysCutoff * 86400);
$membersNew = $DB_site->query("
SELECT username
FROM " . TABLE_PREFIX . "user
WHERE joindate > $dateCutoffTmp
AND usergroupid NOT IN ($homepage_ShowNewMembersExclGroups)
ORDER BY joindate DESC
LIMIT $homepage_ShowNewMembersMaxCount");
// If we did not get any, $newusernames will be empty and HTML template won't show it
// because '<if condition="$newusernames">' will be false.
$newusernames = '';
while ($newMember = $DB_site->fetch_array($membersNew)) {
$newusernames .= (empty($newusernames)? '': ', ') . $newMember['username'];
}
$DB_site->free_result($membersNew);
This approach requires modifying the FORUMHOME template.
To adapt it to your simpler needs, try this code:
Find these lines in index.php:
Code:
$newusername = $userstats['newusername'];
$newuserid = $userstats['newuserid'];
Comment-out these lines (begin line with //) and replace with:
Code:
$newuser = $DB_site->query_first("SELECT userid, username
FROM " . TABLE_PREFIX . "user
WHERE usergroupid NOT IN (3,4)
ORDER BY userid DESC
LIMIT 1");
$newuserid = $newuser['userid']; // set template variables
$newusername = $newuser['username'];
Just change the '(3,4)' to the list of usergroups to ignore.