collapse

* User Info

 
 
Welcome, Guest. Please login or register.
Did you miss your activation email?

* Who's Online

  • Dot Guests: 79
  • Dot Hidden: 1
  • Dot Users: 2
  • Dot Users Online:

* Shoutbox

Refresh History
  • Shoutbox is not for support!
  • CaLy: yup thanks ninja, i will check right now! thanks
    March 23, 2015, 07:12:16 pm
  • ♦ Ninja ZX-10RR ♦: Lol 420connect, everybody needs help anyway ;) People achieve more as a team! @CaLy, old version I think. Check your topic.
    March 23, 2015, 06:56:02 pm
  • CaLy: why i dont have SPortal2.php ?
    March 23, 2015, 12:25:51 pm
  • 420connect: .. too many ideas - not enough knowledge!
    March 23, 2015, 11:46:00 am
  • 420connect: I feel like I am the only person who needs help with SP :P
    March 23, 2015, 11:45:42 am
  • cachencho29: hola gente e creado una web llamada liberatuandroid.com si hay algun interesado en hacer sus aporte
    March 23, 2015, 07:59:38 am
  • {OCS}MasterSeal: Just once more, I'd like to say Thank you to all involved for SP. Cheers.
    March 16, 2015, 11:45:52 am
  • Chen Zhen: newbies that post links are restricted until moderated due to spam control
    March 02, 2015, 08:44:47 pm
  • brianwilcox: I would make a support thread for it... but I can't.
    February 28, 2015, 07:34:25 pm
  • brianwilcox: Why can I not post on the forums? ;/
    February 28, 2015, 07:34:10 pm
  • CaLy: thanks and have a nice weekend all!
    February 21, 2015, 07:11:36 am
  • CaLy: ah u are right eliana, i will do that with custom block :)
    February 21, 2015, 07:11:28 am
  • Eliana Tamerin: You mean a custom block with HTML code? It's built into SP.
    February 20, 2015, 03:20:12 am
  • CaLy: what package are u using to display adsense banner at right of user info (in the middle) ? Thanks in advance!
    February 18, 2015, 07:34:47 am
  • Teetee: [link]
    February 10, 2015, 12:23:39 pm
  • 420connect: No longer newbie > posted.
    February 06, 2015, 10:04:41 am
  • 420connect: I can't reply to "?topic=13762" but have a possible solution.
    February 05, 2015, 08:17:48 pm
  • CaLy: hi all! I know it´s late but anyway happy 2015 to all the community!
    January 18, 2015, 05:43:46 am
  • ribwhulp: hoi
    January 17, 2015, 08:55:06 am
  • ♦ Ninja ZX-10RR ♦: Right above the Shoutbox there is a "Who's online" block, just so you know ;)
    January 11, 2015, 04:28:04 pm
Welcome to SimplePortal.net! You can download SimplePortal from the Downloads Area!

Author Topic: Block Help - Second Staff Block  (Read 1471 times)

0 Members and 1 Guest are viewing this topic.

Offline Kapwn

  • Newbie
  • Posts: 4
  • SMF Version: 2.0.2
  • SP Version: 2.3.5
Block Help - Second Staff Block
« on: February 01, 2013, 09:42:38 pm »
Hello, I'm trying to make a second staff block that is separate from the original and will show other member groups. So far I've added other groups to the block by adding a permission, however the administrator group is still on the list because it has the permission as well, which is the problem. I'm hoping someone can remove administrators from the block while still showing membergroups with the permission.

