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));
 }
 function getScaledSkillScore($studentId, $skillId, $debug = false)
 {
     // Special case for persistence, which has two parts that need to be scaled independently
     if ($skillId == "persistence") {
         // Scale the two parts indpendently, and weight them equally
         return ($this->getScaledSkillScore($studentId, "persistence_attempts", $debug) + $this->getScaledSkillScore($studentId, "persistence_watched", $debug)) / 2;
     }
     $scoreResults = Students::find(["columns" => "{$skillId}"]);
     $studentId = str_replace("'", "", $studentId);
     $rawScores = array_column($scoreResults->toArray(), "{$skillId}");
     $rawScore = Students::findFirst("email = '{$studentId}'")->{$skillId};
     $scaledScore = StatsHelper::calculateScaledScore($rawScores, $rawScore);
     if ($debug) {
         echo "All scores for skill {$skillId}: \n";
         foreach ($rawScores as $s) {
             echo "{$s}\n";
         }
         echo "Raw {$skillId} score for student {$studentId} is {$rawScore}, and scaled score is {$scaledScore}\n";
     }
     return round($scaledScore * 100) / 10;
 }
 public function actionDetail($detail)
 {
     $group = $_GET['group'];
     if (file_exists("detail.dat") and $group != "false") {
         $group = "true";
     }
     if ($group != "true") {
         echo "<table id=table align=center width=100% cellpadding=5 cellspacing=1 border=0><tr class=h><td width=35>Время</td><td>Referer</td><td width=90>IP-адрес <a class=d href=\"?detail=" . $detail . "&group=true\"\"\">&plusmn;</a></td><td>Хост</td><td>User-Agent</td><td>Страница</td></tr>";
         // $r = mysql_query("SELECT tm,refer,ip,proxy,host,lang,user,req FROM cms_surf WHERE dt='" . $detail . "' ORDER BY i DESC");
         $sql = "SELECT tm,refer,ip,proxy,host,lang,user,req FROM cms_surf WHERE dt='" . $detail . "' ORDER BY i DESC";
         $command = Yii::app()->db->createCommand($sql);
         foreach ($command->queryAll() as $row) {
             //while ($row = mysql_fetch_row($r)) {
             if ($s == "s2") {
                 $s = "s1";
                 echo "<tr class=s1>";
             } else {
                 $s = "s2";
                 echo "<tr class=s2>";
             }
             echo "<td>" . $row['tm'] . "</td>";
             echo "<td align=left style='overflow: hidden;text-overflow: ellipsis;'>";
             $refer = $this->Ref($row['refer']);
             if (is_array($refer)) {
                 list($engine, $query) = $refer;
                 if ($engine == "G" and !empty($query) and stristr($row['refer'], "/url?")) {
                     $row['refer'] = str_replace("/url?", "/search?", $row['refer']);
                 }
                 echo_se($engine);
                 if (empty($query)) {
                     $query = "<font color=grey>неизвестно</font>";
                 }
                 echo ": <a target=_blank href=\"" . $row['refer'] . "\">" . $query . "</a></td>";
             } else {
                 if ($refer == "") {
                     echo "<font color=grey>неизвестно</font>";
                 } else {
                     echo "<a target=_blank href=\"" . $row['refer'] . "\">";
                     if (stristr(urldecode($row['refer']), "xn--")) {
                         $IDN = new idna_convert(array('idn_version' => 2008));
                         echo $IDN->decode(urldecode($row['refer']));
                     } else {
                         echo urldecode($row['refer']);
                     }
                     echo "</a></td>";
                 }
             }
             if ($row['ip'] != "unknown") {
                 echo "<td><a target=_blank href=\"?item=ip&qs=" . $row['ip'] . "\">" . $row['ip'] . "</a>";
             } else {
                 echo "<td><font color=grey>неизвестно</font>";
             }
             if ($row['proxy'] != "") {
                 echo "<br><a target=_blank href=\"?item=ip&qs=" . $row['proxy'] . "\">через proxy</a>";
             }
             echo "</td>";
             if ($row['host'] == "") {
                 echo "<td><font color=grey>неизвестно</font>";
             } else {
                 echo "<td><a target=_blank href=\"http://www.tcpiputils.com/browse/ip-address/" . ($row['proxy'] != "" ? $row['proxy'] : $row['ip']) . "\">" . $row['host'] . "</a>";
             }
             if ($row['lang'] != "") {
                 echo "<br>Язык: " . (!empty(StatsHelper::$LANG[mb_strtoupper($row['lang'])]) ? StatsHelper::$LANG[mb_strtoupper($row['lang'])] : "<font color=grey>неизвестно</font>");
                 if (file_exists("/stats/flags/" . mb_strtolower(StatsHelper::$LANG[mb_strtoupper($row['lang'])]) . ".gif")) {
                     echo " <img align=absmiddle src=/stats/flags/" . mb_strtolower(StatsHelper::$LANG[mb_strtoupper($row['lang'])]) . ".gif width=16 height=12>";
                 }
             }
             echo "</td>";
             echo "<td align=left style='overflow: hidden;text-overflow: ellipsis;'>";
             if (!$this->is_robot($row['user'], $row['host'])) {
                 $brw = StatsHelper::GetBrowser($row['user']);
                 if ($brw != "") {
                     echo "<img src=/stats/browsers/{$brw} width=16 height=16 align=absmiddle> ";
                 }
             }
             echo $row['user'] . "</td>";
             echo "<td align=left style='overflow: hidden;text-overflow: ellipsis;' nowrap><a target=_blank href=" . $row['req'] . ">" . $row['req'] . "</a></td>";
             echo "</tr>";
         }
         echo "<tr class=h><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>";
         //norm(0);
     } else {
         echo "<table id=table align=center width=100% cellpadding=5 cellspacing=1 border=0><tr class=h><td width=90>IP-адрес <a class=d href=\"?detail=" . $detail . "&group=false\"\"\">&plusmn;</a></td><td>Хост</td><td>User-Agent</td><td width=30%>Referer</td><td width=35>Время</td><td>Страница</td></tr>";
         $sql = "SELECT tm,refer,ip,proxy,host,lang,user,req FROM cms_surf WHERE dt='" . $detail . "' ORDER BY i DESC";
         $command = Yii::app()->db->createCommand($sql);
         foreach ($command->queryAll() as $r) {
             //print_r($r);
             //die;
             //$rs = mysql_query("SELECT tm,refer,ip,proxy,host,lang,user,req FROM cms_surf WHERE dt='" . $detail . "' ORDER BY i DESC");
             // while ($r = mysql_fetch_row($rs))
             $row[$r['ip']][] = array($r['tm'], $r['refer'], $r['ip'], $r['proxy'], $r['host'], $r['lang'], $r['user']);
             foreach ($row as $ip => $val) {
                 if ($s == "s2") {
                     $s = "s1";
                     echo "<tr class=s1>";
                 } else {
                     $s = "s2";
                     echo "<tr class=s2>";
                 }
                 if ($ip != "unknown") {
                     echo "<td rowspan=" . count($val) . "><a target=_blank href=\"?item=ip&qs=" . $ip . "\">" . $ip . "</a>";
                 } else {
                     echo "<td><font color=grey>неизвестно</font>";
                 }
                 if ($val[0][2] != "") {
                     echo "<br><a target=_blank href=\"?item=ip&qs=" . $val[0][2] . "\">через proxy</a>";
                 }
                 echo "</td>";
                 $skip = 0;
                 foreach ($val as $k => $rw) {
                     if ($skip != 0) {
                         echo "<tr class=" . $s . ">";
                     }
                     $skip = 1;
                     if ($rw[3] == "") {
                         echo "<td><font color=grey>неизвестно</font>";
                     } else {
                         echo "<td><a target=_blank href=\"http://www.tcpiputils.com/browse/ip-address/" . ($rw[2] != "" ? $rw[2] : $ip) . "\">" . $rw[3] . "</a>";
                     }
                     if ($rw[4] != "") {
                         echo "<br>Язык: " . (!empty(StatsHelper::$LANG[mb_strtoupper($rw[4])]) ? $lang[mb_strtoupper($rw[4])] : "<font color=grey>неизвестно</font>");
                         if (file_exists("flags/" . mb_strtolower(StatsHelper::$LANG[mb_strtoupper($rw[4])]) . ".gif")) {
                             echo " <img align=absmiddle src=flags/" . mb_strtolower(StatsHelper::$LANG[mb_strtoupper($rw[4])]) . ".gif width=16 height=12>";
                         }
                     }
                     echo "</td>";
                     echo "<td align=left style='overflow: hidden;text-overflow: ellipsis;'>";
                     if (!$this->is_robot($rw[5], $rw[3])) {
                         $brw = StatsHelper::GetBrowser($rw[5]);
                         if ($brw != "") {
                             echo "<img src=browsers/{$brw} width=16 height=16 align=absmiddle> ";
                         }
                     }
                     echo $rw[5] . "</td>";
                     echo "<td align=left style='overflow: hidden;text-overflow: ellipsis;'>";
                     $refer = $this->Ref($rw[1]);
                     if (is_array($refer)) {
                         list($engine, $query) = $refer;
                         if ($engine == "G" and !empty($query) and stristr($rw[1], "/url?")) {
                             $rw[1] = str_replace("/url?", "/search?", $rw[1]);
                         }
                         echo_se($engine);
                         if (empty($query)) {
                             $query = "<font color=grey>неизвестно</font>";
                         }
                         echo ": <a target=_blank href=\"" . $rw[1] . "\">" . $query . "</a></td>";
                     } else {
                         if ($refer == "") {
                             echo "<font color=grey>неизвестно</font>";
                         } else {
                             echo "<a target=_blank href=\"" . $row[1] . "\">";
                             if (stristr(urldecode($rw[1]), "xn--")) {
                                 $IDN = new idna_convert(array('idn_version' => 2008));
                                 echo $IDN->decode(urldecode($rw[1]));
                             } else {
                                 echo urldecode($rw[1]);
                             }
                             echo "</a></td>";
                         }
                     }
                     echo "<td>" . $rw[0] . "</td>";
                     echo "<td align=left style='overflow: hidden;text-overflow: ellipsis;' nowrap><a target=_blank href=" . $rw[6] . ">" . $rw[6] . "</a></td>";
                     echo "</tr>";
                 }
             }
         }
         echo "<tr class=h><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>";
     }
 }
