Kimler Onlineda Ziyaretçi Gruplaması

Started by Sinan ANDIRMAN, July 29, 2008, 09:30:30 AM

Previous topic - Next topic

Sinan ANDIRMAN

Sevgili SMFciler;



Resimden de görüldüğü gibi,Bu edit sayesinde Kimler Online da hem adminin eylemlerini saklayabiliyor ayrıca "Üyeler" "Misafirler" ve "Arama Motorları" olarak online olanları gruplandırıyor ve arama motorlarını ve tarayıcıları belirtebiliyorsunuz.

Not: Daha evvelden paylaşılanlardan kendim derleme yaptım ve editlediğim who.template dosyasını ekte verdim.

KODLAR:
defaultta veya kendi temanızdaki who.template dosyanızda şu kodu bulun:
// The only template in the file.
function template_main()
{
global $context, $settings, $options, $scripturl, $txt;
// Display the table header and linktree.
echo '
<div style="padding: 3px;">', theme_linktree(), '</div>
<table cellpadding="3" cellspacing="0" border="0" width="100%" class="tborder">
<tr class="titlebg">
<td width="30%"><a href="' . $scripturl . '?action=who;start=', $context['start'], ';sort=user', $context['sort_direction'] != 'down' && $context['sort_by'] == 'user' ? '' : ';asc', '">', $txt['who_user'], ' ', $context['sort_by'] == 'user' ? '<img src="' . $settings['images_url'] . '/sort_' . $context['sort_direction'] . '.gif" alt="" />' : '', '</a></td>
<td style="width: 14ex;"><a href="' . $scripturl . '?action=who;start=', $context['start'], ';sort=time', $context['sort_direction'] == 'down' && $context['sort_by'] == 'time' ? ';asc' : '', '">', $txt['who_time'], ' ', $context['sort_by'] == 'time' ? '<img src="' . $settings['images_url'] . '/sort_' . $context['sort_direction'] . '.gif" alt="" />' : '', '</a></td>
<td>', $txt['who_action'], '</td>
</tr>';

şu kodla değiştirin:

// The only template in the file.
function template_main()
{
    global $context, $settings, $options, $scripturl, $txt;
    // Display the table header and linktree.
    $brokendown = array (
   ',$txt['who is online member'],' => array(),
   ',$txt['who is online guest'],' => array(),
   ',$txt['who is online search'],' => array(),
    );
    foreach($context['members'] AS $key => $member)
    {
   $spider = getAgent($member['query']['USER_AGENT'], $context['members'][$key]['name'], $agent, $member['id'] == 0);
   $context['members'][$key]['agent'] = $agent;
   $member['query']['USER_AGENT'] = isset($member['query']['USER_AGENT']) ? $member['query']['USER_AGENT'] : '';
   if ( $member['id'] != 0 )
  $brokendown[',$txt['who is online member'], '][] = &$context['members'][$key];
   else if ( $spider )
  $brokendown[',$txt['who is online guest'], '][] = &$context['members'][$key];
   else
  $brokendown[',$txt['who is online search'], '][] = &$context['members'][$key];
    }

//    echo '<pre>'; print_r($brokendown['Spiders']); echo '</pre>'; return;
    foreach($brokendown AS $group => $members)
    {
   echo '
    <table cellpadding="3" cellspacing="0" border="0" width="100%" class="tborder">
   <tr>
  <td class="catbg">', $group, '</td>
   </tr>
    </table>
    <table cellpadding="3" cellspacing="0" border="0" width="100%" class="tborder">
   <tr class="titlebg">
  <td width="30%"><a href="' . $scripturl . '?action=who;sort=user', $context['sort_direction'] == 'down' && $context['sort_by'] == 'user' ? ';asc' : '', '">', $txt['who_user'], ' ', $context['sort_by'] == 'user' ? '<img src="' . $settings['images_url'] . '/sort_' . $context['sort_direction'] . '.gif" alt="" border="0" />' : '', '</a></td>
  <td style="width: 14ex;"><a href="' . $scripturl . '?action=who;sort=time', $context['sort_direction'] == 'down' && $context['sort_by'] == 'time' ? ';asc' : '', '">', $txt['who_time'], ' ', $context['sort_by'] == 'time' ? '<img src="' . $settings['images_url'] . '/sort_' . $context['sort_direction'] . '.gif" alt="" border="0" />' : '', '</a></td>
  <td>', $txt['who_action'], '</td>
   </tr>';


daha sonra yine aynı dosyada tekrar şu kodu bulun:
// Guests don't have information like icq, msn, y!, and aim... and they can't be messaged.
if (!$member['is_guest'])
{
echo '
<div style="float: right; width: 14ex;">
', $context['can_send_pm'] ? '<a href="' . $member['online']['href'] . '" title="' . $member['online']['label'] . '">' : '', $settings['use_image_buttons'] ? '<img src="' . $member['online']['image_href'] . '" alt="' . $member['online']['text'] . '" align="middle" />' : $member['online']['text'], $context['can_send_pm'] ? '</a>' : '', '
', $member['icq']['link'], ' ', $member['msn']['link'], ' ', $member['yim']['link'], ' ', $member['aim']['link'], '
</div>';
}
echo '
<span', $member['is_hidden'] ? ' style="font-style: italic;"' : '', '>', $member['is_guest'] ? $member['name'] : '<a href="' . $member['href'] . '" title="' . $txt[92] . ' ' . $member['name'] . '"' . (empty($member['color']) ? '' : ' style="color: ' . $member['color'] . '"') . '>' . $member['name'] . '</a>', '</span>';
if (!empty($member['ip']))
echo '
(<a href="' . $scripturl . '?action=trackip;searchip=' . $member['ip'] . '" target="_blank">' . $member['ip'] . '</a>)';
echo '
</td>
<td nowrap="nowrap">', $member['time'], '</td>
<td>', $member['action'], '</td>
</tr>';
// Switch alternate to whatever it wasn't this time. (true -> false -> true -> false, etc.)
$alternate = !$alternate;
}
echo '
<tr class="titlebg">
<td colspan="3"><b>', $txt[139], ':</b> ', $context['page_index'], '</td>
</tr>
</table>';
}
?>
   
   
Son olarak alttaki ile değiştirin:
// Guests don't have information like icq, msn, y!, and aim... and they can't be messaged.
if (!$member['is_guest'])
{
echo '
<div style="float: right; width: 14ex;">
', $context['can_send_pm'] ? '<a href="' . $member['online']['href'] . '" title="' . $member['online']['label'] . '">' : '', $settings['use_image_buttons'] ? '<img src="' . $member['online']['image_href'] . '" alt="' . $member['online']['text'] . '" border="0" align="middle" />' : $member['online']['text'], $context['can_send_pm'] ? '</a>' : '', '
', $member['icq']['link'], ' ', $member['msn']['link'], ' ', $member['yim']['link'], ' ', $member['aim']['link'], '
</div>';
}
echo '
<span', $member['is_hidden'] ? ' style="font-style: italic;"' : '', '>', $member['is_guest'] ? $member['name'] : '<a href="' . $member['href'] . '" title="' . $txt[92] . ' ' . $member['name'] . '"' . (empty($member['color']) ? '' : ' style="color: ' . $member['color'] . '"') . '>' . $member['name'] . '</a>', '</span>';
if ( !empty($member['ip']) )
echo ' <br /> <span class="smalltext">(<b><a href="' . $scripturl . '?action=trackip;searchip=' . $member['ip'] . '" target="_blank" title="' . $member['ip'] . '" class="smalltext2">' . $member['ip'] . '</a></b>, <acronym title="' . $member['query']['USER_AGENT'] . '">' . $member['agent'] . '</acronym>)</span>';
echo '
</td>
<td nowrap="nowrap">', $member['time'], '</td>
<td>';if($member['id'] == "1")echo'<font color=red><b>',$txt['who is online admin'],'</b></font>';else echo'', $member['action'], '';echo'</td>
</tr>';                                   
// Switch alternate to whatever it wasn't this time. (true -> false -> true -> false, etc.)
$alternate = !$alternate;
}
echo '</table><br/>';
}
echo '
<table cellpadding="3" cellspacing="0" border="0" width="100%" class="tborder"><tr><td class="titlebg">
<b>', $txt[139], ':</b> ', $context['page_index'], '
</td></tr></table>';
}
function getAgent( &$user_agent, &$user_name, &$result, $guest )
{
$known_agents = array (
                //Search Spiders
array (
'agent' => 'WISENutbot',
'spidername' => 'Looksmart spider',
                        'spider' => true,
),
array (
'agent' => 'MSNBot',
'spidername' => 'MSN spider',
'spider' => true,
),
array (
'agent' => 'W3C_Validator',
'spidername' => 'W3C Validaator',
        'spider' => true,
),
array (
'agent' => 'Googlebot-Image',
'spidername' => 'Google-Image Spider',
'spider' => true,
),
array (
'agent' => 'Googlebot',
'spidername' => 'Google spider',
'spider' => true,
),
array (
'agent' => 'Mediapartners-Google',
'spidername' => 'Google AdSense spider',
'spider' => true,
),
                array (
'agent' => 'Openbot',
'spidername' => 'Openfind spider',
'spider' => true,
                ),
array (
'agent' => 'Yahoo! Slurp',
'spidername' => 'Yahoo spider',
'spider' => true,
),
                array (
'agent' => 'FAST-WebCrawler',
'spider' => true,
                ),
                array (
'agent' => 'Wget',
'spider' => true,
                ),
array (
'agent' => 'Ask Jeeves',
'spider' => true,
),
array (
'agent' => 'Speedy Spider',
'spider' => true,
),
array (
'agent' => 'SurveyBot',
'spider' => true,
),
array (
'agent' => 'IBM_Planetwide',
'spider' => true,
),
                array (
'agent' => 'GigaBot',
'spider' => true,
),
array (
'agent' => 'ia_archiver',
'spider' => true,
),
array (
'agent' => 'FAST-WebCrawler',
'spider' => true,
),
array (
'agent' => 'Inktomi Slurp',
                        'spider' => true,
),            
                array (
'agent' => 'appie',
'spidername' => 'Walhello spider',
'spider' => true,
),
//mobiles
array (
'agent' => 'Nokia',
),
array (
'agent' => 'Samsung',
),
array (
'agent' => 'Ericsson',
),
array (
'agent' => 'Siemens',
),
  array (
'agent' => 'Motorola',
),
                //Browsers
array (
'agent' => 'Opera',
),
array (
'agent' => 'Firefox',
),
array (
'agent' => 'Firebird',
),
array (
'agent' => 'Safari',
),
           array (
'agent' => 'Netscape',
),
array (
'agent' => 'MyIE2',
),
array (
'agent' => 'Konqueror',
),
array (
'agent' => 'Galeon',
),
array (
'agent' => 'KMeleon',
),
                array (
'agent' => 'NG/2.0',
),
                array (
'agent' => 'Gecko',
'name' => 'Mozilla',
         ),
                array (
'agent' => 'MSIE',
                ),
);
foreach( $known_agents AS $poss )
if (strpos(strtolower($user_agent), strtolower($poss['agent'])) !== false)
{
if ( $guest && isset($poss['spider']) && $poss['spider'] )
$user_name = isset($poss['spidername']) ? $poss['spidername'] : (isset($poss['name']) ? $poss['name'] : $poss['agent']);
$result = isset($poss['name']) ? $poss['name'] : $poss['agent'];
return isset($poss['spider']) && $poss['spider'];
}
$result = $user_agent;
return false;

}
?>

