Skip to content

Commit

Permalink
Trying to find something nicer to output the memberlist page (related…
Browse files Browse the repository at this point in the history
… to a todo comment in the code about email_address)

Signed-off-by: emanuele <emanuele45@gmail.com>
  • Loading branch information
emanuele45 committed Jul 14, 2013
1 parent 8068ea2 commit c2e402d
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 37 deletions.
12 changes: 9 additions & 3 deletions sources/controllers/Memberlist.controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public function action_index()

// Set up the standard columns...
$context['columns'] = array(
'is_online' => array(
'online' => array(
'label' => $txt['status'],
'width' => 60,
'class' => 'first_th centertext',
Expand Down Expand Up @@ -109,7 +109,7 @@ public function action_index()
'up' => 'IFNULL(mg.group_name, 1=1) ASC, mg.group_name ASC'
),
),
'registered' => array(
'date_registered' => array(
'label' => $txt['date_registered'],
'sort' => array(
'down' => 'mem.date_registered DESC',
Expand Down Expand Up @@ -155,7 +155,6 @@ public function action_index()
);

$context['can_send_pm'] = allowedTo('pm_send');
$context['can_send_email'] = allowedTo('send_email_to_members');

// Build the memberlist button array.
$context['memberlist_buttons'] = array(
Expand All @@ -182,6 +181,13 @@ public function action_index()
// Allow mods to add additional buttons here
call_integration_hook('integrate_memberlist_buttons');

if (!allowedTo('send_email_to_members'))
unset($context['columns']['email_address']);
if (isset($context['disabled_fields']['website']))
unset($context['columns']['website']);
if (isset($context['disabled_fields']['posts']))
unset($context['columns']['posts']);

// Jump to the sub action.
if (isset($subActions[$context['listing_by']]))
$this->{$subActions[$context['listing_by']][1]}();
Expand Down
5 changes: 5 additions & 0 deletions sources/subs/Memberlist.subs.php
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,11 @@ function printMemberListRows($request)
$context['members'][$member] = $memberContext[$member];
$context['members'][$member]['post_percent'] = round(($context['members'][$member]['real_posts'] * 100) / $most_posts);
$context['members'][$member]['registered_date'] = strftime('%Y-%m-%d', $context['members'][$member]['registered_timestamp']);
$context['members'][$member]['real_name'] = $context['members'][$member]['link'];
$context['members'][$member]['email_address'] = $context['members'][$member]['email'];
$context['members'][$member]['website_url'] = $context['members'][$member]['website']['url'] != '' ? '<a href="' . $context['members'][$member]['website']['url'] . '" target="_blank" class="new_win"><img src="' . $settings['images_url'] . '/profile/www.png" alt="' . $context['members'][$member]['website']['title'] . '" title="' . $context['members'][$member]['website']['title'] . '" /></a>' : '';
$context['members'][$member]['id_group'] = empty($context['members'][$member]['group']) ? $context['members'][$member]['post_group'] : $context['members'][$member]['group'];
$context['members'][$member]['date_registered'] = $context['members'][$member]['registered'];

// Take care of the custom fields if any are being displayed
if (!empty($context['custom_profile_fields']['columns']))
Expand Down
63 changes: 29 additions & 34 deletions themes/default/Memberlist.template.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,6 @@ function toggle_mlsearch_opt()
// Display each of the column headers of the table.
foreach ($context['columns'] as $key => $column)
{
// @TODO maybe find something nicer?
if ($key == 'email_address' && !$context['can_send_email'])
continue;

// This is a selected column, so underline it or some such.
if ($column['selected'])
echo '
Expand All @@ -98,37 +94,36 @@ function toggle_mlsearch_opt()
foreach ($context['members'] as $member)
{
echo '
<tr class="', $alternate ? 'alternate_' : 'standard_', 'row"', empty($member['sort_letter']) ? '' : ' id="letter' . $member['sort_letter'] . '"', '>
<td class="centertext">
', $context['can_send_pm'] ? '<a href="' . $member['online']['href'] . '" title="' . $member['online']['text'] . '">' : '', $settings['use_image_buttons'] ? '<img src="' . $member['online']['image_href'] . '" alt="' . $member['online']['text'] . '" class="centericon" />' : $member['online']['label'], $context['can_send_pm'] ? '</a>' : '', '
</td>
<td>', $member['link'], '</td>';

if ($context['can_send_email'])
echo '
<td class="centertext">', $member['show_email'] == 'no' ? '' : '<a href="' . $scripturl . '?action=emailuser;sa=email;uid=' . $member['id'] . '" rel="nofollow"><img src="' . $settings['images_url'] . '/profile/email_sm.png" alt="' . $txt['email'] . '" title="' . $txt['email'] . ' ' . $member['name'] . '" /></a>', '</td>';

if (!isset($context['disabled_fields']['website']))
echo '
<td class="centertext">', $member['website']['url'] != '' ? '<a href="' . $member['website']['url'] . '" target="_blank" class="new_win"><img src="' . $settings['images_url'] . '/profile/www.png" alt="' . $member['website']['title'] . '" title="' . $member['website']['title'] . '" /></a>' : '', '</td>';

// Group and date.
echo '
<td>', empty($member['group']) ? $member['post_group'] : $member['group'], '</td>
<td>', $member['registered_date'], '</td>';

if (!isset($context['disabled_fields']['posts']))
{
echo '
<td class="centertext">', $member['posts'], '</td>';
}

// Any custom fields on display?
if (!empty($context['custom_profile_fields']['columns']))
<tr class="', $alternate ? 'alternate_' : 'standard_', 'row"', empty($member['sort_letter']) ? '' : ' id="letter' . $member['sort_letter'] . '"', '>';
foreach ($context['columns'] as $column => $values)
{
foreach ($context['custom_profile_fields']['columns'] as $key => $column)
echo '
<td>', $member['options'][substr($key, 5)], '</td>';
if (isset($member[$column]))
{
if ($column == 'online')
{
echo '
<td class="centertext">
', $context['can_send_pm'] ? '<a href="' . $member['online']['href'] . '" title="' . $member['online']['text'] . '">' : '', $settings['use_image_buttons'] ? '<img src="' . $member['online']['image_href'] . '" alt="' . $member['online']['text'] . '" class="centericon" />' : $member['online']['label'], $context['can_send_pm'] ? '</a>' : '', '
</td>';
continue;
}
elseif ($column == 'email_address')
{
echo '
<td class="centertext">', $member['show_email'] == 'no' ? '' : '<a href="' . $scripturl . '?action=emailuser;sa=email;uid=' . $member['id'] . '" rel="nofollow"><img src="' . $settings['images_url'] . '/profile/email_sm.png" alt="' . $txt['email'] . '" title="' . $txt['email'] . ' ' . $member['name'] . '" /></a>', '</td>';
continue;
}
else
echo '
<td>', $member[$column], '</td>';
}
// Any custom fields on display?
elseif (!empty($context['custom_profile_fields']['columns']) && isset($context['custom_profile_fields']['columns'][$column]))
{
foreach ($context['custom_profile_fields']['columns'] as $key => $col)
echo '
<td>', $member['options'][substr($key, 5)], '</td>';
}
}

echo '
Expand Down

0 comments on commit c2e402d

Please sign in to comment.