Exemplo n.º 1
0
 public function actionIndex()
 {
     $this->pageName = Yii::t('StatsModule.default', 'BROWSERS');
     $this->breadcrumbs = array(Yii::t('StatsModule.default', 'MODULE_NAME') => array('/admin/shop'), $this->pageName);
     $stats = Yii::app()->stats->initRun();
     $zp = $stats['zp'];
     if ($this->sort == "hi") {
         $z = "SELECT req, COUNT(req) cnt FROM cms_surf WHERE";
         $z .= $zp . " AND dt >= '{$this->sdate}' AND dt <= '{$this->fdate}' GROUP BY req ORDER BY 2 DESC";
         $res = Yii::app()->db->createCommand($z)->queryAll();
         $z2 = "SELECT SUM(t.cnt) as cnt FROM (" . $z . ") t";
         $r = Yii::app()->db->createCommand($z2)->queryRow();
     } else {
         $z = "CREATE TEMPORARY TABLE IF NOT EXISTS tmp_surf SELECT ip, req FROM cms_surf WHERE";
         $z .= $zp . " AND dt >= '{$this->sdate}' AND dt <= '{$this->fdate}' GROUP BY ip, req";
         $z2 = "SELECT req, COUNT(req) cnt FROM tmp_surf GROUP BY req ORDER BY 2 DESC";
         $transaction = Yii::app()->db->beginTransaction();
         try {
             Yii::app()->db->createCommand($z)->execute();
             $transaction->commit();
         } catch (Exception $e) {
             $transaction->rollBack();
         }
         $res = Yii::app()->db->createCommand($z2)->queryAll();
         $z3 = "SELECT SUM(t.cnt) as cnt FROM (" . $z2 . ") t";
         $transaction2 = Yii::app()->db->beginTransaction();
         try {
             Yii::app()->db->createCommand($z)->execute();
             $transaction2->commit();
         } catch (Exception $e) {
             $transaction2->rollBack();
         }
         $r = Yii::app()->db->createCommand($z3)->queryRow();
     }
     $cnt = $r['cnt'];
     $k = 0;
     foreach ($res as $row) {
         if ($k == 0) {
             $max = $row['cnt'];
         }
         if ($row['req'] == "") {
             $row['req'] = "<font color=grey>неизвестно</font>";
         }
         $k++;
         $result[] = array('num' => $k, 'req' => Html::link($row['req'], $row['req'], array('traget' => '_blank')), 'h' => $row['cnt'], 'graphic' => "<img align=left src=/stats/px" . ($this->sort == "hi" ? "h" : "u") . ".gif width=" . ceil($row['cnt'] * 100 / $max) . " height=11 border=0>", 'pracent' => number_format($row['cnt'] * 100 / $cnt, 1, ',', ''), 'detail' => Html::link('>>>', "?pz=1&tz=1&item=req&s_date=" . StatsHelper::dtconv($this->sdate) . "&f_date=" . StatsHelper::dtconv($this->fdate) . "&qs=" . urlencode($row['req']) . "&sort=" . (empty($this->sort) ? "ho" : $this->sort), array('traget' => '_blank')));
     }
     $dataProvider = new CArrayDataProvider($result, array('sort' => array('attributes' => array('ip' => array('asc' => 'ip DESC', 'desc' => 'ip ASC'), 'refer' => array('asc' => 'refer DESC', 'desc' => 'refer ASC'))), 'pagination' => array('pageSize' => 10)));
     $this->render('index', array('dataProvider' => $dataProvider));
 }