ve en son olarakta bunu bulun ve;
// For every member display their name, time and action (and more for admin).
foreach ($context['members'] as $member)
{

alttakiyle değiştirin:
// For every member display their name, time and action (and more for admin).
foreach ($members as $member)
{

dil dosyalarındaki değişiklik için defaultta languagesdaki modification.turkish.php de ?> kodundan evvel şu kodu yerleştirin;
// Kimler Online
$txt['who is online member'] = 'Üyelerimiz';
$txt['who is online guest'] = 'Misafirlerimiz';
$txt['who is online search'] = 'Arama Motorları';
$txt['who is online admin'] = 'Görmeye Yetkiniz Yok';

Derleyen ve Toparlayan: Sinan ANDIRMAN

DNA27

bir yedek alayim deneyelim eksik ikarsa söylerim güzel olmus görüntü de tşk ellerine saglik
Sevda Gelmişse başa artıq kıvırmak boşa sen git o sefdanın arkasından koşa koşa

[SiNaN]

Who.template.php temasını kullanan fazla tema olmadığını biliyorum ama dosyayının yanında yaptığınız kod değişikliklerini de ekler misiniz? Ayrıca kimin, hangi kodunu kullandığınızı da sonuna eklemenizi rica ediyorum.

Düzeltilince İpuçları ve Hileler bölümüne taşıyacağım.
Former SMF Core Developer | My Mods | SimplePortal

DNA27

valla güsel oldu :)) tekrar  yüregine klavyene saglik yavas yavas buyutuyorsun işi devam
Sevda Gelmişse başa artıq kıvırmak boşa sen git o sefdanın arkasından koşa koşa

