Aktif Üyeleri Sıralandırma

Başlatan BrainDamaged, 21 Oca 2019 01:26

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

BrainDamaged

Merhabalar, sitede en son aktif olan 10 kullanıcıyı ve belirlenmiş (yönetici/moderatör) grupları oluşturmuş olduğum alanda avatarları ile sıralandırmak istiyorum hocam yardımcı olabilir misiniz ?

Oluşturduğum Alan;



Referans;





BrainDamaged

Gecitli hocamızın daha önce ulaştırdığı kodlar elimde mevcut lakin çevrim dışı üyeleride listeliyor

Kod Seç
<?php

/**

$groups_to_use = array(1);

/*
 *
*/

global $smcFunc$sourcedir$scripturl$modSettings$txt;

// These are strings for errors...
$txt['no_groups'] = 'No groups have been defined! Please refer to the comments in the Block code!';
$txt['no_members'] = 'No members have been found...';

$groups = array();
foreach (
$groups_to_use as $group)
 
$groups[] = (int) $group;
$groups array_unique($groups);

if (empty(
$groups))
{
 echo 
'
 <span class="smalltext" style="color: red;">
 '
$txt['no_groups'] . '
 </span>'
;

 return;
}

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

$member_list = array();
while (
$row $smcFunc['db_fetch_assoc']($request))
{
 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 '';
 }

 
$member_list[$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'],
 
'avatar' => array(
 
'name' => $row['avatar'],
 
'image' => $row['avatar'] == '' ? ($row['id_attach'] > '<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'] > ? (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'])
 ),
 );

 global 
$settings;
 if (empty(
$member_list[$row['id_member']]['avatar']['href']))
 
$member_list[$row['id_member']]['avatar']['href'] = $settings['default_images_url'] . '/default_avatar.png';
}
$smcFunc['db_free_result']($request);

if (empty(
$member_list))
{
 echo 
'
 <span class="smalltext" style="color: red;">
 '
$txt['no_members'] . '
 </span>'
;

 return;
}

ksort($member_list);
$member_count count($member_list);
$count 0;

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

foreach (
$member_list as $member)
 echo 
'
 <tr>
 <td class="staff center">'
, !empty($member['avatar']['href']) ? '<a href="' $scripturl '?action=profile;u=' $member['id'] . '"><img src="' $member['avatar']['href'] . '" alt="' $member['name'] . '" width="40" /></a>' '''</td>
 <td class="staff_info'
$member_count != ++$count ' staff_divider' '''">
 '
$member['link'], '<br />
 '
$member['group'], '
 </td>
 </tr>'
;

 echo 
'
 </table>'
;

?>

snrj

tam olarak nereye konumlandırmak istiyorsunuz anlamadım ama
simpleportalda blok olarak mı ?
site forum anasayfada mı?
veya harici bir sayfada mı?

neyse ben sql sorgusunu bir iki küçük değişikle sadece online olanları gösterecek şekilde vereyim siz kendinize göre düzeltirsiniz
$groups_to_use = array(1,4); şu kısım kendinize göre ayarlarsınız zaten biliyorsunuzdur gözükecek grub idleri
Kod Seç
<?php

$groups_to_use 
= array(1,4);

/*
 *
*/

global $smcFunc$sourcedir$scripturl$modSettings$txt;

// These are strings for errors...
$txt['no_groups'] = 'No groups have been defined! Please refer to the comments in the Block code!';
$txt['no_members'] = 'No members have been found...';

$groups = array();
foreach (
$groups_to_use as $group)
 
$groups[] = (int) $group;
$groups array_unique($groups);

if (empty(
$groups))
{
 echo 
'
 <span class="smalltext" style="color: red;">
 '
$txt['no_groups'] . '
 </span>'
;

 return;
}