Exemplo n.º 2
0
 public function actionIndex()
 {
     $this->pageName = Yii::t('StatsModule.default', 'MODULE_NAME');
     $this->breadcrumbs = array(Yii::t('StatsModule.default', 'MODULE_NAME') => array('/admin/shop'), $this->pageName);
     $result = array();
     $stats = Yii::app()->stats;
     $s = $stats->initRun();
     foreach (StatsMainh::model()->findAll(array('order' => '`t`.`i` ASC')) as $rw) {
         $dt_i = $rwz["dt"][] = $rw->dt;
         $rwz["cnt1"][$dt_i] = $rw->cnt1;
         $rwz["cnt2"][$dt_i] = $rw->cnt2;
         $rwz["cnt3"][$dt_i] = $rw->cnt3;
         $rwz["cnt4"][$dt_i] = $rw->cnt4;
         $rwz["cnt5"][$dt_i] = $rw->cnt5;
     }
     foreach (StatsMainp::model()->findAll() as $rww) {
         $dt_i = $rww["dt"] . $rww->god;
         $rwzz[$dt_i]["cnt1"] = $rww->cnt1;
         $rwzz[$dt_i]["cnt2"] = $rww->cnt2;
         $rwzz[$dt_i]["cnt3"] = $rww->cnt3;
         $rwzz[$dt_i]["cnt4"] = $rww->cnt4;
         $rwzz[$dt_i]["cnt5"] = $rww->cnt5;
     }
     $c = 0;
     $all_uniqs = 0;
     $all_hits = 0;
     $all_se = 0;
     $all_other = 0;
     $all_fix = 0;
     $sdate = 0;
     $r = Yii::app()->db->createCommand();
     $r->selectDistinct('day, dt');
     $r->from('cms_surf');
     $r->order('i DESC');
     $res = $r->queryRow(false);
     //$sql = "SELECT DISTINCT day,dt from cms_surf ORDER BY i";
     //$cmd = Yii::app()->db->createCommand($sql)->queryRow();
     //unset($res[count($res)-1]);
     $fdate = date('Ymd');
     foreach ($r->queryAll() as $dtm) {
         if (substr($sdate, 4, 2) != substr($dtm['dt'], 4, 2) and $sdate != 0) {
             $c++;
         }
         $sdate = $dtm['dt'];
         if ($dtm['dt'] != $fdate and !empty($rwz["cnt2"][$dtm['dt']])) {
             $m_uniqs[$dtm['dt']] = $rwz["cnt1"][$dtm['dt']];
             $m_hits[$dtm['dt']] = $rwz["cnt2"][$dtm['dt']];
         } else {
             //die(print_r($this->c_uniqs_hits($dtm[1]['dt'])));
             list($m_uniqs[$dtm['dt']], $m_hits[$dtm['dt']]) = $stats->countVisits($dtm['dt']);
         }
     }
     $sdate = $res['dt'];
     $i = 0;
     //mysql_data_seek($r, 0);
     $max_hits = max($m_hits);
     foreach ($r->queryAll() as $row) {
         $dt = $row['dt'];
         if ($dt != $fdate and isset($rwz["cnt3"][$dt])) {
             $m_se[$dt] = $rwz["cnt3"][$dt];
             $m_other[$dt] = $rwz["cnt4"][$dt];
             $m_fix[$dt] = $rwz["cnt5"][$dt];
         } else {
             $m_se[$dt] = $stats->countSearchEngine($dt);
             $m_other[$dt] = $stats->countOther($dt);
             if ($stats->fx) {
                 $m_fix[$dt] = $stats->countFix($dt);
             } else {
                 $m_fix[$dt] = 0;
             }
             //if (isset($rwz)) {
             if ($dt != $fdate and !in_array($dt, $rwz["dt"])) {
                 // die('save');
                 $sql_insert = "INSERT INTO cms_mainh(dt,cnt1,cnt2,cnt3,cnt4,cnt5) VALUES('" . $dt . "','" . $m_uniqs[$dt] . "','" . $m_hits[$dt] . "','" . $m_se[$dt] . "','" . $m_other[$dt] . "','" . $m_fix[$dt] . "')";
                 Yii::app()->db->createCommand($sql_insert)->execute();
                 $sql_del = "DELETE me FROM cms_mainh as me, cms_mainh as clone WHERE me.dt = clone.dt AND me.i > clone.i";
                 Yii::app()->db->createCommand($sql_del)->execute();
                 //mysql_query("INSERT INTO mainh(dt,cnt1,cnt2,cnt3,cnt4,cnt5) VALUES('" . $dt . "','" . $m_uniqs[$dt] . "','" . $m_hits[$dt] . "','" . $m_se[$dt] . "','" . $m_other[$dt] . "','" . $m_fix[$dt] . "')");
                 //mysql_query("DELETE me FROM mainh as me, mainh as clone WHERE me.dt = clone.dt AND me.i > clone.i");
             }
             // }
         }
         if ($m_uniqs[$dt] == $m_hits[$dt]) {
             $graphic = "<img src=/stats/pxu.gif width=" . ceil(372 * $m_uniqs[$dt] / $max_hits) . " height=11 border=0>";
         } else {
             $graphic = "<img src=/stats/pxu.gif width=" . round(372 * $m_uniqs[$dt] / $max_hits) . " height=11 border=0><img src=/stats/pxh.gif width=" . (ceil(372 * $m_hits[$dt] / $max_hits) - ceil(372 * $m_uniqs[$dt] / $max_hits) - 1) . " height=11 border=0>";
         }
         $result[] = array('date' => StatsHelper::$DAY[$row['day']] . StatsHelper::dtconv($dt), 'graphic' => $graphic, 'hosts' => Html::link($m_uniqs[$dt], '/admin/stats/detail/hosts/?date=' . $dt), 'hits' => Html::link($m_hits[$dt], '/admin/stats/detail/hits/?date=' . $dt), 'search' => Html::link($m_se[$dt], '/admin/stats/detail/search/?date=' . $dt), 'sites' => Html::link($m_other[$dt], '/admin/stats/detail/other/?date=' . $dt));
     }
     $dataProvider = new CArrayDataProvider($result, array('sort' => array('attributes' => array('date' => array('asc' => 'date DESC', 'desc' => 'date ASC'))), 'pagination' => array('pageSize' => 10)));
     $this->render('index', array('dataProvider' => $dataProvider));
 }
