<?php echo _title;?> www.prochazka.zde.cz
www.ccsinfo.com/CEH
Server si právě čte 153 lidí, dnes je úterý, 26. Listopad 2024   
Kategorie: Programy, PHP, RS SunLight

Počitadlo online v1.0.1.

icons pic Modul pro RS (redakční systém) SunLight CMS 7.5.x. na zobrazení online uživatelů.

Tento skript není žádný HCM modul. Je to rozšíření template souboru o počitadla denního a celkového počtu přístupu návštěvníku a počtu navštívených stránek.

Primárně je tento objekt určen pro umístění do aktuálního template souboru \plugins\templates\*****\hacesoft_module\scripty, kde hvězdičky nahradíte názvem template souboru.

Stáhnout pocitadlo_online modul: pocitadlo_online verze 1.0.1.

Instalace: na server nahrajte adresař install_pocitahlo. Do prohlížeče zadejte adresu umístění\install_pocitadlo\index.php. Postupujte podle instrukcí průvodce. Tento skript nastaví potřebné údaje v databázi. Po úspěšné instalaci, odstraňte adresář install_pocitadlo.

Do template souboru vložte následující kód, pro inicializaci objektu:

PHP code
define("default_path","./plugins/templates/"._template);
define("default_path_module", default_path."/hacesoft_module");

require(default_path_module."/scripty/pocitadlo_objekt.php");
$pocitadlo = new counter_ha(getenv('REMOTE_ADDR')); //inicializace pocitadla
 

Pro zobrazení výsledku použijte následující kód:

PHP code
echo $pocitadlo->sFullTextPocitadlo;

Když prostudujete objekt, zjistíte, že obsahuje tabulky se jmény týdne a měsíce. Je to dáno tím, že ne každý web je korektně nastaven a změny nelze lehce provést. A pak máte výsledek třeba v angličtině. Místo složitého testování, je jednodušší vytvořit převodní tabulky přímo v kódu. Příkaz echo $pocitadlo->sFullTextPocitadlo zobrazí podobný výsledek jako: Server si právě čte 25 lidí, dnes je neděle, 12. Květen 2013

Pro zobrazení počtu návštěvníků a zobrazených stránek použijte následující fragment kódu:

PHP code
$sBuffer ="<br /> Jste návštevník číslo: ";
$sBuffer .= $pocitadlo->visits["count_all"];
$sBuffer .="<br /> Celkem zobrazeno stránek: ";
$sBuffer .= $pocitadlo->visits["count_page"];
echo $sBuffer;

Poznámka k aktualizaci počitadel: u všech počitadel kromě zobrazení stránek je nastaven timeout na 24 hodin.

Kód pocitadlo_objekt.php:

PHP code
<?php
// Autor www.prochazka.zde.cz
// verze souboru  v1.0.1.
// dne 13.04.2013 - vytvoreni modulu

class counter_ha {
    Private $nazev_tabulky_counts="";
    Private $nazev_tabulky_items="";
    Private $day_today;
    Private $row;
    Private $day_x="";
    Private $sDen="xx";
    Private $sMesic="xx";
    Private $mess1='čte';
    Private $mess2='lidí';
    public $sNameTable_counts ="counts";
    public $sNameTable_items ="items";
    public $ip_now="";
    public $day_now;
    public $visits = array();
    public $cele_datum="";
    public $sFullTextPocitadlo;
   
    public function __construct($ip_now=""){
    if(!defined('_core')) exit;
    $this->ip_now = $ip_now;
    $this->day_now = date("d" ,time());  
    $this->nazev_tabulky_counts = _mysql_prefix."-pocitadlo-".$this->sNameTable_counts;
    $this->nazev_tabulky_items = _mysql_prefix."-pocitadlo-".$this->sNameTable_items;
    $this->DataBind();
    $this->online();}
         