Example #4
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
                            });
Example #5
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();
Example #6
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();
Example #7
0
 запроса</th>
            <th>Время / Страница</th>
        </tr>
    </thead>
    <?php 
foreach ($items as $ref) {
    $refer = StatsHelper::Ref($ref['refer']);
    if (is_array($refer)) {
        list($engine, $query) = $refer;
        if ($engine == "G" and !empty($query) and stristr($ref['refer'], "/url?")) {
            $ref['refer'] = str_replace("/url?", "/search?", $ref['refer']);
        }
        echo "<tr>";
        echo "<td nowrap title=" . StatsHelper::$MONTH[substr($ref['dt'], 4, 2)] . ">" . StatsHelper::$DAY[$ref['day']] . StatsHelper::dtconv($ref['dt']) . "</td>";
        echo "<td align=center>";
        StatsHelper::echo_se($engine);
        if (empty($query)) {
            $query = "<font color=grey>неизвестно</font>";
        }
        echo "</td><td align=left style='overflow: hidden;text-overflow: ellipsis;'><a target=_blank href=\"" . $ref['refer'] . "\">" . $query . "</a></td>";
        echo "<td align=left style='overflow: hidden;text-overflow: ellipsis;' nowrap>" . $ref['tm'] . " <a target=_blank href=" . $ref['req'] . ">" . $ref['req'] . "</a></td></tr>";
    }
}
?>

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

