phpOpenTracker/phpOpenTracker/API/Plugin AccessStatistics.php,1.1,1.2

Sebastian Bergmann <[email protected]>
Newsgroups gmane.comp.web.phpopentracker.cvs
Message-ID <[email protected]>
Update of /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/API/Plugin
In directory sc8-pr-cvs1:/tmp/cvs-serv27090/phpOpenTracker/API/Plugin

Modified Files:
	AccessStatistics.php 
Log Message:
Flush.

Index: AccessStatistics.php
===================================================================
RCS file: /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/API/Plugin/AccessStatistics.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** AccessStatistics.php	23 Nov 2003 18:15:20 -0000	1.1
--- AccessStatistics.php	16 Dec 2003 13:38:06 -0000	1.2
***************
*** 48,51 ****
--- 48,139 ----
      */
      public function run($parameters) {
+         $parameters['interval'] = isset($parameters['interval']) ? $parameters['interval'] : false;
+ 
+         $result      = array();
+         $resultIndex = 0;
+ 
+         if ($parameters['interval'] != false) {
+             $start = $parameters['start'] ? $parameters['start'] : 0;
+             $end   = $parameters['end']   ? $parameters['end']   : time();
+ 
+             for ($i = $parameters['start']; $i < $parameters['end']; $i += $parameters['interval']) {
+                 $correct = ((mktime(0, 0, 0, date('m', $i), date('d', $i) + 1, date('Y', $i))
+                            - mktime(0, 0, 0, date('m', $i), date('d', $i),     date('Y', $i)))
+                            * ($parameters['interval'] / 86400))
+                            - $parameters['interval'];
+ 
+                 $result[$resultIndex]['interval'] = $this->getIntervalString(
+                   $i,
+                   $i + $parameters['interval'] + $correct
+                 );
+ 
+                 $result[$resultIndex][$parameters['api_call']] = phpOpenTracker::get(
+                   array(
+                     'client_id'   => $parameters['client_id'],
+                     'api_call'    => $parameters['api_call'],
+                     'start'       => $i,
+                     'end'         => $i + $parameters['interval'] + $correct,
+                     'constraints' => $parameters['constraints'],
+                     'internal'    => true
+                   )
+                 );
+ 
+                 $i += $correct;
+                 $resultIndex++;
+             }
+         } else {
+             $queryResult = $this->database->query(
+               sprintf(
+                 "SELECT %s AS result
+                    FROM %s accesslog,
+                         %s visitors
+                   WHERE visitors.client_id    = '%d'
+                     AND visitors.accesslog_id = accesslog.accesslog_id
+                         %s
+                         %s",
+ 
+                 ($parameters['api_call'] == 'page_impressions') ? 'COUNT(*)' : 'COUNT(DISTINCT(visitors.accesslog_id))',
+                 $this->config['accesslog_table'],
+                 $this->config['visitors_table'],
+                 $parameters['client_id'],
+                 $this->getConstraintClause($parameters['constraints']),
+                 $this->getTimerangeClause(
+                   $parameters['start'],
+                   $parameters['end'],
+                   'accesslog'
+                 )
+               )
+             );
+ 
+             $row = $queryResult->current();
+             $result[$resultIndex][$parameters['api_call']] = intval($row['result']);
+ 
+             if ($parameters['start'] != false &&
+                 $parameters['end']   != false) {
+                 $result[$resultIndex]['interval'] = $this->getIntervalString(
+                   $parameters['start'],
+                   $parameters['end']
+                 );
+             }
+         }
+ 
+         if ($parameters['internal'] !== true) {
+             return new phpOpenTracker_API_Result(
+               $result,
+               $parameters,
+               $this->supportedResultFormats
+             );
+         } else {
+             return $result[$resultIndex][$parameters['api_call']];
+         }
+     }
+ 
+     private function getIntervalString($start, $end) {
+         return sprintf(
+           '%s - %s',
+ 
+           date('d-m-Y', $start),
+           date('d-m-Y', $end)
+         );
      }
  }




-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.