Customization > Custom Coding

a neato staff list

(1/1)

owenenene:
What I'm currently using:


--- Code: ---<?php
{
global $smcFunc, $sourcedir, $scripturl, $modSettings, $color_profile, $settings;

$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 '
<style style="text/css">
.img-circle {
    border-radius: 50%;
opacity: 1;
filter: alpha(opacity=100);
}
.img-circle:hover {
opacity: 0.5;
filter: alpha(opacity=50);
}
   .hoverTable{
width:15%; 
                margin:auto;
border-collapse:collapse;
}
</style>
<img src="http://gameguides.pro/b/images/stafflist.png" width="" alt="Staff List" style="display: block; margin: auto; " /><br>
<table class="hoverTable">';

foreach ($staff_list as $staff)         {                 if (empty($staff['avatar']['href']))                 $staff['avatar']['href'] = $settings['default_theme_url'] . '/images/sp/default_avatar.gif'; echo ' <tr> <td class="sp_staff sp_center">', !empty($staff['avatar']['href']) ? ' <a href="' . $scripturl . '?action=profile;u=' . $staff['id'] . '"><img class="img-circle"; src="' . $staff['avatar']['href'] . '" alt="' . $staff['name'] . '" width="50" /></a>' : '', ' </td> <td class="sp_staff_info', $staff_count != ++$count ? '' : '', '"> <span style="font-size:17px">&nbsp;', $staff['link'], '</span><br /> <span style="font-size:12px">&nbsp;&nbsp;', $staff['group'], '</span><br><br></td></tr>';         } echo ' </table>';
}
--- End code ---

Live example: http://www.gameguides.pro/f/staff-list/

The code is a bit of a mess, sorry.. :(

What i'm after is a more visually, aesthetically appealing staff list. So any edits to the CSS, etc will be more then welcome. What i would also like is the custom field I added to profiles "about me" (eg. http://www.gameguides.pro/f/profile/Turtt/), to also be displayed next to the staff member.

So what I would like is: profile picture, profile name, rank, about me. (whatever order, just make it look nice :P)

Any help, if you can create it for me, it is more then welcome :)

I will be posting all custom blocks, custom pages, etc. to my website and I will reference the code back to this website if it's okay with you guys :) I'm sure I'm not the only person here after a neato staff list :)

Navigation

[0] Message Index

Go to full version