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