24 Mar 2023 06:15 Yeni Konu Oluştur

Haberler:

Sitemiz Smf 2.1 ve Smf 2.0 sürümleri için Destek ve Tema paylaşım forumudur


Aktif Üyeleri Sıralandırma

Başlatan BrainDamaged, 21 Mar 2019 01:26

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçiler konuyu incelemekte.

*

  1. 21

  2. 7

  3. 4

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;





*

  1. 21

  2. 7

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

<?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>'
;

?>

*

  1. 3,263

  2. 596

  3. 1077
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
<?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

*

  1. 21

  2. 7

  3. 4

Alıntı yapılan: snrj - 21 Mar 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
<?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


*

  1. 3,263

  2. 596

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

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


Benzer Konular (5)


MENU ×