Sinan ANDIRMAN

tmm üstad ;)

Quote from: DNA27 on July 29, 2008, 09:38:24 AM
valla güsel oldu :)) tekrar  yüregine klavyene saglik yavas yavas buyutuyorsun işi devam
eyvallah sağol ahmet ;)

Hoochie Coochie Man

İnadına SMF 1.1.X

DNA27

o  gavurca  bişi anlayamıyoruz kı :) zaten oda bizden anlamaz geçinip gideriz hem ortak degilmiyiz hehe
Sevda Gelmişse başa artıq kıvırmak boşa sen git o sefdanın arkasından koşa koşa

Hoochie Coochie Man

#7
demek istediğimi sen anlamadın @DNA27..
Orayı okuyup okumaman önemli değil, etik olarak köşeye bir yere o linkide iliştirmek gerekir ;)
İnadına SMF 1.1.X

DNA27

he biraz cahilim ok burnumu uzatmayayim bence :) kolay gelsin
Sevda Gelmişse başa artıq kıvırmak boşa sen git o sefdanın arkasından koşa koşa

Sinan ANDIRMAN

Quote from: DNA27 on July 29, 2008, 09:52:54 AM
o  gavurca  bişi anlayamıyoruz kı :) zaten oda bizden anlamaz geçinip gideriz hem ortak degilmiyiz hehe
:)
Quote from: Hoochie Coochie Man on July 29, 2008, 09:53:43 AM
demek istediğimi sen anlamadın @DNA27..
Sinan anladı merak etme sen ;)
üstad demek istediğinizi anladım fakat orjinal paylaşılan modu görememişim ayrıca bu biraz daha geniş bir anlamda derleme ve toparlama ve sadece kimler online a has birşey olsun istemiştim.o modu kuramayanlar veya sadece forumundaki kimler online kısmına böyle bir uygulama eklemek isteyenler için böyle birşey düşünmüştümbelkide gereksizde olmuştur... ???