Example #8
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();
Example #9
0
 public function getToday()
 {
     foreach (StatsMainh::model()->findAll() 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;
     }
     list($s_date, $f_date) = str_replace("+", "", array('13.03.2015', '15.03.2015'));
     $sdate = StatsHelper::dtconv2(trim($s_date));
     $fdate = StatsHelper::dtconv2(trim($f_date));
     /* if ($robots = file(Yii::getPathOfAlias('webroot.stats') . "/robots.dat")) {
        $i = 0;
        for ($i = 0; $i < count($robots); $i++)
        $robots[$i] = iconv("CP1251", "UTF-8", $robots[$i]);
        foreach ($robots as $val) {
        list($rb1, $rb2) = explode("|", $val);
        $rb2 = trim($rb2);
        $this->rbd[$i++] = rtrim($rb1);
        if (!empty($rb2))
        $rbdn[$rb2][] = rtrim($rb1);
        $robo[] = $rb2;
        }
        }
        if ($hosts = file(Yii::getPathOfAlias('webroot.stats') . "/hosts.dat")) {
        $i = 0;
        for ($i = 0; $i < count($hosts); $i++)
        $hosts[$i] = iconv("CP1251", "UTF-8", $hosts[$i]);
        foreach ($hosts as $val) {
        list($hb1, $hb2) = explode("|", $val);
        $hb2 = trim($hb2);
        $hbd[$i++] = rtrim($hb1);
        if (!empty($hb2))
        $hbdn[$hb2][] = rtrim($hb1);
        $robo[] = $hb2;
        }
        }
        $this->robo = array_unique($robo); */
     $iniRun = $this->initRun();
     $this->rbd = $iniRun['rbd'];
     $hbd = $iniRun['hbd'];
     foreach ($this->rbd as $val) {
         $zp .= " LOWER(user) NOT LIKE '%" . mb_strtolower($val) . "%' AND";
     }
     if (filesize(Yii::getPathOfAlias('webroot.stats') . "/hosts.dat")) {
         foreach ($hbd as $val) {
             $zp .= " LOWER(host) NOT LIKE '%" . mb_strtolower($val) . "%' AND";
         }
     }
     $zp .= " LOWER(user) NOT LIKE '' AND";
     if (file_exists(Yii::getPathOfAlias('webroot.stats') . "/skip.dat")) {
         if ($skip = file(Yii::getPathOfAlias('webroot.stats') . "/skip.dat")) {
             foreach ($skip as $vl) {
                 list($s1, $s2) = explode("|", $vl);
                 $zp2 .= " {$s1} NOT LIKE '%" . rtrim($s2) . "%' AND";
             }
         }
     }
     $zp .= $zp2;
     $this->_zp = substr($zp, 0, -4);
     if ($se_m = file(Yii::getPathOfAlias('webroot.stats') . "/se.dat")) {
         for ($i = 0; $i < count($se_m); $i++) {
             $se_m[$i] = iconv("CP1251", "UTF-8", $se_m[$i]);
         }
         foreach ($se_m as $vl) {
             list($s1, $s2, $s3) = explode("|", $vl);
             $se_n[$s1] = rtrim($s3);
             $se_nn[$s1] = $s2;
         }
     }
     if (file_exists(Yii::getPathOfAlias('webroot.stats') . "/fix.dat")) {
         if ($fx_m = file(Yii::getPathOfAlias('webroot.stats') . "/fix.dat")) {
             $this->_zfx = "";
             $pf = "";
             for ($i = 0; $i < count($fx_m); $i++) {
                 $fx_m[$i] = iconv("CP1251", "UTF-8", $fx_m[$i]);
             }
             foreach ($fx_m as $vl) {
                 list($s1, $s2, $s3) = explode("|", $vl);
                 $this->_zfx .= $pf . "LOWER(" . $s1 . ") LIKE '%" . mb_strtolower($s2) . "%'";
                 $pf = " OR ";
                 $s3 = rtrim($s3);
                 if (!empty($s3)) {
                     $fxn[$s3][] = $s1 . "|" . $s2;
                 }
                 $fxo[] = $s3;
             }
         }
     }
     foreach ($se_nn as $val) {
         $this->_cse_m .= " OR LOWER(refer) LIKE '%{$val}%'";
         $this->_cot_m .= " AND LOWER(refer) NOT LIKE '%{$val}%'";
     }
     $c = 0;
     $sdate = 0;
     $all_uniqs = 0;
     $all_hits = 0;
     $all_se = 0;
     $all_other = 0;
     $all_fix = 0;
     // $r = Yii::app()->db->createCommand();
     // $r->selectDistinct('day, dt');
     // $r->from('cms_surf');
     // $r->order('i');
     $i = 0;
     //$res1 = $r->queryRow();
     //  $fdate = $res1['dt'];
     $visits = $this->visits(date('Ymd'));
     $system = $this->visitSystem(date('Ymd'));
     return array('hosts' => $visits['hosts'], 'hits' => $visits['hits'], 'search' => $system['search'], 'sites' => $system['sites']);
 }
 public function actionView()
 {
     $this->pageName = 'dsadsa';
     $pos = $_GET['pos'];
     $engin = $_GET['engin'];
     $dy = $_GET['dy'];
     $domen = $_GET['domen'];
     $brw = $_GET['brw'];
     $str_f = $_GET['str_f'];
     $qq = $_GET['qq'];
     $vse = 0;
     $k = 0;
     if (empty($pos)) {
         $pos = 99999;
     }
     if ($this->sort == "hi") {
         $sql = "SELECT user, COUNT(user) cnt FROM cms_surf WHERE";
         if (!empty($str_f)) {
             $sql .= " user LIKE '%{$str_f}%' AND";
         }
         //StatsHelper::GetBrw($brw)
         $sql .= $this->_zp . " AND dt >= '{$this->sdate}' AND dt <= '{$this->fdate}' " . (isset($brw) ? StatsHelper::GetBrw($brw) : "") . " GROUP BY user ORDER BY 2 DESC";
         //$res = mysql_query($z);
         $res = Yii::app()->db->createCommand($sql);
         $full_sql = "SELECT SUM(t.cnt) as cnt FROM (" . $sql . ") t";
         $r = Yii::app()->db->createCommand($full_sql);
     } else {
         $sql = "CREATE TEMPORARY TABLE tmp_surf SELECT ip, user FROM cms_surf WHERE";
         if (!empty($str_f)) {
             $sql .= " user LIKE '%{$str_f}%' AND";
         }
         $sql .= $this->_zp . " AND dt >= '{$this->sdate}' AND dt <= '{$this->fdate}' " . (isset($brw) ? StatsHelper::GetBrw($brw) : "") . " GROUP BY ip" . (!isset($brw) ? ",user" : "");
         $sql2 = "SELECT user, COUNT(user) cnt FROM tmp_surf GROUP BY user ORDER BY 2 DESC";
         $res = Yii::app()->db->createCommand($sql);
         $transaction = Yii::app()->db->beginTransaction();
         try {
             Yii::app()->db->createCommand($sql2)->execute();
             $transaction->commit();
         } catch (Exception $e) {
             $transaction->rollBack();
         }
         $z3 = "SELECT SUM(t.cnt) as cnt FROM (" . $sql2 . ") t";
         $transaction2 = Yii::app()->db->beginTransaction();
         try {
             Yii::app()->db->createCommand($sql)->execute();
             $transaction2->commit();
         } catch (Exception $e) {
             $transaction2->rollBack();
         }
         $r = Yii::app()->db->createCommand($z3);
     }
     $smd = $r->queryRow();
     $cnt = $smd['cnt'];
     if (!empty($brw)) {
         switch ($brw) {
             case "ie.png":
                 $browserName = "MS Internet Explorer";
                 break;
             case "opera.png":
                 $browserName = "Opera";
                 break;
             case "firefox.png":
                 $browserName = "Firefox";
                 break;
             case "chrome.png":
                 $browserName = "Google Chrome";
                 break;
             case "mozilla.gif":
                 $browserName = "Mozilla";
                 break;
             case "safari.png":
                 $browserName = "Apple Safari";
                 break;
             case "mac.gif":
                 $browserName = "Macintosh";
                 break;
             case "maxthon.png":
                 $browserName = "Maxthon (MyIE)";
                 break;
             default:
                 $browserName = "другие";
                 break;
         }
     }
     $this->render('view', array('items' => $res->queryAll(), 'cnt' => $cnt, 'max' => $max, 'browserName' => $browserName, 'vse' => $vse, 'k' => $k, 'pos' => $pos));
 }
