collapse

* User Info

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

* Who's Online

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

* Shoutbox

Refresh History
  • Shoutbox is not for support!
  • Nucky: :D
    January 08, 2016, 10:53:07 am
  • ♦ Ninja ZX-10RR ♦: Merry Christmas to everyone :D
    December 25, 2015, 06:42:17 pm
  • Mark Parker: Yeah thanks for this awesome thing
    November 15, 2015, 03:10:44 am
  • Yahmez: Thanks for making simple portal... Many thanks.
    October 06, 2015, 09:16:18 pm
  • ♦ Ninja ZX-10RR ♦: Thank you for your kind words Phåråoh!
    September 26, 2015, 08:47:29 pm
  • Phåråoh: Good to see admin is still on top of things.  Some people don't take your VOLUNTEER work for granted.  We GREATLY appreciate it, whether it's a small thing or a major issue.
    September 26, 2015, 07:49:44 pm
  • ♦ Ninja ZX-10RR ♦: Kindly wait for replies in each topic, venting in the shoutbox is not going to help, I'm afraid. We are all volunteers and we might not be able to be online 24/7. Thank you for your understanding.
    September 13, 2015, 10:14:49 am
  • Cyberkid: >:( :| :'( :( no admin to fix this stuff
    September 13, 2015, 08:54:19 am
  • rentner: sorry be wrong
    August 19, 2015, 07:56:53 am
  • rentner: beta 2.1
    August 19, 2015, 07:56:32 am
  • ♦ Ninja ZX-10RR ♦: Lol thanks for considering me that much
    August 15, 2015, 01:22:47 pm
  • David: Eliana!! WADDUP, GURL!!!  SiNaN... glad y'all are still around!
    August 15, 2015, 11:27:21 am
  • ♦ Ninja ZX-10RR ♦: Welcome back :)
    August 15, 2015, 11:24:52 am
  • David: I missed y'all!!
    August 15, 2015, 11:23:22 am
  • Eliana Tamerin: People with colored usernames are staff, please abide by their requests.
    August 13, 2015, 04:43:00 pm
  • ♦ Ninja ZX-10RR ♦: Once again, this topic is *NOT* for support, anyway. Thank you for your understanding.
    August 13, 2015, 03:37:51 pm
  • ♦ Ninja ZX-10RR ♦: Please refrain from using such language in the shoutbox. Also, try to read the documentation, it should tell you that and more. [link]
    August 13, 2015, 03:36:48 pm
  • psewolf: Where are the settings on the admin panel?
    August 13, 2015, 02:00:32 pm
  • psewolf: I'm not making a whole damn topic to ask where the settings are on the admin panel.
    August 13, 2015, 02:00:15 pm
  • ♦ Ninja ZX-10RR ♦: Please don't spam the shoutbox, post a topic instead. Thank you.
    August 13, 2015, 01:30:02 am

* Recent Posts

Re: Visitors straight to forum by kast
[Yesterday at 06:04:43 am]


Re: Visitors straight to forum by andy
[Yesterday at 12:10:05 am]


Re: Visitors straight to forum by emanuele
[February 10, 2016, 09:25:59 am]


Re: Visitors straight to forum by andy
[February 10, 2016, 07:42:01 am]


Visitors straight to forum by kast
[February 10, 2016, 04:28:06 am]

If you're interested in helping other members with support requests, consider joining the Community Support Helpers group.

Author Topic: Additional details to custom php block (borrowed from Staff block)  (Read 1577 times)

0 Members and 1 Guest are viewing this topic.

Offline Albertm

  • Newbie
  • Posts: 4
  • SMF Version: 2.0.2
  • SP Version: 2.3.5
Hi guys,

I copied the code in the sp_staff function in the file listed under Sources/PortalBlocks.php, and used it for a custom php block.  So far, it works the same as just using the Staff block normally, but I want to list an extra detail for each member listed.

I created a custom profile field in SMF, called "aboutUser" detailing a little about the staff members.  Something of interest for others to read if they wish to find out more.  However, I'm not sure how to pull that information or where to put it for it to show up in the custom php block I created.

So far the code I have is just what I pulled from the function sp_staff, without the input parameters:
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('moderate_board', 0);
        $admins = membersAllowedTo('admin_forum');

        $all_staff = array_merge($local_mods, $global_mods, $admins);
        $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'], $admins))
                        $row['type'] = 1;
                elseif (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>';
« Last Edit: October 28, 2012, 02:58:33 pm by Albertm »

Offline Albertm

  • Newbie
  • Posts: 4
  • SMF Version: 2.0.2
  • SP Version: 2.3.5
Re: Additional details to custom php block (borrowed from Staff block)
« Reply #1 on: November 14, 2012, 01:48:20 pm »
Any help would be greatly appreciated.  Please :)