Web sayfamız sadece phpBB 3.0.x sürümlerine destek vermektedir. Konu açmadan, ileti yazmadan önce lütfen site kuralları sayfamıza göz atınız.

[3.0.1] - Who Visited Last 24 hours [1.0.1B]

[3.0.1] - Who Visited Last 24 hours [1.0.1B]

İleti ALEXIS 05 Ağu 2007 16:45

Eklenti: Who Visited Last 24 hours
Sürüm: 1.0.1 BETA
Yazar: ALEXIS ( Sevdin Filiz )
Açıklama: index sayfasında, son 24 saat içinde siteyi ziyaret eden kişilerin listesini verir.

Uyumlu olduğu phpBB3 sürümleri:
  • phpBB 3.0.1

Özellikleri:
  • son 24 saat içinde siteyi ziyaret eden üyeleri, giriş saatleri açık belirterek ve grup renkler ile renklendirerek gösterir

Yazar notları:
Şu an sadece MySQL ve SqLite üstünde test edilmiştir

0.3.1B yenilikleri:
SQL sorguları sqlite için özelleşti

Dil eklemeleri:
en/common.php içine 1 yeni değer eklenmektedir.

Lisans: GNU General Public License v2

Kurulum zorluğu: Kolay
Kurulum süresi: 3 dakika
Dosya formatı: .txt
Dosya indirme: (aşağıdaki kod görünümünden kopyalayıp bir dosyaya kaydediniz)

Ön izleme:
(yakında eklenecektir)

Kod: Tümünü seç
##############################################################
## MOD Title: who visited last 24h
## MOD Author: angelside < n/a > (Sevdin Filiz) http://www.phpbbturkiye.net
## MOD Description: show who visited users today, showing how many users visited and visited dates.
## MOD Version: Beta: 1.0.1B
##
## Installation Level: Easy
## Installation Time: 3 minutes
##
## Files To Edit: 3
## -- includes/functions.php
## -- styles/prosilver/template/index_body.html
## -- language/en/common.php
##
## Included Files: n/a
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
##############################################################
## For security purposes, please check: http://www.phpbb.com/mods/
## for the latest version of this MOD. Although MODs are checked
## before being allowed in the MODs Database there is no guarantee
## that there are no security problems within the MOD. No support
## will be given for MODs not found within the MODs Database which
## can be found at http://www.phpbb.com/mods/
##############################################################
## Author Notes:
##
##############################################################
## MOD History:
##
## 2007-08-05 - Version 1.0.1b
## add sql_layer for sqlite
##
## 2007-08-03 - Version 1.0.0b
## fully rewrite and clean code for RC4
##
## 2007-05-29 - Version 0.3.0
## Added multi language support
##
## 2007-05-08 - Version 0.2.0
## Added date format from board config default date format...
##
## MOD History:
## 2007-04-24 - Version 0.1.0
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ OPEN ]------------------------------------------
#

includes/functions.php

#
#-----[ FIND ]------------------------------------------
#

// Which timezone?
$tz = ($user->data['user_id'] != ANONYMOUS) ? strval(doubleval($user->data['user_timezone'])) : strval(doubleval($config['board_timezone']));

#
#-----[ AFTER ADD ]------------------------------------------
#
//--- [ + ] --- who viseted last 24h ------------------------------------------
// added
//

/* ALEXIS
listeye girmesi için bir üyenin oturum kapaması gerek :S
bunu session tablosundan takip edebilir miyiz ?
*/

   $last_24 = strtotime('-1 day');

   if ($db->sql_layer === 'sqlite')
   {
      $sql = 'SELECT COUNT(user_id) as total_visits
        FROM (
          SELECT DISTINCT user_id
            FROM ' . USERS_TABLE . '
            WHERE user_type <> ' . USER_IGNORE . '
               AND user_lastvisit >=' . $last_24 .
        ')';
   }
   else
   {
      $sql = 'SELECT COUNT(DISTINCT user_id) as total_visits
            FROM ' . USERS_TABLE . '
            WHERE user_type <> ' . USER_IGNORE . '
               AND user_lastvisit >=' . $last_24;
   }
   
   $result = $db->sql_query($sql);
   $total_visits = (int) $db->sql_fetchfield('total_visits');
   $db->sql_freeresult($result);
   
   $template->assign_vars(array(
      'S_DISPLAY_LAST24H_USERLIST'   => ($total_visits) ? true : false, // if not have any visits hide complete block
      'LAST24H_WISITED_USER_COUNT'    => $total_visits,
      'WHO_WISITED_TODAY'            => $user->lang['WHO_WISITED_TODAY'],
   ));
   
   if ($total_visits)
   {
      $sql = 'SELECT user_id, username, user_type, user_colour, user_lastvisit
            FROM ' . USERS_TABLE . '
            WHERE user_type <> ' . USER_IGNORE .'
               AND user_lastvisit >=' . $last_24 . '
            ORDER BY user_colour DESC';
      $result = $db->sql_query($sql);
      
      $last24h_userlist = '';
      while ( $row = $db->sql_fetchrow($result) )
      {
         // + get user info
         $username   = $row['username'];
         $user_id   = (int) $row['user_id'];
         $colour      = $row['user_colour'];

         $last24h_user      = get_username_string('username', $user_id, $username, $colour);
         $last24h_color      = get_username_string('colour', $user_id, $username, $colour);
         $last24h_profile   = get_username_string('profile', $user_id, $username, $colour);
         // + get user info
         
         $last_visit = $user->format_date($row['user_lastvisit']);
         
         $last24h_link = "<a href=\"$last24h_profile\"><span style=\"color:$last24h_color;\"><strong>$last24h_user</strong></span></a>  ($last_visit)";
         $last24h_userlist = ($last24h_userlist) ? ', ' . $last24h_link : $last24h_link;

         $template->assign_block_vars('last24h', array(
            'LAST24H_USERLIST'    => $last24h_userlist,
         ));
      }
      $db->sql_freeresult($result);
   }
//
//--- [ - ] --- who viseted last 24h ------------------------------------------

#
#-----[ OPEN ]------------------------------------------
#

styles/prosilver/template/index_body.html

#
#-----[ FIND ]------------------------------------------
#

<!-- IF S_DISPLAY_ONLINE_LIST -->

#
#-----[ BEFORE, ADD ]------------------------------------------
#

<!-- IF S_DISPLAY_LAST24H_USERLIST -->
   <h3>{WHO_WISITED_TODAY} : {LAST24H_WISITED_USER_COUNT}</h3>
   <!-- BEGIN last24h -->{last24h.LAST24H_USERLIST}<!-- END last24h -->
<!-- ENDIF -->

#
#-----[ OPEN ]------------------------------------------
#

language/en/common.php

#
#-----[ FIND ]------------------------------------------
# page end

));

?>

#
#-----[ BEFORE, ADD ]------------------------------------------
#

   'WHO_WISITED_TODAY' => 'Who wisited last 24h',

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
En son sabri ünal tarafından, 02 May 2008 21:12 tarihinde değiştirildi, toplamda 3 değişiklik yapıldı.
Sebep: Dil dosyasında yapılan değişiklik düzeltildi.
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: [RC4]who visited last 24h [1.0.0B]

İleti sabri ünal 05 Ağu 2007 16:46

mod şablonuna uygun hale getirildi ve başlık sahibine iade edildi ;)
sabri ünal
kullanıcı
kullanıcı

Kullanıcı avatarı

İleti: 647
Kayıt: 06 Nis 2007 11:08
İsim: sabri ünal
HTML: İyi
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Başlangıç
Sürüm: phpbb3 CVS

Re: [RC4]who visited last 24h [1.0.0B]

İleti ALEXIS 05 Ağu 2007 17:38

COUNT komutunun bazı veritabanlarında çalışmadığını duymuştum, ama phpbb de buna rastlamadım, sadece birbirinden farklı satırları seçmek için kullanılan DISTINCT komutu sqlite için farklı bir şekilde kullanılmış.

Buna göre artık COUNT kullanırken şöyle kullanalım:

Kod: Tümünü seç
if ($db->sql_layer === 'sqlite')
{
   $sql = 'SELECT COUNT(session_ip) as num_guests
      FROM (
         SELECT DISTINCT s.session_ip
            FROM ' . SESSIONS_TABLE . ' s
            WHERE s.session_user_id = ' . ANONYMOUS . '
               AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) .
               $reading_sql .
      ')';
}
else
{
   $sql = 'SELECT COUNT(DISTINCT s.session_ip) as num_guests
      FROM ' . SESSIONS_TABLE . ' s
      WHERE s.session_user_id = ' . ANONYMOUS . '
         AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) .
      $reading_sql;
}
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: [RC4]who visited last 24h [1.0.1B]

