phpOpenTracker/phpOpenTracker API.php,1.44,1.45 Database.php,1.6,1.7 Parser.php,1.20,1.21

Sebastian Bergmann <[email protected]> Fri, 27 Feb 2004 06:50:50 +0000
Newsgroups gmane.comp.web.phpopentracker.cvs
Message-ID <[email protected]>
Update of /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12097

Modified Files:
	API.php Database.php Parser.php 
Log Message:
Flush.

Index: Parser.php
===================================================================
RCS file: /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/Parser.php,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** Parser.php	24 Jan 2004 20:39:52 -0000	1.20
--- Parser.php	27 Feb 2004 06:50:48 -0000	1.21
***************
*** 37,40 ****
--- 37,85 ----
  
      /**
+     * Matches a string against a set of regular expressions.
+     *
+     * @param  mixed   $elements
+     * @param  array   $rules
+     * @return string
+     * @access public
+     * @static
+     */
+     public static function match($elements, $rules) {
+         if (!is_array($elements)) {
+             $noMatch  = $elements;
+             $elements = array($elements);
+         } else {
+             $noMatch = 'Not identified';
+         }
+ 
+         foreach ($rules as $rule) {
+             if (!isset($result)) {
+                 foreach ($elements as $element) {
+                     $element = trim($element);
+                     $pattern = trim($rule['pattern']);
+ 
+                     if (preg_match($pattern, $element, $tmp)) {
+                         $result = str_replace(
+                           array('$1', '$2', '$3'),
+                           array(
+                             isset($tmp[1]) ? $tmp[1] : '',
+                             isset($tmp[2]) ? $tmp[2] : '',
+                             isset($tmp[3]) ? $tmp[3] : ''
+                           ),
+                           trim($rule['string'])
+                         );
+ 
+                         break;
+                     }
+                 }
+             } else {
+                 break;
+             }
+         }
+ 
+         return isset($result) ? $result : $noMatch;
+     }
+ 
+     /**
      * Parses a given string for Hostname information.
      *
***************
*** 89,135 ****
      }
  
!     /**
!     * Matches a string against a set of regular expressions.
!     *
!     * @param  mixed   $elements
!     * @param  array   $rules
!     * @return string
!     * @access public
!     * @static
!     */
!     public static function match($elements, $rules) {
!         if (!is_array($elements)) {
!             $noMatch  = $elements;
!             $elements = array($elements);
!         } else {
!             $noMatch = 'Not identified';
!         }
! 
!         foreach ($rules as $rule) {
!             if (!isset($result)) {
!                 foreach ($elements as $element) {
!                     $element = trim($element);
!                     $pattern = trim($rule['pattern']);
! 
!                     if (preg_match($pattern, $element, $tmp)) {
!                         $result = str_replace(
!                           array('$1', '$2', '$3'),
!                           array(
!                             isset($tmp[1]) ? $tmp[1] : '',
!                             isset($tmp[2]) ? $tmp[2] : '',
!                             isset($tmp[3]) ? $tmp[3] : ''
!                           ),
!                           trim($rule['string'])
!                         );
! 
!                         break;
!                     }
!                 }
!             } else {
!                 break;
!             }
!         }
  
!         return isset($result) ? $result : $noMatch;
      }
  
--- 134,149 ----
      }
  
!     protected static getMondayOfWeek($week, $year) {
!       	return mktime(
!       	  0, 0, 0, 1,
!       	  ($week + ((((date('w', mktime(0, 0, 0, 1, 0, $year)) + .01 - 4) /
!       	               abs(date('w', mktime(0, 0, 0, 1, 0, $year)) + .01 - 4)) / 2) + .5)) * 7
!       	         - date('w', mktime(0, 0, 0, 1, $week * 7, $year)) - 6,
!           $year
!         );
!     }
  
!     protected static function getSundayOfWeek($week, $year) {
!         return self::getMondayOfWeek($week, $year) + (((60 * 60) * 24) * 7) - 1;
      }
  

Index: Database.php
===================================================================
RCS file: /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/Database.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** Database.php	24 Jan 2004 20:38:50 -0000	1.6
--- Database.php	27 Feb 2004 06:50:48 -0000	1.7
***************
*** 20,23 ****
--- 20,26 ----
  //
  