Code: [Select]
        global $smcFunc, $sourcedir, $scripturl, $modSettings, $color_profile;

        $block_parameters = array(
                'lmod' => 'check',
        );

        if ($return_parameters)
                return $block_parameters;

        require_once($sourcedir . '/Subs-Members.php');

        if (empty($parameters['lmod']))
        {
                $request = $smcFunc['db_query']('', '
                        SELECT id_member
                        FROM {db_prefix}moderators AS mods',
                        array(
                        )
                );
                $local_mods = array();
                while ($row = $smcFunc['db_fetch_assoc']($request))
                        $local_mods[$row['id_member']] = $row['id_member'];
                $smcFunc['db_free_result']($request);

                if (count($local_mods) > 10)
                        $local_mods = array();
        }
        else
                $local_mods = array();

        $global_mods = membersAllowedTo('spstaff_perm');

        $all_staff = array_merge($local_mods, $global_mods);
        $all_staff = array_unique($all_staff);

        $request = $smcFunc['db_query']('', '
                SELECT
                                m.id_member, m.real_name, m.avatar, mg.group_name,
                                a.id_attach, a.attachment_type, a.filename
                FROM {db_prefix}members AS m
                                LEFT JOIN {db_prefix}attachments AS a ON (a.id_member = m.id_member)
                                LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN m.id_group = {int:reg_group_id} THEN m.id_post_group ELSE m.id_group END)
                WHERE m.id_member IN ({array_int:staff_list})',
                array(
                        'staff_list' => $all_staff,
                        'reg_group_id' => 0,
                )
        );
        $staff_list = array();
        $colorids = array();
        while ($row = $smcFunc['db_fetch_assoc']($request))
        {
                $colorids[$row['id_member']] = $row['id_member'];

                if ($modSettings['avatar_action_too_large'] == 'option_html_resize' || $modSettings['avatar_action_too_large'] == 'option_js_resize')
                {
                        $avatar_width = !empty($modSettings['avatar_max_width_external']) ? ' width="' . $modSettings['avatar_max_width_external'] . '"' : '';
                        $avatar_height = !empty($modSettings['avatar_max_height_external']) ? ' height="' . $modSettings['avatar_max_height_external'] . '"' : '';
                }
                else
                {
                        $avatar_width = '';
                        $avatar_height = '';
                }


                if (in_array($row['id_member'], $global_mods))
                        $row['type'] = 2;
                else
                        $row['type'] = 3;


                $staff_list[$row['type'] . '-' . $row['id_member']] = array(
                        'id' => $row['id_member'],
                        'name' => $row['real_name'],
                        'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>',
                        'group' => $row['group_name'],
                        'type' => $row['type'],
                        'avatar' => array(
                                'name' => $row['avatar'],
                                'image' => $row['avatar'] == '' ? ($row['id_attach'] > 0 ? '<img src="' . (empty($row['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $row['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) . '" alt="" class="avatar" border="0" />' : '') : (stristr($row['avatar'], 'http://') ? '<img src="' . $row['avatar'] . '"' . $avatar_width . $avatar_height . ' alt="" class="avatar" border="0" />' : '<img src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($row['avatar']) . '" alt="" class="avatar" border="0" />'),
                                'href' => $row['avatar'] == '' ? ($row['id_attach'] > 0 ? (empty($row['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $row['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) : '') : (stristr($row['avatar'], 'http://') ? $row['avatar'] : $modSettings['avatar_url'] . '/' . $row['avatar']),
                                'url' => $row['avatar'] == '' ? '' : (stristr($row['avatar'], 'http://') ? $row['avatar'] : $modSettings['avatar_url'] . '/' . $row['avatar'])
                        ),
                );
        }
        $smcFunc['db_free_result']($request);

        ksort($staff_list);
        $staff_count = count($staff_list);
        $count = 0;
        $icons = array(1 => 'admin', 'gmod', 'lmod');

        if (!empty($colorids) && sp_loadColors($colorids) !== false)
        {
                foreach ($staff_list as $k => $p)
                {
                        if (!empty($color_profile[$p['id']]['link']))
                                $staff_list[$k]['link'] = $color_profile[$p['id']]['link'];
                }
        }

        echo '
                                                                <table class="sp_fullwidth">';

        foreach ($staff_list as $staff)
                echo '
                                                                        <tr>
                                                                                <td class="sp_staff sp_center">', !empty($staff['avatar']['href']) ? '
                                                                                        <a href="' . $scripturl . '?action=profile;u=' . $staff['id'] . '"><img src="' . $staff['avatar']['href'] . '" alt="' . $staff['name'] . '" width="40" /></a>' : '', '
                                                                                </td>
                                                                                <td class="sp_staff_info', $staff_count != ++$count ? ' sp_staff_divider' : '', '">
                                                                                        ', sp_embed_image($icons[$staff['type']]), ' ', $staff['link'], '<br />
                                                                                        ', $staff['group'], '
                                                                                </td>
                                                                        </tr>';

        echo '
                                                                </table>';

Thanks.

Offline Maizono

  • Hero Member
  • *****
  • Posts: 2064
  • Gender: Male
  • $("li.blurb").hide();
  • SMF Version: 2.0.9
  • SP Version: 2.3.6
Re: Block Help - Second Staff Block
« Reply #1 on: February 01, 2013, 10:17:28 pm »
In your code, can you find this:

Code: [Select]
$all_staff = array_unique($all_staff);
Then put this after it:

Code: [Select]
if ($context['user']['is_admin'])
{
    echo '<pre>';
    print_r($all_staff);
    echo '</pre>';
}

And then post what it shows?

Offline Kapwn

  • Newbie
  • Posts: 4
  • SMF Version: 2.0.2
  • SP Version: 2.3.5
Re: Block Help - Second Staff Block
« Reply #2 on: February 01, 2013, 10:33:30 pm »
Sorry, I'm new to this. Where is the echo that I should be posting? Also, I should have noted in the original topic that I'm doing this with a custom php block.

And is this how it's suppose to be added?
Code: [Select]
        $all_staff = array_unique($all_staff);
        if ($context['user']['is_admin'])
{
    echo '<pre>';
    print_r($all_staff);
    echo '</pre>';
}

Offline Maizono

  • Hero Member
  • *****
  • Posts: 2064
  • Gender: Male
  • $("li.blurb").hide();
  • SMF Version: 2.0.9
  • SP Version: 2.3.6
Re: Block Help - Second Staff Block
« Reply #3 on: February 01, 2013, 10:40:06 pm »
It should appear in the block, if not look in the HTML source of the page.

Yes, the edit looks fine.

Offline Kapwn

  • Newbie
  • Posts: 4
  • SMF Version: 2.0.2
  • SP Version: 2.3.5
Re: Block Help - Second Staff Block
« Reply #4 on: February 01, 2013, 10:56:26 pm »
Sorry, I still do not know what I am looking for.

Offline Maizono

  • Hero Member
  • *****
  • Posts: 2064
  • Gender: Male
  • $("li.blurb").hide();
  • SMF Version: 2.0.9
  • SP Version: 2.3.6
Re: Block Help - Second Staff Block
« Reply #5 on: February 01, 2013, 11:14:22 pm »
Create a new PHP block, as you are, and post the code with the edit I provided.

You should be presented with a large display of information that looks like

Array (
  [0] => stuff
  [1] => other stuff
)

This will help me identify what is being filled in that array at that given moment, letting me manipulate it afterwards to disclude the admin group.

Offline Kapwn

  • Newbie
  • Posts: 4
  • SMF Version: 2.0.2
  • SP Version: 2.3.5
Re: Block Help - Second Staff Block
« Reply #6 on: February 01, 2013, 11:31:36 pm »
Nothing appears on the block and I can't find anything in the HTML source page that looks like that.

Offline Chen Zhen

  • Support
  • *
  • Posts: 1015
  • Gender: Male
  • ベジータ王
    • WebDev
  • SMF Version: 2.0.9
  • SP Version: 2.3.6
Re: Block Help - Second Staff Block
« Reply #7 on: February 02, 2013, 02:40:38 pm »

Kapwn,
  Imo your code needs a revamp but to do what you request requires just one simple bit of mysql logic to add. Try this please:
Code: [Select]
global $smcFunc, $sourcedir, $scripturl, $modSettings, $color_profile;

$block_parameters = array('lmod' => 'check');
if ($return_parameters)
return $block_parameters;

require_once($sourcedir . '/Subs-Members.php');

if (empty($parameters['lmod']))
{
$request = $smcFunc['db_query']('', 'SELECT id_member FROM {db_prefix}moderators AS mods');
$local_mods = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
$local_mods[$row['id_member']] = $row['id_member'];

$smcFunc['db_free_result']($request);

if (count($local_mods) > 10)
$local_mods = array();
}
else
$local_mods = array();

$global_mods = membersAllowedTo('spstaff_perm');
$all_staff = array_unique(array_merge($local_mods, $global_mods));
$request = $smcFunc['db_query']('', 'SELECT m.id_member, m.real_name, m.avatar, mg.group_name, a.id_attach, a.attachment_type, a.filename
FROM {db_prefix}members AS m
LEFT JOIN {db_prefix}attachments AS a ON (a.id_member = m.id_member)
LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN m.id_group = {int:reg_group_id}
THEN m.id_post_group ELSE m.id_group END)
WHERE m.id_member IN ({array_int:staff_list})
AND mg.id_group != 1', array('staff_list' => $all_staff, 'reg_group_id' => 0)
    );
$staff_list = array();
$colorids = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
{
$colorids[$row['id_member']] = $row['id_member'];

if ($modSettings['avatar_action_too_large'] == 'option_html_resize' || $modSettings['avatar_action_too_large'] == 'option_js_resize')
{
$avatar_width = !empty($modSettings['avatar_max_width_external']) ? ' width="' . $modSettings['avatar_max_width_external'] . '"' : '';
$avatar_height = !empty($modSettings['avatar_max_height_external']) ? ' height="' . $modSettings['avatar_max_height_external'] . '"' : '';
}
else
{
$avatar_width = false;
$avatar_height = false;
}

if (in_array($row['id_member'], $global_mods))
$row['type'] = 2;
else
$row['type'] = 3;

$staff_list[$row['type'] . '-' . $row['id_member']] = array(
'id' => $row['id_member'],
                        'name' => $row['real_name'],
                        'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>',
'group' => $row['group_name'],
'type' => $row['type'],
'avatar' => array(
'name' => $row['avatar'],
'image' => $row['avatar'] == '' ? ($row['id_attach'] > 0 ? '<img src="' . (empty($row['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $row['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) . '" alt="" class="avatar" border="0" />' : '') : (stristr($row['avatar'], 'http://') ? '<img src="' . $row['avatar'] . '"' . $avatar_width . $avatar_height . ' alt="" class="avatar" border="0" />' : '<img src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($row['avatar']) . '" alt="" class="avatar" border="0" />'),
'href' => $row['avatar'] == '' ? ($row['id_attach'] > 0 ? (empty($row['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $row['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) : '') : (stristr($row['avatar'], 'http://') ? $row['avatar'] : $modSettings['avatar_url'] . '/' . $row['avatar']),
'url' => $row['avatar'] == '' ? '' : (stristr($row['avatar'], 'http://') ? $row['avatar'] : $modSettings['avatar_url'] . '/' . $row['avatar']))
                );
}

$smcFunc['db_free_result']($request);

ksort($staff_list);
$staff_count = count($staff_list);
$count = 0;
$icons = array(1 => 'admin', 'gmod', 'lmod');

if (!empty($colorids) && sp_loadColors($colorids) !== false)
{
foreach ($staff_list as $k => $p)
{
if (!empty($color_profile[$p['id']]['link']))
$staff_list[$k]['link'] = $color_profile[$p['id']]['link'];
}
}

echo '
<table class="sp_fullwidth">';

foreach ($staff_list as $staff)
echo '
<tr>
<td class="sp_staff sp_center">', !empty($staff['avatar']['href']) ? '
        <a href="' . $scripturl . '?action=profile;u=' . $staff['id'] . '">
<img src="' . $staff['avatar']['href'] . '" alt="' . $staff['name'] . '" width="40" /></a>' : '', '
</td>
<td class="sp_staff_info', $staff_count != ++$count ? ' sp_staff_divider' : '', '">
', sp_embed_image($icons[$staff['type']]), ' ', $staff['link'], '<br />
', $staff['group'], '
</td>
</tr>';

echo '
</table>';