Hoochie Coochie Man

#10
Yukarıdaki mesajımı editledim..

Doğrudur gözünden kaçmış olabilir, farkındaysen ben kimileri gibi çıngar çıkarmadan nazik bir üslupla söylemiştim.
Ancak belirteyim o mod değil o da tüyo, o da sadece forumundaki kimler online kısmına böyle bir uygulama ekliyor senin olayın aynısı. hatta Who.template.php ler bile aynı :)
İnadına SMF 1.1.X

[SiNaN]

HCM sadece kaynak belirtilmesini istemiş. :)

Sinan, isterseniz bu tüyonun paket hali olan Grouped Who's Online List modifikasyonunu yazarından çeviri izni alıp burada tanıtabilirsiniz.

Bunun dışındaki özellikleri de ilk mesajı düzenleyerek kodlarını ve kaynaklarını ekleyip paylaşabilirsiniz.
Former SMF Core Developer | My Mods | SimplePortal

Sinan ANDIRMAN

üstad ve adaşım Sinan,
yukarıdaki mesajımda editleme yaptım istiyosanız bi bakın ;)

Quote from: Hoochie Coochie Man on July 29, 2008, 10:04:39 AM
Yukarıdaki mesajımı editledim..

Doğrudur gözünden kaçmış olabilir, farkındaysen ben kimileri gibi çıngar çıkarmadan nazik bir üslupla söylemiştim.
Ancak belirteyim o mod değil o da tüyo, o da sadece forumundaki kimler online kısmına böyle bir uygulama ekliyor senin olayın aynısı. hatta Who.template.php ler bile aynı :)
evet üstad farkındayım dediğim gibi fazlalıkta olabilir tüyom sadece hepsini birleştirmek istemiştim amacım buydu,
saygılarımla...

[SiNaN]

Verdiğiniz ilk değişiklikte bir hata olmadığına emin misiniz? Bul ve Değiştir kodları aynı gibi geldi bana.

Ayrıca hala kaynak yok.
Former SMF Core Developer | My Mods | SimplePortal

Sinan ANDIRMAN

tamam üstad yanlışlık için özür diliyorum,
ayrıca izin için öm attım onay bekliyorum şu an...

x YaraSi x

Aynı kişileri ayrı ayrı gruplarda gösteriyor?

Sinan ANDIRMAN

olamaz ekteki dosyayı deneyiniz bide...

x YaraSi x


Sinan ANDIRMAN


bilasdem

Arkadaşlar Resimli  koydum onun gibi olurmu
şu an localde çalışaçağım

Advertisement: