AutoCAD Günlüğü | » DMRY sayfa sayaç eklentisine haftalık sayaç eklemek ve saati yerel saate göre ayarlamak > AutoCAD, AutoLISP, AutoCAD Dersleri, Mekanik Tesisat, Bilgisayar, Yazılım, Özel Yazılım

DMRY sayfa sayaç eklentisine haftalık sayaç eklemek ve saati yerel saate göre ayarlamak


Yazar Eren Pala
Mesleği Makina Mühendisi YTÜ
   
web  
e-mail  

Bizimde içinde olduğumuz pek çok wordpress kullanıcı site istatistikleri için Hakan Demiray’ın yazdığı sayfa-sayaç adlı eklentiyi kullanıyor. Oldukça kullanışlı olan bu eklentinin bizim için yeterli olmadığını bir takım eksiklikleri olduğunu fark ettim. Ve bu eksiklikler için bir kaç basit değişiklik yaptım. Bu değişiklikleri sizinle paylaşmak istiyorum.

Sitemiz için hosting hizmetini Amerika da bulunana bir hosting firmasından alıyoruz. Bu sebepten dolayı aradaki 7 saatlik zaman farkından istatistiklerdeki okunma zamanlarında gece yarıları ve günün erken saatleri gözüküyordu. Bunu düzeltmek oldukça basit. Sayfa_sayac.php dosyasında

$tarih=time();’ ın

geçtiği satırı bulup kaç saniye değişiklik yapmak istiyorsanız o kadar eklemeniz yada çıkartmanız yeterli olacaktır. Bizim sorunumuz saatin bizimkinden 7 saat geri olmasaydı o sebepten aşağıda görüldüğü gibi 28800 (7×60x60) saniye ekledim.

$tarih=time()+28800;

Zaman farkı oluşmasının yanı sıra hali hazırda olan eklenti haftalık okunma oranlarını kaydetmiyordu. Bunun içinde bir kaç değişiklik yaparak bu hafta en çok okunanları kaydedip listeleme özelliği ekledim.

Bunun için ilk olarak SayfaSayacYukle fonksiyonunun içerisinde bulunan $db_sql değişkenine eşitlemiş sorguda ufak bir ekleme yaparak veritabanına sayac_hafta adında bir kolon daha eklemiş olacağız.

Aşağıdaki gibi olan değişkeni değiştirerek bir altta görüldüğü şekle getiriyoruz. Bu değişikliği yaptıktan sonra eklentiyi etkinleştirdiğimiz zaman otomatik olarak bizim istediğim şekilde bir tablo hazırlayacak. Eğer önceden kurulmuş bir eklentiniz varsa eski tablonuza elle yeni bir kolon eklemeniz gerekecek.

$db_sql="CREATE TABLE IF NOT EXISTS `$wpdb->sayfa_sayac` (
  `sayfaID` bigint(20) NOT NULL default ‘0′,
  `sayac_toplam` int(10) NOT NULL default ‘0′,
  `sayac_bugun` int(10) NOT NULL default ‘0′,
  `son_tarih` varchar(50) NOT NULL default ”,
  PRIMARY KEY  (`sayfaID`)

Değişikliğin yapılmış hali.

$db_sql="CREATE TABLE IF NOT EXISTS `$wpdb->sayfa_sayac` (
  `sayfaID` bigint(20) NOT NULL default ‘0′,
  `sayac_toplam` int(10) NOT NULL default ‘0′,
  `sayac_bugun` int(10) NOT NULL default ‘0′,
  `sayac_hafta` int(10) NOT NULL default ‘0′,
  `son_tarih` varchar(50) NOT NULL default ”,
  PRIMARY KEY  (`sayfaID`)

Şimdide sayfa sayaç fonksiyonu içerisinde yapmamız gereken değişikliklere bir göz atalım.

Fonksiyonun tanımında belirtilen değişkenler arasına , $hafta_okunma değişkenini de eklememiz gerekiyor.
Değişkenin eklenmiş hali.

function sayfa_sayac($sayac_arttir, $yonetici_okuma_say, $toplam_okunma, $bugun_okunma, $hafta_okunma, $bironceki_tarih, $tarih_format, $hepsinden_once, $metinden_once, $arada,  $metinden_sonra, $hepsinden_sonra)

Sonrasında $sayac değişkenine eşitlenen veritabanı sorgusunda sayac_bugun kolonundan yanına sayac_hafta kolonunu ekliyoruz. Eklenmiş hali aşağıdaki gibi.

