پارس جوم :: انجمن های تخصصی جوملا

نسخه‌ی کامل: مشکل با آمارگیر mod_vcnt
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
من mod_vcnt آمار گیر رو نصب کردم ولی همون تو امروز مونده بازدید هاش به دیروز وارد نمیشه و هی داره به تعداد امروز اضافه می کنه
چه کنم؟
قسمت کد زمان فک کنم اینه ببینید چشه؟
کد php:
<?php
/**
 * @Copyright
 *
 * @package        VCNT for Joomla 1.5 - helper.php
 * @author        Viktor Vogel {@link http://www.kubik-rubik.de}
 * @version        Version: 1.5-6 - 27-Sep-2010
 * @link        Project Site {@link http://www.kubik-rubik.de/joomla-hilfe/modul-vcnt-visitorcounter-joomla-1.5}
 *
 *    @license GNU/GPL
 *    This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
defined('_JEXEC') or die('Restricted access');

class 
mod_vcntHelper extends JObject
{
    protected 
$db;
    
    
// Konstruktor - Datenbankobjekt setzen
    
function __construct() 
    {
        
$this->set('db'JFactory::getDbo());
    }
    
    
// Funktion - Aufruf setzen
    
function count(&$params)
    {
        
$locktime     =    $params->get('locktime'60);
        
$nobots        =    $params->get('nobots');
        
$botslist    =    $params->get('botslist');
        
$noip         =     $params->get('noip');
        
$ipslist    =     $params->get('ipslist');
        
$sql        =    $params->get('sql');
        
        
$locktime    =    $locktime 60;
        
$now        =    time();
        
$ip            =    $_SERVER['REMOTE_ADDR'];
        
        
// Bots aussperren
        
$bot 0;
        if (
$nobots
        {
            if (isset(
$_SERVER['HTTP_USER_AGENT'])) 
            {
                
$agent $_SERVER['HTTP_USER_AGENT'];
                
$bots_array =  explode(","$botslist);
                foreach ( 
$bots_array as $e 
                {
                    if (
preg_match('/'.trim($e).'/i'$agent)) 
                    {
                        
$bot 1;
                    }
                }
            } 
            else 
// Nicht zählen, wenn kein User Agent übermittelt wird
            

                
$bot 1;
            }
        }
        
        
// IP-Adressen aussperren, Abfrage zur Absicherung
        
$iplock 0;
        if (
$noip
        {
            if (isset(
$_SERVER['REMOTE_ADDR'])) 
            {
                
$agent $_SERVER['REMOTE_ADDR'];
                
$bots_array explode(","$ipslist);
                foreach (
$bots_array as $e
                {    
                    if (
preg_match('/'.trim($e).'/i'$agent)) 
                    {
                        
$iplock 1;
                    }
                }
            } 
            else 
// Nicht zählen, wenn keine IP übermittelt wird
            

                
$iplock 1;
            }
        }
        
        
// Prüfen, ob SQL Tabelle bereits erstellt wurde
        
if ($sql
        {
            
$query "create table if not exists ".$this->db->nameQuote('#__vcnt')." (".$this->db->nameQuote('tm')." int not null, ip varchar(16) not null default '0.0.0.0')";
            
$this->db->setQuery($query);
            
$result $this->db->query();
        }
        
        
// Prüfen, ob IP bereits vorhanden und Reloadsperre abgelaufen
        
$query "select count(*) from ".$this->db->nameQuote('#__vcnt')." where ".$this->db->nameQuote('ip')." = ".$this->db->quote($ip)." and (".$this->db->nameQuote('tm')." + ".$this->db->quote($locktime).") > ".$this->db->quote($now);
        
$this->db->setQuery($query);
        
$result $this->db->query();
        
$items $this->db->loadResult();
        
        
// Aufruf zählen, wenn Bedingungen erfüllt sind
        
if (empty($items) AND ($bot == 0) AND ($iplock == 0)) 
        {
            
$query "insert into ".$this->db->nameQuote('#__vcnt')." (".$this->db->nameQuote('tm').", ".$this->db->nameQuote('ip').") values (".$this->db->quote($now).", ".$this->db->quote($ip).")";
            
$this->db->setQuery($query);
            
$result $this->db->query();
            
$e $this->db->getErrorMsg();
        }
        return;
    }
    
    
// Funktion - Aufrufe einlesen
    
function read(&$params)
    {
        
// Zeitangaben berechnen
        
$date JFactory::getDate();
        
$date->setOffset(JFactory::getApplication()->getCfg('offset'));
        
        
$day             =    $date->toFormat('%d');
        
$month            =    $date->toFormat('%m');
        
$year            =    $date->toFormat('%Y');
        
$daystart        =    mktime(0,0,0,$month,$day,$year);
        
$monthstart        =    mktime(0,0,0,$month,1,$year);
        
$weekday        =    $date->toFormat('%w');
        
$weekday--;
        if (
$weekday 0) { $weekday 7; }
        
$weekday        =    $weekday 24*60*60;
        
$weekstart        =    $daystart $weekday;
        
$yesterdaystart    =    $daystart - (24*60*60);
        
$preset            =     $params->get('preset'0);
        
        
// Besucherzahl nach Bereinigung ermitteln
        
$query "select cnt from ".$this->db->nameQuote('#__vcnt_pc');
        
$this->db->setQuery($query);
        
$result $this->db->query();
        
$pre2 $this->db->loadResult();
        
        
// Werte einlesen
        
$query "select count(*) from ".$this->db->nameQuote('#__vcnt');
        
$this->db->setQuery($query);
        
$result $this->db->query();
        
$all_visitors $this->db->loadResult();
        
$all_visitors += $preset;
        
$all_visitors += $pre2;

        
$query "select count(*) from ".$this->db->nameQuote('#__vcnt')." where ".$this->db->nameQuote('tm').">".$this->db->quote($daystart);
        
$this->db->setQuery($query);
        
$result $this->db->query();
        
$today_visitors $this->db->loadResult();

        
$query "select count(*) from ".$this->db->nameQuote('#__vcnt')." where ".$this->db->nameQuote('tm').">".$this->db->quote($yesterdaystart)." and ".$this->db->nameQuote('tm')."<".$this->db->quote($daystart);
        
$this->db->setQuery($query);
        
$result $this->db->query();
        
$yesterday_visitors $this->db->loadResult();

        
$query "select count(*) from ".$this->db->nameQuote('#__vcnt')." where ".$this->db->nameQuote('tm').">=".$this->db->quote($weekstart);
        
$this->db->setQuery($query);
        
$result $this->db->query();
        
$week_visitors $this->db->loadResult();

        
$query "select count(*) from ".$this->db->nameQuote('#__vcnt')." where ".$this->db->nameQuote('tm').">=".$this->db->quote($monthstart);
        
$this->db->setQuery($query);
        
$result $this->db->query();
        
$month_visitors $this->db->loadResult();

        
$ret = array($all_visitors$today_visitors$yesterday_visitors$week_visitors$month_visitors);
        return (
$ret);
    }
    
    
// Funktion - Datenbankbereinigung
    
function clean(&$params)
    {    
        
$sql        =    $params->get('sql');
        
        
$date        =    JFactory::getDate();
        
$date->setOffset(JFactory::getApplication()->getCfg('offset'));
        
$month        =    $date->toFormat('%m');
        
$year        =    $date->toFormat('%Y');
        
$monthstart    =    mktime(0,0,0,$month,1,$year);
        
        
// Prüfen, ob SQL Tabelle bereits erstellt wurde
        
if ($sql
        {
            
$query "create table if not exists ".$this->db->nameQuote('#__vcnt_pc')." (".$this->db->nameQuote('cnt')." int not null not null default '0')";
            
$this->db->setQuery($query);
            
$result $this->db->query();
        }
        
        
$query "select count(*) from ".$this->db->nameQuote('#__vcnt_pc');
        
$this->db->setQuery($query);
        
$result $this->db->query();
        
$numrows $this->db->loadResult();
        
        if (!
$numrows
        {
            
$query "insert into ".$this->db->nameQuote('#__vcnt_pc')." values(0)";
            
$this->db->setQuery($query);
            
$result $this->db->query();
        }
        
        
$cleanstart $monthstart - (8*24*60*60);
        
$query "select count(*) from ".$this->db->nameQuote('#__vcnt')." where ".$this->db->nameQuote('tm')."<".$this->db->quote($cleanstart);
        
$this->db->setQuery($query);
        
$result $this->db->query();
        
$oldrows $this->db->loadResult();
        if (
$oldrows
        {
            
$query "update ".$this->db->nameQuote('#__vcnt_pc')." set ".$this->db->nameQuote('cnt')."=".$this->db->nameQuote('cnt')."+".$this->db->quote($oldrows);
            
$this->db->setQuery($query);
            
$result $this->db->query();

            
$query "delete from ".$this->db->nameQuote('#__vcnt')." where ".$this->db->nameQuote('tm')."<".$this->db->quote($cleanstart);
            
$this->db->setQuery($query);
            
$result $this->db->query();
        }
        return;
    }
    
    
// Funktion - Popup Squeeze Box - modifizierte Version des Plugins Squeeze Them! Dimitris (http://www.joomla-guru.com/squeeze-them/squeeze-them-dimitris)
    
function popupSqueeze(&$params,$cwsession)
    {
        
$mainframe JFactory::getApplication();
        
JHTML::_('behavior.mootools');
        
JHTML::_('behavior.modal');
                
        
$cwsession        =    !$params->get('cwsession');
        
$url             =     $params->get('squeeze_url'); // Link eingeben - URL oder Grafik
        
$relativetoroot =     $params->get('squeeze_relativetoroot');
        
$width             =     $params->get('squeeze_width');
        
$height            =     $params->get('squeeze_height');

        
$cookietime        =     $params->get('squeeze_time'); // Cookie gesetzt für Dauer (Minuten)
        
$cOverlayOpacity =     $params->get('squeeze_opacity');
        
$ckey ''// Letzte Änderung des Inhaltes - Format: %d-%m-%Y
        
$enableonchange 0// Popup bei Änderungsdatum anzeigen
        
$cnocookies 0// Anzeigen, wenn Cookies deaktiviert - 1 = ja, 0 = nein
        
$cswf 0// SWF Film
        
$cookiename 'vcnt'// Cookiename
        
        
if (!$enableonchange) { $ckey "yes";}
        if (
$relativetoroot) { $url JURI::base().$url; }

        
$html '<script type="text/javascript">
                <!--
                function getCookie(c_name)
                {
                   if (document.cookie.length>0)
                     {
                     c_start=document.cookie.indexOf(c_name + "=");
                     if (c_start!=-1)
                       {
                       c_start=c_start + c_name.length+1;
                       c_end=document.cookie.indexOf(";",c_start);
                       if (c_end==-1) c_end=document.cookie.length;
                       return unescape(document.cookie.substring(c_start,c_end));
                       }
                     }
                   return "";
                }
                function setCookie(name,value,minutes)
                {
                   if (minutes) {
                      var date = new Date();
                      date.setTime(date.getTime()+(minutes*1000*60));
                      var expires = "; expires="+date.toGMTString();
                   }
                   else var expires = "";
                   document.cookie = name+"="+value+expires+"; path=/";
                }
                function checkCookie()
                {
                   showrightpane=getCookie(\''
.$cookiename.'\');
                   if ((showrightpane==null) || (showrightpane=="")) {
                     setCookie(\''
.$cookiename.'\',\'no\','.$cookietime.'); //set the default cookie value here
                   }
                }
                function showV() {
                    ' 
. ($cswf?'
                    var myel = new Element("div").adopt(
                        new Element("div",{"id":"squeeze_swf_pop"}).adopt(
                            new Element("h1").appendText("To watch this video... please get suitable Flash Player!"),
                            new Element("br"),
                            new Element("a",{"href":"http://www.adobe.com/go/getflashplayer"}).adopt(
                                new Element ("img",{"src":"http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif", "alt":"Get Adobe Flash player"})
                            )
                        )
                    );
                    ' 

                    
'var myel = new Element(\'a\',{\'href\':\''.$url.'\'});'
                    
) . '
                    SqueezeBox.fromElement(myel,{
                        size: {x: '
.$width.', y: '.$height.'},
                        overlayOpacity: ' 
. ((double)$cOverlayOpacity)/100.0 ',
                        handler: \''
.($cswf?'adopt':'iframe').'\',
                        iframePreload:true,
                        onOpen: function() {
                            '
.($cswf?'
                            swfobject.embedSWF("'
.$url.'", "squeeze_swf_pop", '.$width.', '.$height.', "9.0.0");
                            '
:'').'
                            if (window.ie6) { 
                              window.scrollTo(0,0);
                              var t=$(\'sbox-btn-close\'); var g = t.getStyle(\'background-image\');
                              if (g!="none") {
                                g = g.replace("url(\"","").replace("\")","");
                                t.setStyle("filter", \'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="\' + g + \'",sizingMethod="crop")\');
                                t.setStyle("background","none");
                                    t.setStyle("cursor","pointer");
                              }
                            }
                        },
                        onHide: function(){
                            setCookie(\''
.$cookiename.'\',\''.$ckey.'\','.$cookietime.');
                        }'
.($cswf?',
                        onClose: function(){
                            $(\'squeeze_swf_pop\').StopPlay();
                        }'
:'').'
                    });
                }
                function closeV() {
                    SqueezeBox.close();
                }
                checkCookie();
                            window.addEvent(\'domready\', function() {
                            v = getCookie(\''
.$cookiename.'\');
                            ' 
. ($cwsession 'showV();' '
                            if(!(' 
. ($cnocookies '' '(v==null) || (v == "") || ') . '(v=="'.$ckey.'")))
                            {
                                showV();
                            }
                            '
) . '
                 });
                 //--> 
                 </script>'
;
        
$mainframe->addCustomHeadTag($html);
    }
    
    
// Funktion - Popup JS Alert
    
function popupJSAlert(&$params,$all_visitors,$counterwinner,$cwnumber,$cwsession)
    {
        if (!isset(
$_SESSION['cwsessioncookie'])) 
        {
            
$_SESSION['cwsessioncookie'] = 0;
        }
        
        if (!
$cwsession
        {
            
$_SESSION['cwsessioncookie'] = 0;
        }
        
        if (empty(
$_SESSION['cwsessioncookie'])) 
        {    
            
$head '<script type="text/javascript">alert("' JText::_('JSALERT') . '");</script>';
            
$document =& JFactory::getDocument();
            
$document->addCustomTag($head);
        }
        
        if (
$cwsession
        {
            
$_SESSION['cwsessioncookie'] = 1;
        }
    }

افزونه ها تاریخ و زمان رو از تنظیمات جوملا میگریند و جوملا از سرور تنظیمات ساعت سایت رو در تنظیمات کلی درست کنید !
پس چرا این ماژول همش در تاریخ امروز می مونه؟ با توجه به اینکه ساعت و تاریخ سایتم مشکلی نداره؟
این افزونه را چند وقته نصب کردید ؟
این هم لینک دانلودش اگه میشه یه بررسی کنید مشکلشو بگید ممنون
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.



(۲۳-۵-۱۳۹۱ ۱۰:۲۴ صبح)Reza Ganji نوشته شده توسط: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
این افزونه را چند وقته نصب کردید ؟

دو سه روزه
به احتمال زیاد از سایت شما یا تنظیمات است و یا ممکن است سایت در مرورگر شما کش شده باشد.
در تاپیک قبلی من شما را در مورد امارگیرها راهنمایی کردم و میتونید از اون تاپیک برای راهنمایی استفاده کنید.
برای اطمینان از اخرین نسخه افزونه استفاده کنید و یا صبر کنید دوستان دیگر راهنمایی کنند.

نکته مهم شما می بایست ادرس سایت خود را قرار دهید تا دوستان بتونند ببینند و بررسی کنند .مشکلاتی که در لوکال پیش میایند و یا آدرس سایت قرار داده نشده قابل پشتیبانی نیستند.
از آخرین نسخه هم استفاده کردم ولی باز مشکل این داره که فقط بازدید امروز رو اضافه می کنه و دیروز نمیره!
ذخیره هم نشده!
اگه میشه دوستان نصبش کنند مشکلشو بگن چون این ماژول به دردم می خوره

دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

ممنون
کسی برای کمک نیست؟Quiet
شما روی 1.5 نصب کردید. من آخرین ورژن رو روی جوملا 2.5 نصب کردم مشکلی نداره.
به علاوه اینکه اون کدی که در بالا گذاشتید فکر نکنم مربوط به آخرین ورژنش باشه.
لینک مرجع