diff options
author | robocoder <anthon.pang@gmail.com> | 2009-12-03 05:50:14 +0300 |
---|---|---|
committer | robocoder <anthon.pang@gmail.com> | 2009-12-03 05:50:14 +0300 |
commit | 1d7c03d06eb288bd1461493250c2831dd0b48fc7 (patch) | |
tree | 6a42af5d4b2cee76e28f24194f59fde2d490335c /plugins/Live/Controller.php | |
parent | bfcdf825fcfefb4dd411db76fadbc488a2f6618f (diff) |
refs #44 - check in updated Live plugin by jr-ewing
git-svn-id: http://dev.piwik.org/svn/trunk@1621 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins/Live/Controller.php')
-rw-r--r-- | plugins/Live/Controller.php | 138 |
1 files changed, 118 insertions, 20 deletions
diff --git a/plugins/Live/Controller.php b/plugins/Live/Controller.php index 5c60d5a6e3..a58cf3f7a3 100644 --- a/plugins/Live/Controller.php +++ b/plugins/Live/Controller.php @@ -16,42 +16,140 @@ */ class Piwik_Live_Controller extends Piwik_Controller { - function widget() + + function __construct() { - $view = Piwik_View::factory('index'); + parent::__construct(); + $this->idSite = Piwik_Common::getRequestVar('idSite'); + $this->minIdVisit = Piwik_Common::getRequestVar('minIdVisit', 0, 'int'); + } + + function index() + { + $view = Piwik_View::factory('index'); $this->setGeneralVariablesView($view); - $view->visitors = $this->getLastVisits($fetch = true); + $view->visitors = $this->getLastVisitsStart(true); + echo $view->render(); + } + + public function widget($fetch = false) + { + $view = Piwik_View::factory('index'); + $this->setGeneralVariablesView($view); + $view->visitorsCountHalfHour = $this->getUsersInLastXMin(30); + $view->visitorsCountToday = $this->getUsersInLastXDays(1); + $view->pisHalfhour = $this->getPageImpressionsInLastXMin(30); + $view->pisToday = $this->getPageImpressionsInLastXDays(1); + $view->visitors = $this->getLastVisitsStart($fetch = true); + + echo $view->render(); } - function getLastVisits($fetch = false) + public function getLastVisitsDetails($fetch = false) { - $idSite = Piwik_Common::getRequestVar('idSite', null, 'int'); - $minIdVisit = Piwik_Common::getRequestVar('minIdVisit', 0, 'int'); - $limit = 10; - $api = new Piwik_API_Request("method=Live.getLastVisits&idSite=$idSite&limit=$limit&minIdVisit=$minIdVisit&format=php&serialize=0&disable_generic_filters=1"); + $view = Piwik_ViewDataTable::factory(''); + $view->init( $this->pluginName, + __FUNCTION__, + 'Live.getLastVisitsDetails', + 'getPagesFromVisitId'); + +// All colomns in DB which could be shown +//'ip', 'idVisit', 'countActions', 'isVisitorReturning', 'country', 'countryFlag', 'continent', 'provider', 'providerUrl', 'idSite', +//'serverDate', 'visitLength', 'visitLengthPretty', 'firstActionTimestamp', 'lastActionTimestamp', 'refererType', 'refererName', +//'keywords', 'refererUrl', 'searchEngineUrl', 'searchEngineIcon', 'operatingSystem', 'operatingSystemShortName', 'operatingSystemIcon', +//'browserFamily', 'browserFamilyDescription', 'browser', 'browserIcon', 'screen', 'resolution', 'screenIcon', 'plugins', 'lastActionDateTime', +//'serverDatePretty', 'serverTimePretty', 'actionDetails' + + $view->setColumnsToDisplay( array('label', 'idVisit', 'serverDatePretty', 'serverTimePretty', 'ip', 'countActions', 'visitLengthPretty', 'keywords', 'refererUrl', + 'operatingSystemShortName', 'browser', 'screen', 'resolution', 'plugins' + ) ); + $view->disableSort(); + $view->setLimit(10); + $view->disableExcludeLowPopulation(); + $view->setSortedColumn('idVisit', 'ASC'); + + return $this->renderView($view, $fetch); + } + + + function getPagesFromVisitId( $fetch = false) + { + $view = Piwik_ViewDataTable::factory(''); + $view->init( $this->pluginName, + __FUNCTION__, + 'Live.getLastVisitsForVisitor', + 'getPagesFromVisitId'); + + #$view->disableSearchBox(); + #$view->disableExcludeLowPopulation(); + #$view->setColumnsToDisplay( array('label','nb_visits') ); + #$view->setColumnTranslation('label', Piwik_Translate('Referers_ColumnKeyword')); + + return $this->renderView($view, $fetch); + } + + public function getLastVisitsStart($fetch = false) + { $view = Piwik_View::factory('lastVisits'); - $visitors = $api->process(); - if($minIdVisit == 0) - { - $visitors = array_slice($visitors, 3); - } - $view->visitors = $visitors; + $view->visitors = $this->getLastVisits(10); + $rendered = $view->render($fetch); if($fetch) { return $rendered; } - echo $rendered; + echo $rendered; + } + + public function getLastVisits($limit = 10) + { + $api = new Piwik_API_Request("method=Live.getLastVisits&idSite=$this->idSite&limit=$limit&minIdVisit=$this->minIdVisit&format=php&serialize=0&disable_generic_filters=1"); + $visitors = $api->process(); + + return $visitors; } - function index() + public function getUsersInLastXMin($minutes = 30) { + $api = new Piwik_API_Request("method=Live.getUsersInLastXMin&idSite=".$this->idSite."&limit=10000&minIdVisit=".$this->minIdVisit."&minutes=".$minutes."&format=php&serialize=0&disable_generic_filters=1"); + $visitors_halfhour = $api->process(); + + return count($visitors_halfhour); + } + + public function getUsersInLastXDays($days = 1) { + $api = new Piwik_API_Request("method=Live.getUsersInLastXDays&idSite=$this->idSite&limit=50000&minIdVisit=$this->minIdVisit&days=$days&format=php&serialize=0&disable_generic_filters=1"); + $visitors_today = $api->process(); + + return count($visitors_today); + } + + public function getPageImpressionsInLastXMin($minutes = 30) { + $api = new Piwik_API_Request("method=Live.getPageImpressionsInLastXMin&idSite=$this->idSite&limit=10000&minIdVisit=$this->minIdVisit&minutes=$minutes&format=php&serialize=0&disable_generic_filters=1"); + $pis_halfhour = $api->process(); + + return count($pis_halfhour); + } + + public function getPageImpressionsInLastXDays($days = 1) { + $api = new Piwik_API_Request("method=Live.getPageImpressionsInLastXDays&idSite=$this->idSite&limit=50000&minIdVisit=$this->minIdVisit&days=$days&format=php&serialize=0&disable_generic_filters=1"); + $pis_today = $api->process(); + + return count($pis_today); + } + + public function ajaxTotalVisitors($fetch = false) { - $view = Piwik_View::factory('structure'); + $view = Piwik_View::factory('totalVisits'); $this->setGeneralVariablesView($view); - $view->visitors = $this->getLastVisits($fetch = true); - echo $view->render(); - } + $view->visitorsCountHalfHour = $this->getUsersInLastXMin(30); + $view->visitorsCountToday = $this->getUsersInLastXDays(1); + $view->pisHalfhour = $this->getPageImpressionsInLastXMin(30); + $view->pisToday = $this->getPageImpressionsInLastXDays(1); + + echo $view->render(); + } + } |