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:
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:
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:
$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:
// 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"> dnes je '."$this->sDen, ".date("j.").strftime(" $this->sMesic %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 si právě '.$this->mess1." ". $this->visits["count_today"]." ". $this->mess2.'</a>,'. $this->cele_datum .' </span>';}
}
?>
Komentáře
Nebyly přidány žádné komentáře.