Exemplo n.º 3
0
        $k++;
        $vse += $val;
        echo "<tr>";
        echo "<td>{$k}</td>";
        if ($tm != "23") {
            $tm2 = $tm + 1;
        } else {
            $tm2 = "00";
        }
        if (strlen($tm2) == 1) {
            $tm2 = "0" . $tm2;
        }
        $par = $tm . ':00 - ' . $tm2 . ':00';
        $times[] = $par;
        $test[] = array('y' => (int) $val, 'url' => "?pz=1&item=tm&s_date=" . StatsHelper::dtconv($this->sdate) . "&f_date=" . StatsHelper::dtconv($this->fdate) . "&qs=" . $tm . ":&sort=" . (empty($this->sort) ? "ho" : $this->sort));
        echo "<td align=left><a target=_blank href=\"?pz=1&item=tm&s_date=" . StatsHelper::dtconv($this->sdate) . "&f_date=" . StatsHelper::dtconv($this->fdate) . "&qs=" . $tm . ":&sort=" . (empty($this->sort) ? "ho" : $this->sort) . "\">{$tm}:00 - {$tm2}:00</a></td>";
        echo "<td>{$val}</td>";
        echo "<td><img align=left src=/stats/px" . ($this->sort == "hi" ? "h" : "u") . ".gif width=" . ceil($val * 100 / $mmx) . " height=11 border=0></td>";
        echo "<td>" . number_format($val * 100 / $cnt, 1, '.', '') . "</td></tr>";
    }
    ?>

    </table>
    <?php 
} else {
    Yii::app()->tpl->alert('info', 'Нет данных');
}
$this->Widget('ext.highcharts.HighchartsWidget', array('scripts' => array('columnrange', 'modules/exporting', 'themes/grid'), 'options' => array('chart' => array('type' => 'column', 'animation' => false, 'backgroundColor' => array('linearGradient' => array(0, 0, 0, 500), 'stops' => array(array(0, 'rgb(255, 255, 255)'), array(1, 'rgb(200, 200, 255)')))), 'credits' => array('enabled' => false), 'exporting' => array('buttons' => array('contextButton' => array('menuItems' => array(array('text' => 'Export to PNG (small)', 'onclick' => 'js:function () {
                            this.exportChart({
                                width: 250
                            });
Exemplo n.º 4
0
?>
<table class="tDefault tMedia">
    <thead>
        <tr>
            <th>Дата</th>
            <th>Последние <?php 
echo $n;
?>
 других сайта</th>
            <th>Время / Страница</th>
        </tr>
    </thead>
    <?php 
foreach ($items as $ref) {
    echo "<tr>";
    echo "<td title=" . StatsHelper::$MONTH[substr($ref['dt'], 4, 2)] . ">" . StatsHelper::$DAY[$ref['day']] . StatsHelper::dtconv($ref['dt']) . "</td>";
    echo "<td class='textL'><a target=_blank href=\"" . $ref['refer'] . "\">";
    if (stristr(urldecode($ref['refer']), "xn--")) {
        $IDN = new idna_convert(array('idn_version' => 2008));
        echo $IDN->decode(urldecode($ref['refer']));
    } else {
        echo urldecode($ref['refer']);
    }
    echo "</a></td>";
    echo "<td class='textL'>" . $ref['tm'] . " <a target=_blank href=" . $ref['req'] . ">" . $ref['req'] . "</a></td></tr>";
}
?>

</table>
<?php 
Yii::app()->tpl->closeWidget();
Exemplo n.º 5
0
                break;
            case "mozilla.gif":
                echo "Mozilla";
                break;
            case "safari.png":
                echo "Apple Safari";
                break;
            case "mac.gif":
                echo "Macintosh";
                break;
            case "maxthon.png":
                echo "Maxthon (MyIE)";
                break;
            default:
                echo "другие";
                break;
        }
        echo "</a></td>";
        echo "<td>{$val}</td>";
        echo "<td><img align=left src=/stats/px" . ($this->sort == "hi" ? "h" : "u") . ".gif width=" . ceil($val * 100 / $mmx) . " height=11 border=0></td>";
        echo "<td>" . number_format($val * 100 / $cnt, 1, ',', '') . "</td>";
        echo "<td><a class=d target=_blank href=\"/admin/stats/browsers/view?pos=10&s_date=" . StatsHelper::dtconv($this->sdate) . "&f_date=" . StatsHelper::dtconv($this->fdate) . "&brw=" . (empty($brw) ? "другие" : $brw) . "&sort=" . (empty($this->sort) ? "ho" : $this->sort) . "\">&gt;&gt;&gt;</a></td></tr>";
    }
    ?>
 
</table>
<?php 
} else {
    Yii::app()->tpl->alert('info', 'Нет данных');
}
Yii::app()->tpl->closeWidget();
Exemplo n.º 6
0
</th>
        <th>График</th>
        <th>%</th>
    </tr>

    <?php 
foreach ($items as $row) {
    if ($row['user'] == "") {
        $row['user'] = "******";
    }
    if ($k == 0) {
        $max = $row['cnt'];
    }
    if ($k == $pos) {
        break;
    }
    $k++;
    $vse += $row['cnt'];
    echo '<tr>';
    echo "<td>{$k}</td>";
    echo "<td align=left style='overflow: hidden;text-overflow: ellipsis;'><a target=_blank href=\"?tz=1&pz=1&item=user&s_date=" . StatsHelper::dtconv($this->sdate) . "&f_date=" . StatsHelper::dtconv($this->fdate) . "&qs=" . $row['user'] . "&sort=" . (empty($this->sort) ? "ho" : $this->sort) . "\">" . $row['user'] . "</a></td>";
    echo "<td>" . $row['cnt'] . "</td>";
    echo "<td><img align=left src=/stats/px" . ($this->sort == "hi" ? "h" : "u") . ".gif width=" . ceil($row['cnt'] * 100 / $max) . " height=11 border=0></td>";
    echo "<td>" . number_format($row['cnt'] * 100 / $cnt, 1, ',', '') . "</td>";
    echo "</tr>";
}
?>

</table>
<?php 
Yii::app()->tpl->closeWidget();