瀏覽代碼

[更新]添加友盟CNZZ统计脚本

Anyon 8 年之前
父節點
當前提交
ddeeec6b56
共有 2 個文件被更改,包括 27 次插入6 次删除
  1. 8 0
      application/admin/view/config.index.html
  2. 19 6
      extend/hook/FilterView.php

+ 8 - 0
application/admin/view/config.index.html

@@ -50,6 +50,14 @@
     </div>
 
     <div class="form-group">
+        <label class="col-sm-2 control-label">CNZZ <span class="nowrap">(友盟统计)</span></label>
+        <div class='col-sm-8'>
+            <input type="text" name="tongji_cnzz_key" maxlength="32" pattern="^[0-9]{10}$" title="请输入10位CNZZ统计应用ID" placeholder="请输入10位CNZZ统计应用ID" value="{:sysconf('tongji_cnzz_key')}" class="layui-input">
+            <p class="help-block">友盟统计应用ID,可以在<a target="_blank" href="https://web.umeng.com">友盟网站统计</a>申请并获取</p>
+        </div>
+    </div>
+
+    <div class="form-group">
         <label class="col-sm-2 control-label">BrowserIcon <span class="nowrap">(浏览器图标)</span></label>
         <div class='col-sm-8'>
             <img data-tips-image style="height:auto;max-height:32px;min-width:32px" src="{:sysconf('browser_icon')}"/>

+ 19 - 6
extend/hook/FilterView.php

@@ -26,19 +26,28 @@ use think\Request;
 class FilterView {
 
     /**
+     * 当前请求对象
+     * @var Request
+     */
+    protected $request;
+
+    /**
      * 行为入口
      * @param $params
      */
     public function run(&$params) {
-        $app = Request::instance()->root(true);
+        $this->request = Request::instance();
+        $app = $this->request->root(true);
         $replace = [
             '__APP__'    => $app,
-            '__SELF__'   => Request::instance()->url(true),
+            '__SELF__'   => $this->request->url(true),
             '__PUBLIC__' => strpos($app, EXT) ? ltrim(dirname($app), DS) : $app,
         ];
         $params = str_replace(array_keys($replace), array_values($replace), $params);
-        $this->baidu($params);
-        $this->cnzz($params);
+        if (!IS_CLI) {
+            $this->baidu($params);
+            $this->cnzz($params);
+        }
     }
 
     /**
@@ -46,7 +55,7 @@ class FilterView {
      * @param $params
      */
     public function baidu(&$params) {
-        if (!IS_CLI && ($key = sysconf('tongji_baidu_key'))) {
+        if (($key = sysconf('tongji_baidu_key'))) {
             $script = <<<SCRIPT
         <script>
             var _hmt = _hmt || [];
@@ -67,7 +76,11 @@ SCRIPT;
      * @param $params
      */
     public function cnzz(&$params) {
-        // @todo CNZZ统计
+        if (($key = sysconf('tongji_cnzz_key'))) {
+            $query = ['siteid' => $key, 'r' => $this->request->server('HTTP_REFERER'), 'rnd' => mt_rand(100000, 999999)];
+            $imgSrc = 'https://c.cnzz.com/wapstat.php?' . http_build_query($query);
+            $params = preg_replace('|</body>|i', "<img src='{$imgSrc}' style='display:block;position:absolute' width='0' height='9'/>\n    </body>", $params);
+        }
     }
 
 }