Ticket #1120: Piwik-3.patch
| File Piwik-3.patch, 10.3 KB (added by jr-ewing, 2 years ago) |
|---|
-
plugins/Live/API.php
221 221 /* 222 222 * @return Piwik_DataTable 223 223 */ 224 public function getUsersInLastXMin( $idSite = false, $ limit = 10, $minIdVisit = false, $minutes = 30 )224 public function getUsersInLastXMin( $idSite = false, $minutes = 30 ) 225 225 { 226 226 if(is_null($idSite)) 227 227 { … … 231 231 { 232 232 Piwik::checkUserHasViewAccess($idSite); 233 233 } 234 // $visitorDetails = $this->loadLastVisitorDetailsInLastXMinFromDatabase(null, $idSite, $limit, $minIdVisit, $minutes); 235 $visitorDetails = $this->loadLastVisitorInLastXTimeFromDatabase(null, $idSite, $limit, $minIdVisit, $minutes, 0, 1); 236 237 $table = $this->getCleanedVisitorsFromDetails($visitorDetails); 234 $visitorData = $this->loadLastVisitorInLastXTimeFromDatabase($idSite, $minutes, 0, 1); 238 235 239 return $ table;236 return $visitorData; 240 237 } 241 238 242 239 /* 243 240 * @return Piwik_DataTable 244 241 */ 245 public function getUsersInLastXDays( $idSite = false, $ limit = 10, $minIdVisit = false, $days = 10 )242 public function getUsersInLastXDays( $idSite = false, $days = 10 ) 246 243 { 247 244 248 245 if(is_null($idSite)) … … 253 250 { 254 251 Piwik::checkUserHasViewAccess($idSite); 255 252 } 256 // $visitorDetails = $this->loadLastVisitorDetailsInLastXDaysFromDatabase(null, $idSite, $limit, $minIdVisit, $days); 257 $visitorDetails = $this->loadLastVisitorInLastXTimeFromDatabase(null, $idSite, $limit, $minIdVisit, 0, $days, 1); 258 259 $table = $this->getCleanedVisitorsFromDetails($visitorDetails); 253 $visitorData = $this->loadLastVisitorInLastXTimeFromDatabase($idSite, 0, $days, 1); 260 254 261 return $ table;255 return $visitorData; 262 256 } 263 257 264 258 /* 265 259 * @return array 266 260 */ 267 public function getPageImpressionsInLastXDays($idSite = false, $limit = 10, $minIdVisit = false, $days = 10){ 268 // for checking given vars 269 #echo $idSite.'|'.$limit.'|'.$minIdVisit.'|'.$days.'<br />'; 261 public function getPageImpressionsInLastXDays($idSite = false, $days = 10) 262 { 270 263 271 264 if(is_null($idSite)) 272 265 { … … 276 269 { 277 270 Piwik::checkUserHasViewAccess($idSite); 278 271 } 279 // $pageDetails = $this->loadLastVisitedPagesInLastXDaysFromDatabase(null, $idSite, $limit, $minIdVisit, $days); 280 $pageDetails = $this->loadLastVisitorInLastXTimeFromDatabase(null, $idSite, $limit, $minIdVisit, 0, $days, 2); 281 282 $i = -1; 283 foreach ($pageDetails as $detail) { 284 $i++; 285 if(strlen($pageDetails[$i]['name']) > 30) { 286 $pageDetails[$i]['name'] = substr($pageDetails[$i]['name'] , 0, 30 - 3).'...'; 287 } 288 } 272 $visitorData = $this->loadLastVisitorInLastXTimeFromDatabase($idSite, 0, $days, 2); 289 273 290 return $ pageDetails;274 return $visitorData; 291 275 } 292 276 293 277 /* 294 278 * @return array 295 279 */ 296 public function getPageImpressionsInLastXMin($idSite = false, $limit = 10, $minIdVisit = false, $minutes = 30){ 280 public function getPageImpressionsInLastXMin($idSite = false, $minutes = 30) 281 { 297 282 298 283 if(is_null($idSite)) 299 284 { … … 303 288 { 304 289 Piwik::checkUserHasViewAccess($idSite); 305 290 } 306 // $pageDetails = $this->loadLastVisitedPagesInLastXMinFromDatabase(null, $idSite, $limit, $minIdVisit, $minutes); 307 $pageDetails = $this->loadLastVisitorInLastXTimeFromDatabase(null, $idSite, $limit, $minIdVisit, $minutes, 0, 2); 291 $visitorData = $this->loadLastVisitorInLastXTimeFromDatabase($idSite, $minutes, 0, 2); 308 292 309 $i = -1; 310 foreach ($pageDetails as $detail) { 311 $i++; 312 if(strlen($pageDetails[$i]['name']) > 30) { 313 $pageDetails[$i]['name'] = substr($pageDetails[$i]['name'] , 0, 30 - 3).'...'; 314 } 315 } 316 return $pageDetails; 293 return $visitorData; 317 294 } 318 295 319 296 320 297 /** 321 298 * Load last Visitors PAGES or DETAILS in MINUTES or DAYS from database 322 299 * 323 * @param boolen $visitorId 324 * @param boolen $idSite 325 * @param int $limit int 326 * @param int $minIdVisit 300 * @param int $idSite 327 301 * @param int $minutes 328 302 * @param int $days 329 * @param int $type 1 = DETAILS; 2 = PAGES303 * @param int $type 1 = VISITS; 2 = PAGEVIEWS 330 304 * 331 305 * @return mixed 332 306 */ 333 private function loadLastVisitorInLastXTimeFromDatabase($ visitorId = null, $idSite = null, $limit = 1000, $minIdVisit = false,$minutes = 0, $days = 0, $type = 0 )307 private function loadLastVisitorInLastXTimeFromDatabase($idSite = null, $minutes = 0, $days = 0, $type = 0 ) 334 308 { 335 309 $where = $whereBind = array(); 336 310 … … 340 314 $whereBind[] = $idSite; 341 315 } 342 316 343 if(!is_null($visitorId))344 {345 $where[] = " `visitor_idcookie` = ? ";346 $whereBind[] = $visitorId;347 }348 349 if(!is_null($minIdVisit))350 {351 $where[] = " " . Piwik::prefixTable('log_visit') . ".`idvisit` > ? ";352 $whereBind[] = $minIdVisit;353 }354 355 317 if($minutes != 0) 356 318 { 357 319 $timeLimit = mktime(date("H"), date("i") - $minutes, 0, date("m"), date("d"), date("Y")); … … 373 335 // Details 374 336 if($type == 1) 375 337 { 376 $sql = "SELECT " . Piwik::prefixTable('log_visit') . ". *338 $sql = "SELECT " . Piwik::prefixTable('log_visit') . ".idvisit 377 339 FROM " . Piwik::prefixTable('log_visit') . " 378 340 $sqlWhere 379 ORDER BY idvisit DESC 380 LIMIT " . (int)$limit; 341 ORDER BY idvisit DESC"; 381 342 } 382 343 // Pages 383 344 elseif($type == 2) 384 345 { 385 // different SELECT between $minutes & $days 386 if($minutes != 0) 387 { 388 $sql_select = "SELECT " . Piwik::prefixTable('log_link_visit_action') . ".`idaction_url`, " . Piwik::prefixTable('log_action') . ".`idaction`, " . Piwik::prefixTable('log_action') . ".`name` , " . Piwik::prefixTable('log_visit') . ".*"; 389 } 390 elseif($days != 0) 391 { 392 $sql_select = "SELECT " . Piwik::prefixTable('log_link_visit_action') . ".`idaction_url`, " . Piwik::prefixTable('log_action') . ".`idaction`, " . Piwik::prefixTable('log_action') . ".`name` , " . Piwik::prefixTable('log_link_visit_action') . ".*"; 393 } 394 else 395 { 396 // neither $minutes nor $days --> ERROR 397 return false; 398 } 399 346 $sql_select = "SELECT " . Piwik::prefixTable('log_link_visit_action') . ".`idaction_url`"; 400 347 $sql = $sql_select." 401 348 FROM " . Piwik::prefixTable('log_link_visit_action') . " 402 INNER JOIN " . Piwik::prefixTable('log_action') . " ON " . Piwik::prefixTable('log_link_visit_action') . ".`idaction_url`= " . Piwik::prefixTable('log_action') . ".`idaction`403 349 INNER JOIN " . Piwik::prefixTable('log_visit') . " ON " . Piwik::prefixTable('log_visit') . ".`idvisit` = " . Piwik::prefixTable('log_link_visit_action') . ".`idvisit` 404 350 $sqlWhere"; 405 351 } -
plugins/Live/Controller.php
32 32 public function widget($fetch = false) 33 33 { 34 34 $view = Piwik_View::factory('index'); 35 $this->setGeneralVariablesView($view); 35 // $this->setGeneralVariablesView($view); 36 $view->idSite = Piwik_Common::getRequestVar('idSite'); 36 37 $view->visitorsCountHalfHour = $this->getUsersInLastXMin(30); 37 38 $view->visitorsCountToday = $this->getUsersInLastXDays(1); 38 39 $view->pisHalfhour = $this->getPageImpressionsInLastXMin(30); … … 124 125 public function getLastVisitsStart($fetch = false) 125 126 { 126 127 $view = Piwik_View::factory('lastVisits'); 127 $this->setGeneralVariablesView($view); 128 // $this->setGeneralVariablesView($view); 129 $view->idSite = Piwik_Common::getRequestVar('idSite'); 130 128 131 $view->visitors = $this->getLastVisits(10); 129 132 130 133 $rendered = $view->render($fetch); … … 138 141 139 142 public function getLastVisits($limit = 10) 140 143 { 141 $api = new Piwik_API_Request("method=Live.getLastVisits&idSite=$this->idSite&limit=$limit& minIdVisit=$this->minIdVisit&format=php&serialize=0&disable_generic_filters=1");144 $api = new Piwik_API_Request("method=Live.getLastVisits&idSite=$this->idSite&limit=$limit&format=php&serialize=0&disable_generic_filters=1"); 142 145 $visitors = $api->process(); 143 146 144 147 return $visitors; 145 148 } 146 149 147 150 public function getUsersInLastXMin($minutes = 30) { 148 $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");151 $api = new Piwik_API_Request("method=Live.getUsersInLastXMin&idSite=".$this->idSite."&minutes=".$minutes."&format=php&serialize=0&disable_generic_filters=1"); 149 152 $visitors_halfhour = $api->process(); 150 153 151 154 return count($visitors_halfhour); 152 155 } 153 156 154 157 public function getUsersInLastXDays($days = 1) { 155 $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");158 $api = new Piwik_API_Request("method=Live.getUsersInLastXDays&idSite=$this->idSite&days=$days&format=php&serialize=0&disable_generic_filters=1"); 156 159 $visitors_today = $api->process(); 157 160 158 161 return count($visitors_today); 159 162 } 160 163 161 164 public function getPageImpressionsInLastXMin($minutes = 30) { 162 $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");165 $api = new Piwik_API_Request("method=Live.getPageImpressionsInLastXMin&idSite=$this->idSite&minutes=$minutes&format=php&serialize=0&disable_generic_filters=1"); 163 166 $pis_halfhour = $api->process(); 164 167 165 168 return count($pis_halfhour); 166 169 } 167 170 168 171 public function getPageImpressionsInLastXDays($days = 1) { 169 $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");172 $api = new Piwik_API_Request("method=Live.getPageImpressionsInLastXDays&idSite=$this->idSite&days=$days&format=php&serialize=0&disable_generic_filters=1"); 170 173 $pis_today = $api->process(); 171 174 172 175 return count($pis_today); … … 175 178 public function ajaxTotalVisitors($fetch = false) 176 179 { 177 180 $view = Piwik_View::factory('totalVisits'); 178 $this->setGeneralVariablesView($view); 181 // $this->setGeneralVariablesView($view); 182 $view->idSite = Piwik_Common::getRequestVar('idSite'); 179 183 $view->visitorsCountHalfHour = $this->getUsersInLastXMin(30); 180 184 $view->visitorsCountToday = $this->getUsersInLastXDays(1); 181 185 $view->pisHalfhour = $this->getPageImpressionsInLastXMin(30); 182 186 $view->pisToday = $this->getPageImpressionsInLastXDays(1); 183 187 184 echo $view->render(); 188 $rendered = $view->render($fetch); 189 190 if($fetch) 191 { 192 return $rendered; 193 } 194 echo $rendered; 185 195 } 186 196 }
