collapse

* User Info

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

* Who's Online

  • Dot Guests: 41
  • Dot Hidden: 0
  • Dot Users: 1
  • Dot Users Online:

* Shoutbox

Refresh History
  • Shoutbox is not for support!
  • sonkalem: Merhaba
    July 14, 2015, 02:27:54 pm
  • [SiNaN]: Hey! Glad to see that people find our little and simple mod useful. :)
    July 10, 2015, 08:38:39 am
  • berkcet: thanks for the wonderful mod! [SiNaN] adamın dibisin
    July 09, 2015, 12:34:40 pm
  • xpress: Please am using Simple portal mod. And in the board news updates. Whenever I make a post using BBC of [img] the image always heavy and makes my website to load slow. Is there anyway I can reduce it to 300px width and 300 height. May be by css or any other method!
    July 09, 2015, 04:27:56 am
  • Burke Knight: LOL!
    July 05, 2015, 03:35:00 pm
  • andy: Shoutbox IS for support... moral support  ;D
    July 05, 2015, 11:18:48 am
  • {OCS}MasterSeal: THANKS AGAIN FOR SP!
    June 22, 2015, 09:47:08 am
  • angeljs: Thanks :)
    June 20, 2015, 08:28:30 am
  • ♦ Ninja ZX-10RR ♦: Unfortunately I am only a Support Apprentice and I don't have access to it, so I cannot approve it. But I will let my Support coach know ;)
    June 19, 2015, 06:30:47 pm
  • angeljs: Yes. that was it. I managed to edit the post, but now can't make any more new ones as it's back in the moderation queue again! :(
    June 19, 2015, 05:06:05 pm
  • ♦ Ninja ZX-10RR ♦: There should be...? Maybe the post is waiting for approval, don't know.
    June 18, 2015, 03:26:04 pm
  • angeljs: Ok, thanks. I just need to know how to edit my posts as I can't find any edit button
    June 18, 2015, 03:13:00 pm
  • ♦ Ninja ZX-10RR ♦: Newbies cannot post in some sections due to antispam I think, especially if they post links. Feel free to open a topic somewhere, a mod will move it :)
    June 18, 2015, 02:53:02 pm
  • angeljs: I know the shoutbox isn't for support, but I can't post in the support forums! Where can I find help with this website?
    June 18, 2015, 10:36:07 am
  • Jazzpa: Thank you Chen!
    June 12, 2015, 08:31:09 am
  • Chen Zhen: Your thread has been approved and a solution posted.
    June 11, 2015, 11:05:45 pm
  • Jazzpa: How long does it take approve a thread/question over here?
    June 11, 2015, 12:25:01 pm
  • {OCS}MasterSeal: AGAIN. I'm here to spam...errr I mean THANK YOU FOR SP!!!
    May 29, 2015, 02:57:41 am
  • ♦ Ninja ZX-10RR ♦: Cool! Glad that you enjoy SimplePortal! :)
    May 02, 2015, 01:12:20 pm
  • iain sherriff: first SP portal installafter trying most of the others...flawless :)
    May 02, 2015, 09:17:00 am

* Recent Posts

Re: Not logged in on Front page? by ♦ Ninja ZX-10RR ♦
[July 26, 2015, 07:00:47 pm]


Re: Not logged in on Front page? by khigh
[July 26, 2015, 06:11:06 pm]


Re: Not logged in on Front page? by ♦ Ninja ZX-10RR ♦
[July 26, 2015, 05:50:54 pm]


Re: Not logged in on Front page? by khigh
[July 26, 2015, 05:42:17 pm]


Re: Not logged in on Front page? by khigh
[July 26, 2015, 05:28:28 pm]

Welcome to SimplePortal.net! You can download SimplePortal from the Downloads Area!

Author Topic: Block Help - Second Staff Block  (Read 1531 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 Sayaka Maizono

  • Hero Member
  • *****
  • Posts: 2079
  • Gender: Male
  • $("div.content:dd").hide();
  • SMF Version: None
  • SP Version: None
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 Sayaka Maizono

  • Hero Member
  • *****
  • Posts: 2079
  • Gender: Male
  • $("div.content:dd").hide();
  • SMF Version: None
  • SP Version: None
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 Sayaka Maizono

  • Hero Member
  • *****
  • Posts: 2079
  • Gender: Male
  • $("div.content:dd").hide();
  • SMF Version: None
  • SP Version: None
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: 1102
  • 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>';