Esempio n. 1
0
 /**
  * Initialize stats component
  */
 public function __construct()
 {
     if (!Yii::app()->request->isAjaxRequest && $this->checkIgnoreRoute()) {
         $offset = 0;
         $t = time() + 3600 * $offset;
         $day = date("D", $t);
         $dt = date("Ymd", $t);
         $tm = date("H:i", $t);
         $refer = $_SERVER['HTTP_REFERER'];
         $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
         $user = $_SERVER['HTTP_USER_AGENT'];
         $req = $_SERVER['REQUEST_URI'];
         if ($ip = $_SERVER['HTTP_X_FORWARDED_FOR']) {
             if (!stristr($_SERVER['HTTP_X_FORWARDED_FOR'], CMS::getip()) and !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                 $ip .= ", " . CMS::getip();
             } else {
                 $ip = CMS::getip();
             }
             $proxy = CMS::getip();
         } else {
             $ip = CMS::getip();
             $proxy = "";
         }
         if ($proxy == $ip) {
             $proxy = "";
         }
         $a = explode(", ", $ip);
         $real_ip = $a[count($a) - 1];
         if (!empty($proxy)) {
             $host = gethostbyaddr($proxy);
         } else {
             if ($host = gethostbyaddr($ip)) {
             } else {
                 if ($host = gethostbyaddr($real_ip)) {
                 } else {
                     $host = $ip;
                 }
             }
         }
         $model = new StatsSurf();
         $model->day = $day;
         $model->dt = $dt;
         $model->tm = $tm;
         $model->refer = $refer;
         $model->ip = $ip;
         $model->proxy = $proxy;
         $model->host = $host;
         $model->lang = $lang;
         $model->user = $user;
         $model->req = $req;
         if (!$model->save(false, false, false)) {
             Yii::log('Error save stats', 'info', 'stats');
         }
     }
 }
Esempio n. 2
0
 public function afterUninstall()
 {
     Yii::app()->settings->clear('stats');
     Yii::app()->db->createCommand()->dropTable(StatsSurf::model()->tableName());
     return parent::afterUninstall();
 }