SimplePortal

Customization => Blocks and Modifications => Mod Requests => Topic started by: cloksin on December 30, 2010, 12:58:58 PM

Title: Membergroups Block
Post by: cloksin on December 30, 2010, 12:58:58 PM
I'm trying to get a custom PHP block to display the membergroups of my forum, but I can't get it to work.  Any help would be much appreciated.  Here is the coe I am using.

Code: [Select]
global $context, $settings, $options, $txt, $scripturl, $modSettings;

// Showing membergroups?
if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
echo '
<br />[' . implode(']&nbsp;&nbsp;[', $context['membergroups']) . ']';
Title: Re: Membergroups Block
Post by: grafitus on December 30, 2010, 01:36:01 PM
Try this:
Code: [Select]
global $context, $settings;

$context['membergroups'] = cache_quick_get('membergroup_list', 'Subs-Membergroups.php', 'cache_getMembergroupList', array());

if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
echo '
<br />[' . implode(']&nbsp;&nbsp;[', $context['membergroups']) . ']';
Title: Re: Membergroups Block
Post by: cloksin on December 30, 2010, 01:54:23 PM
That didn't work, the block is just empty.
Title: Re: Membergroups Block
Post by: grafitus on December 30, 2010, 03:26:12 PM
Did you set "Show group key on board index" as enable from Current Theme Settings?
Title: Re: Membergroups Block
Post by: cloksin on December 30, 2010, 03:35:09 PM
yes, that is set.
Title: Re: Membergroups Block
Post by: grafitus on December 30, 2010, 03:43:31 PM
Oh, sorry. I've done a syntax error. But now I edited it above.
Title: Re: Membergroups Block
Post by: cloksin on January 04, 2011, 05:30:33 PM
Thanks, that worked great, just two things.  First, it seems to be slowing my site down, not sure though if its this block or not.  Any thoughts?

Second, it seems to be wrapping wrong.  If you look at the pic I posted, any membergroup that is more than one word sends the second word to the next line, it seems as though the last word of the membergroup, the closing bracket, the spaces, the opening bracket, and the first word of the next membergroup get lumped together and won't break up.  Is there a way to get it to wrap to the next line inbetween the closing and opening brackets?

Also, not shown in the pic, there is a scroll bar at the bottom, any way to force it to fit in the size I've limited the block to, and eliminate the scroll bar?

(http://farm6.static.flickr.com/5081/5325252734_32c00d1a71.jpg)
Title: Re: Membergroups Block
Post by: lsmith3629 on February 04, 2011, 05:48:00 PM
Has anyone found a solution to this issue?
Title: Re: Membergroups Block
Post by: Ares on February 04, 2011, 07:16:44 PM
try it in center block
Title: Re: Membergroups Block
Post by: cloksin on February 18, 2011, 03:49:15 PM
I've got the spacing better and got rid of the scroll bar.  I don't want this to go in the center block, it won't fit with the layout of the site.  I'm happy with the way it looks now, a current screen shot is attached.

I removed the &nbsp; elements from the implode statement.  Here is the code as it is on my site now, I've incorporated a few other things into the block, including a who's online section as well as some links for topics you're watching and bookmarked. (the last 50 and the last 24 hrs links don't work as I'm not sure how to write the code to make them work, they are just place holders now for when I do get them to work)

Code: [Select]
global $txt, $modSettings, $scripturl, $context, $sourcedir, $settings;

if (!$user_info['is_guest']) {
echo '<a href="', $scripturl, '?action=dxrecent;style=full;type=last">Topics - Last 50 </a><br />';
echo '<a href="', $scripturl, '?action=dxrecent;style=full;type=hours">Topics - Last 24 hrs</a><br />';
echo '<a href="', $scripturl, '?action=profile;area=notification;">Topics - You\'re Watching</a><br />';
echo '<a href="', $scripturl, '?action=bookmarks">Topics - You\'ve Bookmarked</a><br />';

echo '<hr>';

// Get the user online list.
require_once($sourcedir . '/Subs-MembersOnline.php');
$membersOnlineOptions = array(
'show_hidden' => allowedTo('moderate_forum'),
'sort' => 'log_time',
'reverse_sort' => true,
);
$context += getMembersOnlineStats($membersOnlineOptions);

// "Users online" - in order of activity.
echo ' <a href="' . $scripturl . '?action=who">Who\'s Online</a><br />';
echo '
<div class="infocenter_section">
<div class="windowbg">
<div>
', $context['num_guests'], ' ', $context['num_guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ' . $context['num_users_online'], ' ', $context['num_users_online'] == 1 ? $txt['user'] : $txt['users'],' ', '(' . $context['num_users_hidden'], ' ', $context['num_users_hidden'] == 1 ? $txt['hidden'] : $txt['hidden'], ')';

// Handle hidden users and buddies.
$bracketList = array();
if ($context['show_buddies'])
$bracketList[] = $context['num_buddies'] . ' ' . ($context['num_buddies'] == 1 ? $txt['buddy'] : $txt['buddies']);
if (!empty($context['num_spiders']))
$bracketList[] = $context['num_spiders'] . ' ' . ($context['num_spiders'] == 1 ? $txt['spider'] : $txt['spiders']);

if (!empty($bracketList))
echo ' (' . implode(', ', $bracketList) . ')';

echo $context['show_who'] ? '</a>': '', '
<div class="smalltext">';

// Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
if (!empty($context['users_online']))
{
echo '
', sprintf($txt['users_active'], $modSettings['lastActive']), ':<br />', implode(', ', $context['list_users_online']);

echo '
</div>
<hr />
<div class="smalltext">';

// Showing membergroups?

$context['membergroups'] = cache_quick_get('membergroup_list', 'Subs-Membergroups.php', 'cache_getMembergroupList', array());

if (!empty($settings['show_group_key']) && !empty($context['membergroups']))

echo '

[' . implode('][', $context['membergroups']) . ']';

}

echo '
</div>
<hr />
<div class="smalltext">
', $txt['most_online_today'], ': <b>', $modSettings['mostOnlineToday'], '</b>.
', $txt['most_online_ever'], ': ', $modSettings['mostOnline'], ' (' , timeformat($modSettings['mostDate']), ')
</div>
</div>
</div>
</div>';
echo '<hr>';

}

// Admin only
if ($user_info['is_admin']) {
echo '<a href="', $scripturl , '?action=admin;area=viewmembers;sa=browse;type=activate', '">', sprintf($txt['admin_browse_awaiting_activate'], $context['awaiting_activation']), '</a><br />';
}


I've blacked out the members names in the image for privacy.
Title: Re: Membergroups Block
Post by: lsmith3629 on March 30, 2011, 01:58:57 AM
I'm still getting the scroll bar.  I think it's because of some oddity in spacing/layout.  The membergroup names are splitting funny, almost as though there is no specified size for the block or something.  Suggestions?  I don't like it in a center block, largely because the size of my forum renders bottom blocks useless and visually annoying.
SimplePortal 2.3.8 © 2008-2024, SimplePortal