    private function DataBind (){
        $this->day_today = DB::query_row("SELECT `day_today` FROM `$this->nazev_tabulky_counts` WHERE `id` = '0' LIMIT 1");
        if($this->day_today['day_today'] <> $this->day_now){ //novy den
            DB::query("UPDATE `$this->nazev_tabulky_counts` SET `count_today` = '0', `day_today` = '$this->day_now' WHERE `id` = '0'");
            DB::query("DELETE FROM `$this->nazev_tabulky_items` WHERE `day` <> '$this->day_now';");}
               
        $this->row = DB::query_row("SELECT * FROM `$this->nazev_tabulky_items` WHERE `ip` = '$this->ip_now' ;");
        if ($this->row == 0){ //novy ucastnik
            DB::query("INSERT IGNORE INTO `$this->nazev_tabulky_items` VALUES ('$this->ip_now', '$this->day_now') ;");
            DB::query("UPDATE `$this->nazev_tabulky_counts` SET `count_all` = `count_all` + '1', `count_today` = `count_today` + '1', `count_page` = `count_page` + '1' WHERE `id` = '0' ;");}
        else{   //stary ucastnik
                DB::query("UPDATE `$this->nazev_tabulky_counts` SET `count_page` = `count_page` + '1' WHERE `id` = '0' ;");
            }
        $this->visits = DB::query_row("SELECT `count_all`,`count_today`,`count_page` FROM `$this->nazev_tabulky_counts` WHERE `id` = '0' ;");}
       
   private function online(){
        switch (strftime("%w")) {
            case 1: $this->sDen ="pondělí"; break;
            case 2: $this->sDen ="úterý"; break;
            case 3: $this->sDen ="středa"; break;
            case 4: $this->sDen ="čtvrtek"; break;
            case 5: $this->sDen ="pátek"; break;
            case 6: $this->sDen ="sobota"; break;
            case 0: $this->sDen ="neděle"; break;}

        switch (strftime("%m")) {
            case 1: $this->sMesic ="Leden"; break;
            case 2: $this->sMesic ="Únor"; break;
            case 3: $this->sMesic ="Březen"; break;
            case 4: $this->sMesic ="Duben"; break;
            case 5: $this->sMesic ="Květen"; break;
            case 6: $this->sMesic ="Červen"; break;
            case 7: $this->sMesic ="Červenec"; break;
            case 8: $this->sMesic ="Srpen"; break;
            case 9: $this->sMesic ="Září"; break;
            case 10: $this->sMesic ="Říjen"; break;
            case 11: $this->sMesic ="Listopad"; break;
            case 12: $this->sMesic ="Prosinec"; break;}    
        $this->cele_datum = '<span class="online_text">&nbsp;dnes&nbsp;je&nbsp;'."$this->sDen, ".date("j.").strftime("&nbsp;$this->sMesic&nbsp;%Y");  

        if ($this->visits["count_today"]<5)
          if ($this->visits["count_today"]>1){$this->mess1='čtou'; $this->mess2='lidí';}

          else{
            $this->mess2='ty'; // vyskloňovat podle počtu uživatelů
            $this->mess1='čteš'; $this->visits["count_today"] = 'jen';}
           $this->sFullTextPocitadlo ='<a title="Autor scriptu OnLine Uzivatelu je Pavel Procházka. Kontakt: www.prochazka.zde.cz" href="http://prochazka.zde.cz">Server&nbsp;si&nbsp;právě&nbsp;'.$this->mess1."&nbsp;". $this->visits["count_today"]."&nbsp;". $this->mess2.'</a>,'. $this->cele_datum .'&nbsp;&nbsp;&nbsp;</span>';}                
}
?>

print Formát pro tisk

Komentáře rss

Přidat komentář >

Nebyly přidány žádné komentáře.

Všechny informace jsou zahrnuty pod GPL licenci, pokud není explicitně uveden jiný typ licence.
Používání těchto stránek ke komerčním účelům lze jen se souhlasem autora.
Všechna práva vyhrazena (c) 1997 - 2024 hacesoft.
Jste návštevník číslo: 445359
Celkem zobrazeno stránek: 17749245
Přihlásit do administrace