Example #11
0
 public function actionHosts($date)
 {
     $this->pageName = 'Hosts';
     $stats = Yii::app()->stats->initRun();
     $zp = $stats['zp'];
     $sql = "SELECT tm,refer,ip,proxy,host,lang,user,req from cms_surf WHERE dt='" . $date . "' AND " . $zp . " GROUP BY ip ORDER BY i DESC";
     $cmd = Yii::app()->db->createCommand($sql);
     $result = array();
     foreach ($cmd->queryAll(false) as $row) {
         $refer = StatsHelper::Ref($row[1]);
         if (is_array($refer)) {
             list($engine, $query) = $refer;
             $refer1 = StatsHelper::checkSearchEngine($row[1], $engine, $query);
         } else {
             $refer1 = StatsHelper::checkIdna($row);
         }
         $result[] = array('time' => $row[0], 'refer' => $refer1, 'ip' => StatsHelper::getRowIp($row[2], $row[3]), 'host' => StatsHelper::getRowHost($row[2], $row[3], $row[4], $row[5]), 'user_agent' => StatsHelper::getRowUserAgent($row[6], $row[1]), 'timelink' => Html::link($row[7], $row[7]));
     }
     $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'), 'time' => array('asc' => 'time DESC', 'desc' => 'time ASC'))), 'pagination' => array('pageSize' => 10)));
     $this->render('hosts', array('dataProvider' => $dataProvider));
 }