You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(34) |
Aug
(215) |
Sep
(180) |
Oct
(135) |
Nov
(105) |
Dec
(81) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(76) |
Feb
(22) |
Mar
(154) |
Apr
(149) |
May
(128) |
Jun
(94) |
Jul
(14) |
Aug
(24) |
Sep
(77) |
Oct
(52) |
Nov
(22) |
Dec
(6) |
| 2003 |
Jan
(4) |
Feb
(10) |
Mar
(6) |
Apr
(29) |
May
(10) |
Jun
(37) |
Jul
(39) |
Aug
(13) |
Sep
(23) |
Oct
(3) |
Nov
(7) |
Dec
(2) |
| 2004 |
Jan
|
Feb
(10) |
Mar
(4) |
Apr
|
May
(35) |
Jun
(4) |
Jul
(17) |
Aug
(6) |
Sep
(14) |
Oct
(18) |
Nov
(2) |
Dec
(14) |
| 2005 |
Jan
(9) |
Feb
(30) |
Mar
(6) |
Apr
|
May
(38) |
Jun
(23) |
Jul
(21) |
Aug
(76) |
Sep
(50) |
Oct
(51) |
Nov
(13) |
Dec
|
|
From: Benjamin C. <bc...@us...> - 2002-03-20 20:04:50
|
Update of /cvsroot/phpbt/phpbt In directory usw-pr-cvs1:/tmp/cvs-serv12331 Modified Files: CHANGELOG Log Message: Index: CHANGELOG =================================================================== RCS file: /cvsroot/phpbt/phpbt/CHANGELOG,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- CHANGELOG 18 Mar 2002 17:58:41 -0000 1.49 +++ CHANGELOG 20 Mar 2002 20:04:37 -0000 1.50 @@ -1,6 +1,9 @@ -- 0.8.0 -- -: Switched database abstraction layer to PEAR::DB -: Added bug dependencies +: Switched database abstraction layer to PEAR::DB. +: Added bug dependencies. +: Added Oracle 8.1.x support. +: Added "Remember me" functionality. +: Fixed bug with losing login info when register_globals = off. -- 0.7.2 -- 14 Mar 2002 : Bugs were fixed with project restrictions and front-page summary info. |
|
From: Benjamin C. <bc...@us...> - 2002-03-20 20:04:09
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv12137
Modified Files:
user.php
Log Message:
Reworked authentication
Index: user.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/user.php,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- user.php 17 Mar 2002 01:44:24 -0000 1.20
+++ user.php 20 Mar 2002 20:04:04 -0000 1.21
@@ -32,9 +32,9 @@
}
function change_bug_list_columns($column_list) {
- global $db, $u, $t, $auth;
+ global $db, $u, $t, $_sv;
- $auth->auth['db_fields'] = $column_list;
+ $_sv['db_fields'] = $column_list;
$column_list = serialize($column_list);
$db->query("update ".TBL_AUTH_USER." set bug_list_fields = '$column_list' where user_id = $u");
//$t->set_file('content', 'columnlistchanged.html');
@@ -63,7 +63,7 @@
}
function show_preferences_form($error = '') {
- global $t, $pass1, $pass2, $all_db_fields, $default_db_fields, $auth, $db, $u;
+ global $t, $pass1, $pass2, $all_db_fields, $default_db_fields, $_sv, $db, $u;
$t->set_file('content', 'user.html');
$t->set_block('content', 'column_list_row', 'list_rows');
@@ -76,7 +76,7 @@
'pass2' => $pass2
));
- $my_fields = $auth->auth['db_fields'] ? $auth->auth['db_fields'] :
+ $my_fields = $_sv['db_fields'] ? $_sv['db_fields'] :
$default_db_fields;
foreach ($my_fields as $field) {
$checked[$field] = true;
|
|
From: Benjamin C. <bc...@us...> - 2002-03-20 20:03:22
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv11849
Modified Files:
include.php
Log Message:
Reworked user authentication and added "Remember me" functionality
Index: include.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/include.php,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -r1.100 -r1.101
--- include.php 20 Mar 2002 15:09:18 -0000 1.100
+++ include.php 20 Mar 2002 20:03:17 -0000 1.101
@@ -97,9 +97,9 @@
class templateclass extends Template {
function pparse($target, $handle, $append = false) {
- global $auth, $perm, $db;
+ global $_sv, $perm, $db, $HTTP_COOKIE_VARS;
- $u = isset($auth->auth['uid']) ? $auth->auth['uid'] : 0;
+ $u = isset($_sv['uid']) ? $_sv['uid'] : 0;
$this->set_block('wrap', 'logoutblock', 'loblock');
$this->set_block('wrap', 'loginblock', 'liblock');
$this->set_block('wrap', 'adminnavblock', 'anblock');
@@ -113,7 +113,7 @@
."from ".TBL_BUG." b left join ".TBL_STATUS." s using(status_id) where created_by = $u",
DB_FETCHMODE_ORDERED);
$this->set_var(array(
- 'loggedinas' => $auth->auth['uname'],
+ 'loggedinas' => $_sv['uname'],
'liblock' => '',
'owner_open' => $owner_open ? $owner_open : 0,
'owner_closed' => $owner_closed ? $owner_closed : 0,
@@ -122,11 +122,31 @@
));
$this->parse('loblock', 'logoutblock', true);
} else {
+ $this->set_block('loginblock', 'cookieblock', 'ckblock');
$this->set_var(array(
'loggedinas' => '',
'loblock' => '',
'loginlabel' => EMAIL_IS_LOGIN ? 'Email' : 'Login'
));
+ if (RECALL_LOGIN) {
+ if (!empty($HTTP_COOKIE_VARS['phpbt_user'])) {
+ $this->set_var(array(
+ 'cookielogin' => $HTTP_COOKIE_VARS['phpbt_user'],
+ 'cookiechecked' => 'checked'
+ ));
+ } else {
+ $this->set_var(array(
+ 'cookielogin' => '',
+ 'cookiechecked' => ''
+ ));
+ }
+ $this->parse('ckblock', 'cookieblock', true);
+ } else {
+ $this->set_var(array(
+ 'cookielogin' => '',
+ 'ckblock' => ''
+ ));
+ }
$this->parse('liblock', 'loginblock', true);
}
if (isset($perm) && $perm->have_perm('Administrator')) {
@@ -161,7 +181,7 @@
$_sv =& $HTTP_SESSION_VARS;
$auth = new uauth;
$perm = new uperm;
- $u = isset($auth->auth['uid']) ? $auth->auth['uid'] : 0;
+ $u = isset($_sv['uid']) ? $_sv['uid'] : 0;
}
// Check to see if the user is trying to login
@@ -186,6 +206,17 @@
$t->set_var('loginerror', '<div class="error">Invalid login</div>');
}
}
+
+ // "Remember me" handling
+ if (RECALL_LOGIN) {
+ if (!empty($_pv["savecookie"])) {
+ setcookie('phpbt_user', $_pv["username"], $now + 18144000); // 3 week expiration
+ } elseif (!empty($HTTP_COOKIE_VARS['phpbt_user'])) {
+ // Clear the cookie if the cookie is populated and the box wasn't checked
+ setcookie('phpbt_user');
+ }
+ }
+
}
$op = isset($_gv['op']) ? $_gv['op'] : (isset($_pv['op']) ? $_pv['op'] : '');
@@ -196,7 +227,7 @@
if (!$perm->have_perm('Admin')) {
$viewable_projects = delimit_list(',',
$db->getCol("select project_id from ".TBL_PROJECT_GROUP.
- " where group_id in (".delimit_list(',', $auth->auth['group_ids']).")"));
+ " where group_id in (".delimit_list(',', $_sv['group_ids']).")"));
$viewable_projects = $viewable_projects ? $viewable_projects : '0';
$matching_projects = delimit_list(',',
$db->getCol("select project_id from ".TBL_PROJECT_GROUP.
|
|
From: Benjamin C. <bc...@us...> - 2002-03-20 20:02:56
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv11607
Modified Files:
query.php
Log Message:
Reworked user authentication
Index: query.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/query.php,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- query.php 17 Mar 2002 01:44:24 -0000 1.60
+++ query.php 20 Mar 2002 20:02:51 -0000 1.61
@@ -73,7 +73,7 @@
}
function build_query($assignedto, $reportedby, $open) {
- global $db, $auth, $_gv, $perm, $restricted_projects;
+ global $db, $_sv, $_gv, $perm, $restricted_projects;
foreach ($_gv as $k => $v) { $$k = $v; }
@@ -84,9 +84,9 @@
"in ('Unconfirmed', 'New', 'Assigned', 'Reopened')");
$query[] = 'b.status_id in ('.delimit_list(',',$status).')';
if ($assignedto) {
- $query[] = "assigned_to = {$auth->auth['uid']}";
+ $query[] = "assigned_to = {$_sv['uid']}";
} else {
- $query[] = "b.created_by = {$auth->auth['uid']}";
+ $query[] = "b.created_by = {$_sv['uid']}";
}
} else {
// Select boxes
@@ -150,7 +150,7 @@
}
function list_items($assignedto = 0, $reportedby = 0, $open = 0) {
- global $me, $db, $t, $select, $TITLE, $STRING, $_gv, $u, $auth,
+ global $me, $db, $t, $select, $TITLE, $STRING, $_gv, $u,
$default_db_fields, $all_db_fields, $_sv, $HTTP_SERVER_VARS;
$t->set_file('content','buglist.html');
@@ -254,7 +254,7 @@
}
// Header row
- $db_fields = !empty($auth->auth['db_fields']) ? $auth->auth['db_fields'] :
+ $db_fields = !empty($_sv['db_fields']) ? $_sv['db_fields'] :
$default_db_fields;
foreach ($db_fields as $field) {
$t->set_var(array(
|
|
From: Benjamin C. <bc...@us...> - 2002-03-20 20:02:55
|
Update of /cvsroot/phpbt/phpbt/inc
In directory usw-pr-cvs1:/tmp/cvs-serv11607/inc
Modified Files:
auth.php
Log Message:
Reworked user authentication
Index: auth.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/inc/auth.php,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- auth.php 18 Mar 2002 16:21:42 -0000 1.10
+++ auth.php 20 Mar 2002 20:02:51 -0000 1.11
@@ -26,46 +26,48 @@
class uauth {
var $lifetime = 0; // In minutes -- 0 for no expiration until browser closed
var $classname = 'uauth';
- var $auth = array();
function uauth() {
- global $HTTP_SESSION_VARS;
+ global $_sv;
- if (!session_is_registered('auth')) {
- session_register('auth');
- $HTTP_SESSION_VARS['auth'] = array();
- }
+ #if (!session_is_registered('auth')) {
+ # session_register('auth');
+ # $HTTP_SESSION_VARS['auth'] = array();
+ #}
- $a =& $HTTP_SESSION_VARS['auth'];
- $this->auth =& $a->auth;
+ #$a =& $HTTP_SESSION_VARS['auth'];
+ #$this->auth =& $a->auth;
+ #$this->auth =& $HTTP_SESSION_VARS['auth'];
- if (!isset($this->auth['group_ids'])) {
- $this->auth['group_ids'] = array(0);
+ if (!isset($_sv['group_ids'])) {
+ $_sv['group_ids'] = array(0);
}
if ($this->is_authenticated()) {
- if ($this->auth['uid']) {
- $this->auth['exp'] = time() + (60 * $this->lifetime);
+ if ($_sv['uid']) {
+ $_sv['exp'] = time() + (60 * $this->lifetime);
}
}
}
function is_authenticated() {
- if (isset($this->auth['uid']) && $this->auth['uid'] &&
- ($this->lifetime <= 0 || time() < $this->auth['exp'])) {
- return $this->auth['uid'];
+ global $_sv;
+
+ if (isset($_sv['uid']) && $_sv['uid'] &&
+ ($this->lifetime <= 0 || time() < $_sv['exp'])) {
+ return $_sv['uid'];
} else {
return false;
}
}
function auth_validatelogin() {
- global $_pv, $db, $select, $emailpass, $emailsuccess, $STRING;
+ global $_pv, $db, $select, $emailpass, $emailsuccess, $STRING, $_sv;
extract($_pv);
if (!$username) return 0;
- $this->auth['uname'] = $username;
+ $_sv['uname'] = $username;
if (ENCRYPT_PASS) {
$password = md5($password);
}
@@ -73,35 +75,37 @@
if (!$u or DB::isError($u)) {
return 0;
} else {
- $this->auth['db_fields'] = @unserialize($u['bug_list_fields']);
+ $_sv['db_fields'] = @unserialize($u['bug_list_fields']);
// Grab group assignments and permissions based on groups
$rs = $db->query("select u.group_id, group_name from ".TBL_USER_GROUP.
" u, ".TBL_AUTH_GROUP." a where user_id = {$u['user_id']} ".
'and u.group_id = a.group_id');
while (list($groupid, $groupname) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) {
- $this->auth['group_ids'][] = $groupid;
- $this->auth['group'][$groupname] = true;
+ $_sv['group_ids'][] = $groupid;
+ $_sv['group'][$groupname] = true;
}
$perms = $db->getCol("select perm_name from ".TBL_AUTH_PERM." ap, ".
TBL_GROUP_PERM." gp where group_id in (".
- delimit_list(',', $this->auth['group_ids']).") and gp.perm_id = ap.perm_id");
+ delimit_list(',', $_sv['group_ids']).") and gp.perm_id = ap.perm_id");
foreach ($perms as $perm) {
- $this->auth['perm'][$perm] = true;
+ $_sv['perm'][$perm] = true;
}
- $this->auth['uid'] = $u['user_id'];
+ $_sv['uid'] = $u['user_id'];
return $u['user_id'];
}
}
function unauth() {
- $this->auth['uid'] = 0;
- $this->auth['perm'] = array();
- $this->auth['exp'] = 0;
- $this->auth['group'] = array();
- $this->auth['group_ids'] = array(0);
- $this->auth['db_fields'] = array();
+ global $_sv;
+
+ $_sv['uid'] = 0;
+ $_sv['perm'] = array();
+ $_sv['exp'] = 0;
+ $_sv['group'] = array();
+ $_sv['group_ids'] = array(0);
+ $_sv['db_fields'] = array();
}
}
@@ -110,33 +114,33 @@
var $permissions = array ();
function check($p) {
- global $auth;
+ global $_sv;
if (!$this->have_perm($p)) {
- if (!isset($auth->auth['perm']) ) {
- $auth->auth['perm'] = '';
+ if (!isset($_sv['perm']) ) {
+ $_sv['perm'] = '';
}
- $this->perm_invalid($auth->auth['perm'], $p);
+ $this->perm_invalid($_sv['perm'], $p);
exit();
}
}
function check_auth($auth_var, $reqs) {
- global $auth;
+ global $_sv;
// Administrators always pass
- if (isset($auth->auth[$auth_var]['Admin'])) {
+ if (isset($_sv[$auth_var]['Admin'])) {
return true;
}
if (is_array($reqs)) {
foreach ($reqs as $req) {
- if (!isset($auth->auth[$auth_var][$req])) {
+ if (!isset($_sv[$auth_var][$req])) {
return false;
}
}
} else {
- if (!isset($auth->auth[$auth_var][$reqs])) {
+ if (!isset($_sv[$auth_var][$reqs])) {
return false;
}
}
@@ -157,7 +161,7 @@
function perm_invalid() {
- global $t, $auth;
+ global $t, $_sv;
$t->set_file('content','badperm.html');
$t->pparse('main',array('content','wrap','main'));
|
|
From: Benjamin C. <bc...@us...> - 2002-03-20 20:01:00
|
Update of /cvsroot/phpbt/phpbt/templates/default
In directory usw-pr-cvs1:/tmp/cvs-serv10731/templates/default
Modified Files:
wrap.html
Log Message:
Added "Remember me" functionality
Index: wrap.html
===================================================================
RCS file: /cvsroot/phpbt/phpbt/templates/default/wrap.html,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- wrap.html 2 Mar 2002 18:49:51 -0000 1.14
+++ wrap.html 20 Mar 2002 20:00:55 -0000 1.15
@@ -55,11 +55,14 @@
<!-- BEGIN loginblock -->
{loginerror}
- {loginlabel}: <input type="text" name="username" class="bottomnavinput">
+ {loginlabel}: <input type="text" name="username" class="bottomnavinput" value="{cookielogin}">
Password: <input type="password" name="password" class="bottomnavinput">
<input type="hidden" name="dologin" value="1">
<input type="submit" value="Login" class="bottomnavinput">
<input type="submit" name="sendpass" value="Email Password" class="bottomnavinput" title="Forgot your password? Have it sent to you">
+ <!-- BEGIN cookieblock -->
+ <input type="checkbox" name="savecookie" value="1" {cookiechecked} class="bottomnavinput" title="Remember {loginlabel} for next time"> Remember me
+ <!-- END cookieblock -->
<!-- END loginblock -->
<!-- BEGIN logoutblock -->
[ Bugs assigned to me: <a href="query.php?op=mybugs&assignedto=1&open=1" title="Open">{owner_open}</a> / <a href="query.php?op=mybugs&assignedto=1&open=0" title="Closed">{owner_closed}</a>
|
|
From: Benjamin C. <bc...@us...> - 2002-03-20 20:00:19
|
Update of /cvsroot/phpbt/phpbt/inc
In directory usw-pr-cvs1:/tmp/cvs-serv10403/inc
Modified Files:
functions.php
Log Message:
Added dump(), a debugging aid
Index: functions.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/inc/functions.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- functions.php 18 Mar 2002 16:21:42 -0000 1.9
+++ functions.php 20 Mar 2002 20:00:14 -0000 1.10
@@ -373,4 +373,14 @@
return $retstr;
}
+// Dump a var
+function dump($var, $title = '') {
+ if ($title) {
+ echo "<b>$title</b><br>";
+ }
+ echo '<pre>';
+ print_r($var);
+ echo '</pre>';
+}
+
?>
|
|
From: Benjamin C. <bc...@us...> - 2002-03-20 15:59:28
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv23168
Modified Files:
bug.php
Log Message:
Cleanup
Index: bug.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/bug.php,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -r1.85 -r1.86
--- bug.php 18 Mar 2002 17:43:15 -0000 1.85
+++ bug.php 20 Mar 2002 15:59:24 -0000 1.86
@@ -225,10 +225,10 @@
// If there are new comments grab the comments immediately before the latest
if ($comments or $newbug) {
- $rs = $db->query('select u.login, c.comment_text, c.created_date'
+ $rs = $db->limitQuery('select u.login, c.comment_text, c.created_date'
.' from '.TBL_COMMENT.' c, '.TBL_AUTH_USER.' u'
." where bug_id = {$buginfo['bug_id']} and c.created_by = u.user_id"
- .' order by created_date desc limit 2');
+ .' order by created_date desc', 0, 2);
$rs->fetchInto($row);
$t->set_var(array(
'newpostedby' => $row['login'],
|
|
From: Benjamin C. <bc...@us...> - 2002-03-20 15:14:52
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv10632
Modified Files:
index.php
Log Message:
Cleanup
Index: index.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/index.php,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- index.php 17 Mar 2002 01:44:24 -0000 1.19
+++ index.php 20 Mar 2002 15:14:48 -0000 1.20
@@ -117,10 +117,10 @@
}
// Show the recently added and closed bugs
-$rs = $db->query("select bug_id, title from ".TBL_BUG.
+$rs = $db->limitQuery("select bug_id, title from ".TBL_BUG.
" where project_id not in ($restricted_projects)".
- ' order by created_date desc limit 5');
-if (!$rs->numRows()) {
+ ' order by created_date desc', 0, 5);
+if (DB::isError($rs) or !$rs->numRows()) {
$t->set_var('recentrows', $STRING['nobugs']);
} else {
while (list($bugid, $title) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) {
@@ -131,11 +131,11 @@
$t->parse('recentrows', 'recentrow', true);
}
}
-$rs = $db->query('select b.bug_id, title from '.TBL_BUG.' b, '.TBL_BUG_HISTORY.
+$rs = $db->limitQuery('select b.bug_id, title from '.TBL_BUG.' b, '.TBL_BUG_HISTORY.
" h where project_id not in ($restricted_projects) and b.bug_id = h.bug_id".
" and changed_field = 'status' and new_value = 'Closed'".
- ' order by h.created_date desc limit 5');
-if (!$rs->numRows()) {
+ ' order by h.created_date desc', 0, 5);
+if (DB::isError($rs) or !$rs->numRows()) {
$t->set_var('closerows', $STRING['nobugs']);
} else {
while (list($bugid, $title) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) {
|
|
From: Benjamin C. <bc...@us...> - 2002-03-20 15:09:23
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv8896
Modified Files:
install.php include.php
Log Message:
Suggestions from Liam Hoekenga
Index: install.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/install.php,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- install.php 17 Mar 2002 01:39:31 -0000 1.15
+++ install.php 20 Mar 2002 15:09:18 -0000 1.16
@@ -109,7 +109,15 @@
// PEAR::DB
require_once('DB.php');
- $db = DB::Connect($_pv['db_type'].'://'.$_pv['db_user'].':'.$_pv['db_pass'].'@'.$_pv['db_host'].'/'.$_pv['db_database']);
+ $dsn = array(
+ 'phptype' => $_pv['db_type'],
+ 'hostspec' => $_pv['db_host'],
+ 'database' => $_pv['db_database'],
+ 'username' => $_pv['db_user'],
+ 'password' => $_pv['db_pass']
+ );
+ $db = DB::Connect($dsn);
+ $db->setOption('optimize', 'portability');
$q_temp_ary = file('schemas/'.$_pv['db_type'].'.in');
$queries = preg_replace(array_keys($tables), array_values($tables),
Index: include.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/include.php,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -r1.99 -r1.100
--- include.php 17 Mar 2002 01:47:04 -0000 1.99
+++ include.php 20 Mar 2002 15:09:18 -0000 1.100
@@ -41,7 +41,15 @@
// PEAR::DB
require_once('DB.php');
-$db = DB::Connect(DB_TYPE.'://'.DB_USER.':'.DB_PASSWORD.'@'.DB_HOST.'/'.DB_DATABASE);
+$dsn = array(
+ 'phptype' => DB_TYPE,
+ 'hostspec' => DB_HOST,
+ 'database' => DB_DATABASE,
+ 'username' => DB_USER,
+ 'password' => DB_PASSWORD
+ );
+$db = DB::Connect($dsn);
+$db->setOption('optimize', 'portability');
$db->setFetchMode(DB_FETCHMODE_ASSOC);
|
|
From: Ben C. <php...@be...> - 2002-03-18 21:03:19
|
Yeah, I went back and forth on PEAR vs. adodb. There are a few reasons to choose adodb over PEAR, but (for me, anyway) performance wasn't one of them. I downloaded the benchmarks used by the adodb crew to show adodb is faster than any other abstraction library. When running them on my setup, I found that with 200 select queries, PEAR was less than a second slower that adodb. Not a huge performance difference. What it really came down to, though, was my main goal of having phpbt be easy to install. By using PEAR instead of adodb, that's one less thing someone would have to download to get up and running. On Mon, Mar 18, 2002 at 08:41:03PM +0100, Javier Sixto wrote: > Since a few month i was searching for the more efficient and popular DB > connection class, and ADODB was this ... :-) > PEAR was imature and compared to PHPlib and others, it was the slowest. > But perhaps PEAR as changed since ??? > > I doesn't know :-P > > > > Ben Curtis wrote: > > >Be cautious with the latest changes I just committed... they aren't > >tested much. Also, I haven't yet written the script to convert the old > >sequence style to the PEAR::DB style, so if you do want to test it you > >will probably want to test it with a new installation. Good luck, and > >let me know if you have any problems with it! > > > >_______________________________________________ > >phpbt-dev mailing list > >php...@li... > >https://lists.sourceforge.net/lists/listinfo/phpbt-dev > > > > > > > > _______________________________________________ > phpbt-dev mailing list > php...@li... > https://lists.sourceforge.net/lists/listinfo/phpbt-dev |
|
From: Javier S. <js...@si...> - 2002-03-18 19:41:18
|
Since a few month i was searching for the more efficient and popular DB connection class, and ADODB was this ... :-) PEAR was imature and compared to PHPlib and others, it was the slowest. But perhaps PEAR as changed since ??? I doesn't know :-P Ben Curtis wrote: >Be cautious with the latest changes I just committed... they aren't >tested much. Also, I haven't yet written the script to convert the old >sequence style to the PEAR::DB style, so if you do want to test it you >will probably want to test it with a new installation. Good luck, and >let me know if you have any problems with it! > >_______________________________________________ >phpbt-dev mailing list >php...@li... >https://lists.sourceforge.net/lists/listinfo/phpbt-dev > |
|
From: Benjamin C. <bc...@us...> - 2002-03-18 18:08:07
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv31328
Modified Files:
config-dist.php
Log Message:
Switching to PEAR::DB
Index: config-dist.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/config-dist.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- config-dist.php 18 Mar 2002 17:43:15 -0000 1.8
+++ config-dist.php 18 Mar 2002 18:01:53 -0000 1.9
@@ -61,7 +61,6 @@
define ('ONEDAY', 86400);
-require_once (INSTALL_PATH.'/inc/db/'.DB_TYPE.'.php');
require_once (INSTALL_PATH.'/inc/auth.php');
require_once (INSTALL_PATH.'/inc/template.php');
|
|
From: Benjamin C. <bc...@us...> - 2002-03-18 18:00:41
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv30783
Modified Files:
config.php
Log Message:
I hate it when I do that... sorry!
Index: config.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/config.php,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- config.php 18 Mar 2002 17:47:07 -0000 1.24
+++ config.php 18 Mar 2002 18:00:38 -0000 1.25
@@ -26,10 +26,10 @@
// Database Config
define ('DB_TYPE', 'mysql'); // using PHPlib file naming
-define ('DB_HOST', 'stinky');
+define ('DB_HOST', 'localhost');
define ('DB_DATABASE', 'BugTracker');
define ('DB_USER', 'root');
-define ('DB_PASSWORD', 'howdy');
+define ('DB_PASSWORD', '');
// Database Table Config
// you can change either the prefix of the table names or each table name individually
@@ -63,7 +63,6 @@
define ('ONEDAY', 86400);
-require_once (INSTALL_PATH.'/inc/db/'.DB_TYPE.'.php');
require_once (INSTALL_PATH.'/inc/auth.php');
require_once (INSTALL_PATH.'/inc/template.php');
|
|
From: Benjamin C. <bc...@us...> - 2002-03-18 17:58:44
|
Update of /cvsroot/phpbt/phpbt In directory usw-pr-cvs1:/tmp/cvs-serv29994 Modified Files: CHANGELOG Log Message: Index: CHANGELOG =================================================================== RCS file: /cvsroot/phpbt/phpbt/CHANGELOG,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- CHANGELOG 18 Mar 2002 15:55:20 -0000 1.48 +++ CHANGELOG 18 Mar 2002 17:58:41 -0000 1.49 @@ -1,5 +1,6 @@ -- 0.8.0 -- : Switched database abstraction layer to PEAR::DB +: Added bug dependencies -- 0.7.2 -- 14 Mar 2002 : Bugs were fixed with project restrictions and front-page summary info. |
|
From: Benjamin C. <bc...@us...> - 2002-03-18 17:56:00
|
Update of /cvsroot/phpbt/phpbt/schemas In directory usw-pr-cvs1:/tmp/cvs-serv25298/schemas Modified Files: mysql.in oci8.in pgsql.in Log Message: Added bug dependencies Index: mysql.in =================================================================== RCS file: /cvsroot/phpbt/phpbt/schemas/mysql.in,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- mysql.in 17 Mar 2002 01:36:08 -0000 1.16 +++ mysql.in 18 Mar 2002 17:47:07 -0000 1.17 @@ -84,6 +84,12 @@ PRIMARY KEY (bug_id,user_id) ) TYPE=MyISAM; +CREATE TABLE TBL_BUG_DEPENDENCY ( + bug_id int(10) unsigned NOT NULL default '0', + depends_on int(10) unsigned NOT NULL default '0', + PRIMARY KEY (bug_id,depends_on) +) TYPE=MyISAM; + CREATE TABLE TBL_BUG_GROUP ( bug_id int(10) unsigned NOT NULL default '0', group_id int(10) unsigned NOT NULL default '0', Index: oci8.in =================================================================== RCS file: /cvsroot/phpbt/phpbt/schemas/oci8.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- oci8.in 17 Mar 2002 01:36:10 -0000 1.2 +++ oci8.in 18 Mar 2002 17:47:07 -0000 1.3 @@ -84,6 +84,12 @@ PRIMARY KEY (bug_id ,user_id) ) ; +CREATE TABLE TBL_BUG_DEPENDENCY ( + bug_id number(10) default '0' NOT NULL, + depends_on number(10) default '0' NOT NULL, + PRIMARY KEY (bug_id ,depends_on) +) ; + CREATE TABLE TBL_BUG_GROUP ( bug_id number(10) default '0' NOT NULL, group_id number(10) default '0' NOT NULL, Index: pgsql.in =================================================================== RCS file: /cvsroot/phpbt/phpbt/schemas/pgsql.in,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- pgsql.in 17 Mar 2002 01:36:10 -0000 1.18 +++ pgsql.in 18 Mar 2002 17:47:07 -0000 1.19 @@ -87,6 +87,12 @@ PRIMARY KEY (bug_id,user_id) ); +CREATE TABLE TBL_BUG_DEPENDENCY ( + bug_id INT4 NOT NULL DEFAULT '0', + depends_on INT4 NOT NULL DEFAULT '0', + PRIMARY KEY (bug_id,depends_on) +); + CREATE TABLE TBL_BUG_GROUP ( bug_id INT4 NOT NULL DEFAULT '0', group_id INT4 NOT NULL DEFAULT '0', |
|
From: Benjamin C. <bc...@us...> - 2002-03-18 17:55:59
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv25298
Modified Files:
config.php
Log Message:
Added bug dependencies
Index: config.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/config.php,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- config.php 26 Jan 2002 16:46:52 -0000 1.23
+++ config.php 18 Mar 2002 17:47:07 -0000 1.24
@@ -26,39 +26,40 @@
// Database Config
define ('DB_TYPE', 'mysql'); // using PHPlib file naming
-define ('DB_HOST', 'localhost');
+define ('DB_HOST', 'stinky');
define ('DB_DATABASE', 'BugTracker');
define ('DB_USER', 'root');
-define ('DB_PASSWORD', '');
+define ('DB_PASSWORD', 'howdy');
// Database Table Config
// you can change either the prefix of the table names or each table name individually
define ('TBL_PREFIX', ''); // the prefix for all tables, leave empty to use the old style
define ('TBL_ACTIVE_SESSIONS', TBL_PREFIX.'active_sessions');
define ('TBL_DB_SEQUENCE', TBL_PREFIX.'db_sequence');
-define ('TBL_ATTACHMENT', TBL_PREFIX.'attachment');
-define ('TBL_AUTH_GROUP', TBL_PREFIX.'auth_group');
-define ('TBL_AUTH_PERM', TBL_PREFIX.'auth_perm');
-define ('TBL_AUTH_USER', TBL_PREFIX.'auth_user');
-define ('TBL_BUG', TBL_PREFIX.'bug');
-define ('TBL_BUG_CC', TBL_PREFIX.'bug_cc');
-define ('TBL_BUG_GROUP', TBL_PREFIX.'bug_group');
-define ('TBL_BUG_HISTORY', TBL_PREFIX.'bug_history');
-define ('TBL_BUG_VOTE', TBL_PREFIX.'bug_vote');
-define ('TBL_COMMENT', TBL_PREFIX.'comment');
-define ('TBL_COMPONENT', TBL_PREFIX.'component');
-define ('TBL_CONFIGURATION', TBL_PREFIX.'configuration');
-define ('TBL_GROUP_PERM', TBL_PREFIX.'group_perm');
-define ('TBL_OS', TBL_PREFIX.'os');
-define ('TBL_PROJECT', TBL_PREFIX.'project');
-define ('TBL_RESOLUTION', TBL_PREFIX.'resolution');
-define ('TBL_SAVED_QUERY', TBL_PREFIX.'saved_query');
-define ('TBL_SEVERITY', TBL_PREFIX.'severity');
-define ('TBL_STATUS', TBL_PREFIX.'status');
-define ('TBL_USER_GROUP', TBL_PREFIX.'user_group');
-define ('TBL_USER_PERM', TBL_PREFIX.'user_perm');
-define ('TBL_VERSION', TBL_PREFIX.'version');
-define ('TBL_PROJECT_GROUP', TBL_PREFIX.'project_group');
+define ('TBL_ATTACHMENT', TBL_PREFIX.'attachment');
+define ('TBL_AUTH_GROUP', TBL_PREFIX.'auth_group');
+define ('TBL_AUTH_PERM', TBL_PREFIX.'auth_perm');
+define ('TBL_AUTH_USER', TBL_PREFIX.'auth_user');
+define ('TBL_BUG', TBL_PREFIX.'bug');
+define ('TBL_BUG_CC', TBL_PREFIX.'bug_cc');
+define ('TBL_BUG_DEPENDENCY', TBL_PREFIX.'bug_dependency');
+define ('TBL_BUG_GROUP', TBL_PREFIX.'bug_group');
+define ('TBL_BUG_HISTORY', TBL_PREFIX.'bug_history');
+define ('TBL_BUG_VOTE', TBL_PREFIX.'bug_vote');
+define ('TBL_COMMENT', TBL_PREFIX.'comment');
+define ('TBL_COMPONENT', TBL_PREFIX.'component');
+define ('TBL_CONFIGURATION', TBL_PREFIX.'configuration');
+define ('TBL_GROUP_PERM', TBL_PREFIX.'group_perm');
+define ('TBL_OS', TBL_PREFIX.'os');
+define ('TBL_PROJECT', TBL_PREFIX.'project');
+define ('TBL_RESOLUTION', TBL_PREFIX.'resolution');
+define ('TBL_SAVED_QUERY', TBL_PREFIX.'saved_query');
+define ('TBL_SEVERITY', TBL_PREFIX.'severity');
+define ('TBL_STATUS', TBL_PREFIX.'status');
+define ('TBL_USER_GROUP', TBL_PREFIX.'user_group');
+define ('TBL_USER_PERM', TBL_PREFIX.'user_perm');
+define ('TBL_VERSION', TBL_PREFIX.'version');
+define ('TBL_PROJECT_GROUP', TBL_PREFIX.'project_group');
define ('ONEDAY', 86400);
|
|
From: Benjamin C. <bc...@us...> - 2002-03-18 17:55:56
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv23909
Modified Files:
bug.php config-dist.php dbchanges.sql
Log Message:
Added bug dependencies
Index: bug.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/bug.php,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -r1.84 -r1.85
--- bug.php 17 Mar 2002 01:44:24 -0000 1.84
+++ bug.php 18 Mar 2002 17:43:15 -0000 1.85
@@ -363,6 +363,41 @@
$db->query('delete from '.TBL_BUG_CC." where bug_id = $bugid
and user_id in (".delimit_list(',', $remove_cc).')');
}
+
+ // Add dependency if requested
+ if (!empty($add_dependency)) {
+ $add_dependency = preg_replace('/\D/', '', $add_dependency);
+ // Validate the bug number
+ if (!is_numeric($add_dependency)) {
+ show_bug($bugid, array('add_dep' => $STRING['nobug']));
+ return;
+ }
+ if (!$db->getOne('select count(*) from '.TBL_BUG." where bug_id = $add_dependency")) {
+ show_bug($bugid, array('add_dep' => $STRING['nobug']));
+ return;
+ }
+
+ // Check if the dependency has already been added
+ if ($db->getOne('select count(*) from '.TBL_BUG_DEPENDENCY.
+ " where bug_id = $bugid and depends_on = $add_dependency")) {
+ show_bug($bugid, array('add_dep' => $STRING['dupe_dependency']));
+ return;
+ }
+
+ // Add it
+ $db->query("insert into ".TBL_BUG_DEPENDENCY.
+ " (bug_id, depends_on) values($bugid, $add_dependency)");
+ }
+
+ // Remove dependency if requested
+ if (!empty($del_dependency)) {
+ $del_dependency = preg_replace('/\D/', '', $del_dependency);
+ if (is_numeric($del_dependency)) {
+ $db->query("delete from ".TBL_BUG_DEPENDENCY.
+ " where bug_id = $bugid and depends_on = $del_dependency");
+ }
+ }
+
$changeresolution = false;
switch($outcome) {
@@ -558,7 +593,7 @@
}
function show_bug_printable($bugid) {
- global $db, $t, $select, $TITLE;
+ global $db, $me, $t, $select, $TITLE;
if (!is_numeric($bugid) or
!$row = $db->getRow('select b.*, reporter.login as reporter,
@@ -599,7 +634,11 @@
'version' => $row['version_name'],
'component' => $row['component_name'],
'os' => $row['os_name'],
- 'browserstring' => $row['browser_string']
+ 'browserstring' => $row['browser_string'],
+ 'bug_dependencies' => delimit_list(', ', $db->getCol('select '.
+ db_concat("'<a href=\"$me?op=show&bugid='", 'depends_on', '\'">#\'',
+ 'depends_on', '\'</a>\'').' from '.TBL_BUG_DEPENDENCY.
+ " where bug_id = $bugid"))
));
// Show the comments
@@ -739,7 +778,14 @@
" where bug_id = $bugid and user_id = $u"),
'already_voted_string' => $STRING['already_voted'],
'num_votes' => $db->getOne("select count(*) from ".TBL_BUG_VOTE.
- " where bug_id = $bugid")
+ " where bug_id = $bugid"),
+ 'bug_dependencies' => delimit_list(', ', $db->getCol('select '.
+ db_concat("'<a href=\"$me?op=show&bugid='", 'depends_on', '\'">#\'',
+ 'depends_on', '\'</a>\'').' from '.TBL_BUG_DEPENDENCY.
+ " where bug_id = $bugid")),
+ 'dependency_error' => isset($error['add_dep'])
+ ? '<div class="error">'.$error['add_dep'].'</div>'
+ : ''
));
switch($row['status_name']) {
case 'Unconfirmed' :
Index: config-dist.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/config-dist.php,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- config-dist.php 26 Jan 2002 16:46:52 -0000 1.7
+++ config-dist.php 18 Mar 2002 17:43:15 -0000 1.8
@@ -40,6 +40,7 @@
define ('TBL_AUTH_USER', TBL_PREFIX.'auth_user');
define ('TBL_BUG', TBL_PREFIX.'bug');
define ('TBL_BUG_CC', TBL_PREFIX.'bug_cc');
+define ('TBL_BUG_DEPENDENCY', TBL_PREFIX.'bug_dependency');
define ('TBL_BUG_GROUP', TBL_PREFIX.'bug_group');
define ('TBL_BUG_HISTORY', TBL_PREFIX.'bug_history');
define ('TBL_BUG_VOTE', TBL_PREFIX.'bug_vote');
Index: dbchanges.sql
===================================================================
RCS file: /cvsroot/phpbt/phpbt/dbchanges.sql,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- dbchanges.sql 26 Jan 2002 16:54:42 -0000 1.18
+++ dbchanges.sql 18 Mar 2002 17:43:16 -0000 1.19
@@ -1,3 +1 @@
-create table bug_vote (user_id int not null, bug_id int not null, created_date bigint unsigned not null, primary key(user_id, bug_id));
-insert into configuration values ('PROMOTE_VOTES', 5, 'The number of votes required to promote a bug from Unconfirmed to New (Set to 0 to disable promotions by voting)', 'string');
-insert into configuration values ('MAX_USER_VOTES', 5, 'The maximum number of votes a user can cast across all bugs (Set to 0 to have no limit)', 'string');
+create table bug_dependency (bug_id int not null, depends_on int not null, primary key (bug_id, depends_on));
|
|
From: Benjamin C. <bc...@us...> - 2002-03-18 17:55:56
|
Update of /cvsroot/phpbt/phpbt/templates/default
In directory usw-pr-cvs1:/tmp/cvs-serv23909/templates/default
Modified Files:
bugdisplay-printable.html bugdisplay.html
Log Message:
Added bug dependencies
Index: bugdisplay-printable.html
===================================================================
RCS file: /cvsroot/phpbt/phpbt/templates/default/bugdisplay-printable.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- bugdisplay-printable.html 18 Mar 2002 15:59:57 -0000 1.2
+++ bugdisplay-printable.html 18 Mar 2002 17:43:16 -0000 1.3
@@ -87,6 +87,13 @@
<table border="0" cellpadding="2" cellspacing="0" width="640">
<tr>
<td>
+ Bug Dependencies: {bug_dependencies}
+ <br>
+ <br>
+ </td>
+ </tr>
+ <tr>
+ <td>
Comments:
<hr size="1">
</td>
Index: bugdisplay.html
===================================================================
RCS file: /cvsroot/phpbt/phpbt/templates/default/bugdisplay.html,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- bugdisplay.html 18 Mar 2002 15:59:56 -0000 1.19
+++ bugdisplay.html 18 Mar 2002 17:43:17 -0000 1.20
@@ -171,6 +171,18 @@
</table>
<table border="0" cellpadding="2" cellspacing="0" width="640">
<tr>
+ <td>
+ {dependency_error}
+ Bug Dependencies: {bug_dependencies}
+ <br>
+ Add Dependency: <input type="text" name="add_dependency" size="5">
+ <br>
+ Remove Dependency: <input type="text" name="del_dependency" size="5">
+ <br>
+ <br>
+ </td>
+ </tr>
+ <tr>
<td valign="top">
Additional Comments:
<br>
|
Update of /cvsroot/phpbt/phpbt/languages In directory usw-pr-cvs1:/tmp/cvs-serv23661 Modified Files: cz.php de.php en.php es.php fr.php gb2312.php no.php pt-br.php ru_koi8-r.php ru_windows-1251.php se.php Log Message: Added bug dependencies Index: cz.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/cz.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- cz.php 12 Mar 2002 20:59:07 -0000 1.1 +++ cz.php 18 Mar 2002 17:42:23 -0000 1.2 @@ -23,80 +23,81 @@ // $Id$ $STRING = array( - 'lang_charset' => 'us-ascii', - 'nouser' => 'Tento uivatel neexistuje', - 'dupeofself' => 'BUG nemùe být shodný se sám se sebou', - 'nobug' => 'Tento BUG neexistuje', - 'givesummary' => 'Prosím vlote souhrn', - 'givedesc' => 'Prosím vlote popis', - 'noprojects' => 'Projekt nebyl nalezen', - 'totalbugs' => 'Celkovì chyb', - 'giveemail' => 'Prosím vlote správnou e-mailovou adresu', - 'givelogin' => 'prosím vlote login (uivatelské jméno)', - 'loginused' => 'Tento login ji uívá nìkdo jiný', - 'newacctsubject' => 'phpBugTracker Pøihláení', - 'newacctmessage' => "Váe phpBugTracker heslo je %s", - 'nobugs' => 'Nenalezeny ádné chyby', - 'givename' => 'Prosím vlote jméno', - 'edit' => 'Upravit', - 'addnew' => 'Pøidat', - 'nooses' => 'Nenalezen OS', - 'giveinitversion' => 'Prosím vlote poèáteèní verzi projektu ', - 'giveversion' => 'Prosím vlote verzi', - 'noversions' => 'Verze nenalezena', - 'nocomponents' => 'Komponenta nenalezena', - 'nostatuses' => 'Status nebyl nalezen', - 'noseverities' => 'Dùleitost nenalezena', - 'givepassword' => 'Prosím vlote heslo', - 'nousers' => 'Uivatel(é) nenalezen(i)', - 'bugbadperm' => 'Nemùete zmìnit BUG', - 'bugbadnum' => 'Tenhle BUG neexistuje', - 'datecollision' => 'Nìkdo aktualizoval BUG od Vaí poslední návtìvy. Do informací o BUGu byli zaneseny nejnovìjí zmìny', - 'passwordmatch' => 'Hesla nesouhlasí --prosím zadejte je znova', - 'nobughistory' => 'Tento BUG nemá hystorii', - 'logintomodify' => 'Musíte být zalogován pro upravu tohoto BUGu', - 'dupe_attachment' => 'Pøíloha pro tento BUG je ji nahrána', - 'give_attachment' => 'Prosím vyberte soubor pro upload', - 'no_attachment_save_path' => 'Cesta k uloenému souboru nenalezena', - 'attachment_path_not_writeable' => 'Nelze vytvoøit soubor na zadané cestì', - 'attachment_move_error' => 'Nastala chyba pøi pøesouvání nahraného souboru', - 'bad_attachment' => 'Tato pøíloha neexistuje', - 'attachment_too_large' => 'Vámi specifikovaný soubor je vìtí ne '.number_format(ATTACHMENT_MAX_SIZE).' bytù', - 'bad_permission' => 'Nemáte práva na poadovanou funkci', - 'project_only_all_groups' => 'Nelze vybrat specifickou skupoinu kdy jsou vybrány vechny skupiny', - 'previous_bug' => 'Pøedchozí', - 'next_bug' => 'Následující', - 'already_voted' => 'Ji jste hlasoval k tomuto BUGu', - 'too_many_votes' => 'Dosáhl jste maximálního poètu hlasù na jednoho uivatele', - 'no_votes' => 'Nikdo jetì nehlasoval', - 'user_filter' => array( - 0 => 'Vichni uivatelé', - 1 => 'Aktivní uivatelé', - 2 => 'Neaktivní uivatelé') - ); + 'lang_charset' => 'us-ascii', + 'nouser' => 'Tento uivatel neexistuje', + 'dupeofself' => 'BUG nemùe být shodný se sám se sebou', + 'nobug' => 'Tento BUG neexistuje', + 'givesummary' => 'Prosím vlote souhrn', + 'givedesc' => 'Prosím vlote popis', + 'noprojects' => 'Projekt nebyl nalezen', + 'totalbugs' => 'Celkovì chyb', + 'giveemail' => 'Prosím vlote správnou e-mailovou adresu', + 'givelogin' => 'prosím vlote login (uivatelské jméno)', + 'loginused' => 'Tento login ji uívá nìkdo jiný', + 'newacctsubject' => 'phpBugTracker Pøihláení', + 'newacctmessage' => "Váe phpBugTracker heslo je %s", + 'nobugs' => 'Nenalezeny ádné chyby', + 'givename' => 'Prosím vlote jméno', + 'edit' => 'Upravit', + 'addnew' => 'Pøidat', + 'nooses' => 'Nenalezen OS', + 'giveinitversion' => 'Prosím vlote poèáteèní verzi projektu ', + 'giveversion' => 'Prosím vlote verzi', + 'noversions' => 'Verze nenalezena', + 'nocomponents' => 'Komponenta nenalezena', + 'nostatuses' => 'Status nebyl nalezen', + 'noseverities' => 'Dùleitost nenalezena', + 'givepassword' => 'Prosím vlote heslo', + 'nousers' => 'Uivatel(é) nenalezen(i)', + 'bugbadperm' => 'Nemùete zmìnit BUG', + 'bugbadnum' => 'Tenhle BUG neexistuje', + 'datecollision' => 'Nìkdo aktualizoval BUG od Vaí poslední návtìvy. Do informací o BUGu byli zaneseny nejnovìjí zmìny', + 'passwordmatch' => 'Hesla nesouhlasí --prosím zadejte je znova', + 'nobughistory' => 'Tento BUG nemá hystorii', + 'logintomodify' => 'Musíte být zalogován pro upravu tohoto BUGu', + 'dupe_attachment' => 'Pøíloha pro tento BUG je ji nahrána', + 'give_attachment' => 'Prosím vyberte soubor pro upload', + 'no_attachment_save_path' => 'Cesta k uloenému souboru nenalezena', + 'attachment_path_not_writeable' => 'Nelze vytvoøit soubor na zadané cestì', + 'attachment_move_error' => 'Nastala chyba pøi pøesouvání nahraného souboru', + 'bad_attachment' => 'Tato pøíloha neexistuje', + 'attachment_too_large' => 'Vámi specifikovaný soubor je vìtí ne '.number_format(ATTACHMENT_MAX_SIZE).' bytù', + 'bad_permission' => 'Nemáte práva na poadovanou funkci', + 'project_only_all_groups' => 'Nelze vybrat specifickou skupoinu kdy jsou vybrány vechny skupiny', + 'previous_bug' => 'Pøedchozí', + 'next_bug' => 'Následující', + 'already_voted' => 'Ji jste hlasoval k tomuto BUGu', + 'too_many_votes' => 'Dosáhl jste maximálního poètu hlasù na jednoho uivatele', + 'no_votes' => 'Nikdo jetì nehlasoval', + 'user_filter' => array( + 0 => 'Vichni uivatelé', + 1 => 'Aktivní uivatelé', + 2 => 'Neaktivní uivatelé'), + 'dupe_dependency' => 'That bug dependency has already been added' + ); // Page titles $TITLE = array( - 'enterbug' => 'Vlote BUG', - 'editbug' => 'Upravte BUG', - 'newaccount' => 'Vytvoøit nový úèet', - 'bugquery' => 'BUG dotaz', - 'buglist' => 'Seznam BUGù', - 'addcomponent' => 'Pøidat komponentu', - 'editcomponent' => 'Editovat komponentu', - 'addproject' => 'Pøidat projekt', - 'editproject' => 'Editovat projekt', - 'addversion' => 'Pøidat verzi', - 'editversion' => 'Upravit verzi', - 'project' => 'Projekty', - 'os' => 'Operaèní systémy', - 'resolution' => 'Rozliení', - 'status' => 'Statusy', - 'severity' => 'Dùleitosti', - 'user' => 'Uivatelé', - 'home' => 'Domù', - 'reporting' => 'Hláení', - 'group' => 'Skupiny' - ); + 'enterbug' => 'Vlote BUG', + 'editbug' => 'Upravte BUG', + 'newaccount' => 'Vytvoøit nový úèet', + 'bugquery' => 'BUG dotaz', + 'buglist' => 'Seznam BUGù', + 'addcomponent' => 'Pøidat komponentu', + 'editcomponent' => 'Editovat komponentu', + 'addproject' => 'Pøidat projekt', + 'editproject' => 'Editovat projekt', + 'addversion' => 'Pøidat verzi', + 'editversion' => 'Upravit verzi', + 'project' => 'Projekty', + 'os' => 'Operaèní systémy', + 'resolution' => 'Rozliení', + 'status' => 'Statusy', + 'severity' => 'Dùleitosti', + 'user' => 'Uivatelé', + 'home' => 'Domù', + 'reporting' => 'Hláení', + 'group' => 'Skupiny' + ); ?> Index: de.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/de.php,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- de.php 1 Mar 2002 00:41:31 -0000 1.11 +++ de.php 18 Mar 2002 17:42:24 -0000 1.12 @@ -75,7 +75,8 @@ 'user_filter' => array( 0 => 'All users', 1 => 'Active users', - 2 => 'Inactive users') + 2 => 'Inactive users'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles Index: en.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/en.php,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- en.php 1 Mar 2002 00:41:31 -0000 1.11 +++ en.php 18 Mar 2002 17:42:24 -0000 1.12 @@ -72,7 +72,8 @@ 'user_filter' => array( 0 => 'All users', 1 => 'Active users', - 2 => 'Inactive users') + 2 => 'Inactive users'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles Index: es.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/es.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- es.php 1 Mar 2002 00:41:31 -0000 1.4 +++ es.php 18 Mar 2002 17:42:24 -0000 1.5 @@ -72,7 +72,8 @@ 'user_filter' => array( 0 => 'All users', 1 => 'Active users', - 2 => 'Inactive users') + 2 => 'Inactive users'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles Index: fr.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/fr.php,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- fr.php 1 Mar 2002 00:41:31 -0000 1.8 +++ fr.php 18 Mar 2002 17:42:24 -0000 1.9 @@ -73,7 +73,8 @@ 'user_filter' => array( 0 => 'All users', 1 => 'Active users', - 2 => 'Inactive users') + 2 => 'Inactive users'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles Index: gb2312.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/gb2312.php,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- gb2312.php 1 Mar 2002 00:41:31 -0000 1.7 +++ gb2312.php 18 Mar 2002 17:42:25 -0000 1.8 @@ -75,7 +75,8 @@ 'user_filter' => array( 0 => 'All users', 1 => 'Active users', - 2 => 'Inactive users') + 2 => 'Inactive users'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles Index: no.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/no.php,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- no.php 1 Mar 2002 00:41:31 -0000 1.10 +++ no.php 18 Mar 2002 17:42:25 -0000 1.11 @@ -73,7 +73,8 @@ 'user_filter' => array( 0 => 'All users', 1 => 'Active users', - 2 => 'Inactive users') + 2 => 'Inactive users'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles Index: pt-br.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/pt-br.php,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- pt-br.php 1 Mar 2002 00:41:31 -0000 1.12 +++ pt-br.php 18 Mar 2002 17:42:25 -0000 1.13 @@ -73,7 +73,8 @@ 'user_filter' => array( 0 => 'All users', 1 => 'Active users', - 2 => 'Inactive users') + 2 => 'Inactive users'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles Index: ru_koi8-r.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/ru_koi8-r.php,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ru_koi8-r.php 1 Mar 2002 00:41:31 -0000 1.9 +++ ru_koi8-r.php 18 Mar 2002 17:42:25 -0000 1.10 @@ -72,7 +72,8 @@ 'user_filter' => array( 0 => 'All users', 1 => 'Active users', - 2 => 'Inactive users') + 2 => 'Inactive users'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles Index: ru_windows-1251.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/ru_windows-1251.php,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ru_windows-1251.php 1 Mar 2002 00:41:31 -0000 1.9 +++ ru_windows-1251.php 18 Mar 2002 17:42:25 -0000 1.10 @@ -72,7 +72,8 @@ 'user_filter' => array( 0 => 'All users', 1 => 'Active users', - 2 => 'Inactive users') + 2 => 'Inactive users'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles Index: se.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/se.php,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- se.php 13 Mar 2002 16:49:20 -0000 1.12 +++ se.php 18 Mar 2002 17:42:25 -0000 1.13 @@ -73,7 +73,8 @@ 'user_filter' => array( 0 => 'Alla användare', 1 => 'Aktiva användare', - 2 => 'Inaktiva användare') + 2 => 'Inaktiva användare'), + 'dupe_dependency' => 'That bug dependency has already been added' ); // Page titles |
|
From: Benjamin C. <bc...@us...> - 2002-03-18 17:53:02
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv27598
Modified Files:
upgrade.php
Log Message:
Added some comments
Index: upgrade.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/upgrade.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- upgrade.php 18 Mar 2002 15:54:39 -0000 1.12
+++ upgrade.php 18 Mar 2002 17:52:56 -0000 1.13
@@ -28,6 +28,7 @@
function upgrade() {
global $db;
+ // Note, no upgrades for oracle since we didn't support oracle before 0.8.0
$upgraded = $db->getOne('select count(*) from '.TBL_BUG.'_seq');
if (!$upgraded or DB::isError($upgraded)) {
// Convert the sequences
@@ -37,10 +38,12 @@
}
$rs = $db->query("select * from ".TBL_DB_SEQUENCE);
if (DB_TYPE == 'pgsql') {
+ // Move the sequences
while ($rs->fetchInto($row)) {
$db->query("create sequence {$row['seq_name']}_seq start {$row['nextid']}");
}
} else {
+ // Move the sequences
while ($rs->fetchInto($row)) {
$db->query("create table {$row['seq_name']}_seq (id int unsigned auto_increment not null primary key)");
$db->query("insert into {$row['seq_name']}_seq values ({$row['nextid']})");
|
|
From: Benjamin C. <bc...@us...> - 2002-03-18 16:21:45
|
Update of /cvsroot/phpbt/phpbt/inc
In directory usw-pr-cvs1:/tmp/cvs-serv25775
Modified Files:
auth.php functions.php
Log Message:
Switching to PEAR::DB
Index: auth.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/inc/auth.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- auth.php 11 Mar 2002 16:17:54 -0000 1.9
+++ auth.php 18 Mar 2002 16:21:42 -0000 1.10
@@ -61,7 +61,7 @@
}
function auth_validatelogin() {
- global $_pv, $q, $select, $emailpass, $emailsuccess, $STRING;
+ global $_pv, $db, $select, $emailpass, $emailsuccess, $STRING;
extract($_pv);
if (!$username) return 0;
@@ -69,24 +69,24 @@
if (ENCRYPT_PASS) {
$password = md5($password);
}
- $u = $q->grab("select * from ".TBL_AUTH_USER." where login = '$username' and password = '$password' and active > 0");
- if (!$q->num_rows()) {
+ $u = $db->getRow("select * from ".TBL_AUTH_USER." where login = '$username' and password = '$password' and active > 0");
+ if (!$u or DB::isError($u)) {
return 0;
} else {
$this->auth['db_fields'] = @unserialize($u['bug_list_fields']);
// Grab group assignments and permissions based on groups
- $q->query("select u.group_id, group_name from ".TBL_USER_GROUP." u, ".
- TBL_AUTH_GROUP." a where user_id = {$u['user_id']} ".
+ $rs = $db->query("select u.group_id, group_name from ".TBL_USER_GROUP.
+ " u, ".TBL_AUTH_GROUP." a where user_id = {$u['user_id']} ".
'and u.group_id = a.group_id');
- while (list($groupid, $groupname) = $q->grab()) {
+ while (list($groupid, $groupname) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) {
$this->auth['group_ids'][] = $groupid;
$this->auth['group'][$groupname] = true;
}
- $q->query("select perm_name from ".TBL_AUTH_PERM." ap, ".
+ $perms = $db->getCol("select perm_name from ".TBL_AUTH_PERM." ap, ".
TBL_GROUP_PERM." gp where group_id in (".
delimit_list(',', $this->auth['group_ids']).") and gp.perm_id = ap.perm_id");
- while ($perm = $q->grab_field()) {
+ foreach ($perms as $perm) {
$this->auth['perm'][$perm] = true;
}
$this->auth['uid'] = $u['user_id'];
Index: functions.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/inc/functions.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- functions.php 17 Mar 2002 01:46:38 -0000 1.8
+++ functions.php 18 Mar 2002 16:21:42 -0000 1.9
@@ -43,7 +43,7 @@
///
/// Build a select box with the item matching $value selected
function build_select($box, $value = '', $project = 0) {
- global $q, $select, $perm, $auth, $STRING, $restricted_projects;
+ global $db, $select, $perm, $auth, $STRING, $restricted_projects;
//create hash to map tablenames
$cfgDatabase = array(
@@ -89,8 +89,8 @@
}
$text = "<option value=\"all\"$sel>All Groups</option>";
}
- $q->query($queries[$box]);
- while ($row = $q->grab()) {
+ $rs = $db->query($queries[$box]);
+ while ($rs->fetchInto($row)) {
if (count($value) && in_array($row[$box.'_id'], $value)) $sel = ' selected';
else $sel = '';
$text .= '<option value="'.
@@ -103,8 +103,8 @@
case 'project' :
case 'component' :
case 'version' :
- $q->query($queries[$box]);
- while ($row = $q->grab()) {
+ $rs = $db->query($queries[$box]);
+ while ($rs->fetchInto($row)) {
if ($value == $row[$box.'_id'] and $value != '') $sel = ' selected';
else $sel = '';
$text .= '<option value="'.
@@ -112,8 +112,8 @@
}
break;
case 'os' :
- $q->query("select {$box}_id, {$box}_name, regex from ".TBL_OS." where sort_order > 0 order by sort_order");
- while ($row = $q->grab()) {
+ $rs = $db->query("select {$box}_id, {$box}_name, regex from ".TBL_OS." where sort_order > 0 order by sort_order");
+ while ($rs->fetchInto($row)) {
if ($value == '' and isset($row['Regex']) and
preg_match($row['Regex'],$GLOBALS['HTTP_USER_AGENT'])) $sel = ' selected';
elseif ($value == $row[$box.'_id']) $sel = ' selected';
@@ -123,17 +123,17 @@
}
break;
case 'owner' :
- $q->query("select u.user_id, login from ".TBL_AUTH_USER." u, ".TBL_USER_GROUP." ug, ".TBL_AUTH_GROUP." g where u.active > 0 and u.user_id = ug.user_id and ug.group_id = g.group_id and group_name = 'Developer' order by login");
- while ($row = $q->grab()) {
+ $rs = $db->query("select u.user_id, login from ".TBL_AUTH_USER." u, ".TBL_USER_GROUP." ug, ".TBL_AUTH_GROUP." g where u.active > 0 and u.user_id = ug.user_id and ug.group_id = g.group_id and group_name = 'Developer' order by login");
+ while ($rs->fetchInto($row)) {
if ($value == $row['user_id']) $sel = ' selected';
else $sel = '';
$text .= "<option value=\"{$row['user_id']}\"$sel>{$row['login']}</option>";
}
break;
case 'bug_cc' :
- $q->query('select b.user_id, login from '.TBL_BUG_CC.' b left join '.
+ $rs = $db->query('select b.user_id, login from '.TBL_BUG_CC.' b left join '.
TBL_AUTH_USER." using(user_id) where bug_id = $value");
- while (list($uid, $user) = $q->grab()) {
+ while (list($uid, $user) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) {
$text .= "<option value=\"$uid\">".maskemail($user).'</option>';
}
@@ -314,29 +314,28 @@
///
/// Build the javascript for the dynamic project -> component -> version select boxes
function build_project_js() {
- global $q, $u, $perm, $auth;
+ global $db, $u, $perm, $auth;
- $nq = new dbclass;
$js = '';
// Build the javascript-powered select boxes
if ($perm->have_perm('Admin')) {
- $q->query("select project_id, project_name from ".TBL_PROJECT.
+ $rs = $db->query("select project_id, project_name from ".TBL_PROJECT.
" where active = 1 order by project_name");
} else {
- $q->query('select p.project_id, project_name from '.TBL_PROJECT.
+ $rs = $db->query('select p.project_id, project_name from '.TBL_PROJECT.
' p left join '.TBL_PROJECT_GROUP.' pg using(project_id)
where active = 1 and (pg.project_id is null or pg.group_id in ('.
delimit_list(',', $auth->auth['group_ids']).')) group by
p.project_id, p.project_name order by project_name');
}
- while (list($pid, $pname) = $q->grab()) {
+ while (list($pid, $pname) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) {
$pname = addslashes($pname);
// Version array
$js .= "versions['$pname'] = new Array(new Array('','All'),";
- $nq->query("select version_name, version_id from ".TBL_VERSION.
+ $rs2 = $db->query("select version_name, version_id from ".TBL_VERSION.
" where project_id = $pid and active = 1");
- while (list($version,$vid) = $nq->grab()) {
+ while (list($version,$vid) = $rs2->fetchRow(DB_FETCHMODE_ORDERED)) {
$version = addslashes($version);
$js .= "new Array($vid,'$version'),";
}
@@ -345,9 +344,9 @@
// Component array
$js .= "components['$pname'] = new Array(new Array('','All'),";
- $nq->query("select component_name, component_id from ".TBL_COMPONENT.
+ $rs2 = $db->query("select component_name, component_id from ".TBL_COMPONENT.
" where project_id = $pid and active = 1");
- while (list($comp,$cid) = $nq->grab()) {
+ while (list($comp,$cid) = $rs2->fetchRow(DB_FETCHMODE_ORDERED)) {
$comp = addslashes($comp);
$js .= "new Array($cid,'$comp'),";
}
|
|
From: Benjamin C. <bc...@us...> - 2002-03-18 16:00:00
|
Update of /cvsroot/phpbt/phpbt/templates/default
In directory usw-pr-cvs1:/tmp/cvs-serv18326/templates/default
Modified Files:
bugdisplay.html bugdisplay-printable.html
Log Message:
Fixes bug 530269
Index: bugdisplay.html
===================================================================
RCS file: /cvsroot/phpbt/phpbt/templates/default/bugdisplay.html,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- bugdisplay.html 28 Feb 2002 17:48:58 -0000 1.18
+++ bugdisplay.html 18 Mar 2002 15:59:56 -0000 1.19
@@ -44,7 +44,7 @@
</tr>
<tr>
<td>
- Product:
+ Project:
</td>
<td>
<select name="project_id" onChange="updateMenus(this.form)">{project}</select>
Index: bugdisplay-printable.html
===================================================================
RCS file: /cvsroot/phpbt/phpbt/templates/default/bugdisplay-printable.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- bugdisplay-printable.html 3 Nov 2001 19:24:07 -0000 1.1
+++ bugdisplay-printable.html 18 Mar 2002 15:59:57 -0000 1.2
@@ -12,7 +12,7 @@
</tr>
<tr>
<td>
- Product:
+ Project:
</td>
<td>
{project}
|
|
From: Benjamin C. <bc...@us...> - 2002-03-18 15:55:23
|
Update of /cvsroot/phpbt/phpbt In directory usw-pr-cvs1:/tmp/cvs-serv16844 Modified Files: CHANGELOG Log Message: Index: CHANGELOG =================================================================== RCS file: /cvsroot/phpbt/phpbt/CHANGELOG,v retrieving revision 1.47 retrieving revision 1.48 diff -u -r1.47 -r1.48 --- CHANGELOG 14 Mar 2002 19:37:44 -0000 1.47 +++ CHANGELOG 18 Mar 2002 15:55:20 -0000 1.48 @@ -1,3 +1,6 @@ +-- 0.8.0 -- +: Switched database abstraction layer to PEAR::DB + -- 0.7.2 -- 14 Mar 2002 : Bugs were fixed with project restrictions and front-page summary info. |
|
From: Benjamin C. <bc...@us...> - 2002-03-18 15:54:43
|
Update of /cvsroot/phpbt/phpbt/templates/default In directory usw-pr-cvs1:/tmp/cvs-serv16557/templates/default Modified Files: upgrade.html Log Message: Updated for 0.8.0 Index: upgrade.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/upgrade.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- upgrade.html 14 Mar 2002 19:37:44 -0000 1.7 +++ upgrade.html 18 Mar 2002 15:54:39 -0000 1.8 @@ -6,7 +6,7 @@ <div align="center"> <br> <br> - This script will upgrade your database from version 0.6.x to version 0.7.2 + This script will upgrade your database from version 0.7.x to version 0.8.x of phpBugTracker. <br> <br> |