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...> - 2001-11-30 06:21:46
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv5301
Modified Files:
config.php
Log Message:
Fixed a bug with the rendering of the select boxes
Index: config.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/config.php,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- config.php 2001/11/30 06:07:27 1.18
+++ config.php 2001/11/30 06:21:43 1.19
@@ -26,10 +26,10 @@
// 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
|
|
From: Benjamin C. <bc...@us...> - 2001-11-30 06:21:46
|
Update of /cvsroot/phpbt/phpbt/templates/default/admin
In directory usw-pr-cvs1:/tmp/cvs-serv5301/templates/default/admin
Modified Files:
configure.html
Log Message:
Fixed a bug with the rendering of the select boxes
Index: configure.html
===================================================================
RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/configure.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- configure.html 2001/10/13 23:15:52 1.1
+++ configure.html 2001/11/30 06:21:43 1.2
@@ -19,7 +19,7 @@
<input type="{input_type}" name="{varname}" value="{varvalue}"{checked}>
<!-- END inputblock -->
<!-- BEGIN selectblock -->
- <select name="varname">{options}</select>
+ <select name="{varname}">{options}</select>
<!-- END selectblock -->
<!-- BEGIN radioblock -->
<input type="radio" name="{varname}" value="1"{yes}> Yes
|
|
From: Ben C. <php...@be...> - 2001-11-30 06:17:43
|
I've just committed the changes to move the phplib files into the package. Please hammer on this stuff a bit to see if I broke anything. I'm still thinking of moving to adodb for the db abstraction, but so far in playing with it I haven't been able to get completely comfortable using it. Making a decision on that and banging out the group stuff are the two main things I'm planning on doing before the next release. |
|
From: Benjamin C. <bc...@us...> - 2001-11-30 06:07:29
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv30284
Modified Files:
config.php
Log Message:
Use newly internalized phplib files
Index: config.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/config.php,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- config.php 2001/11/23 05:04:15 1.17
+++ config.php 2001/11/30 06:07:27 1.18
@@ -61,7 +61,7 @@
define ('ONEDAY', 86400);
-require_once (PHPLIB_PATH.'db_'.DB_TYPE.'.inc');
+require_once (INSTALL_PATH.'/'.INCLUDE_PATH.'inc/db/'.DB_TYPE.'.php');
require_once (INSTALL_PATH.'/'.INCLUDE_PATH.'inc/session.php');
require_once (INSTALL_PATH.'/'.INCLUDE_PATH.'inc/auth.php');
require_once (INSTALL_PATH.'/'.INCLUDE_PATH.'inc/template.php');
|
|
From: Benjamin C. <bc...@us...> - 2001-11-30 06:06:38
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv30076
Modified Files:
install.php
Log Message:
Keep it close
Index: install.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/install.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- install.php 2001/11/09 17:53:37 1.5
+++ install.php 2001/11/30 06:06:35 1.6
@@ -23,7 +23,9 @@
// ------------------------------------------------------------------------
// $Id$
-include_once('template.inc');
+define ('INSTALL_PATH', dirname($HTTP_SERVER_VARS['SCRIPT_FILENAME']));
+
+include (INSTALL_PATH.'/inc/template.php');
$t = new Template('templates/default', 'keep');
$t->set_var('me', $HTTP_SERVER_VARS['PHP_SELF']);
$_gv =& $HTTP_GET_VARS;
@@ -98,7 +100,7 @@
function create_tables() {
global $_pv, $tables;
- include_once('db_'.$_pv['db_type'].'.inc');
+ include_once(INSTALL_PATH.'/inc/db/'.$_pv['db_type'].'.php');
$db = new DB_Sql;
$db->Host = $_pv['db_host'];
|
|
From: Benjamin C. <bc...@us...> - 2001-11-30 06:06:20
|
Update of /cvsroot/phpbt/phpbt/inc/db
In directory usw-pr-cvs1:/tmp/cvs-serv30006/inc/db
Added Files:
mysql.php pgsql.php
Log Message:
Including phplib files
--- NEW FILE: mysql.php ---
<?php
/*
* Session Management for PHP3
*
* Copyright (c) 1998,1999 NetUSE GmbH
* Boris Erdmann, Kristian Koehntopp
*
* db_sql.inc,v 1.12 2001/10/12 16:19:29 layne_weathers
*
*/
class DB_Sql {
/* public: connection parameters */
var $Host = "";
var $Database = "";
var $User = "";
var $Password = "";
/* public: configuration parameters */
var $Auto_Free = 0; ## Set to 1 to automatically free results
var $Debug = 0; ## Set to 1 for debugging messages
var $Halt_On_Error = "yes"; ## "yes" (halt with message), "no" (ignore errors quietly), "report" (ignore error, but spit a warning)
var $Seq_Table = "db_sequence"; ## Name of the sequence table
var $Seq_ID_Col = "p_nextid"; ## Name of the Sequence ID column in $Seq_Table
var $Seq_Name_Col = "p_seq_name"; ## Name of the Sequence Name column in $Seq_Table
/* public: result array and current row number */
var $Record = array();
var $Row = 0;
/* public: current error number and error text */
var $Errno = 0;
var $Error = "";
/* public: this is an api revision, not a CVS revision. */
var $type = "mysql";
var $revision = "1.2";
/* private: link and query handles */
var $Link_ID = 0;
var $Query_ID = 0;
/* public: constructor */
function DB_Sql($query = "") {
$this->query($query);
}
/* public: some trivial reporting */
function link_id() {
return $this->Link_ID;
}
function query_id() {
return $this->Query_ID;
}
/* public: connection management */
function connect($Database = "", $Host = "", $User = "", $Password = "") {
/* Handle defaults */
if ("" == $Database)
$Database = $this->Database;
if ("" == $Host)
$Host = $this->Host;
if ("" == $User)
$User = $this->User;
if ("" == $Password)
$Password = $this->Password;
/* establish connection, select database */
if ( 0 == $this->Link_ID ) {
$this->Link_ID=mysql_pconnect($Host, $User, $Password);
if (!$this->Link_ID) {
$this->halt("pconnect($Host, $User, \$Password) failed.");
return 0;
}
}
if (!@mysql_select_db($Database,$this->Link_ID)) {
$this->halt("cannot use database ".$Database);
return 0;
}
return $this->Link_ID;
}
/* public: discard the query result */
function free() {
@mysql_free_result($this->Query_ID);
$this->Query_ID = 0;
}
/* public: perform a query */
function query($Query_String) {
/* No empty queries, please, since PHP4 chokes on them. */
if ($Query_String == "")
/* The empty query string is passed on from the constructor,
* when calling the class without a query, e.g. in situations
* like these: '$db = new DB_Sql_Subclass;'
*/
return 0;
if (!$this->connect()) {
return 0; /* we already complained in connect() about that. */
}
# New query, discard previous result.
if ($this->Query_ID) {
$this->free();
}
if ($this->Debug)
printf("Debug: query = %s<br>\n", $Query_String);
$this->Query_ID = @mysql_query($Query_String,$this->Link_ID);
$this->Row = 0;
$this->check_error();
if (!$this->Query_ID) {
$this->halt("Invalid SQL: ".$Query_String);
}
# Will return nada if it fails. That's fine.
return $this->Query_ID;
}
/* public: walk result set */
function next_record() {
if (!$this->Query_ID) {
$this->halt("next_record called with no query pending.");
return 0;
}
$this->Record = @mysql_fetch_array($this->Query_ID);
$this->Row += 1;
$this->check_error();
$stat = is_array($this->Record);
if (!$stat && $this->Auto_Free) {
$this->free();
}
return $stat;
}
/* public: position in result set */
function seek($pos = 0) {
$status = @mysql_data_seek($this->Query_ID, $pos);
if ($status)
$this->Row = $pos;
else {
$this->halt("seek($pos) failed: result has ".$this->num_rows()." rows.");
/* half assed attempt to save the day,
* but do not consider this documented or even
* desirable behaviour.
*/
@mysql_data_seek($this->Query_ID, $this->num_rows());
$this->Row = $this->num_rows();
return 0;
}
return 1;
}
/* public: table locking */
function lock($table, $mode = "write") {
$query = "lock tables ";
if (is_array($table)) {
while (list($key,$value) = each($table)) {
if (!is_int($key)) {
// texts key are "read", "read local", "write", "low priority write"
$query .= "$value $key, ";
} else {
$query .= "$value $mode, ";
}
}
$query = substr($query,0,-2);
} else {
$query .= "$table $mode";
}
$res = $this->query($query);
if (!$res) {
$this->halt("lock() failed.");
return 0;
}
return $res;
}
function unlock() {
$res = $this->query("unlock tables");
if (!$res) {
$this->halt("unlock() failed.");
}
return $res;
}
/* public: evaluate the result (size, width) */
function affected_rows() {
return @mysql_affected_rows($this->Link_ID);
}
function num_rows() {
return @mysql_num_rows($this->Query_ID);
}
function num_fields() {
return @mysql_num_fields($this->Query_ID);
}
/* public: shorthand notation */
function nf() {
return $this->num_rows();
}
function np() {
print $this->num_rows();
}
function f($Name) {
if (isset($this->Record[$Name])) {
return $this->Record[$Name];
}
return "";
}
function p($Name) {
print $this->f($Name);
}
/* public: sequence numbers */
function nextid($seq_name) {
if (!$this->connect()) {
return 0; /* we already complained in connect() about that. */
}
if ($this->lock($this->Seq_Table)) {
/* get sequence number (locked) and increment */
$q = sprintf("select %s from %s where %s = '%s'",
$this->Seq_ID_Col,
$this->Seq_Table,
$this->Seq_Name_Col,
$seq_name);
$id = @mysql_query($q, $this->Link_ID);
$res = @mysql_fetch_array($id);
/* No current value, make one */
if (!is_array($res)) {
$currentid = 0;
$q = sprintf("insert into %s ( %s, %s ) values('%s', %s)",
$this->Seq_Table,
$this->Seq_Name_Col,
$this->Seq_ID_Col,
$seq_name,
$currentid);
$id = @mysql_query($q, $this->Link_ID);
} else {
$currentid = $res[$this->Seq_ID_Col];
}
$nextid = $currentid + 1;
$q = sprintf("update %s set %s = '%s' where %s = '%s'",
$this->Seq_Table,
$this->Seq_ID_Col,
$nextid,
$this->Seq_Name_Col,
$seq_name);
$id = @mysql_query($q, $this->Link_ID);
$this->unlock();
} else {
$this->halt("cannot lock ".$this->Seq_Table." - has it been created?");
return 0;
}
return $nextid;
}
/* public: return table metadata */
function metadata($table = "", $full = false) {
$count = 0;
$id = 0;
$res = array();
/*
* Due to compatibility problems with Table we changed the behavior
* of metadata();
* If $full is set, metadata returns additional information
*
* This information is always returned:
* $result[]:
* [0]["table"] table name
* [0]["name"] field name
* [0]["type"] field type
* [0]["len"] field length
* [0]["flags"] field flags
*
* If $full is set this information is also returned:
* $result[]:
* ["num_fields"] number of metadata records
* [0]["php_type"] the corresponding PHP-type
* [0]["php_subtype"] the subtype of PHP-type
* ["meta"][field name] index of field named "field name"
* This one could be used if you have a field name, but no index.
* Test: if (isset($result['meta']['myfield'])) { ...
* [unique] = field names which have an unique key, separated by space
*/
// if no $table specified, assume that we are working with a query result
if ($table) {
if (!$this->connect()) {
return 0; /* we already complained in connect() about that. */
}
$id = @mysql_list_fields($this->Database, $table);
if (!$id) {
$this->halt("Metadata query failed.");
return false;
}
} else {
$id = $this->Query_ID;
if (!$id) {
$this->halt("No query specified.");
return false;
}
}
$count = @mysql_num_fields($id);
for ($i=0; $i<$count; $i++) {
$res[$i]["table"] = @mysql_field_table ($id, $i);
$res[$i]["name"] = @mysql_field_name ($id, $i);
$res[$i]["type"] = @mysql_field_type ($id, $i);
$res[$i]["len"] = @mysql_field_len ($id, $i);
$res[$i]["flags"] = @mysql_field_flags ($id, $i);
}
if ($full) {
$uniq = array();
$res["num_fields"] = $count;
for ($i=0; $i<$count; $i++) {
$res["meta"][$res[$i]["name"]] = $i;
switch ($res[$i]["type"]) {
case "var string":
case "string" :
case "char" :
$res[$i]["php_type"]="string";
$res[$i]["php_subtype"]="";
break;
case "timestamp" :
case "datetime" :
case "date" :
case "time" :
$res[$i]["php_type"]="string";
$res[$i]["php_subtype"]="date";
break;
case "blob" :
$res[$i]["php_type"]="string";
$res[$i]["php_subtype"]="blob";
break;
case "real" :
$res[$i]["php_type"]="double";
$res[$i]["php_subtype"]="";
break;
case "long" :
default :
$res[$i]["php_type"]="int";
$res[$i]["php_subtype"]="";
break;
}
if ( ereg("(unique_key|primary_key)",$res[$i]["flags"]) ) {
$uniq[]=$res[$i]["name"];
}
}
$res["unique"]=join(" ",$uniq);
}
// free the result only if we were called on a table
if ($table) {
@mysql_free_result($id);
}
return $res;
}
/* public: find available table names */
function table_names() {
if (!$this->connect()) {
return 0; /* we already complained in connect() about that. */
}
$h = @mysql_query("show tables", $this->Link_ID);
$i = 0;
while ($info = @mysql_fetch_row($h)) {
$return[$i]["table_name"] = $info[0];
$return[$i]["tablespace_name"] = $this->Database;
$return[$i]["database"] = $this->Database;
$i++;
}
@mysql_free_result($h);
return $return;
}
/* private: error handling */
function check_error() {
$this->Error = @mysql_error();
$this->Errno = @mysql_errno();
}
function halt($msg) {
$this->Error = @mysql_error($this->Link_ID);
$this->Errno = @mysql_errno($this->Link_ID);
if ($this->Halt_On_Error == "no")
return;
$this->haltmsg($msg);
if ($this->Halt_On_Error != "report")
die("Session halted.");
}
function haltmsg($msg) {
printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
printf("<b>MySQL Error</b>: %s (%s)<br>\n",
$this->Errno,
$this->Error);
}
}
?>
--- NEW FILE: pgsql.php ---
<?php
/*
* Session Management for PHP3
*
* Copyright (c) 1998,1999 NetUSE GmbH
* Boris Erdmann, Kristian Koehntopp
*
* db_sql.inc,v 1.4 2000/07/01 22:08:35 kir
*
*/
class DB_Sql {
var $Host = "";
var $Database = "";
var $User = "";
var $Password = "";
var $Link_ID = 0;
var $Query_ID = 0;
var $Record = array();
var $Row = 0;
var $Seq_Table = "db_sequence";
var $Errno = 0;
var $Error = "";
var $Auto_Free = 0; # Set this to 1 for automatic pg_freeresult on
# last record.
function ifadd($add, $me) {
if("" != $add) return " ".$me.$add;
}
/* public: constructor */
function DB_Sql($query = "") {
$this->query($query);
}
function connect() {
if ( 0 == $this->Link_ID ) {
$cstr = "dbname=".$this->Database.
$this->ifadd($this->Host, "host=").
$this->ifadd($this->Port, "port=").
$this->ifadd($this->User, "user=").
$this->ifadd($this->Password, "password=");
$this->Link_ID=pg_pconnect($cstr);
if (!$this->Link_ID) {
$this->halt("Link-ID == false, pconnect failed");
}
}
}
function query($Query_String) {
/* No empty queries, please, since PHP4 chokes on them. */
if ($Query_String == "")
/* The empty query string is passed on from the constructor,
* when calling the class without a query, e.g. in situations
* like these: '$db = new DB_Sql_Subclass;'
*/
return 0;
$this->connect();
# printf("<br>Debug: query = %s<br>\n", $Query_String);
$this->Query_ID = pg_Exec($this->Link_ID, $Query_String);
$this->Row = 0;
$this->Error = pg_ErrorMessage($this->Link_ID);
$this->Errno = ($this->Error == "")?0:1;
if (!$this->Query_ID) {
$this->halt("Invalid SQL: ".$Query_String);
}
return $this->Query_ID;
}
function next_record() {
$this->Record = @pg_fetch_array($this->Query_ID, $this->Row++);
$this->Error = pg_ErrorMessage($this->Link_ID);
$this->Errno = ($this->Error == "")?0:1;
$stat = is_array($this->Record);
if (!$stat && $this->Auto_Free) {
pg_freeresult($this->Query_ID);
$this->Query_ID = 0;
}
return $stat;
}
function seek($pos) {
$this->Row = $pos;
}
function lock($table, $mode = "write") {
if ($mode == "write") {
$result = pg_Exec($this->Link_ID, "lock table $table");
} else {
$result = 1;
}
return $result;
}
function unlock() {
return pg_Exec($this->Link_ID, "commit");
}
/* public: sequence numbers */
function nextid($seq_name) {
$this->connect();
if ($this->lock($this->Seq_Table)) {
/* get sequence number (locked) and increment */
$q = sprintf("select nextid from %s where seq_name = '%s'",
$this->Seq_Table,
$seq_name);
$id = @pg_Exec($this->Link_ID, $q);
$res = @pg_Fetch_Array($id, 0);
/* No current value, make one */
if (!is_array($res)) {
$currentid = 0;
$q = sprintf("insert into %s values('%s', %s)",
$this->Seq_Table,
$seq_name,
$currentid);
$id = @pg_Exec($this->Link_ID, $q);
} else {
$currentid = $res["nextid"];
}
$nextid = $currentid + 1;
$q = sprintf("update %s set nextid = '%s' where seq_name = '%s'",
$this->Seq_Table,
$nextid,
$seq_name);
$id = @pg_Exec($this->Link_ID, $q);
$this->unlock();
} else {
$this->halt("cannot lock ".$this->Seq_Table." - has it been created?");
return 0;
}
return $nextid;
}
function metadata($table) {
$count = 0;
$id = 0;
$res = array();
$this->connect();
$id = pg_exec($this->Link_ID, "select * from $table");
if ($id < 0) {
$this->Error = pg_ErrorMessage($id);
$this->Errno = 1;
$this->halt("Metadata query failed.");
}
$count = pg_NumFields($id);
for ($i=0; $i<$count; $i++) {
$res[$i]["table"] = $table;
$res[$i]["name"] = pg_FieldName ($id, $i);
$res[$i]["type"] = pg_FieldType ($id, $i);
$res[$i]["len"] = pg_FieldSize ($id, $i);
$res[$i]["flags"] = "";
}
pg_FreeResult($id);
return $res;
}
function affected_rows() {
return pg_cmdtuples($this->Query_ID);
}
function num_rows() {
return pg_numrows($this->Query_ID);
}
function num_fields() {
return pg_numfields($this->Query_ID);
}
function nf() {
return $this->num_rows();
}
function np() {
print $this->num_rows();
}
function f($Name) {
return $this->Record[$Name];
}
function p($Name) {
print $this->Record[$Name];
}
## contributed Saillard Luc <luc...@al...>
function nextid($seq_name) {
$this->connect();
$q_id=@pg_exec($this->Link_ID,"select nextval('$seq_name')");
if (!$q_id) {
if (!@pg_exec($this->Link_ID,"create sequence $seq_name")) {
$this->halt("<BR> nextid() function - unable to create sequence");
return 0;
}
$q_id=@pg_exec($this->Link_ID,"select nextval('$seq_name')");
if (!$q_id) {
$this->halt("<BR>pg_exec() failed:<BR>nextID function");
return 0;
}
}
$r=@pg_fetch_row($q_id, 0);
if ($r==false)
$nextid=0;
else
$nextid=$r[0];
return $nextid;
}
function halt($msg) {
printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
printf("<b>PostgreSQL Error</b>: %s (%s)<br>\n",
$this->Errno,
$this->Error);
die("Session halted.");
}
function table_names() {
$this->query("select relname from pg_class where relkind = 'r' and not relname like 'pg_%'");
$i=0;
while ($this->next_record())
{
$return[$i]["table_name"]= $this->f(0);
$return[$i]["tablespace_name"]=$this->Database;
$return[$i]["database"]=$this->Database;
$i++;
}
return $return;
}
}
?>
|
|
From: Benjamin C. <bc...@us...> - 2001-11-30 06:00:00
|
Update of /cvsroot/phpbt/phpbt/inc/db In directory usw-pr-cvs1:/tmp/cvs-serv28504/inc/db Log Message: Directory /cvsroot/phpbt/phpbt/inc/db added to the repository |
|
From: Benjamin C. <bc...@us...> - 2001-11-29 00:30:51
|
Update of /cvsroot/phpbt/phpbt In directory usw-pr-cvs1:/tmp/cvs-serv15831 Modified Files: TODO Log Message: Index: TODO =================================================================== RCS file: /cvsroot/phpbt/phpbt/TODO,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- TODO 2001/11/08 14:45:03 1.11 +++ TODO 2001/11/29 00:30:48 1.12 @@ -8,3 +8,5 @@ Misc: - Be able to color by priority instead of severity - Conversion script from a bugzilla database +- Be able to change bug comments sort order (i.e., to most recent first) and be able to save a default for this setting in the config +- Move db abstraction to adodb (?) |
|
From: Benjamin C. <bc...@us...> - 2001-11-29 00:29:55
|
Update of /cvsroot/phpbt/phpbt/admin
In directory usw-pr-cvs1:/tmp/cvs-serv15577/admin
Modified Files:
os.php
Log Message:
Tabbing
Index: os.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/admin/os.php,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- os.php 2001/11/22 05:14:33 1.17
+++ os.php 2001/11/29 00:29:51 1.18
@@ -26,54 +26,54 @@
include INCLUDE_PATH.'include.php';
function do_form($osid = 0) {
- global $q, $me, $_pv, $STRING;
+ global $q, $me, $_pv, $STRING;
extract($_pv);
$error = '';
- // Validation
- if (!$fname = trim($fname))
- $error = $STRING['givename'];
- if ($error) { list_items($osid, $error); return; }
-
- if (!$osid) {
- $q->query("insert into ".TBL_OS." (os_id, os_name, regex, sort_order) values (".$q->nextid(TBL_OS).", '$fname', '$fregex', '$fsortorder')");
- } else {
- $q->query("update ".TBL_OS." set os_name = '$fname', regex = '$fregex', sort_order = '$fsortorder' where os_id = '$osid'");
- }
- header("Location: $me?");
+ // Validation
+ if (!$fname = trim($fname))
+ $error = $STRING['givename'];
+ if ($error) { list_items($osid, $error); return; }
+
+ if (!$osid) {
+ $q->query("insert into ".TBL_OS." (os_id, os_name, regex, sort_order) values (".$q->nextid(TBL_OS).", '$fname', '$fregex', '$fsortorder')");
+ } else {
+ $q->query("update ".TBL_OS." set os_name = '$fname', regex = '$fregex', sort_order = '$fsortorder' where os_id = '$osid'");
+ }
+ header("Location: $me?");
}
function show_form($osid = 0, $error = '') {
- global $q, $me, $t, $_pv, $STRING;
+ global $q, $me, $t, $_pv, $STRING;
extract($_pv);
- if ($osid && !$error) {
- $row = $q->grab("select * from ".TBL_OS." where os_id = '$osid'");
- $t->set_var(array(
- 'action' => $STRING['edit'],
- 'fosid' => $row['os_id'],
- 'fname' => $row['os_name'],
- 'fregex' => $row['regex'],
- 'fsortorder' => $row['sort_order']));
- } else {
- $t->set_var(array(
- 'action' => $osid ? $STRING['edit'] : $STRING['addnew'],
- 'error' => $error,
- 'fosid' => $osid,
- 'fname' => isset($fname) ? $fname : '',
- 'fregex' => isset($fregex) ? $fregex : '',
- 'fsortorder' => isset($fsortorder) ? $fsortorder : ''));
- }
+ if ($osid && !$error) {
+ $row = $q->grab("select * from ".TBL_OS." where os_id = '$osid'");
+ $t->set_var(array(
+ 'action' => $STRING['edit'],
+ 'fosid' => $row['os_id'],
+ 'fname' => $row['os_name'],
+ 'fregex' => $row['regex'],
+ 'fsortorder' => $row['sort_order']));
+ } else {
+ $t->set_var(array(
+ 'action' => $osid ? $STRING['edit'] : $STRING['addnew'],
+ 'error' => $error,
+ 'fosid' => $osid,
+ 'fname' => isset($fname) ? $fname : '',
+ 'fregex' => isset($fregex) ? $fregex : '',
+ 'fsortorder' => isset($fsortorder) ? $fsortorder : ''));
+ }
}
function list_items($osid = 0, $error = '') {
- global $me, $q, $t, $_gv, $STRING, $TITLE;
+ global $me, $db, $t, $_gv, $STRING, $TITLE;
- $t->set_file('content','oslist.html');
- $t->set_block('content','row','rows');
+ $t->set_file('content','oslist.html');
+ $t->set_block('content','row','rows');
- if (empty($_gv['order'])) {
+ if (empty($_gv['order'])) {
$order = 'sort_order';
$sort = 'asc';
} else {
@@ -83,47 +83,48 @@
$page = isset($_gv['page']) ? $_gv['page'] : 0;
- $nr = $q->query("select count(*) from ".TBL_OS." where os_id = '$osid' order by $order $sort");
+
+ $nr = $q->grab_field("select count(*) from ".TBL_OS." where os_id = '$osid' order by $order $sort");
- list($selrange, $llimit, $npages, $pages) = multipages($nr,$page,
- "order=$order&sort=$sort");
+ list($selrange, $llimit, $npages, $pages) = multipages($nr,$page,
+ "order=$order&sort=$sort");
- $t->set_var(array(
- 'pages' => '[ '.$pages.' ]',
- 'first' => $llimit+1,
- 'last' => $llimit+$selrange > $nr ? $nr : $llimit+$selrange,
- 'records' => $nr));
+ $t->set_var(array(
+ 'pages' => '[ '.$pages.' ]',
+ 'first' => $llimit+1,
+ 'last' => $llimit+$selrange > $nr ? $nr : $llimit+$selrange,
+ 'records' => $nr));
- $q->limit_query("select * from ".TBL_OS." order by $order $sort",
+ $q->limit_query("select * from ".TBL_OS." order by $order $sort",
$selrange, $llimit);
+
+ if (!$q->num_rows()) {
+ $t->set_var('rows',"<tr><td>{$STRING['nooses']}</td></tr>");
+ return;
+ }
- if (!$q->num_rows()) {
- $t->set_var('rows',"<tr><td>{$STRING['nooses']}</td></tr>");
- return;
- }
-
- $headers = array(
- 'osid' => 'os_id',
- 'name' => 'os_name',
- 'regex' => 'regex',
- 'sortorder' => 'sort_order');
+ $headers = array(
+ 'osid' => 'os_id',
+ 'name' => 'os_name',
+ 'regex' => 'regex',
+ 'sortorder' => 'sort_order');
- sorting_headers($me, $headers, $order, $sort);
+ sorting_headers($me, $headers, $order, $sort);
$i = 0;
- while ($row = $q->grab()) {
- $t->set_var(array(
- 'bgcolor' => (++$i % 2 == 0) ? '#dddddd' : '#ffffff',
+ while ($row = $q->grab()) {
+ $t->set_var(array(
+ 'bgcolor' => (++$i % 2 == 0) ? '#dddddd' : '#ffffff',
'trclass' => $i % 2 ? '' : 'alt',
- 'osid' => $row['os_id'],
- 'name' => $row['os_name'],
- 'regex' => $row['regex'],
- 'sortorder' => $row['sort_order']));
- $t->parse('rows','row',true);
- }
+ 'osid' => $row['os_id'],
+ 'name' => $row['os_name'],
+ 'regex' => $row['regex'],
+ 'sortorder' => $row['sort_order']));
+ $t->parse('rows','row',true);
+ }
- show_form($osid, $error);
- $t->set_var('TITLE',$TITLE['os']);
+ show_form($osid, $error);
+ $t->set_var('TITLE',$TITLE['os']);
}
$t->set_file('wrap','wrap.html');
@@ -131,10 +132,10 @@
$perm->check('Admin');
if (isset($_gv['op'])) switch($_gv['op']) {
- case 'add' : list_items(); break;
- case 'edit' : list_items($_gv['id']); break;
+ case 'add' : list_items(); break;
+ case 'edit' : list_items($_gv['id']); break;
} elseif(isset($_pv['submit'])) {
- do_form($_pv['id']);
+ do_form($_pv['id']);
} else list_items();
$t->pparse('main',array('content','wrap','main'));
|
|
From: Patrick M. <mai...@st...> - 2001-11-28 21:21:14
|
On Mon, Nov 26, 2001 at 04:51:21PM -0800, Ben Curtis wrote: > Check on the value of the EMAIL_IS_LOGIN variable in your configuration. If it is set to no and you are seeing this behavior then it is a bug. this was my failure. everything works fine! :-) |
|
From: Patrick M. <mai...@st...> - 2001-11-28 21:17:23
|
On Mon, Nov 26, 2001 at 04:39:06PM -0800, Ben Curtis wrote: > It only changes the warning and error messages output by the script. For complete localization one would have to change the templates and the database data. When I change the setting in configure.php and submit my changes the language setting is always restored to "en". |
|
From: Alessandro P. (T. / J578) <al...@ti...> - 2001-11-27 07:35:20
|
On Tue, 2001-11-27 at 01:39, Ben Curtis wrote: > > - What about encrypt passwords while db-conversion? How are they > > encrypted, with password()? > Someone mentioned to me that the mysql function md5() does the the same encryption as the php code does, since I use md5() in the code. I never had a plan for making it easy to choose encrypted passwords while upgrading the installation or after some users had been created. That's not true...at least on Linux. I runned some tests and on Linux, MySQL's MD5() and php md5() give the same results. Bye, Alessandro -- Alessandro "TXM" Pisani - al...@ti... - ICQ #2209087 INWO Project coordinator http://www.inwoproject.f2s.com "I will carry you through, hicking and screaming, and in the end you will thank me" - Tyler Durden [from "Fight Club"] |
|
From: Ben C. <php...@be...> - 2001-11-27 00:51:32
|
Check on the value of the EMAIL_IS_LOGIN variable in your configuration. If it is set to no and you are seeing this behavior then it is a bug. On Mon, Nov 26, 2001 at 10:29:02PM +0100, Patrick Mairif wrote: > Perhaps there is another bug. I gave a user manually in the database an login > not equal his eMail-address. But when using the admin-menu of phpbt to > edit the settings of the user the eMail-address is restored as > username! |
|
From: Ben C. <php...@be...> - 2001-11-27 00:49:18
|
This variable is for the emails that get generated when a bug changes. The INSTALL_URL variable is used in the bug link that is included in the email. And yes, I would use a second configuration table at the the least, but preferable a separate database for having a stable installatino and a development installation of phpbt. On Mon, Nov 26, 2001 at 09:55:48PM +0100, Patrick Mairif wrote: > What is the INSTALL_URL variable for? Now, that the configuration is > in the database it's more complicated to install a second > (development-)version of phpbt at the same server. It would be easier > without that variable. I think it's still possible with a second table > for configuration and configuring the second phpbt-install to use the > second table. > > Do we really need it? |
|
From: Ben C. <php...@be...> - 2001-11-27 00:39:13
|
Answers to your questions below... On Mon, Nov 26, 2001 at 07:53:35PM +0100, Patrick Mairif wrote: > On Mon, Nov 26, 2001 at 10:32:52AM -0800, Ben Curtis wrote: > > Yup, phplib is getting annoying for me too. Currently in CVS template.inc, auth.inc, session.inc, and page.inc have been moved into the phpbt distribution. I'm working on moving the db abstraction to adodb, and offering an -extras package that will toss adodb under inc/ for those who don't already have it installed. This should make the installation process a little easier for 0.6.0. > > sounds good to me! :) > > now I got it running with a little handwork! > > there are few things I noticed: > > - In config-dist.php I'm missing the '<?php' at the beginning! This is because the opening <?php throws off the template in install.php. My list of things to look at includes that. > - What about encrypt passwords while db-conversion? How are they > encrypted, with password()? Someone mentioned to me that the mysql function md5() does the the same encryption as the php code does, since I use md5() in the code. I never had a plan for making it easy to choose encrypted passwords while upgrading the installation or after some users had been created. > - Changing the language in the configuration-menu has no affect! It only changes the warning and error messages output by the script. For complete localization one would have to change the templates and the database data. > - What about an option to change the language only for the current > user in the usermenu and taking the definition in the config as > default?! That's somethng the can be put on the todo list. |
|
From: Patrick M. <mai...@st...> - 2001-11-26 21:29:03
|
Perhaps there is another bug. I gave a user manually in the database an login not equal his eMail-address. But when using the admin-menu of phpbt to edit the settings of the user the eMail-address is restored as username! |
|
From: Patrick M. <mai...@st...> - 2001-11-26 20:55:48
|
What is the INSTALL_URL variable for? Now, that the configuration is in the database it's more complicated to install a second (development-)version of phpbt at the same server. It would be easier without that variable. I think it's still possible with a second table for configuration and configuring the second phpbt-install to use the second table. Do we really need it? |
|
From: Patrick M. <mai...@st...> - 2001-11-26 18:54:07
|
On Mon, Nov 26, 2001 at 10:32:52AM -0800, Ben Curtis wrote:
> Yup, phplib is getting annoying for me too. Currently in CVS template.inc, auth.inc, session.inc, and page.inc have been moved into the phpbt distribution. I'm working on moving the db abstraction to adodb, and offering an -extras package that will toss adodb under inc/ for those who don't already have it installed. This should make the installation process a little easier for 0.6.0.
sounds good to me! :)
now I got it running with a little handwork!
there are few things I noticed:
- In config-dist.php I'm missing the '<?php' at the beginning!
- What about encrypt passwords while db-conversion? How are they
encrypted, with password()?
- Changing the language in the configuration-menu has no affect!
- What about an option to change the language only for the current
user in the usermenu and taking the definition in the config as
default?!
|
|
From: Ben C. <php...@be...> - 2001-11-26 18:33:03
|
Yup, phplib is getting annoying for me too. Currently in CVS template.inc,=
auth.inc, session.inc, and page.inc have been moved into the phpbt distrib=
ution. I'm working on moving the db abstraction to adodb, and offering an =
-extras package that will toss adodb under inc/ for those who don't already=
have it installed. This should make the installation process a little eas=
ier for 0.6.0.
On Mon, Nov 26, 2001 at 05:53:20PM +0100, Patrick Mairif wrote:
> The problem was that the fresh depacked phpbt couldn't know where my
> phplib is installed! Did I allready mention that I hate phplib?
> ... I solved the problem with hardcoding the path in install.php
>=20
> define ('PHPLIB_PATH', '/path/to/my/homepage/_php/');
> include_once(PHPLIB_PATH.'template.inc');
>=20
> what about not using phplib in install.php or distributing
> template.inc with phpbt?
|
|
From: Patrick M. <mai...@st...> - 2001-11-26 17:24:53
|
Hello, after a short break I went back to phpbt and wanted to take a look at the new web-bases configuration. So I downloaded v0.5.1, unpacked it, copied it to the server and called the index.php. I was forwarded to install.php and got an error message! No good start! Warning: Failed opening 'template.inc' for inclusion in phpbt-0.5.1/install.php on line 26 Fatal error: Cannot instantiate non-existent class: template in phpbt-0.5.1/install.php on line 27 gonna see what's wrong... |
|
From: Patrick M. <mai...@st...> - 2001-11-26 17:03:17
|
next problem in line 102:
include_once('db_'.$_pv['db_type'].'.inc');
to hell with install.php going to configure it by hand!
|
|
From: Patrick M. <mai...@st...> - 2001-11-26 16:53:34
|
The problem was that the fresh depacked phpbt couldn't know where my
phplib is installed! Did I allready mention that I hate phplib?
... I solved the problem with hardcoding the path in install.php
define ('PHPLIB_PATH', '/path/to/my/homepage/_php/');
include_once(PHPLIB_PATH.'template.inc');
what about not using phplib in install.php or distributing
template.inc with phpbt?
|
|
From: Alessandro P. (T. / J578) <al...@ti...> - 2001-11-24 21:03:49
|
It would also be nice to introduce a $sitename config option and to change the default index.html template from "Welcome to phpBugTracker" to "Welcome to <?php echo $sitename; ?> phpBugTracker" ; so, if you have more than one phpBT installation you can easily understand which you are currently browsing. bye, Alessandro -- Alessandro "TXM" Pisani - al...@ti... - ICQ #2209087hpB INWO Project coordinator http://www.inwoproject.f2s.com "I will carry you through, hicking and screaming, and in the end you will thank me" - Tyler Durden [from "Fight Club"] |
|
From: Benjamin C. <bc...@us...> - 2001-11-24 21:03:41
|
Update of /cvsroot/phpbt/phpbt/templates/default
In directory usw-pr-cvs1:/tmp/cvs-serv15543/templates/default
Modified Files:
bugdisplay.html
Log Message:
Added a link back to the bug list
Index: bugdisplay.html
===================================================================
RCS file: /cvsroot/phpbt/phpbt/templates/default/bugdisplay.html,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- bugdisplay.html 2001/11/14 04:39:24 1.12
+++ bugdisplay.html 2001/11/24 21:03:38 1.13
@@ -4,7 +4,7 @@
<input type="hidden" name="pos" value="{pos}">
<table border="0" width="640">
<tr>
- <td>Bug <b>#{bugid}</b></td>
+ <td>Bug <b>#{bugid}</b> - Return to <a href="query.php">bug list</a></td>
<td align="right"><b>{prevlink}</b>{prevnextsep}<b>{nextlink}</b></td>
</tr>
</table>
|
|
From: Ben C. <php...@be...> - 2001-11-24 20:56:13
|
Sounds good -- I'll commit it in a minute. :) On Sat, Nov 24, 2001 at 05:31:07PM +0100, Alessandro Pisani (TXM / J578) wrote: > It would be nice to add a "back to bug-list" link on the top of the > bug-edit page. > What d'you think of this? > > Bye, > Alessandro > > -- > Alessandro "TXM" Pisani - al...@ti... - ICQ #2209087 > INWO Project coordinator http://www.inwoproject.f2s.com > > "I will carry you through, hicking and screaming, > and in the end you will thank me" > - Tyler Durden [from "Fight Club"] > > > _______________________________________________ > phpbt-dev mailing list > php...@li... > https://lists.sourceforge.net/lists/listinfo/phpbt-dev |