SimplePortal
Customization => Custom Coding => Topic started by: Tarista on October 30, 2014, 02:17:13 PM
-
Hello all :nervous-happy:
I didn't want to post in a several years old topic (http://simpleportal.net/index.php?topic=563.msg9262#msg9262), but I've been using this code and want to know how to change it a bit if possible. First I wonder how to make it display two members instead of just one? Changing the LIMIT to 2 didn't seem to work, I assume it might have to do with it being random?
Also I wonder if I could use this to somehow exclude members who have zero posts. Maybe even exclude members who haven't logged on for a while?
So, to make it simple, these are the changes I'm trying to make:
* Display two members instead of one.
Changing LIMIT to "2" doesn't seem to work?
* Exclude members with zero post.
Adding "AND posts >= 1" to WHERE seems to work?
* Exclude member who haven't logged in for 30 days.
I would greatly appreciate any help with this. If [SiNaN] doesn't want this code changed for some reason I totally understand.
Thanks!
For SMF 2.x:
global $smcFunc, $scripturl, $memberContext, $color_profile, $txt;
loadLanguage('Profile');
// Ids of users to exclude. (2,3,4)
$exclude_members = array();
$request = $smcFunc['db_query']('', '
SELECT id_member
FROM {db_prefix}members
WHERE is_activated = {int:is_activated}' . (!empty($exclude_members) ? '
AND id_member NOT IN ({array_int:exclude_members})' : '') . '
ORDER BY RAND()
LIMIT 1',
array(
'is_activated' => 1,
'exclude_members' => $exclude_members,
)
);
list ($member) = $smcFunc['db_fetch_row']($request);
$smcFunc['db_free_result']($request);
if (empty($member))
return 'No members.';
loadMemberData($member);
loadMemberContext($member);
$member_info = $memberContext[$member];
if (empty($modSettings['MemberColorLinkInstalled']) && sp_loadColors($member) !== false)
$member_info['colored_link'] = '<strong><a href="' . $scripturl . '?action=profile;u=' . $member_info['id'] . '" title="' . $txt['profile_of'] . ' ' . $member_info['name'] . '">' . $color_profile[$member]['colored_name'] . '</a></strong>';
echo '
<div style="text-align: center; width: %99;">';
// Colored member link.
echo '
', $member_info['colored_link'], '<br />';
// Member title.
if (!empty($member_info['title']))
echo '
', $member_info['title'], '<br />';
// Member group.
if (!empty($member_info['group']))
echo '
', $member_info['group'], '<br />';
else
echo '
', $member_info['post_group'], '<br />';
// Group stars.
echo '
', $member_info['group_stars'], '<br />';
// Member avatar.
if (!empty($member_info['avatar']['image']))
echo '
<br />
', $member_info['avatar']['image'], '<br />';
// Personal text.
if (!empty($member_info['blurb']))
echo '
', $member_info['blurb'], '<br />';
// Online image.
echo '
<img src="', $member_info['online']['image_href'], '" alt="', $member_info['online']['text'], '" /> ', $member_info['online']['text'], '<br />';
// Gender name and image.
if (!empty($member_info['gender']['name']))
echo '
', $member_info['gender']['image'], ' ', $member_info['gender']['name'], '<br />';
echo '
<ul style="list-style-type: none; text-align: left; padding: 0px 0px 0px 5px;">';
// Post count.
echo '
<li><strong>', $txt['posts'], ':</strong> ', $member_info['posts'], '</li>';
// Location.
if (!empty($member_info['location']))
echo '
<li><strong>', $txt['location'], ':</strong> ', $member_info['location'], '</li>';
// Date registered.
echo '
<li><strong>', $txt['date_registered'], ':</strong> ', $member_info['registered'], '</li>';
// Last login.
echo '
<li><strong>', $txt['lastLoggedIn'], ':</strong> ', $member_info['last_login'], '</li>';
echo '
</ul>
</div>';
I've used seperate 'echo' for each data, so that you can move things as you wish.
-
global $smcFunc, $scripturl, $memberContext, $color_profile, $txt;
loadLanguage('Profile');
// Ids of users to exclude. (2,3,4)
$exclude_members = array();
// We're going to store all the members here.
$members = array();
$request = $smcFunc['db_query']('', '
SELECT id_member, posts
FROM {db_prefix}members
WHERE is_activated = {int:is_activated}' . (!empty($exclude_members) ? '
AND id_member NOT IN ({array_int:exclude_members})' : '') . '
AND posts >= 1
ORDER BY RAND()
LIMIT 2',
array(
'is_activated' => 1,
'exclude_members' => $exclude_members,
)
);
$members = $smcFunc['db_fetch_assoc']($request);
$smcFunc['db_free_result']($request);
if (empty($members))
return 'No members.';
loadMemberData($members);
loadMemberContext($members);
foreach ($members as $member)
{
$member_info = $memberContext[$member['id_member']];
if (empty($modSettings['MemberColorLinkInstalled']) && sp_loadColors($member) !== false)
$member_info['colored_link'] = '<strong><a href="' . $scripturl . '?action=profile;u=' . $member_info['id'] . '" title="' . $txt['profile_of'] . ' ' . $member_info['name'] . '">' . $color_profile[$member]['colored_name'] . '</a></strong>';
echo '
<div style="text-align: center; width: %99;">';
// Colored member link.
echo '
', $member_info['colored_link'], '<br />';
// Member title.
if (!empty($member_info['title']))
echo '
', $member_info['title'], '<br />';
// Member group.
if (!empty($member_info['group']))
echo '
', $member_info['group'], '<br />';
else
echo '
', $member_info['post_group'], '<br />';
// Group stars.
echo '
', $member_info['group_stars'], '<br />';
// Member avatar.
if (!empty($member_info['avatar']['image']))
echo '
<br />
', $member_info['avatar']['image'], '<br />';
// Personal text.
if (!empty($member_info['blurb']))
echo '
', $member_info['blurb'], '<br />';
// Online image.
echo '
<img src="', $member_info['online']['image_href'], '" alt="', $member_info['online']['text'], '" /> ', $member_info['online']['text'], '<br />';
// Gender name and image.
if (!empty($member_info['gender']['name']))
echo '
', $member_info['gender']['image'], ' ', $member_info['gender']['name'], '<br />';
echo '
<ul style="list-style-type: none; text-align: left; padding: 0px 0px 0px 5px;">';
// Post count.
echo '
<li><strong>', $txt['posts'], ':</strong> ', $member_info['posts'], '</li>';
// Location.
if (!empty($member_info['location']))
echo '
<li><strong>', $txt['location'], ':</strong> ', $member_info['location'], '</li>';
// Date registered.
echo '
<li><strong>', $txt['date_registered'], ':</strong> ', $member_info['registered'], '</li>';
// Last login.
echo '
<li><strong>', $txt['lastLoggedIn'], ':</strong> ', $member_info['last_login'], '</li>';
echo '
</ul>
</div>';
}
I have not tested it, but I believe the adjustments I made will make it work by adjusting the LIMIT
-
Thank you :) I'll give that a try.
Edit: No :/ It seems to be an issue with it.
It just displays the name and not even the ID if i hover over the link. First time I got myself twice too, and then random members but still it doesn't display avatars and posts and that stuff. Thanks for your effort though :) I really appreciate it :)
-
Fixed the code above a little bit:
global $smcFunc, $scripturl, $memberContext, $color_profile, $txt;
loadLanguage('Profile');
// Ids of users to exclude. (2,3,4)
$exclude_members = array();
// We're going to store all the members here.
$members = array();
$request = $smcFunc['db_query']('', '
SELECT id_member, posts
FROM {db_prefix}members
WHERE is_activated = {int:is_activated}' . (!empty($exclude_members) ? '
AND id_member NOT IN ({array_int:exclude_members})' : '') . '
AND posts >= 1
ORDER BY RAND()
LIMIT 2',
array(
'is_activated' => 1,
'exclude_members' => $exclude_members,
)
);
$members = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
$members[] = $row;
$smcFunc['db_free_result']($request);
if (empty($members))
return 'No members.';
foreach ($members as $member)
{
loadMemberData($member['id_member']);
loadMemberContext($member['id_member']);
$member_info = $memberContext[$member['id_member']];
if (empty($modSettings['MemberColorLinkInstalled']) && sp_loadColors($member) !== false)
$member_info['colored_link'] = '<strong><a href="' . $scripturl . '?action=profile;u=' . $member_info['id'] . '" title="' . $txt['profile_of'] . ' ' . $member_info['name'] . '">' . $color_profile[$member['id_member']]['colored_name'] . '</a></strong>';
echo '
<div style="text-align: center; width: %99;">';
// Colored member link.
echo '
', $member_info['colored_link'], '<br />';
// Member title.
if (!empty($member_info['title']))
echo '
', $member_info['title'], '<br />';
// Member group.
if (!empty($member_info['group']))
echo '
', $member_info['group'], '<br />';
else
echo '
', $member_info['post_group'], '<br />';
// Group stars.
echo '
', $member_info['group_stars'], '<br />';
// Member avatar.
if (!empty($member_info['avatar']['image']))
echo '
<br />
', $member_info['avatar']['image'], '<br />';
// Personal text.
if (!empty($member_info['blurb']))
echo '
', $member_info['blurb'], '<br />';
// Online image.
echo '
<img src="', $member_info['online']['image_href'], '" alt="', $member_info['online']['text'], '" /> ', $member_info['online']['text'], '<br />';
// Gender name and image.
if (!empty($member_info['gender']['name']))
echo '
', $member_info['gender']['image'], ' ', $member_info['gender']['name'], '<br />';
echo '
<ul style="list-style-type: none; text-align: left; padding: 0px 0px 0px 5px;">';
// Post count.
echo '
<li><strong>', $txt['posts'], ':</strong> ', $member_info['posts'], '</li>';
// Location.
if (!empty($member_info['location']))
echo '
<li><strong>', $txt['location'], ':</strong> ', $member_info['location'], '</li>';
// Date registered.
echo '
<li><strong>', $txt['date_registered'], ':</strong> ', $member_info['registered'], '</li>';
// Last login.
echo '
<li><strong>', $txt['lastLoggedIn'], ':</strong> ', $member_info['last_login'], '</li>';
echo '
</ul>
</div>';
}
-
Thank you [SiNaN] for taking the time :)
That one unfortunately only displays one person for some reason though.
-
Sorry, I don't know what I was thinking at the time. The code above should be correct now, hopefully.
-
No worries :) Thank you for taking the time, I'll give it a try in a minute :)
Edit: I added the code you gave me and that worked :) Thank you! ;D Also, I figured out how to add time like I wanted by looking at the code so I solved that on my own.