$request $smcFunc['db_query']('''
 SELECT
 lo.id_member,mem.id_member, mem.real_name, mem.avatar, mem.id_group, mem.id_post_group, mg.group_name,
 a.id_attach, a.attachment_type, a.filename
FROM {db_prefix}log_online AS lo
 LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = lo.id_member)
 LEFT JOIN {db_prefix}attachments AS a ON (a.id_member = mem.id_member)
 LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN mem.id_group = {int:reg_group_id} THEN mem.id_post_group ELSE mem.id_group END)
 WHERE mem.id_group IN ({array_int:groups_to_use}) OR mem.id_post_group IN ({array_int:groups_to_use})'
,
 array(
 
'groups_to_use' => $groups,
 
'reg_group_id' => 0,
 )
);

$member_list = array();
while (
$row $smcFunc['db_fetch_assoc']($request))
{
 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 '';
 }

 
$member_list[$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'],
 
'avatar' => array(
 
'name' => $row['avatar'],
 
'image' => $row['avatar'] == '' ? ($row['id_attach'] > '<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'] > ? (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'])
 ),
 );

 global 
$settings;
 if (empty(
$member_list[$row['id_member']]['avatar']['href']))
 
$member_list[$row['id_member']]['avatar']['href'] = $settings['default_images_url'] . '/default_avatar.png';
}
$smcFunc['db_free_result']($request);

if (empty(
$member_list))
{
 echo 
'
 <span class="smalltext" style="color: red;">
 '
$txt['no_members'] . '
 </span>'
;

 return;
}

ksort($member_list);
$member_count count($member_list);
$count 0;

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

foreach (
$member_list as $member)
 echo 
'
 <tr>
 <td class="staff center">'
, !empty($member['avatar']['href']) ? '<a href="' $scripturl '?action=profile;u=' $member['id'] . '"><img src="' $member['avatar']['href'] . '" alt="' $member['name'] . '" width="40" /></a>' '''</td>
 <td class="staff_info'
$member_count != ++$count ' staff_divider' '''">
 '
$member['link'], '<br />
 '
$member['group'], '
 </td>
 </tr>'
;

 echo 
'
 </table>'
;

?>


biraz daha düzenleme yapılarak daha güzel hale getirilebilir
fırsat olursa bir ara daha kapsamlı edit yapıp paylaşırım veya siz editleyip paylaşırsanızda seviniriz

BrainDamaged

Alıntı yapılan: snrj - 21 Oca 2019 13:34tam olarak nereye konumlandırmak istiyorsunuz anlamadım ama
simpleportalda blok olarak mı ?
site forum anasayfada mı?
veya harici bir sayfada mı?

neyse ben sql sorgusunu bir iki küçük değişikle sadece online olanları gösterecek şekilde vereyim siz kendinize göre düzeltirsiniz
$groups_to_use = array(1,4); şu kısım kendinize göre ayarlarsınız zaten biliyorsunuzdur gözükecek grub idleri
Kod Seç
<?php

$groups_to_use 
= array(1,4);

/*
 *
*/

global $smcFunc$sourcedir$scripturl$modSettings$txt;

// These are strings for errors...
$txt['no_groups'] = 'No groups have been defined! Please refer to the comments in the Block code!';
$txt['no_members'] = 'No members have been found...';

$groups = array();
foreach (
$groups_to_use as $group)
 
$groups[] = (int) $group;
$groups array_unique($groups);

if (empty(
$groups))
{
 echo 
'
 <span class="smalltext" style="color: red;">
 '
$txt['no_groups'] . '
 </span>'
;

 return;
}

$request $smcFunc['db_query']('''
 SELECT
 lo.id_member,mem.id_member, mem.real_name, mem.avatar, mem.id_group, mem.id_post_group, mg.group_name,
 a.id_attach, a.attachment_type, a.filename
FROM {db_prefix}log_online AS lo
 LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = lo.id_member)
 LEFT JOIN {db_prefix}attachments AS a ON (a.id_member = mem.id_member)
 LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN mem.id_group = {int:reg_group_id} THEN mem.id_post_group ELSE mem.id_group END)
 WHERE mem.id_group IN ({array_int:groups_to_use}) OR mem.id_post_group IN ({array_int:groups_to_use})'
,
 array(
 
'groups_to_use' => $groups,
 
'reg_group_id' => 0,
 )
);

$member_list = array();
while (
$row $smcFunc['db_fetch_assoc']($request))
{
 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 '';
 }

 
$member_list[$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'],
 
'avatar' => array(
 
'name' => $row['avatar'],
 
'image' => $row['avatar'] == '' ? ($row['id_attach'] > '<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'] > ? (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'])
 ),
 );

 global 
$settings;
 if (empty(
$member_list[$row['id_member']]['avatar']['href']))
 
$member_list[$row['id_member']]['avatar']['href'] = $settings['default_images_url'] . '/default_avatar.png';
}
$smcFunc['db_free_result']($request);

if (empty(
$member_list))
{
 echo 
'
 <span class="smalltext" style="color: red;">
 '
$txt['no_members'] . '
 </span>'
;

 return;
}

ksort($member_list);
$member_count count($member_list);
$count 0;

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

foreach (
$member_list as $member)
 echo 
'
 <tr>
 <td class="staff center">'
, !empty($member['avatar']['href']) ? '<a href="' $scripturl '?action=profile;u=' $member['id'] . '"><img src="' $member['avatar']['href'] . '" alt="' $member['name'] . '" width="40" /></a>' '''</td>
 <td class="staff_info'
$member_count != ++$count ' staff_divider' '''">
 '
$member['link'], '<br />
 '
$member['group'], '
 </td>
 </tr>'
;

 echo 
'
 </table>'
;

?>


biraz daha düzenleme yapılarak daha güzel hale getirilebilir
fırsat olursa bir ara daha kapsamlı edit yapıp paylaşırım veya siz editleyip paylaşırsanızda seviniriz


Öncellikle ilgilendiğiniz için teşekkür ederim hocam, gerekli düzenlemeleri yaptım sorunsuz çalışıyor lakin anlamadığım bir sebepten ötürü değişiklikleri yaptıktan sonra kullanıcılara giriş yapmamışlar ise gösterdiğim toolbar gözüküyor ve "Ziyaretçi" yazısı isimsiz kalıyor



Ziyaretçi Olan Kullanıcılar için gösterdiğim toolbar



Giriş yapıldıktan sonraki toolbar


Değişiklikleri yaptıktan sonra gözüken toolbar


snrj

kodları tam görmeden birşey söylemek zor
en basit yoldan

Kod Seç
if ($context['user']['is_logged'])
echo'merhaba üye';
else
echo'merhaba ziyaretçi';