diff --git a/Action.php b/Action.php index bf03e76..d7fa0d7 100644 --- a/Action.php +++ b/Action.php @@ -24,9 +24,10 @@ class Access_Action implements Widget_Interface_Do public function writeLogs() { - $this->access->writeLogs($this->request->u); - $this->response->setStatus(206); - exit; + $image = base64_decode('R0lGODlhAQABAIAAAAAAAP///yH5BAQUAP8ALAAAAAABAAEAAAICRAEAOw=='); + $this->response->setContentType('image/gif'); + $this->access->writeLogs(null, $this->request->u, $this->request->cid, $this->request->mid); + echo $image; } public function ip() diff --git a/Plugin.php b/Plugin.php index 9681c86..dc9a17e 100644 --- a/Plugin.php +++ b/Plugin.php @@ -22,7 +22,7 @@ class Access_Plugin implements Typecho_Plugin_Interface { $msg = Access_Plugin::install(); Helper::addPanel(1, self::$panel, _t('Access控制台'), _t('Access插件控制台'), 'subscriber'); - Helper::addRoute("access_write_logs", "/access/log/write.json", "Access_Action", 'writeLogs'); + Helper::addRoute("access_track_gif", "/access/log/track.gif", "Access_Action", 'writeLogs'); Helper::addRoute("access_ip", "/access/ip.json", "Access_Action", 'ip'); Helper::addRoute("access_delete_logs", "/access/log/delete.json", "Access_Action", 'deleteLogs'); Typecho_Plugin::factory('Widget_Archive')->beforeRender = array('Access_Plugin', 'backend'); @@ -47,7 +47,7 @@ class Access_Plugin implements Typecho_Plugin_Interface $db->query("DROP TABLE `{$db->getPrefix()}access_log`", Typecho_Db::WRITE); } Helper::removePanel(1, self::$panel); - Helper::removeRoute("access_write_logs"); + Helper::removeRoute("access_track_gif"); Helper::removeRoute("access_ip"); Helper::removeRoute("access_delete_logs"); } @@ -181,7 +181,7 @@ class Access_Plugin implements Typecho_Plugin_Interface $config = Typecho_Widget::widget('Widget_Options')->plugin('Access'); if ($config->writeType == 0) { - $access->writeLogs(); + $access->writeLogs($archive); } } @@ -191,13 +191,15 @@ class Access_Plugin implements Typecho_Plugin_Interface * @access public * @return void */ - public static function frontend() + public static function frontend($archive) { $config = Typecho_Widget::widget('Widget_Options')->plugin('Access'); if ($config->writeType == 1) { $index = rtrim(Helper::options()->index, '/'); - echo '"; + $access = new Access_Core(); + $parsedArchive = $access->parseArchive($archive); + // TODO 兼容pjax + echo ""; } }