+ require_once POT_INCLUDE_PATH . 'Database/Exception.php';
+ require_once POT_INCLUDE_PATH . 'Configuration.php';
+ 
  class phpOpenTracker_Database {
      private static $instance = null;
***************
*** 29,36 ****
          if (self::$instance == null) {
              $configuration = phpOpenTracker_Configuration::getConfiguration();
  
!             $class = 'phpOpenTracker_Database_Driver_' . $configuration['db_type'];
  
!             self::$instance = new $class;
          }
  
--- 32,49 ----
          if (self::$instance == null) {
              $configuration = phpOpenTracker_Configuration::getConfiguration();
+             $class         = 'phpOpenTracker_Database_Driver_' . $configuration['db_type'];
  
!             @include_once POT_INCLUDE_PATH . 'Database/Driver/' . $configuration['db_type'] . '.php';
  
!             if (class_exists($class)) {
!                 self::$instance = new $class;
!             } else {
!                 throw new phpOpenTracker_Database_Exception(
!                   sprintf(
!                     'Could not load "%s" database driver.',
! 
!                     $configuration['db_type']
!                 );
!             }
          }
  

Index: API.php
===================================================================
RCS file: /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/API.php,v
retrieving revision 1.44
retrieving revision 1.45
diff -C2 -d -r1.44 -r1.45
*** API.php	24 Jan 2004 20:37:52 -0000	1.44
--- API.php	27 Feb 2004 06:50:48 -0000	1.45
***************
*** 20,23 ****
--- 20,27 ----
  //
  
+ require_once POT_INCLUDE_PATH . 'API/Exception.php';
+ require_once POT_INCLUDE_PATH . 'Container.php';
+ require_once POT_INCLUDE_PATH . 'Parser.php';
+ 
  class phpOpenTracker_API {
      private $apiCalls = array();
***************
*** 130,134 ****
              !$parameters['end']) {
              if ($parameters['range'] != 'total') {
!                 list($parameters['start'], $parameters['end']) = $this->parseTimerange(
                    $parameters['range'],
                    $parameters['range_start'],
--- 134,138 ----
              !$parameters['end']) {
              if ($parameters['range'] != 'total') {
!                 list($parameters['start'], $parameters['end']) = phpOpenTracker_Parser::parseTimerange(
                    $parameters['range'],
                    $parameters['range_start'],
***************
*** 154,282 ****
          }
      }
- 
-     private function parseTimerange($range, $start = 0, $length = 0) {
-         switch ($range) {
-             case 'current_minute': {
-                 return $this->parseTimerange('minute');
-             }
-             break;
-       
-             case 'previous_minute': {
-                 return $this->parseTimerange('minute', 1, 1);
-             }
-             break;
-       
-             case 'current_hour': {
-                 return $this->parseTimerange('hour');
-             }
-             break;
-       
-             case 'previous_hour': {
-                 return $this->parseTimerange('hour', 1, 1);
-             }
-             break;
-       
-             case 'today': {
-                 return $this->parseTimerange('day');
-             }
-             break;
-       
-             case 'yesterday': {
-                 return $this->parseTimerange('day', 1, 1);
-             }
-             break;
-       
-             case 'current_month': {
-                 return $this->parseTimerange('month');
-             }
-             break;
-       
-             case 'previous_month': {
-                 return $this->parseTimerange('month', 1, 1);
-             }
-             break;
-       
-             case 'current_week': {
-                 return $this->parseTimerange('week');
-             }
-             break;
-       
-             case 'previous_week': {
-                 return $this->parseTimerange('week', 1, 1);
-             }
-             break;
-       
-             case 'current_year': {
-                 return $this->parseTimerange('year');
-             }
-             break;
-       
-             case 'previous_year': {
-                 return $this->parseTimerange('year', 1, 1);
-             }
-             break;
-       
-             case 'minute': {
-                 $start = mktime(date('H'), date('i') - $start,   0);
-                 $end   = mktime(date('H'), date('i') - $length, 59);
-             }
-             break;
-       
-             case 'hour': {
-                 $start = mktime(date('H') - $start,  0,   0);
-                 $end   = mktime(date('H') - $length, 59, 59);
-             }
-             break;
-       
-             case 'day': {
-                 $start = mktime( 0,  0,  0, date('m'), date('d') - $start);
-                 $end   = mktime(23, 59, 59, date('m'), date('d') - $length);
-             }
-             break;
-       
-             case 'month': {
-                 $start = mktime( 0,  0,  0, date('m') - $start, 1);
-                 $end   = mktime(23, 59, 59, date('m') - $length, date('t', mktime(0, 0, 0, date('m') - $length)));
-             }
-             break;
-       
-             case 'week': {
-                 $start = $this->_mondayOfWeek(date('W') - $start,  date('Y'));
-                 $end   = $this->_sundayOfWeek(date('W') - $length, date('Y'));
-             }
-             break;
-       
-             case 'year': {
-                 $start = mktime( 0,  0,  0,  1,  1, date('Y') - $start);
-                 $end   = mktime(23, 59, 59, 12, 31, date('Y') - $length);
-             }
-             break;
-       
-             default: {
-                 throw new phpOpenTracker_API_Exception(
-                   'Syntax error in timerange specification.'
-                 );
-             }
-         }
-     
-         return array(
-           $start,
-           $end
-         );
-     }
- 
-     private function getMondayOfWeek($week, $year) {
-       	return mktime(
-       	  0, 0, 0, 1,
-       	  ($week + ((((date('w', mktime(0, 0, 0, 1, 0, $year)) + .01 - 4) /
-       	               abs(date('w', mktime(0, 0, 0, 1, 0, $year)) + .01 - 4)) / 2) + .5)) * 7
-       	         - date('w', mktime(0, 0, 0, 1, $week * 7, $year)) - 6,
-           $year
-         );
-     }
- 
-     private function getSundayOfWeek($week, $year) {
-         return $this->getMondayOfWeek($week, $year) + (((60 * 60) * 24) * 7) - 1;
-     }
  }
  
--- 158,161 ----



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click