İleti ALEXIS 05 Ağu 2007 18:02

1.0.1B, sqlite özelliklerini ekledim.
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: [RC4] who visited last 24h [1.0.1B]

İleti hadida 13 Ağu 2007 02:03

teşekkürler :)
hadida
kullanıcı
kullanıcı

İleti: 6
Kayıt: 05 Ağu 2007 16:45
İsim: erhan
HTML: Orta
CSS: Orta
PHP: Orta
phpBB3: Orta
Sürüm: phpbb3

Re: [RC4] who visited last 24h [1.0.1B]

İleti hadida 13 Ağu 2007 02:22

common dosyasına eklenecek yazıyı ?> bu işaretten önce koydum çalışıyo sorunsuz birde : çıkıyodu sadece index.body ye yazı ekledim oldu

uğraştım yaptım arkadaşlar yazıları ingilizce olarak yorumladım öyle oldu ancak :=)
hadida
kullanıcı
kullanıcı

İleti: 6
Kayıt: 05 Ağu 2007 16:45
İsim: erhan
HTML: Orta
CSS: Orta
PHP: Orta
phpBB3: Orta
Sürüm: phpbb3

Re: [RC4] who visited last 24h [1.0.1B]

İleti karmelon 13 Ağu 2007 21:42

Tek Sorguya indirilebiliyor. Sayac ekleyim tek sorgudada acılabiliyor.
karmelon
kullanıcı
kullanıcı

İleti: 23
Kayıt: 25 Tem 2007 22:46
İsim: Musa ASLAN
HTML: Çok iyi
CSS: İyi
PHP: Çok iyi
phpBB3: İyi
Sürüm: Phpbb Gold (3.0.0)

Re: [RC4] who visited last 24h [1.0.1B]

İleti Simuzer 06 Eyl 2007 23:52

Bu modu gerçek anlamda "günün ziyaretçileri" için, yani gece 00.00'dan sonra giriş yapan kullanıcıları listelemek için aşağıdaki şu değişikliği yapınız...


#
#-----[ AÇ ]------------------------------------------
#

includes/functions.php

#
#-----[ BUL ]------------------------------------------
#

Kod: Tümünü seç
$last_24 = strtotime('-1 day');


#
#-----[ BUNUNLA DEĞİŞTİR ]------------------------------------------
#

Kod: Tümünü seç
$last_24 = mktime (0,0,0,date("m") ,date("d"), date("Y"));
Simuzer
kullanıcı
kullanıcı

Kullanıcı avatarı

İleti: 1127
Kayıt: 28 Mar 2007 20:19
HTML: İyi
CSS: Orta
PHP: Başlangıç
phpBB3: Orta
Sürüm: 3.0.5

Re: [RC4] who visited last 24h [1.0.1B]

İleti WILT 06 Eyl 2007 23:58

Bir de, eklenti adında bir sorun var sanırım. "[RC4] who visited last 24h [1.0.1B]" yerine, "[RC4] who visited in last 24h [1.0.1B]" olması İngilizce olarak daha doğru. Ha eğer birleşik değil derseniz, "who visited" ve "last 24h" aralarına bir tire işareti konulabilir. :)

Umarım ukalalık ediyorum gibi gözükmüyordur, sadece belirtmek istedim.
WILT
kullanıcı
kullanıcı

Kullanıcı avatarı

İleti: 216
Kayıt: 11 Nis 2007 11:24
Konum: İstanbul
HTML: Çok iyi
CSS: Orta
PHP: Orta
phpBB3: Orta
Sürüm: phpBB3 RC1

Re: [RC4] who visited last 24h [1.0.1B]

İleti Dinçer 07 Eyl 2007 01:49

Wilt haklı. Hatta modun adı "visitors of the day" gibi bir şey olsa daha güzel olur.
Dinçer
kullanıcı
kullanıcı

İleti: 140
Kayıt: 13 Nis 2007 20:26
İsim: Dinçer
HTML: Çok iyi
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Orta
Sürüm: phpBB3

Sonraki

Eklenti Tanıtımları, Duyurular, Güncellemeler


Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

cron