$sayac = $wpdb->get_row("SELECT sayfaID, sayac_toplam, sayac_bugun, sayac_hafta, son_tarih FROM $wpdb->sayfa_sayac WHERE sayfaID = $id “);

$simdi_tarih ve $son_tarih değişkenlerinin sonrasına $simdi_hafta ve $son_hafta değişkelerini aşağıdaki gibi ekliyoruz.

$simdi_hafta = date("W",$tarih);
$son_hafta = date(”W”,$sayac->son_tarih);

if ($simdi_tarih ile başlayan satırdan sonra aşağıdaki satırı ekliyoruz. Bu şekilde yeni bir haftaya başlandığında sayacı sıfırlıyor.

if ($simdi_hafta > $son_hafta) $wpdb->get_row("update $wpdb->sayfa_sayac set sayac_hafta='0' where sayfaID = $id");

$sayac_SQL değişkeninide aşağıdaki gibi değiştiriyoruz. Bu şekilde sayaç her arttığında haftalık sayaçta bir artıyor.

$sayac_SQL = "UPDATE $wpdb->sayfa_sayac set sayac_toplam=(sayac_toplam+1) , sayac_bugun=(sayac_bugun+1) , sayac_hafta=(sayac_hafta+1)  , son_tarih=’$tarih’  WHERE sayfaID = $id “; 

$sayac_bugun = ile bnaşlayan satırın altına aşağıdaki satırı ekliyoruz.

$sayac_hafta = ($sayac_art == 1) ?  $sayac->sayac_hafta + 1 : $sayac->sayac_hafta;

Her yazının altında toplam ve günlük okunma bilgilerinin yanında haftalık okunma bilgisinin de gözükmesini istiyorsanız. $cikti .= ile başalayan satırlardan birisinin arasına aşağıdaki satırı ekliyoruz. Ben toplamdan sonra gözükmesini istediğim için toplamın aktarıldığı satırın sonrasına ekledim.

$cikti .= ($hafta_okunma==1) ? $metinden_once.'Bu hafta:'.$metinden_sonra. ' ' . $sayac_hafta . $arada : ' ';

BugunEnCokOkunanlar okunanlar fonksiyonunu kopyalayıp ismini BuhaftaEnCokOkunanlar yapıp içinde bir kaç değişiklikle aşağıdaki hale getirmek gerekiyor.

function BuhaftaEnCokOkunanlar($liste_uzunluk, $sayidan_once, $sayidan_sonra,
$hepsinden_once, $basliktan_once, $basliktan_sonra, $hepsinden_sonra) {
global $wpdb; 
$simdi_tarih = mktime(0,0,0,date(”m”),date(”j”),date(”Y”));
$son_tarih = mktime(23,59,59,date(”m”),date(”j”),date(”Y”));
$SQL = “SELECT t.sayfaID, t.sayac_hafta, y.post_title, y.guid FROM $wpdb->sayfa_sayac t, $wpdb->posts y where y.ID=t.sayfaID AND (t.son_tarih BETWEEN  $simdi_tarih AND $son_tarih) ORDER BY t.sayac_hafta DESC LIMIT 0, $liste_uzunluk”;
    $cikti = $hepsinden_once;
    $sonuclar = $wpdb->get_results($SQL);
if ($sonuclar) {
  foreach ($sonuclar as $sonuc) {
    $cikti .= $basliktan_once . “sayfaID) . “\” title=\”". $sonuc->post_title .”\”>” . $sonuc->post_title . $sayidan_once . $sonuc->sayac_hafta . $sayidan_sonra . “”. $basliktan_sonra;
  }
  $cikti .= $hepsinden_sonra;
  echo $cikti;
 }
}

Son olarak ta SayfaSayacGuncelle fonksiyonun içinde $sayac_hafta = 0; değişkenini eklemek gerekiyor.

Son hafta en çok okunan yazıları listelemek içinde aynı günlük en çok okunan yazılar için yaptığımıza benzer bir şekilde aşağıdaki fonksiyonu kullanıyoruz.

<?php BuhaftaEnCokOkunanlar(5, ' (', ')', '<ul>', '<li>', '</li>', '</ul>'); ?>

Eklentinin orjinal halini indirmek ve nasıl kullanıldığını öğrenmek için Hakan Demirayın sitesini ziyaret edebilirsiniz. Gerekli düzenlemelerin yapılmış haliyle eklentiyide bizim download köşemizden yada buradan çekebilirsiniz.

Benzer Yazılar

1 Star2 Stars3 Stars4 Stars5 Stars (3 oy, ortalama: 5)
Loading ... Loading ...

2 yorum “DMRY sayfa sayaç eklentisine haftalık sayaç eklemek ve saati yerel saate göre ayarlamak”

  • 1
    hakanNo Gravatar
    4 October 2006, Wednesday 10:10

    Eline sağlık abi hoş olmuş :)

  • 2
    MuhammedNo Gravatar
    7 December 2007, Friday 18:42

    Ben sayfa sayacı indirdim ama nasıl kullanacağımı bilmiyorum. Doğrusunu söylemek gerekirse bu programın sadece kodlarını söyleyebilir misiniz? Benim web site forum ögelerini kabul etmiyor. Ya da nasıl kullanacağım? Bana yardımcı olursanız sevinirim. Şimdiden Teşekkür ederim.

Yorum bırak