You can subscribe to this list here.
2004 |
Jan
(17) |
Feb
(52) |
Mar
(102) |
Apr
(189) |
May
(91) |
Jun
(287) |
Jul
(711) |
Aug
(233) |
Sep
(74) |
Oct
(41) |
Nov
(45) |
Dec
(121) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(349) |
Feb
(173) |
Mar
(225) |
Apr
(236) |
May
(249) |
Jun
(226) |
Jul
(297) |
Aug
(251) |
Sep
(122) |
Oct
(70) |
Nov
(254) |
Dec
(176) |
2006 |
Jan
(153) |
Feb
(19) |
Mar
(68) |
Apr
(189) |
May
(43) |
Jun
(23) |
Jul
(76) |
Aug
(35) |
Sep
(11) |
Oct
(46) |
Nov
(194) |
Dec
(121) |
2007 |
Jan
(11) |
Feb
(7) |
Mar
(1) |
Apr
(14) |
May
(14) |
Jun
(19) |
Jul
(3) |
Aug
(3) |
Sep
(24) |
Oct
(42) |
Nov
(6) |
Dec
(196) |
2008 |
Jan
(34) |
Feb
(11) |
Mar
(7) |
Apr
(1) |
May
(14) |
Jun
(10) |
Jul
(5) |
Aug
(15) |
Sep
(294) |
Oct
(8) |
Nov
(7) |
Dec
|
2009 |
Jan
(74) |
Feb
(19) |
Mar
(3) |
Apr
(15) |
May
(1) |
Jun
(2) |
Jul
(9) |
Aug
|
Sep
(1) |
Oct
|
Nov
(9) |
Dec
(9) |
2010 |
Jan
(14) |
Feb
(7) |
Mar
(24) |
Apr
(1) |
May
(12) |
Jun
(360) |
Jul
(9) |
Aug
(16) |
Sep
(4) |
Oct
(18) |
Nov
(33) |
Dec
(31) |
2011 |
Jan
(27) |
Feb
|
Mar
(12) |
Apr
(8) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: ke <dj...@at...> - 2016-07-09 02:23:41
|
Hello, There is something I wanted to show you, it is extremely interesting, you have to see it! Take a look here <http://quyngepuzo.corrval.com/lnglml> Good wishes, ke...@fe... |
From: <ke...@fe...> - 2016-06-27 16:52:29
|
From: 360team.ca <gop...@us...> - 2011-04-06 21:53:03
|
Update of /cvsroot/xrms/xrms/include/adodb/session/old In directory vz-cvs-3.sog:/tmp/cvs-serv16376/adodb/session/old Added Files: adodb-cryptsession.php adodb-session.php adodb-session-clob.php crypt.inc.php Log Message: Upgraded the ADOdb Library to version 5.11 --- NEW FILE: adodb-session.php --- <?php /* V4.93 10 Oct 2006 (c) 2000-2010 John Lim (jlim#natsoft.com). All rights reserved. Released under both BSD license and Lesser GPL library license. Whenever there is any discrepancy between the two licenses, the BSD license will take precedence. Set tabs to 4 for best viewing. Latest version of ADODB is available at http://php.weblogs.com/adodb ====================================================================== This file provides PHP4 session management using the ADODB database wrapper library. Example ======= include('adodb.inc.php'); include('adodb-session.php'); session_start(); session_register('AVAR'); $_SESSION['AVAR'] += 1; print " -- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>"; To force non-persistent connections, call adodb_session_open first before session_start(): include('adodb.inc.php'); include('adodb-session.php'); adodb_sess_open(false,false,false); session_start(); session_register('AVAR'); $_SESSION['AVAR'] += 1; print " -- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>"; Installation ============ 1. Create this table in your database (syntax might vary depending on your db): create table sessions ( SESSKEY char(32) not null, EXPIRY int(11) unsigned not null, EXPIREREF varchar(64), DATA text not null, primary key (sesskey) ); For oracle: create table sessions ( SESSKEY char(32) not null, EXPIRY DECIMAL(16) not null, EXPIREREF varchar(64), DATA varchar(4000) not null, primary key (sesskey) ); 2. Then define the following parameters. You can either modify this file, or define them before this file is included: $ADODB_SESSION_DRIVER='database driver, eg. mysql or ibase'; $ADODB_SESSION_CONNECT='server to connect to'; $ADODB_SESSION_USER ='user'; $ADODB_SESSION_PWD ='password'; $ADODB_SESSION_DB ='database'; $ADODB_SESSION_TBL = 'sessions' 3. Recommended is PHP 4.1.0 or later. There are documented session bugs in earlier versions of PHP. 4. If you want to receive notifications when a session expires, then you can tag a session with an EXPIREREF, and before the session record is deleted, we can call a function that will pass the EXPIREREF as the first parameter, and the session key as the second parameter. To do this, define a notification function, say NotifyFn: function NotifyFn($expireref, $sesskey) { } Then you need to define a global variable $ADODB_SESSION_EXPIRE_NOTIFY. This is an array with 2 elements, the first being the name of the variable you would like to store in the EXPIREREF field, and the 2nd is the notification function's name. In this example, we want to be notified when a user's session has expired, so we store the user id in the global variable $USERID, store this value in the EXPIREREF field: $ADODB_SESSION_EXPIRE_NOTIFY = array('USERID','NotifyFn'); Then when the NotifyFn is called, we are passed the $USERID as the first parameter, eg. NotifyFn($userid, $sesskey). */ if (!defined('_ADODB_LAYER')) { include (dirname(__FILE__).'/adodb.inc.php'); } if (!defined('ADODB_SESSION')) { define('ADODB_SESSION',1); /* if database time and system time is difference is greater than this, then give warning */ define('ADODB_SESSION_SYNCH_SECS',60); /* Thanks Joe Li. See http://phplens.com/lens/lensforum/msgs.php?id=11487&x=1 */ function adodb_session_regenerate_id() { $conn = ADODB_Session::_conn(); if (!$conn) return false; $old_id = session_id(); if (function_exists('session_regenerate_id')) { session_regenerate_id(); } else { session_id(md5(uniqid(rand(), true))); $ck = session_get_cookie_params(); setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']); //@session_start(); } $new_id = session_id(); $ok = $conn->Execute('UPDATE '. ADODB_Session::table(). ' SET sesskey='. $conn->qstr($new_id). ' WHERE sesskey='.$conn->qstr($old_id)); /* it is possible that the update statement fails due to a collision */ if (!$ok) { session_id($old_id); if (empty($ck)) $ck = session_get_cookie_params(); setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']); return false; } return true; } /****************************************************************************************\ Global definitions \****************************************************************************************/ GLOBAL $ADODB_SESSION_CONNECT, $ADODB_SESSION_DRIVER, $ADODB_SESSION_USER, $ADODB_SESSION_PWD, $ADODB_SESSION_DB, $ADODB_SESS_CONN, $ADODB_SESS_LIFE, $ADODB_SESS_DEBUG, $ADODB_SESSION_EXPIRE_NOTIFY, $ADODB_SESSION_CRC, $ADODB_SESSION_TBL; $ADODB_SESS_LIFE = ini_get('session.gc_maxlifetime'); if ($ADODB_SESS_LIFE <= 1) { // bug in PHP 4.0.3 pl 1 -- how about other versions? //print "<h3>Session Error: PHP.INI setting <i>session.gc_maxlifetime</i>not set: $ADODB_SESS_LIFE</h3>"; $ADODB_SESS_LIFE=1440; } $ADODB_SESSION_CRC = false; //$ADODB_SESS_DEBUG = true; ////////////////////////////////// /* SET THE FOLLOWING PARAMETERS */ ////////////////////////////////// if (empty($ADODB_SESSION_DRIVER)) { $ADODB_SESSION_DRIVER='mysql'; $ADODB_SESSION_CONNECT='localhost'; $ADODB_SESSION_USER ='root'; $ADODB_SESSION_PWD =''; $ADODB_SESSION_DB ='xphplens_2'; } if (empty($ADODB_SESSION_EXPIRE_NOTIFY)) { $ADODB_SESSION_EXPIRE_NOTIFY = false; } // Made table name configurable - by David Johnson djo...@in... if (empty($ADODB_SESSION_TBL)){ $ADODB_SESSION_TBL = 'sessions'; } /* $ADODB_SESS['driver'] = $ADODB_SESSION_DRIVER; $ADODB_SESS['connect'] = $ADODB_SESSION_CONNECT; $ADODB_SESS['user'] = $ADODB_SESSION_USER; $ADODB_SESS['pwd'] = $ADODB_SESSION_PWD; $ADODB_SESS['db'] = $ADODB_SESSION_DB; $ADODB_SESS['life'] = $ADODB_SESS_LIFE; $ADODB_SESS['debug'] = $ADODB_SESS_DEBUG; $ADODB_SESS['debug'] = $ADODB_SESS_DEBUG; $ADODB_SESS['table'] = $ADODB_SESS_TBL; */ /****************************************************************************************\ Create the connection to the database. If $ADODB_SESS_CONN already exists, reuse that connection \****************************************************************************************/ function adodb_sess_open($save_path, $session_name,$persist=true) { GLOBAL $ADODB_SESS_CONN; if (isset($ADODB_SESS_CONN)) return true; GLOBAL $ADODB_SESSION_CONNECT, $ADODB_SESSION_DRIVER, $ADODB_SESSION_USER, $ADODB_SESSION_PWD, $ADODB_SESSION_DB, $ADODB_SESS_DEBUG; // cannot use & below - do not know why... $ADODB_SESS_CONN = ADONewConnection($ADODB_SESSION_DRIVER); if (!empty($ADODB_SESS_DEBUG)) { $ADODB_SESS_CONN->debug = true; ADOConnection::outp( " conn=$ADODB_SESSION_CONNECT user=$ADODB_SESSION_USER pwd=$ADODB_SESSION_PWD db=$ADODB_SESSION_DB "); } if ($persist) $ok = $ADODB_SESS_CONN->PConnect($ADODB_SESSION_CONNECT, $ADODB_SESSION_USER,$ADODB_SESSION_PWD,$ADODB_SESSION_DB); else $ok = $ADODB_SESS_CONN->Connect($ADODB_SESSION_CONNECT, $ADODB_SESSION_USER,$ADODB_SESSION_PWD,$ADODB_SESSION_DB); if (!$ok) ADOConnection::outp( " -- Session: connection failed</p>",false); } /****************************************************************************************\ Close the connection \****************************************************************************************/ function adodb_sess_close() { global $ADODB_SESS_CONN; if ($ADODB_SESS_CONN) $ADODB_SESS_CONN->Close(); return true; } /****************************************************************************************\ Slurp in the session variables and return the serialized string \****************************************************************************************/ function adodb_sess_read($key) { global $ADODB_SESS_CONN,$ADODB_SESSION_TBL,$ADODB_SESSION_CRC; $rs = $ADODB_SESS_CONN->Execute("SELECT data FROM $ADODB_SESSION_TBL WHERE sesskey = '$key' AND expiry >= " . time()); if ($rs) { if ($rs->EOF) { $v = ''; } else $v = rawurldecode(reset($rs->fields)); $rs->Close(); // new optimization adodb 2.1 $ADODB_SESSION_CRC = strlen($v).crc32($v); return $v; } return ''; // thx to Jorma Tuomainen, webmaster#wizactive.com } /****************************************************************************************\ Write the serialized data to a database. If the data has not been modified since adodb_sess_read(), we do not write. \****************************************************************************************/ function adodb_sess_write($key, $val) { global $ADODB_SESS_CONN, $ADODB_SESS_LIFE, $ADODB_SESSION_TBL, $ADODB_SESS_DEBUG, $ADODB_SESSION_CRC, $ADODB_SESSION_EXPIRE_NOTIFY; $expiry = time() + $ADODB_SESS_LIFE; // crc32 optimization since adodb 2.1 // now we only update expiry date, thx to sebastian thom in adodb 2.32 if ($ADODB_SESSION_CRC !== false && $ADODB_SESSION_CRC == strlen($val).crc32($val)) { if ($ADODB_SESS_DEBUG) echo " -- Session: Only updating date - crc32 not changed</p>"; $qry = "UPDATE $ADODB_SESSION_TBL SET expiry=$expiry WHERE sesskey='$key' AND expiry >= " . time(); $rs = $ADODB_SESS_CONN->Execute($qry); return true; } $val = rawurlencode($val); $arr = array('sesskey' => $key, 'expiry' => $expiry, 'data' => $val); if ($ADODB_SESSION_EXPIRE_NOTIFY) { $var = reset($ADODB_SESSION_EXPIRE_NOTIFY); global $$var; $arr['expireref'] = $$var; } $rs = $ADODB_SESS_CONN->Replace($ADODB_SESSION_TBL,$arr, 'sesskey',$autoQuote = true); if (!$rs) { ADOConnection::outp( ' -- Session Replace: '.$ADODB_SESS_CONN->ErrorMsg().'</p>',false); } else { // bug in access driver (could be odbc?) means that info is not commited // properly unless select statement executed in Win2000 if ($ADODB_SESS_CONN->databaseType == 'access') $rs = $ADODB_SESS_CONN->Execute("select sesskey from $ADODB_SESSION_TBL WHERE sesskey='$key'"); } return !empty($rs); } function adodb_sess_destroy($key) { global $ADODB_SESS_CONN, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY; if ($ADODB_SESSION_EXPIRE_NOTIFY) { reset($ADODB_SESSION_EXPIRE_NOTIFY); $fn = next($ADODB_SESSION_EXPIRE_NOTIFY); $savem = $ADODB_SESS_CONN->SetFetchMode(ADODB_FETCH_NUM); $rs = $ADODB_SESS_CONN->Execute("SELECT expireref,sesskey FROM $ADODB_SESSION_TBL WHERE sesskey='$key'"); $ADODB_SESS_CONN->SetFetchMode($savem); if ($rs) { $ADODB_SESS_CONN->BeginTrans(); while (!$rs->EOF) { $ref = $rs->fields[0]; $key = $rs->fields[1]; $fn($ref,$key); $del = $ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE sesskey='$key'"); $rs->MoveNext(); } $ADODB_SESS_CONN->CommitTrans(); } } else { $qry = "DELETE FROM $ADODB_SESSION_TBL WHERE sesskey = '$key'"; $rs = $ADODB_SESS_CONN->Execute($qry); } return $rs ? true : false; } function adodb_sess_gc($maxlifetime) { global $ADODB_SESS_DEBUG, $ADODB_SESS_CONN, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY; if ($ADODB_SESSION_EXPIRE_NOTIFY) { reset($ADODB_SESSION_EXPIRE_NOTIFY); $fn = next($ADODB_SESSION_EXPIRE_NOTIFY); $savem = $ADODB_SESS_CONN->SetFetchMode(ADODB_FETCH_NUM); $t = time(); $rs = $ADODB_SESS_CONN->Execute("SELECT expireref,sesskey FROM $ADODB_SESSION_TBL WHERE expiry < $t"); $ADODB_SESS_CONN->SetFetchMode($savem); if ($rs) { $ADODB_SESS_CONN->BeginTrans(); while (!$rs->EOF) { $ref = $rs->fields[0]; $key = $rs->fields[1]; $fn($ref,$key); $del = $ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE sesskey='$key'"); $rs->MoveNext(); } $rs->Close(); $ADODB_SESS_CONN->CommitTrans(); } } else { $qry = "DELETE FROM $ADODB_SESSION_TBL WHERE expiry < " . time(); $ADODB_SESS_CONN->Execute($qry); if ($ADODB_SESS_DEBUG) ADOConnection::outp(" -- <b>Garbage Collection</b>: $qry</p>"); } // suggested by Cameron, "GaM3R" <ga...@ou...> if (defined('ADODB_SESSION_OPTIMIZE')) { global $ADODB_SESSION_DRIVER; switch( $ADODB_SESSION_DRIVER ) { case 'mysql': case 'mysqlt': $opt_qry = 'OPTIMIZE TABLE '.$ADODB_SESSION_TBL; break; case 'postgresql': case 'postgresql7': $opt_qry = 'VACUUM '.$ADODB_SESSION_TBL; break; } if (!empty($opt_qry)) { $ADODB_SESS_CONN->Execute($opt_qry); } } if ($ADODB_SESS_CONN->dataProvider === 'oci8') $sql = 'select TO_CHAR('.($ADODB_SESS_CONN->sysTimeStamp).', \'RRRR-MM-DD HH24:MI:SS\') from '. $ADODB_SESSION_TBL; else $sql = 'select '.$ADODB_SESS_CONN->sysTimeStamp.' from '. $ADODB_SESSION_TBL; $rs = $ADODB_SESS_CONN->SelectLimit($sql,1); if ($rs && !$rs->EOF) { $dbts = reset($rs->fields); $rs->Close(); $dbt = $ADODB_SESS_CONN->UnixTimeStamp($dbts); $t = time(); if (abs($dbt - $t) >= ADODB_SESSION_SYNCH_SECS) { $msg = __FILE__.": Server time for webserver {$_SERVER['HTTP_HOST']} not in synch with database: database=$dbt ($dbts), webserver=$t (diff=".(abs($dbt-$t)/3600)." hrs)"; error_log($msg); if ($ADODB_SESS_DEBUG) ADOConnection::outp(" -- $msg</p>"); } } return true; } session_module_name('user'); session_set_save_handler( "adodb_sess_open", "adodb_sess_close", "adodb_sess_read", "adodb_sess_write", "adodb_sess_destroy", "adodb_sess_gc"); } /* TEST SCRIPT -- UNCOMMENT */ if (0) { session_start(); session_register('AVAR'); $_SESSION['AVAR'] += 1; ADOConnection::outp( " -- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>",false); } ?> --- NEW FILE: adodb-cryptsession.php --- <?php /* V5.11 5 May 2010 (c) 2000-2010 John Lim (jlim#natsoft.com). All rights reserved. Released under both BSD license and Lesser GPL library license. Whenever there is any discrepancy between the two licenses, the BSD license will take precedence. Made table name configurable - by David Johnson djo...@in... Encryption by Ari Kuorikoski <ari...@fi...> Set tabs to 4 for best viewing. Latest version of ADODB is available at http://php.weblogs.com/adodb ====================================================================== This file provides PHP4 session management using the ADODB database wrapper library. Example ======= include('adodb.inc.php'); #---------------------------------# include('adodb-cryptsession.php'); #---------------------------------# session_start(); session_register('AVAR'); $_SESSION['AVAR'] += 1; print " -- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>"; Installation ============ 1. Create a new database in MySQL or Access "sessions" like so: create table sessions ( SESSKEY char(32) not null, EXPIRY int(11) unsigned not null, EXPIREREF varchar(64), DATA CLOB, primary key (sesskey) ); 2. Then define the following parameters. You can either modify this file, or define them before this file is included: $ADODB_SESSION_DRIVER='database driver, eg. mysql or ibase'; $ADODB_SESSION_CONNECT='server to connect to'; $ADODB_SESSION_USER ='user'; $ADODB_SESSION_PWD ='password'; $ADODB_SESSION_DB ='database'; $ADODB_SESSION_TBL = 'sessions' 3. Recommended is PHP 4.0.2 or later. There are documented session bugs in earlier versions of PHP. */ include_once('crypt.inc.php'); if (!defined('_ADODB_LAYER')) { include (dirname(__FILE__).'/adodb.inc.php'); } /* if database time and system time is difference is greater than this, then give warning */ define('ADODB_SESSION_SYNCH_SECS',60); if (!defined('ADODB_SESSION')) { define('ADODB_SESSION',1); GLOBAL $ADODB_SESSION_CONNECT, $ADODB_SESSION_DRIVER, $ADODB_SESSION_USER, $ADODB_SESSION_PWD, $ADODB_SESSION_DB, $ADODB_SESS_CONN, $ADODB_SESS_LIFE, $ADODB_SESS_DEBUG, $ADODB_SESS_INSERT, $ADODB_SESSION_EXPIRE_NOTIFY, $ADODB_SESSION_TBL; //$ADODB_SESS_DEBUG = true; /* SET THE FOLLOWING PARAMETERS */ if (empty($ADODB_SESSION_DRIVER)) { $ADODB_SESSION_DRIVER='mysql'; $ADODB_SESSION_CONNECT='localhost'; $ADODB_SESSION_USER ='root'; $ADODB_SESSION_PWD =''; $ADODB_SESSION_DB ='xphplens_2'; } if (empty($ADODB_SESSION_TBL)){ $ADODB_SESSION_TBL = 'sessions'; } if (empty($ADODB_SESSION_EXPIRE_NOTIFY)) { $ADODB_SESSION_EXPIRE_NOTIFY = false; } function ADODB_Session_Key() { $ADODB_CRYPT_KEY = 'CRYPTED ADODB SESSIONS ROCK!'; /* USE THIS FUNCTION TO CREATE THE ENCRYPTION KEY FOR CRYPTED SESSIONS */ /* Crypt the used key, $ADODB_CRYPT_KEY as key and session_ID as SALT */ return crypt($ADODB_CRYPT_KEY, session_ID()); } $ADODB_SESS_LIFE = ini_get('session.gc_maxlifetime'); if ($ADODB_SESS_LIFE <= 1) { // bug in PHP 4.0.3 pl 1 -- how about other versions? //print "<h3>Session Error: PHP.INI setting <i>session.gc_maxlifetime</i>not set: $ADODB_SESS_LIFE</h3>"; $ADODB_SESS_LIFE=1440; } function adodb_sess_open($save_path, $session_name) { GLOBAL $ADODB_SESSION_CONNECT, $ADODB_SESSION_DRIVER, $ADODB_SESSION_USER, $ADODB_SESSION_PWD, $ADODB_SESSION_DB, $ADODB_SESS_CONN, $ADODB_SESS_DEBUG; $ADODB_SESS_INSERT = false; if (isset($ADODB_SESS_CONN)) return true; $ADODB_SESS_CONN = ADONewConnection($ADODB_SESSION_DRIVER); if (!empty($ADODB_SESS_DEBUG)) { $ADODB_SESS_CONN->debug = true; print" conn=$ADODB_SESSION_CONNECT user=$ADODB_SESSION_USER pwd=$ADODB_SESSION_PWD db=$ADODB_SESSION_DB "; } return $ADODB_SESS_CONN->PConnect($ADODB_SESSION_CONNECT, $ADODB_SESSION_USER,$ADODB_SESSION_PWD,$ADODB_SESSION_DB); } function adodb_sess_close() { global $ADODB_SESS_CONN; if ($ADODB_SESS_CONN) $ADODB_SESS_CONN->Close(); return true; } function adodb_sess_read($key) { $Crypt = new MD5Crypt; global $ADODB_SESS_CONN,$ADODB_SESS_INSERT,$ADODB_SESSION_TBL; $rs = $ADODB_SESS_CONN->Execute("SELECT data FROM $ADODB_SESSION_TBL WHERE sesskey = '$key' AND expiry >= " . time()); if ($rs) { if ($rs->EOF) { $ADODB_SESS_INSERT = true; $v = ''; } else { // Decrypt session data $v = rawurldecode($Crypt->Decrypt(reset($rs->fields), ADODB_Session_Key())); } $rs->Close(); return $v; } else $ADODB_SESS_INSERT = true; return ''; } function adodb_sess_write($key, $val) { $Crypt = new MD5Crypt; global $ADODB_SESS_INSERT,$ADODB_SESS_CONN, $ADODB_SESS_LIFE, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY; $expiry = time() + $ADODB_SESS_LIFE; // encrypt session data.. $val = $Crypt->Encrypt(rawurlencode($val), ADODB_Session_Key()); $arr = array('sesskey' => $key, 'expiry' => $expiry, 'data' => $val); if ($ADODB_SESSION_EXPIRE_NOTIFY) { $var = reset($ADODB_SESSION_EXPIRE_NOTIFY); global $$var; $arr['expireref'] = $$var; } $rs = $ADODB_SESS_CONN->Replace($ADODB_SESSION_TBL, $arr, 'sesskey',$autoQuote = true); if (!$rs) { ADOConnection::outp( ' -- Session Replace: '.$ADODB_SESS_CONN->ErrorMsg().'</p>',false); } else { // bug in access driver (could be odbc?) means that info is not commited // properly unless select statement executed in Win2000 if ($ADODB_SESS_CONN->databaseType == 'access') $rs = $ADODB_SESS_CONN->Execute("select sesskey from $ADODB_SESSION_TBL WHERE sesskey='$key'"); } return isset($rs); } function adodb_sess_destroy($key) { global $ADODB_SESS_CONN, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY; if ($ADODB_SESSION_EXPIRE_NOTIFY) { reset($ADODB_SESSION_EXPIRE_NOTIFY); $fn = next($ADODB_SESSION_EXPIRE_NOTIFY); $savem = $ADODB_SESS_CONN->SetFetchMode(ADODB_FETCH_NUM); $rs = $ADODB_SESS_CONN->Execute("SELECT expireref,sesskey FROM $ADODB_SESSION_TBL WHERE sesskey='$key'"); $ADODB_SESS_CONN->SetFetchMode($savem); if ($rs) { $ADODB_SESS_CONN->BeginTrans(); while (!$rs->EOF) { $ref = $rs->fields[0]; $key = $rs->fields[1]; $fn($ref,$key); $del = $ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE sesskey='$key'"); $rs->MoveNext(); } $ADODB_SESS_CONN->CommitTrans(); } } else { $qry = "DELETE FROM $ADODB_SESSION_TBL WHERE sesskey = '$key'"; $rs = $ADODB_SESS_CONN->Execute($qry); } return $rs ? true : false; } function adodb_sess_gc($maxlifetime) { global $ADODB_SESS_CONN, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY,$ADODB_SESS_DEBUG; if ($ADODB_SESSION_EXPIRE_NOTIFY) { reset($ADODB_SESSION_EXPIRE_NOTIFY); $fn = next($ADODB_SESSION_EXPIRE_NOTIFY); $savem = $ADODB_SESS_CONN->SetFetchMode(ADODB_FETCH_NUM); $t = time(); $rs = $ADODB_SESS_CONN->Execute("SELECT expireref,sesskey FROM $ADODB_SESSION_TBL WHERE expiry < $t"); $ADODB_SESS_CONN->SetFetchMode($savem); if ($rs) { $ADODB_SESS_CONN->BeginTrans(); while (!$rs->EOF) { $ref = $rs->fields[0]; $key = $rs->fields[1]; $fn($ref,$key); //$del = $ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE sesskey='$key'"); $rs->MoveNext(); } $rs->Close(); $ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE expiry < $t"); $ADODB_SESS_CONN->CommitTrans(); } } else { $qry = "DELETE FROM $ADODB_SESSION_TBL WHERE expiry < " . time(); $ADODB_SESS_CONN->Execute($qry); } // suggested by Cameron, "GaM3R" <ga...@ou...> if (defined('ADODB_SESSION_OPTIMIZE')) { global $ADODB_SESSION_DRIVER; switch( $ADODB_SESSION_DRIVER ) { case 'mysql': case 'mysqlt': $opt_qry = 'OPTIMIZE TABLE '.$ADODB_SESSION_TBL; break; case 'postgresql': case 'postgresql7': $opt_qry = 'VACUUM '.$ADODB_SESSION_TBL; break; } } if ($ADODB_SESS_CONN->dataProvider === 'oci8') $sql = 'select TO_CHAR('.($ADODB_SESS_CONN->sysTimeStamp).', \'RRRR-MM-DD HH24:MI:SS\') from '. $ADODB_SESSION_TBL; else $sql = 'select '.$ADODB_SESS_CONN->sysTimeStamp.' from '. $ADODB_SESSION_TBL; $rs = $ADODB_SESS_CONN->SelectLimit($sql,1); if ($rs && !$rs->EOF) { $dbts = reset($rs->fields); $rs->Close(); $dbt = $ADODB_SESS_CONN->UnixTimeStamp($dbts); $t = time(); if (abs($dbt - $t) >= ADODB_SESSION_SYNCH_SECS) { $msg = __FILE__.": Server time for webserver {$_SERVER['HTTP_HOST']} not in synch with database: database=$dbt ($dbts), webserver=$t (diff=".(abs($dbt-$t)/3600)." hrs)"; error_log($msg); if ($ADODB_SESS_DEBUG) ADOConnection::outp(" -- $msg</p>"); } } return true; } session_module_name('user'); session_set_save_handler( "adodb_sess_open", "adodb_sess_close", "adodb_sess_read", "adodb_sess_write", "adodb_sess_destroy", "adodb_sess_gc"); } /* TEST SCRIPT -- UNCOMMENT */ /* if (0) { session_start(); session_register('AVAR'); $_SESSION['AVAR'] += 1; print " -- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>"; } */ ?> --- NEW FILE: crypt.inc.php --- <?php // Session Encryption by Ari Kuorikoski <ari...@fi...> class MD5Crypt{ function keyED($txt,$encrypt_key) { $encrypt_key = md5($encrypt_key); $ctr=0; $tmp = ""; for ($i=0;$i<strlen($txt);$i++){ if ($ctr==strlen($encrypt_key)) $ctr=0; $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1); $ctr++; } return $tmp; } function Encrypt($txt,$key) { srand((double)microtime()*1000000); $encrypt_key = md5(rand(0,32000)); $ctr=0; $tmp = ""; for ($i=0;$i<strlen($txt);$i++) { if ($ctr==strlen($encrypt_key)) $ctr=0; $tmp.= substr($encrypt_key,$ctr,1) . (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1)); $ctr++; } return base64_encode($this->keyED($tmp,$key)); } function Decrypt($txt,$key) { $txt = $this->keyED(base64_decode($txt),$key); $tmp = ""; for ($i=0;$i<strlen($txt);$i++){ $md5 = substr($txt,$i,1); $i++; $tmp.= (substr($txt,$i,1) ^ $md5); } return $tmp; } function RandPass() { $randomPassword = ""; srand((double)microtime()*1000000); for($i=0;$i<8;$i++) { $randnumber = rand(48,120); while (($randnumber >= 58 && $randnumber <= 64) || ($randnumber >= 91 && $randnumber <= 96)) { $randnumber = rand(48,120); } $randomPassword .= chr($randnumber); } return $randomPassword; } } ?> --- NEW FILE: adodb-session-clob.php --- <?php /* V4.93 10 Oct 2006 (c) 2000-2010 John Lim (jlim#natsoft.com). All rights reserved. Released under both BSD license and Lesser GPL library license. Whenever there is any discrepancy between the two licenses, the BSD license will take precedence. Set tabs to 4 for best viewing. Latest version of ADODB is available at http://php.weblogs.com/adodb ====================================================================== This file provides PHP4 session management using the ADODB database wrapper library, using Oracle CLOB's to store data. Contributed by ach...@dd.... Example ======= include('adodb.inc.php'); include('adodb-session.php'); session_start(); session_register('AVAR'); $_SESSION['AVAR'] += 1; print " -- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>"; To force non-persistent connections, call adodb_session_open first before session_start(): include('adodb.inc.php'); include('adodb-session.php'); adodb_session_open(false,false,false); session_start(); session_register('AVAR'); $_SESSION['AVAR'] += 1; print " -- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>"; Installation ============ 1. Create this table in your database (syntax might vary depending on your db): create table sessions ( SESSKEY char(32) not null, EXPIRY int(11) unsigned not null, EXPIREREF varchar(64), DATA CLOB, primary key (sesskey) ); 2. Then define the following parameters in this file: $ADODB_SESSION_DRIVER='database driver, eg. mysql or ibase'; $ADODB_SESSION_CONNECT='server to connect to'; $ADODB_SESSION_USER ='user'; $ADODB_SESSION_PWD ='password'; $ADODB_SESSION_DB ='database'; $ADODB_SESSION_TBL = 'sessions' $ADODB_SESSION_USE_LOBS = false; (or, if you wanna use CLOBS (= 'CLOB') or ( = 'BLOB') 3. Recommended is PHP 4.1.0 or later. There are documented session bugs in earlier versions of PHP. 4. If you want to receive notifications when a session expires, then you can tag a session with an EXPIREREF, and before the session record is deleted, we can call a function that will pass the EXPIREREF as the first parameter, and the session key as the second parameter. To do this, define a notification function, say NotifyFn: function NotifyFn($expireref, $sesskey) { } Then you need to define a global variable $ADODB_SESSION_EXPIRE_NOTIFY. This is an array with 2 elements, the first being the name of the variable you would like to store in the EXPIREREF field, and the 2nd is the notification function's name. In this example, we want to be notified when a user's session has expired, so we store the user id in the global variable $USERID, store this value in the EXPIREREF field: $ADODB_SESSION_EXPIRE_NOTIFY = array('USERID','NotifyFn'); Then when the NotifyFn is called, we are passed the $USERID as the first parameter, eg. NotifyFn($userid, $sesskey). */ if (!defined('_ADODB_LAYER')) { include (dirname(__FILE__).'/adodb.inc.php'); } if (!defined('ADODB_SESSION')) { define('ADODB_SESSION',1); /* if database time and system time is difference is greater than this, then give warning */ define('ADODB_SESSION_SYNCH_SECS',60); /****************************************************************************************\ Global definitions \****************************************************************************************/ GLOBAL $ADODB_SESSION_CONNECT, $ADODB_SESSION_DRIVER, $ADODB_SESSION_USER, $ADODB_SESSION_PWD, $ADODB_SESSION_DB, $ADODB_SESS_CONN, $ADODB_SESS_LIFE, $ADODB_SESS_DEBUG, $ADODB_SESSION_EXPIRE_NOTIFY, $ADODB_SESSION_CRC, $ADODB_SESSION_USE_LOBS, $ADODB_SESSION_TBL; if (!isset($ADODB_SESSION_USE_LOBS)) $ADODB_SESSION_USE_LOBS = 'CLOB'; $ADODB_SESS_LIFE = ini_get('session.gc_maxlifetime'); if ($ADODB_SESS_LIFE <= 1) { // bug in PHP 4.0.3 pl 1 -- how about other versions? //print "<h3>Session Error: PHP.INI setting <i>session.gc_maxlifetime</i>not set: $ADODB_SESS_LIFE</h3>"; $ADODB_SESS_LIFE=1440; } $ADODB_SESSION_CRC = false; //$ADODB_SESS_DEBUG = true; ////////////////////////////////// /* SET THE FOLLOWING PARAMETERS */ ////////////////////////////////// if (empty($ADODB_SESSION_DRIVER)) { $ADODB_SESSION_DRIVER='mysql'; $ADODB_SESSION_CONNECT='localhost'; $ADODB_SESSION_USER ='root'; $ADODB_SESSION_PWD =''; $ADODB_SESSION_DB ='xphplens_2'; } if (empty($ADODB_SESSION_EXPIRE_NOTIFY)) { $ADODB_SESSION_EXPIRE_NOTIFY = false; } // Made table name configurable - by David Johnson djo...@in... if (empty($ADODB_SESSION_TBL)){ $ADODB_SESSION_TBL = 'sessions'; } // defaulting $ADODB_SESSION_USE_LOBS if (!isset($ADODB_SESSION_USE_LOBS) || empty($ADODB_SESSION_USE_LOBS)) { $ADODB_SESSION_USE_LOBS = false; } /* $ADODB_SESS['driver'] = $ADODB_SESSION_DRIVER; $ADODB_SESS['connect'] = $ADODB_SESSION_CONNECT; $ADODB_SESS['user'] = $ADODB_SESSION_USER; $ADODB_SESS['pwd'] = $ADODB_SESSION_PWD; $ADODB_SESS['db'] = $ADODB_SESSION_DB; $ADODB_SESS['life'] = $ADODB_SESS_LIFE; $ADODB_SESS['debug'] = $ADODB_SESS_DEBUG; $ADODB_SESS['debug'] = $ADODB_SESS_DEBUG; $ADODB_SESS['table'] = $ADODB_SESS_TBL; */ /****************************************************************************************\ Create the connection to the database. If $ADODB_SESS_CONN already exists, reuse that connection \****************************************************************************************/ function adodb_sess_open($save_path, $session_name,$persist=true) { GLOBAL $ADODB_SESS_CONN; if (isset($ADODB_SESS_CONN)) return true; GLOBAL $ADODB_SESSION_CONNECT, $ADODB_SESSION_DRIVER, $ADODB_SESSION_USER, $ADODB_SESSION_PWD, $ADODB_SESSION_DB, $ADODB_SESS_DEBUG; // cannot use & below - do not know why... $ADODB_SESS_CONN = ADONewConnection($ADODB_SESSION_DRIVER); if (!empty($ADODB_SESS_DEBUG)) { $ADODB_SESS_CONN->debug = true; ADOConnection::outp( " conn=$ADODB_SESSION_CONNECT user=$ADODB_SESSION_USER pwd=$ADODB_SESSION_PWD db=$ADODB_SESSION_DB "); } if ($persist) $ok = $ADODB_SESS_CONN->PConnect($ADODB_SESSION_CONNECT, $ADODB_SESSION_USER,$ADODB_SESSION_PWD,$ADODB_SESSION_DB); else $ok = $ADODB_SESS_CONN->Connect($ADODB_SESSION_CONNECT, $ADODB_SESSION_USER,$ADODB_SESSION_PWD,$ADODB_SESSION_DB); if (!$ok) ADOConnection::outp( " -- Session: connection failed</p>",false); } /****************************************************************************************\ Close the connection \****************************************************************************************/ function adodb_sess_close() { global $ADODB_SESS_CONN; if ($ADODB_SESS_CONN) $ADODB_SESS_CONN->Close(); return true; } /****************************************************************************************\ Slurp in the session variables and return the serialized string \****************************************************************************************/ function adodb_sess_read($key) { global $ADODB_SESS_CONN,$ADODB_SESSION_TBL,$ADODB_SESSION_CRC; $rs = $ADODB_SESS_CONN->Execute("SELECT data FROM $ADODB_SESSION_TBL WHERE sesskey = '$key' AND expiry >= " . time()); if ($rs) { if ($rs->EOF) { $v = ''; } else $v = rawurldecode(reset($rs->fields)); $rs->Close(); // new optimization adodb 2.1 $ADODB_SESSION_CRC = strlen($v).crc32($v); return $v; } return ''; // thx to Jorma Tuomainen, webmaster#wizactive.com } /****************************************************************************************\ Write the serialized data to a database. If the data has not been modified since adodb_sess_read(), we do not write. \****************************************************************************************/ function adodb_sess_write($key, $val) { global $ADODB_SESS_CONN, $ADODB_SESS_LIFE, $ADODB_SESSION_TBL, $ADODB_SESS_DEBUG, $ADODB_SESSION_CRC, $ADODB_SESSION_EXPIRE_NOTIFY, $ADODB_SESSION_DRIVER, // added $ADODB_SESSION_USE_LOBS; // added $expiry = time() + $ADODB_SESS_LIFE; // crc32 optimization since adodb 2.1 // now we only update expiry date, thx to sebastian thom in adodb 2.32 if ($ADODB_SESSION_CRC !== false && $ADODB_SESSION_CRC == strlen($val).crc32($val)) { if ($ADODB_SESS_DEBUG) echo " -- Session: Only updating date - crc32 not changed</p>"; $qry = "UPDATE $ADODB_SESSION_TBL SET expiry=$expiry WHERE sesskey='$key' AND expiry >= " . time(); $rs = $ADODB_SESS_CONN->Execute($qry); return true; } $val = rawurlencode($val); $arr = array('sesskey' => $key, 'expiry' => $expiry, 'data' => $val); if ($ADODB_SESSION_EXPIRE_NOTIFY) { $var = reset($ADODB_SESSION_EXPIRE_NOTIFY); global $$var; $arr['expireref'] = $$var; } if ($ADODB_SESSION_USE_LOBS === false) { // no lobs, simply use replace() $rs = $ADODB_SESS_CONN->Replace($ADODB_SESSION_TBL,$arr, 'sesskey',$autoQuote = true); if (!$rs) { $err = $ADODB_SESS_CONN->ErrorMsg(); } } else { // what value shall we insert/update for lob row? switch ($ADODB_SESSION_DRIVER) { // empty_clob or empty_lob for oracle dbs case "oracle": case "oci8": case "oci8po": case "oci805": $lob_value = sprintf("empty_%s()", strtolower($ADODB_SESSION_USE_LOBS)); break; // null for all other default: $lob_value = "null"; break; } // do we insert or update? => as for sesskey $res = $ADODB_SESS_CONN->Execute("select count(*) as cnt from $ADODB_SESSION_TBL where sesskey = '$key'"); if ($res && reset($res->fields) > 0) { $qry = sprintf("update %s set expiry = %d, data = %s where sesskey = '%s'", $ADODB_SESSION_TBL, $expiry, $lob_value, $key); } else { // insert $qry = sprintf("insert into %s (sesskey, expiry, data) values ('%s', %d, %s)", $ADODB_SESSION_TBL, $key, $expiry, $lob_value); } $err = ""; $rs1 = $ADODB_SESS_CONN->Execute($qry); if (!$rs1) { $err .= $ADODB_SESS_CONN->ErrorMsg()."\n"; } $rs2 = $ADODB_SESS_CONN->UpdateBlob($ADODB_SESSION_TBL, 'data', $val, "sesskey='$key'", strtoupper($ADODB_SESSION_USE_LOBS)); if (!$rs2) { $err .= $ADODB_SESS_CONN->ErrorMsg()."\n"; } $rs = ($rs1 && $rs2) ? true : false; } if (!$rs) { ADOConnection::outp( ' -- Session Replace: '.nl2br($err).'</p>',false); } else { // bug in access driver (could be odbc?) means that info is not commited // properly unless select statement executed in Win2000 if ($ADODB_SESS_CONN->databaseType == 'access') $rs = $ADODB_SESS_CONN->Execute("select sesskey from $ADODB_SESSION_TBL WHERE sesskey='$key'"); } return !empty($rs); } function adodb_sess_destroy($key) { global $ADODB_SESS_CONN, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY; if ($ADODB_SESSION_EXPIRE_NOTIFY) { reset($ADODB_SESSION_EXPIRE_NOTIFY); $fn = next($ADODB_SESSION_EXPIRE_NOTIFY); $savem = $ADODB_SESS_CONN->SetFetchMode(ADODB_FETCH_NUM); $rs = $ADODB_SESS_CONN->Execute("SELECT expireref,sesskey FROM $ADODB_SESSION_TBL WHERE sesskey='$key'"); $ADODB_SESS_CONN->SetFetchMode($savem); if ($rs) { $ADODB_SESS_CONN->BeginTrans(); while (!$rs->EOF) { $ref = $rs->fields[0]; $key = $rs->fields[1]; $fn($ref,$key); $del = $ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE sesskey='$key'"); $rs->MoveNext(); } $ADODB_SESS_CONN->CommitTrans(); } } else { $qry = "DELETE FROM $ADODB_SESSION_TBL WHERE sesskey = '$key'"; $rs = $ADODB_SESS_CONN->Execute($qry); } return $rs ? true : false; } function adodb_sess_gc($maxlifetime) { global $ADODB_SESS_DEBUG, $ADODB_SESS_CONN, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY; if ($ADODB_SESSION_EXPIRE_NOTIFY) { reset($ADODB_SESSION_EXPIRE_NOTIFY); $fn = next($ADODB_SESSION_EXPIRE_NOTIFY); $savem = $ADODB_SESS_CONN->SetFetchMode(ADODB_FETCH_NUM); $t = time(); $rs = $ADODB_SESS_CONN->Execute("SELECT expireref,sesskey FROM $ADODB_SESSION_TBL WHERE expiry < $t"); $ADODB_SESS_CONN->SetFetchMode($savem); if ($rs) { $ADODB_SESS_CONN->BeginTrans(); while (!$rs->EOF) { $ref = $rs->fields[0]; $key = $rs->fields[1]; $fn($ref,$key); $del = $ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE sesskey='$key'"); $rs->MoveNext(); } $rs->Close(); //$ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE expiry < $t"); $ADODB_SESS_CONN->CommitTrans(); } } else { $ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE expiry < " . time()); if ($ADODB_SESS_DEBUG) ADOConnection::outp(" -- <b>Garbage Collection</b>: $qry</p>"); } // suggested by Cameron, "GaM3R" <ga...@ou...> if (defined('ADODB_SESSION_OPTIMIZE')) { global $ADODB_SESSION_DRIVER; switch( $ADODB_SESSION_DRIVER ) { case 'mysql': case 'mysqlt': $opt_qry = 'OPTIMIZE TABLE '.$ADODB_SESSION_TBL; break; case 'postgresql': case 'postgresql7': $opt_qry = 'VACUUM '.$ADODB_SESSION_TBL; break; } if (!empty($opt_qry)) { $ADODB_SESS_CONN->Execute($opt_qry); } } if ($ADODB_SESS_CONN->dataProvider === 'oci8') $sql = 'select TO_CHAR('.($ADODB_SESS_CONN->sysTimeStamp).', \'RRRR-MM-DD HH24:MI:SS\') from '. $ADODB_SESSION_TBL; else $sql = 'select '.$ADODB_SESS_CONN->sysTimeStamp.' from '. $ADODB_SESSION_TBL; $rs = $ADODB_SESS_CONN->SelectLimit($sql,1); if ($rs && !$rs->EOF) { $dbts = reset($rs->fields); $rs->Close(); $dbt = $ADODB_SESS_CONN->UnixTimeStamp($dbts); $t = time(); if (abs($dbt - $t) >= ADODB_SESSION_SYNCH_SECS) { $msg = __FILE__.": Server time for webserver {$_SERVER['HTTP_HOST']} not in synch with database: database=$dbt ($dbts), webserver=$t (diff=".(abs($dbt-$t)/3600)." hrs)"; error_log($msg); if ($ADODB_SESS_DEBUG) ADOConnection::outp(" -- $msg</p>"); } } return true; } session_module_name('user'); session_set_save_handler( "adodb_sess_open", "adodb_sess_close", "adodb_sess_read", "adodb_sess_write", "adodb_sess_destroy", "adodb_sess_gc"); } /* TEST SCRIPT -- UNCOMMENT */ if (0) { session_start(); session_register('AVAR'); $_SESSION['AVAR'] += 1; ADOConnection::outp( " -- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>",false); } ?> |
Update of /cvsroot/xrms/xrms/include/adodb/lang In directory vz-cvs-3.sog:/tmp/cvs-serv16376/adodb/lang Added Files: adodb-ca.inc.php adodb_th.inc.php adodb-cz.inc.php adodb-en.inc.php adodb-bgutf8.inc.php adodb-cn.inc.php adodb-bg.inc.php adodb-pt-br.inc.php adodb-fr.inc.php adodb-nl.inc.php adodb-pl.inc.php adodb-ar.inc.php adodb-it.inc.php adodb-esperanto.inc.php adodb-sv.inc.php adodb-es.inc.php adodb-da.inc.php adodb-ru1251.inc.php adodb-de.inc.php adodb-ro.inc.php adodb-fa.inc.php adodb-uk1251.inc.php adodb-hu.inc.php Log Message: Upgraded the ADOdb Library to version 5.11 --- NEW FILE: adodb-pl.inc.php --- <?php // Contributed by Grzegorz Pacan <gp#dione.cc> $ADODB_LANG_ARRAY = array ( 'LANG' => 'pl', DB_ERROR => 'niezidentyfikowany b³±d', DB_ERROR_ALREADY_EXISTS => 'ju¿ istniej±', DB_ERROR_CANNOT_CREATE => 'nie mo¿na stworzyæ', DB_ERROR_CANNOT_DELETE => 'nie mo¿na usun±æ', DB_ERROR_CANNOT_DROP => 'nie mo¿na porzuciæ', DB_ERROR_CONSTRAINT => 'pogwa³cenie uprawnieñ', DB_ERROR_DIVZERO => 'dzielenie przez zero', DB_ERROR_INVALID => 'b³êdny', DB_ERROR_INVALID_DATE => 'b³êdna godzina lub data', DB_ERROR_INVALID_NUMBER => 'b³êdny numer', DB_ERROR_MISMATCH => 'niedopasowanie', DB_ERROR_NODBSELECTED => 'baza danych nie zosta³a wybrana', DB_ERROR_NOSUCHFIELD => 'nie znaleziono pola', DB_ERROR_NOSUCHTABLE => 'nie znaleziono tabeli', DB_ERROR_NOT_CAPABLE => 'nie zdolny', DB_ERROR_NOT_FOUND => 'nie znaleziono', DB_ERROR_NOT_LOCKED => 'nie zakmniêty', DB_ERROR_SYNTAX => 'b³±d sk³adni', DB_ERROR_UNSUPPORTED => 'nie obs³uguje', DB_ERROR_VALUE_COUNT_ON_ROW => 'warto¶æ liczona w szeregu', DB_ERROR_INVALID_DSN => 'b³êdny DSN', DB_ERROR_CONNECT_FAILED => 'po³±czenie nie zosta³o zrealizowane', 0 => 'brak b³êdów', // DB_OK DB_ERROR_NEED_MORE_DATA => 'niedostateczna ilo¶æ informacji', DB_ERROR_EXTENSION_NOT_FOUND=> 'nie znaleziono rozszerzenia', DB_ERROR_NOSUCHDB => 'nie znaleziono bazy', DB_ERROR_ACCESS_VIOLATION => 'niedostateczne uprawnienia' ); ?> --- NEW FILE: adodb-ca.inc.php --- <?php // Catalan language // contributed by "Josep Lladonosa" jlladono#pie.xtec.es $ADODB_LANG_ARRAY = array ( 'LANG' => 'ca', DB_ERROR => 'error desconegut', DB_ERROR_ALREADY_EXISTS => 'ja existeix', DB_ERROR_CANNOT_CREATE => 'no es pot crear', DB_ERROR_CANNOT_DELETE => 'no es pot esborrar', DB_ERROR_CANNOT_DROP => 'no es pot eliminar', DB_ERROR_CONSTRAINT => 'violació de constraint', DB_ERROR_DIVZERO => 'divisió per zero', DB_ERROR_INVALID => 'no és vàlid', DB_ERROR_INVALID_DATE => 'la data o l\'hora no són vàlides', DB_ERROR_INVALID_NUMBER => 'el nombre no és vàlid', DB_ERROR_MISMATCH => 'no hi ha coincidència', DB_ERROR_NODBSELECTED => 'cap base de dades seleccionada', DB_ERROR_NOSUCHFIELD => 'camp inexistent', DB_ERROR_NOSUCHTABLE => 'taula inexistent', DB_ERROR_NOT_CAPABLE => 'l\'execució secundària de DB no pot', DB_ERROR_NOT_FOUND => 'no trobat', DB_ERROR_NOT_LOCKED => 'no blocat', DB_ERROR_SYNTAX => 'error de sintaxi', DB_ERROR_UNSUPPORTED => 'no suportat', DB_ERROR_VALUE_COUNT_ON_ROW => 'el nombre de columnes no coincideix amb el nombre de valors en la fila', DB_ERROR_INVALID_DSN => 'el DSN no és vàlid', DB_ERROR_CONNECT_FAILED => 'connexió fallida', 0 => 'cap error', // DB_OK DB_ERROR_NEED_MORE_DATA => 'les dades subministrades són insuficients', DB_ERROR_EXTENSION_NOT_FOUND=> 'extensió no trobada', DB_ERROR_NOSUCHDB => 'base de dades inexistent', DB_ERROR_ACCESS_VIOLATION => 'permisos insuficients' ); ?> --- NEW FILE: adodb-ro.inc.php --- <?php /* Romanian - by "bogdan stefan" <sbogdan#rsb.ro> */ $ADODB_LANG_ARRAY = array ( 'LANG' => 'ro', DB_ERROR => 'eroare necunoscuta', DB_ERROR_ALREADY_EXISTS => 'deja exista', DB_ERROR_CANNOT_CREATE => 'nu se poate creea', DB_ERROR_CANNOT_DELETE => 'nu se poate sterge', DB_ERROR_CANNOT_DROP => 'nu se poate executa drop', DB_ERROR_CONSTRAINT => 'violare de constrain', DB_ERROR_DIVZERO => 'se divide la zero', DB_ERROR_INVALID => 'invalid', DB_ERROR_INVALID_DATE => 'data sau timp invalide', DB_ERROR_INVALID_NUMBER => 'numar invalid', DB_ERROR_MISMATCH => 'nepotrivire-mismatch', DB_ERROR_NODBSELECTED => 'nu exista baza de date selectata', DB_ERROR_NOSUCHFIELD => 'camp inexistent', DB_ERROR_NOSUCHTABLE => 'tabela inexistenta', DB_ERROR_NOT_CAPABLE => 'functie optionala neinstalata', DB_ERROR_NOT_FOUND => 'negasit', DB_ERROR_NOT_LOCKED => 'neblocat', DB_ERROR_SYNTAX => 'eroare de sintaxa', DB_ERROR_UNSUPPORTED => 'nu e suportat', DB_ERROR_VALUE_COUNT_ON_ROW => 'valoare prea mare pentru coloana', DB_ERROR_INVALID_DSN => 'DSN invalid', DB_ERROR_CONNECT_FAILED => 'conectare esuata', 0 => 'fara eroare', // DB_OK DB_ERROR_NEED_MORE_DATA => 'data introduse insuficiente', DB_ERROR_EXTENSION_NOT_FOUND=> 'extensie negasita', DB_ERROR_NOSUCHDB => 'nu exista baza de date', DB_ERROR_ACCESS_VIOLATION => 'permisiuni insuficiente' ); ?> --- NEW FILE: adodb-fa.inc.php --- <?php /* Farsi - by "Peyman Hooshmandi Raad" <phooshmand#gmail.com> */ $ADODB_LANG_ARRAY = array ( 'LANG' => 'fa', DB_ERROR => 'Ø®Ø·Ø§Û ÙاشÙاختÙ', DB_ERROR_ALREADY_EXISTS => 'ÙجÙد دارد', DB_ERROR_CANNOT_CREATE => 'ا٠کا٠create ÙجÙد Ùدارد', DB_ERROR_CANNOT_DELETE => 'ا٠کا٠ØØ°Ù ÙجÙد Ùدارد', DB_ERROR_CANNOT_DROP => 'ا٠کا٠drop ÙجÙد Ùدارد', DB_ERROR_CONSTRAINT => 'ÙÙض شرط', DB_ERROR_DIVZERO => 'تÙسÛ٠بر صÙر', DB_ERROR_INVALID => 'Ùا٠عتبر', DB_ERROR_INVALID_DATE => 'ز٠ا٠Ûا تارÛØ® Ùا٠عتبر', DB_ERROR_INVALID_NUMBER => 'عدد Ùا٠عتبر', DB_ERROR_MISMATCH => 'عد٠٠طابÙت', DB_ERROR_NODBSELECTED => 'باÙÚ© اطÙØ§Ø¹Ø§ØªÛ Ø§Ùتخاب Ùشد٠است', DB_ERROR_NOSUCHFIELD => 'ÚÙÛ٠ستÙÙÛ ÙجÙد Ùدارد', DB_ERROR_NOSUCHTABLE => 'ÚÙÛ٠جدÙÙÛ ÙجÙد Ùدارد', DB_ERROR_NOT_CAPABLE => 'backend باÙÚ© اطÙØ§Ø¹Ø§ØªÛ Ùادر ÙÛست', DB_ERROR_NOT_FOUND => 'Ù¾Ûدا Ùشد', DB_ERROR_NOT_LOCKED => 'ÙÙÙ ÙشدÙ', DB_ERROR_SYNTAX => 'Ø®Ø·Ø§Û Ø¯Ø³ØªÙرÛ', DB_ERROR_UNSUPPORTED => 'پشتÛباÙÛ ÙÙ Û Ø´Ùد', DB_ERROR_VALUE_COUNT_ON_ROW => 'ش٠ارش Ù ÙادÛر رÙÛ Ø±Ø¯ÛÙ', DB_ERROR_INVALID_DSN => 'DSN Ùا٠عتبر', DB_ERROR_CONNECT_FAILED => 'ارتباط برÙرار Ùشد', 0 => 'بدÙ٠خطا', // DB_OK DB_ERROR_NEED_MORE_DATA => 'داد٠ÙاکاÙÛ Ø§Ø³Øª', DB_ERROR_EXTENSION_NOT_FOUND=> 'extension Ù¾Ûدا Ùشد', DB_ERROR_NOSUCHDB => 'ÚÙÛ٠باÙÚ© اطÙØ§Ø¹Ø§ØªÛ ÙجÙد Ùدارد', DB_ERROR_ACCESS_VIOLATION => 'ØÙ Ø¯Ø³ØªØ±Ø³Û ÙاکاÙÛ' ); ?> --- NEW FILE: adodb-it.inc.php --- <?php // Italian language file contributed by Tiraboschi Massimiliano aka TiMax // www.maxdev.com ti...@ma... $ADODB_LANG_ARRAY = array ( 'LANG' => 'it', DB_ERROR => 'errore sconosciuto', DB_ERROR_ALREADY_EXISTS => 'esiste già', DB_ERROR_CANNOT_CREATE => 'non posso creare', DB_ERROR_CANNOT_DELETE => 'non posso cancellare', DB_ERROR_CANNOT_DROP => 'non posso eliminare', DB_ERROR_CONSTRAINT => 'violazione constraint', DB_ERROR_DIVZERO => 'divisione per zero', DB_ERROR_INVALID => 'non valido', DB_ERROR_INVALID_DATE => 'data od ora non valida', DB_ERROR_INVALID_NUMBER => 'numero non valido', DB_ERROR_MISMATCH => 'diversi', DB_ERROR_NODBSELECTED => 'nessun database selezionato', DB_ERROR_NOSUCHFIELD => 'nessun campo trovato', DB_ERROR_NOSUCHTABLE => 'nessuna tabella trovata', DB_ERROR_NOT_CAPABLE => 'DB backend non abilitato', DB_ERROR_NOT_FOUND => 'non trovato', DB_ERROR_NOT_LOCKED => 'non bloccato', DB_ERROR_SYNTAX => 'errore di sintassi', DB_ERROR_UNSUPPORTED => 'non supportato', DB_ERROR_VALUE_COUNT_ON_ROW => 'valore inserito troppo grande per una colonna', DB_ERROR_INVALID_DSN => 'DSN non valido', DB_ERROR_CONNECT_FAILED => 'connessione fallita', 0 => 'nessun errore', // DB_OK DB_ERROR_NEED_MORE_DATA => 'dati inseriti insufficienti', DB_ERROR_EXTENSION_NOT_FOUND=> 'estensione non trovata', DB_ERROR_NOSUCHDB => 'database non trovato', DB_ERROR_ACCESS_VIOLATION => 'permessi insufficienti' ); ?> --- NEW FILE: adodb-esperanto.inc.php --- <?php // Vivu Esperanto cxiam! // Traduko fare de Antono Vasiljev (anders[#]brainactive.org) $ADODB_LANG_ARRAY = array ( 'LANG' => 'eo', DB_ERROR => 'nekonata eraro', DB_ERROR_ALREADY_EXISTS => 'jam ekzistas', DB_ERROR_CANNOT_CREATE => 'maleblas krei', DB_ERROR_CANNOT_DELETE => 'maleblas elimini', DB_ERROR_CANNOT_DROP => 'maleblas elimini (drop)', DB_ERROR_CONSTRAINT => 'rompo de kondicxoj de provo', DB_ERROR_DIVZERO => 'divido per 0 (nul)', DB_ERROR_INVALID => 'malregule', DB_ERROR_INVALID_DATE => 'malregula dato kaj tempo', DB_ERROR_INVALID_NUMBER => 'malregula nombro', DB_ERROR_MISMATCH => 'eraro', DB_ERROR_NODBSELECTED => 'datumbazo ne elektita', DB_ERROR_NOSUCHFIELD => 'ne ekzistas kampo', DB_ERROR_NOSUCHTABLE => 'ne ekzistas tabelo', DB_ERROR_NOT_CAPABLE => 'DBMS ne povas', DB_ERROR_NOT_FOUND => 'ne trovita', DB_ERROR_NOT_LOCKED => 'ne blokita', DB_ERROR_SYNTAX => 'sintaksa eraro', DB_ERROR_UNSUPPORTED => 'ne apogata', DB_ERROR_VALUE_COUNT_ON_ROW => 'nombrilo de valoroj en linio', DB_ERROR_INVALID_DSN => 'malregula DSN-o', DB_ERROR_CONNECT_FAILED => 'konekto malsukcesa', 0 => 'cxio bone', // DB_OK DB_ERROR_NEED_MORE_DATA => 'ne suficxe da datumo', DB_ERROR_EXTENSION_NOT_FOUND=> 'etendo ne trovita', DB_ERROR_NOSUCHDB => 'datumbazo ne ekzistas', DB_ERROR_ACCESS_VIOLATION => 'ne suficxe da rajto por atingo' ); ?> --- NEW FILE: adodb-bg.inc.php --- <?php /* Bulgarian language, v1.0, 25.03.2004, encoding by Windows-1251 charset contributed by Valentin Sheiretsky <valio#valio.eu.org> */ $ADODB_LANG_ARRAY = array ( 'LANG' => 'bg', DB_ERROR => 'íåèçâåñòíà ãðåøêà', DB_ERROR_ALREADY_EXISTS => 'âå÷å ñúùåñòâóâà', DB_ERROR_CANNOT_CREATE => 'íå ìîæå äà áúäå ñúçäàäåíà', DB_ERROR_CANNOT_DELETE => 'íå ìîæå äà áúäå èçòðèòà', DB_ERROR_CANNOT_DROP => 'íå ìîæå äà áúäå óíèùîæåíà', DB_ERROR_CONSTRAINT => 'íàðóøåíî óñëîâèå', DB_ERROR_DIVZERO => 'äåëåíèå íà íóëà', DB_ERROR_INVALID => 'íåïðàâèëíî', DB_ERROR_INVALID_DATE => 'íåêîðåêòíà äàòà èëè ÷àñ', DB_ERROR_INVALID_NUMBER => 'íåâàëèäåí íîìåð', DB_ERROR_MISMATCH => 'ïîãðåøíà óïîòðåáà', DB_ERROR_NODBSELECTED => 'íå å èçáðàíà áàçà äàííè', DB_ERROR_NOSUCHFIELD => 'íåñúùåñòâóâàùî ïîëå', DB_ERROR_NOSUCHTABLE => 'íåñúùåñòâóâàùà òàáëèöà', DB_ERROR_NOT_CAPABLE => 'DB backend not capable', DB_ERROR_NOT_FOUND => 'íå å íàìåðåíà', DB_ERROR_NOT_LOCKED => 'íå å çàêëþ÷åíà', DB_ERROR_SYNTAX => 'ãðåøåí ñèíòàêñèñ', DB_ERROR_UNSUPPORTED => 'íå ñå ïîääúðæà', DB_ERROR_VALUE_COUNT_ON_ROW => 'íåêîðåêòåí áðîé êîëîíè â ðåäà', DB_ERROR_INVALID_DSN => 'íåâàëèäåí DSN', DB_ERROR_CONNECT_FAILED => 'âðúçêàòà íå ìîæå äà áúäå îñúùåñòâåíà', 0 => 'íÿìà ãðåøêè', // DB_OK DB_ERROR_NEED_MORE_DATA => 'ïðåäîñòàâåíèòå äàííè ñà íåäîñòàòú÷íè', DB_ERROR_EXTENSION_NOT_FOUND=> 'ðàçøèðåíèåòî íå å íàìåðåíî', DB_ERROR_NOSUCHDB => 'íåñúùåñòâóâàùà áàçà äàííè', DB_ERROR_ACCESS_VIOLATION => 'íÿìàòå äîñòàòú÷íî ïðàâà' ); ?> --- NEW FILE: adodb-pt-br.inc.php --- <?php // contributed by "Levi Fukumori" levi _AT_ fukumori _DOT_ com _DOT_ br // portugese (brazilian) $ADODB_LANG_ARRAY = array ( 'LANG' => 'pt-br', DB_ERROR => 'erro desconhecido', DB_ERROR_ALREADY_EXISTS => 'já existe', DB_ERROR_CANNOT_CREATE => 'impossível criar', DB_ERROR_CANNOT_DELETE => 'impossível excluír', DB_ERROR_CANNOT_DROP => 'impossível remover', DB_ERROR_CONSTRAINT => 'violação do confinamente', DB_ERROR_DIVZERO => 'divisão por zero', DB_ERROR_INVALID => 'inválido', DB_ERROR_INVALID_DATE => 'data ou hora inválida', DB_ERROR_INVALID_NUMBER => 'número inválido', DB_ERROR_MISMATCH => 'erro', DB_ERROR_NODBSELECTED => 'nenhum banco de dados selecionado', DB_ERROR_NOSUCHFIELD => 'campo inválido', DB_ERROR_NOSUCHTABLE => 'tabela inexistente', DB_ERROR_NOT_CAPABLE => 'capacidade inválida para este BD', DB_ERROR_NOT_FOUND => 'não encontrado', DB_ERROR_NOT_LOCKED => 'não bloqueado', DB_ERROR_SYNTAX => 'erro de sintaxe', DB_ERROR_UNSUPPORTED => 'não suportado', DB_ERROR_VALUE_COUNT_ON_ROW => 'a quantidade de colunas não corresponde ao de valores', DB_ERROR_INVALID_DSN => 'DSN inválido', DB_ERROR_CONNECT_FAILED => 'falha na conexão', 0 => 'sem erro', // DB_OK DB_ERROR_NEED_MORE_DATA => 'dados insuficientes', DB_ERROR_EXTENSION_NOT_FOUND=> 'extensão não encontrada', DB_ERROR_NOSUCHDB => 'banco de dados não encontrado', DB_ERROR_ACCESS_VIOLATION => 'permissão insuficiente' ); ?> --- NEW FILE: adodb-uk1251.inc.php --- <?php // Ukrainian language file contributed by Alex Rootoff rootoff{AT}pisem.net. $ADODB_LANG_ARRAY = array ( 'LANG' => 'uk1251', DB_ERROR => 'íåâ³äîìà ïîìèëêà', DB_ERROR_ALREADY_EXISTS => 'âæå ³ñíóº', DB_ERROR_CANNOT_CREATE => 'íåìîæëèâî ñòâîðèòè', DB_ERROR_CANNOT_DELETE => 'íåìîæëèâî âèäàëèòè', DB_ERROR_CANNOT_DROP => 'íåìîæëèâî çíèùèòè (drop)', DB_ERROR_CONSTRAINT => 'ïîðóøåííÿ óìîâ ïåðåâ³ðêè', DB_ERROR_DIVZERO => 'ä³ëåííÿ íà 0', DB_ERROR_INVALID => 'íåïðàâèëüíî', DB_ERROR_INVALID_DATE => 'íåïðàâèëüíà äàòà ÷è ÷àñ', DB_ERROR_INVALID_NUMBER => 'íåïðàâèëüíå ÷èñëî', DB_ERROR_MISMATCH => 'ïîìèëêà', DB_ERROR_NODBSELECTED => 'íå âèáðàíî ÁÄ', DB_ERROR_NOSUCHFIELD => 'íå ³ñíóº ïîëå', DB_ERROR_NOSUCHTABLE => 'íå ³ñíóº òàáëèöÿ', DB_ERROR_NOT_CAPABLE => 'ÑÓÁÄ íå â ñòàí³', DB_ERROR_NOT_FOUND => 'íå çíàéäåíî', DB_ERROR_NOT_LOCKED => 'íå çàáëîêîâàíî', DB_ERROR_SYNTAX => 'ñèíòàêñè÷íà ïîìèëêà', DB_ERROR_UNSUPPORTED => 'íå ï³äòðèìóºòüñÿ', DB_ERROR_VALUE_COUNT_ON_ROW => 'ðàõ³âíèê çíà÷åíü â ñòð³÷ö³', DB_ERROR_INVALID_DSN => 'íåïðàâèëüíà DSN', DB_ERROR_CONNECT_FAILED => 'ç\'ºäíàííÿ íåóñï³øíå', 0 => 'âñå ãàðàçä', // DB_OK DB_ERROR_NEED_MORE_DATA => 'íàäàíî íåäîñòàòíüî äàíèõ', DB_ERROR_EXTENSION_NOT_FOUND=> 'ðîçøèðåííÿ íå çíàéäåíî', DB_ERROR_NOSUCHDB => 'íå ³ñíóº ÁÄ', DB_ERROR_ACCESS_VIOLATION => 'íåäîñòàòíüî ïðàâ äîñòóïà' ); ?> --- NEW FILE: adodb-ar.inc.php --- (This appears to be a binary file; contents omitted.) --- NEW FILE: adodb-ru1251.inc.php --- <?php // Russian language file contributed by "Cyrill Malevanov" cyrill#malevanov.spb.ru. $ADODB_LANG_ARRAY = array ( 'LANG' => 'ru1251', DB_ERROR => 'íåèçâåñòíàÿ îøèáêà', DB_ERROR_ALREADY_EXISTS => 'óæå ñóùåñòâóåò', DB_ERROR_CANNOT_CREATE => 'íåâîçìîæíî ñîçäàòü', DB_ERROR_CANNOT_DELETE => 'íåâîçìîæíî óäàëèòü', DB_ERROR_CANNOT_DROP => 'íåâîçìîæíî óäàëèòü (drop)', DB_ERROR_CONSTRAINT => 'íàðóøåíèå óñëîâèé ïðîâåðêè', DB_ERROR_DIVZERO => 'äåëåíèå íà 0', DB_ERROR_INVALID => 'íåïðàâèëüíî', DB_ERROR_INVALID_DATE => 'íåêîððåêòíàÿ äàòà èëè âðåìÿ', DB_ERROR_INVALID_NUMBER => 'íåêîððåêòíîå ÷èñëî', DB_ERROR_MISMATCH => 'îøèáêà', DB_ERROR_NODBSELECTED => 'ÁÄ íå âûáðàíà', DB_ERROR_NOSUCHFIELD => 'íå ñóùåñòâóåò ïîëå', DB_ERROR_NOSUCHTABLE => 'íå ñóùåñòâóåò òàáëèöà', DB_ERROR_NOT_CAPABLE => 'ÑÓÁÄ íå â ñîñòîÿíèè', DB_ERROR_NOT_FOUND => 'íå íàéäåíî', DB_ERROR_NOT_LOCKED => 'íå çàáëîêèðîâàíî', DB_ERROR_SYNTAX => 'ñèíòàêñè÷åñêàÿ îøèáêà', DB_ERROR_UNSUPPORTED => 'íå ïîääåðæèâàåòñÿ', DB_ERROR_VALUE_COUNT_ON_ROW => 'ñ÷åò÷èê çíà÷åíèé â ñòðîêå', DB_ERROR_INVALID_DSN => 'íåïðàâèëüíàÿ DSN', DB_ERROR_CONNECT_FAILED => 'ñîåäèíåíèå íåóñïåøíî', 0 => 'íåò îøèáêè', // DB_OK DB_ERROR_NEED_MORE_DATA => 'ïðåäîñòàâëåíî íåäîñòàòî÷íî äàííûõ', DB_ERROR_EXTENSION_NOT_FOUND=> 'ðàñøèðåíèå íå íàéäåíî', DB_ERROR_NOSUCHDB => 'íå ñóùåñòâóåò ÁÄ', DB_ERROR_ACCESS_VIOLATION => 'íåäîñòàòî÷íî ïðàâ äîñòóïà' ); ?> --- NEW FILE: adodb-hu.inc.php --- (This appears to be a binary file; contents omitted.) --- NEW FILE: adodb-sv.inc.php --- (This appears to be a binary file; contents omitted.) --- NEW FILE: adodb_th.inc.php --- (This appears to be a binary file; contents omitted.) --- NEW FILE: adodb-da.inc.php --- <?php // Arne Eckmann bananstat#users.sourceforge.net $ADODB_LANG_ARRAY = array ( 'LANG' => 'da', DB_ERROR => 'ukendt fejl', DB_ERROR_ALREADY_EXISTS => 'eksisterer allerede', DB_ERROR_CANNOT_CREATE => 'kan ikke oprette', DB_ERROR_CANNOT_DELETE => 'kan ikke slette', DB_ERROR_CANNOT_DROP => 'kan ikke droppe', DB_ERROR_CONSTRAINT => 'begrænsning krænket', DB_ERROR_DIVZERO => 'division med nul', DB_ERROR_INVALID => 'ugyldig', DB_ERROR_INVALID_DATE => 'ugyldig dato eller klokkeslet', DB_ERROR_INVALID_NUMBER => 'ugyldigt tal', DB_ERROR_MISMATCH => 'mismatch', DB_ERROR_NODBSELECTED => 'ingen database valgt', DB_ERROR_NOSUCHFIELD => 'felt findes ikke', DB_ERROR_NOSUCHTABLE => 'tabel findes ikke', DB_ERROR_NOT_CAPABLE => 'DB backend opgav', DB_ERROR_NOT_FOUND => 'ikke fundet', DB_ERROR_NOT_LOCKED => 'ikke låst', DB_ERROR_SYNTAX => 'syntaksfejl', DB_ERROR_UNSUPPORTED => 'ikke understøttet', DB_ERROR_VALUE_COUNT_ON_ROW => 'resulterende antal felter svarer ikke til forespørgslens antal felter', DB_ERROR_INVALID_DSN => 'ugyldig DSN', DB_ERROR_CONNECT_FAILED => 'tilslutning mislykkedes', 0 => 'ingen fejl', // DB_OK DB_ERROR_NEED_MORE_DATA => 'utilstrækkelige data angivet', DB_ERROR_EXTENSION_NOT_FOUND=> 'udvidelse ikke fundet', DB_ERROR_NOSUCHDB => 'database ikke fundet', DB_ERROR_ACCESS_VIOLATION => 'utilstrækkelige rettigheder' ); ?> --- NEW FILE: adodb-de.inc.php --- <?php // contributed by "Heinz Hombergs" <op...@hh...> $ADODB_LANG_ARRAY = array ( 'LANG' => 'de', DB_ERROR => 'Unbekannter Fehler', DB_ERROR_ALREADY_EXISTS => 'existiert bereits', DB_ERROR_CANNOT_CREATE => 'kann nicht erstellen', DB_ERROR_CANNOT_DELETE => 'kann nicht löschen', DB_ERROR_CANNOT_DROP => 'Tabelle oder Index konnte nicht gelöscht werden', DB_ERROR_CONSTRAINT => 'Constraint Verletzung', DB_ERROR_DIVZERO => 'Division durch Null', DB_ERROR_INVALID => 'ung¨ltig', DB_ERROR_INVALID_DATE => 'ung¨ltiges Datum oder Zeit', DB_ERROR_INVALID_NUMBER => 'ung¨ltige Zahl', DB_ERROR_MISMATCH => 'Unverträglichkeit', DB_ERROR_NODBSELECTED => 'keine Dantebank ausgewählt', DB_ERROR_NOSUCHFIELD => 'Feld nicht vorhanden', DB_ERROR_NOSUCHTABLE => 'Tabelle nicht vorhanden', DB_ERROR_NOT_CAPABLE => 'Funktion nicht installiert', DB_ERROR_NOT_FOUND => 'nicht gefunden', DB_ERROR_NOT_LOCKED => 'nicht gesperrt', DB_ERROR_SYNTAX => 'Syntaxfehler', DB_ERROR_UNSUPPORTED => 'nicht Unterst¨tzt', DB_ERROR_VALUE_COUNT_ON_ROW => 'Anzahl der zur¨ckgelieferten Felder entspricht nicht der Anzahl der Felder in der Abfrage', DB_ERROR_INVALID_DSN => 'ung¨ltiger DSN', DB_ERROR_CONNECT_FAILED => 'Verbindung konnte nicht hergestellt werden', 0 => 'kein Fehler', // DB_OK DB_ERROR_NEED_MORE_DATA => 'Nicht gen¨gend Daten geliefert', DB_ERROR_EXTENSION_NOT_FOUND=> 'erweiterung nicht gefunden', DB_ERROR_NOSUCHDB => 'keine Datenbank', DB_ERROR_ACCESS_VIOLATION => 'ungen¨gende Rechte' ); ?> --- NEW FILE: adodb-nl.inc.php --- <?php // Translated by Pim Koeman (pim#wittenborg-university.com) $ADODB_LANG_ARRAY = array ( 'LANG' => 'nl', DB_ERROR => 'onbekende fout', DB_ERROR_ALREADY_EXISTS => 'bestaat al', DB_ERROR_CANNOT_CREATE => 'kan niet aanmaken', DB_ERROR_CANNOT_DELETE => 'kan niet wissen', DB_ERROR_CANNOT_DROP => 'kan niet verwijderen', DB_ERROR_CONSTRAINT => 'constraint overtreding', DB_ERROR_DIVZERO => 'poging tot delen door nul', DB_ERROR_INVALID => 'ongeldig', DB_ERROR_INVALID_DATE => 'ongeldige datum of tijd', DB_ERROR_INVALID_NUMBER => 'ongeldig nummer', DB_ERROR_MISMATCH => 'is incorrect', DB_ERROR_NODBSELECTED => 'geen database geselecteerd', DB_ERROR_NOSUCHFIELD => 'onbekend veld', DB_ERROR_NOSUCHTABLE => 'onbekende tabel', DB_ERROR_NOT_CAPABLE => 'database systeem is niet tot uitvoer in staat', DB_ERROR_NOT_FOUND => 'niet gevonden', DB_ERROR_NOT_LOCKED => 'niet vergrendeld', DB_ERROR_SYNTAX => 'syntaxis fout', DB_ERROR_UNSUPPORTED => 'niet ondersteund', DB_ERROR_VALUE_COUNT_ON_ROW => 'waarde telling op rij', DB_ERROR_INVALID_DSN => 'ongeldige DSN', DB_ERROR_CONNECT_FAILED => 'connectie mislukt', 0 => 'geen fout', // DB_OK DB_ERROR_NEED_MORE_DATA => 'onvoldoende data gegeven', DB_ERROR_EXTENSION_NOT_FOUND=> 'extensie niet gevonden', DB_ERROR_NOSUCHDB => 'onbekende database', DB_ERROR_ACCESS_VIOLATION => 'onvoldoende rechten' ); ?> --- NEW FILE: adodb-bgutf8.inc.php --- (This appears to be a binary file; contents omitted.) --- NEW FILE: adodb-cn.inc.php --- <?php // Chinese language file contributed by "Cuiyan (cysoft)" cysoft#php.net. // Encode by GB2312 // Simplified Chinese $ADODB_LANG_ARRAY = array ( 'LANG' => 'cn', DB_ERROR => 'δ֪´íÎó', DB_ERROR_ALREADY_EXISTS => 'ÒѾ´æÔÚ', DB_ERROR_CANNOT_CREATE => '²»ÄÜ´´½¨', DB_ERROR_CANNOT_DELETE => '²»ÄÜɾ³ý', DB_ERROR_CANNOT_DROP => '²»ÄܶªÆú', DB_ERROR_CONSTRAINT => 'Ô¼ÊøÏÞÖÆ', DB_ERROR_DIVZERO => '±»0³ý', DB_ERROR_INVALID => 'ÎÞЧ', DB_ERROR_INVALID_DATE => 'ÎÞЧµÄÈÕÆÚ»òÕßʱ¼ä', DB_ERROR_INVALID_NUMBER => 'ÎÞЧµÄÊý×Ö', DB_ERROR_MISMATCH => '²»Æ¥Åä', DB_ERROR_NODBSELECTED => 'ûÓÐÊý¾Ý¿â±»Ñ¡Ôñ', DB_ERROR_NOSUCHFIELD => 'ûÓÐÏàÓ¦µÄ×Ö¶Î', DB_ERROR_NOSUCHTABLE => 'ûÓÐÏàÓ¦µÄ±í', DB_ERROR_NOT_CAPABLE => 'Êý¾Ý¿âºǫ́²»¼æÈÝ', DB_ERROR_NOT_FOUND => 'ûÓз¢ÏÖ', DB_ERROR_NOT_LOCKED => 'ûÓб»Ëø¶¨', DB_ERROR_SYNTAX => 'Óï·¨´íÎó', DB_ERROR_UNSUPPORTED => '²»Ö§³Ö', DB_ERROR_VALUE_COUNT_ON_ROW => 'ÔÚÐÐÉÏÀÛ¼ÆÖµ', DB_ERROR_INVALID_DSN => 'ÎÞЧµÄÊý¾ÝÔ´ (DSN)', DB_ERROR_CONNECT_FAILED => 'Á¬½Óʧ°Ü', 0 => 'ûÓдíÎó', // DB_OK DB_ERROR_NEED_MORE_DATA => 'ÌṩµÄÊý¾Ý²»ÄÜ·ûºÏÒªÇó', DB_ERROR_EXTENSION_NOT_FOUND=> 'À©Õ¹Ã»Óб»·¢ÏÖ', DB_ERROR_NOSUCHDB => 'ûÓÐÏàÓ¦µÄÊý¾Ý¿â', DB_ERROR_ACCESS_VIOLATION => 'ûÓкÏÊʵÄȨÏÞ' ); ?> --- NEW FILE: adodb-cz.inc.php --- <?php # Czech language, encoding by ISO 8859-2 charset (Iso Latin-2) # For convert to MS Windows use shell command: # iconv -f ISO_8859-2 -t CP1250 < adodb-cz.inc.php # For convert to ASCII use shell command: # unaccent ISO_8859-2 < adodb-cz.inc.php # v1.0, 19.06.2003 Kamil Jakubovic <ja...@ho...> $ADODB_LANG_ARRAY = array ( 'LANG' => 'cz', DB_ERROR => 'neznámá chyba', DB_ERROR_ALREADY_EXISTS => 'ji? existuje', DB_ERROR_CANNOT_CREATE => 'nelze vytvo?it', DB_ERROR_CANNOT_DELETE => 'nelze smazat', DB_ERROR_CANNOT_DROP => 'nelze odstranit', DB_ERROR_CONSTRAINT => 'poru?ení omezující podmínky', DB_ERROR_DIVZERO => 'd?lení nulou', DB_ERROR_INVALID => 'neplatné', DB_ERROR_INVALID_DATE => 'neplatné datum nebo ?as', DB_ERROR_INVALID_NUMBER => 'neplatné ?íslo', DB_ERROR_MISMATCH => 'nesouhlasí', DB_ERROR_NODBSELECTED => '?ádná databáze není vybrána', DB_ERROR_NOSUCHFIELD => 'pole nenalezeno', DB_ERROR_NOSUCHTABLE => 'tabulka nenalezena', DB_ERROR_NOT_CAPABLE => 'nepodporováno', DB_ERROR_NOT_FOUND => 'nenalezeno', DB_ERROR_NOT_LOCKED => 'nezam?eno', DB_ERROR_SYNTAX => 'syntaktická chyba', DB_ERROR_UNSUPPORTED => 'nepodporováno', DB_ERROR_VALUE_COUNT_ON_ROW => '', DB_ERROR_INVALID_DSN => 'neplatné DSN', DB_ERROR_CONNECT_FAILED => 'p?ipojení selhalo', 0 => 'bez chyb', // DB_OK DB_ERROR_NEED_MORE_DATA => 'málo zdrojových dat', DB_ERROR_EXTENSION_NOT_FOUND=> 'roz?í?ení nenalezeno', DB_ERROR_NOSUCHDB => 'databáze neexistuje', DB_ERROR_ACCESS_VIOLATION => 'nedostate?ná práva' ); ?> --- NEW FILE: adodb-es.inc.php --- <?php // contributed by "Horacio Degiorgi" <hor...@co...> $ADODB_LANG_ARRAY = array ( 'LANG' => 'es', DB_ERROR => 'error desconocido', DB_ERROR_ALREADY_EXISTS => 'ya existe', DB_ERROR_CANNOT_CREATE => 'imposible crear', DB_ERROR_CANNOT_DELETE => 'imposible borrar', DB_ERROR_CANNOT_DROP => 'imposible hacer drop', DB_ERROR_CONSTRAINT => 'violacion de constraint', DB_ERROR_DIVZERO => 'division por cero', DB_ERROR_INVALID => 'invalido', DB_ERROR_INVALID_DATE => 'fecha u hora invalida', DB_ERROR_INVALID_NUMBER => 'numero invalido', DB_ERROR_MISMATCH => 'error', DB_ERROR_NODBSELECTED => 'no hay base de datos seleccionada', DB_ERROR_NOSUCHFIELD => 'campo invalido', DB_ERROR_NOSUCHTABLE => 'tabla no existe', DB_ERROR_NOT_CAPABLE => 'capacidad invalida para esta DB', DB_ERROR_NOT_FOUND => 'no encontrado', DB_ERROR_NOT_LOCKED => 'no bloqueado', DB_ERROR_SYNTAX => 'error de sintaxis', DB_ERROR_UNSUPPORTED => 'no soportado', DB_ERROR_VALUE_COUNT_ON_ROW => 'la cantidad de columnas no corresponden a la cantidad de valores', DB_ERROR_INVALID_DSN => 'DSN invalido', DB_ERROR_CONNECT_FAILED => 'fallo la conexion', 0 => 'sin error', // DB_OK DB_ERROR_NEED_MORE_DATA => 'insuficientes datos', DB_ERROR_EXTENSION_NOT_FOUND=> 'extension no encontrada', DB_ERROR_NOSUCHDB => 'base de datos no encontrada', DB_ERROR_ACCESS_VIOLATION => 'permisos insuficientes' ); ?> --- NEW FILE: adodb-fr.inc.php --- <?php $ADODB_LANG_ARRAY = array ( 'LANG' => 'fr', DB_ERROR => 'erreur inconnue', DB_ERROR_ALREADY_EXISTS => 'existe déjà', DB_ERROR_CANNOT_CREATE => 'crétion impossible', DB_ERROR_CANNOT_DELETE => 'effacement impossible', DB_ERROR_CANNOT_DROP => 'suppression impossible', DB_ERROR_CONSTRAINT => 'violation de contrainte', DB_ERROR_DIVZERO => 'division par zéro', DB_ERROR_INVALID => 'invalide', DB_ERROR_INVALID_DATE => 'date ou heure invalide', DB_ERROR_INVALID_NUMBER => 'nombre invalide', DB_ERROR_MISMATCH => 'erreur de concordance', DB_ERROR_NODBSELECTED => 'pas de base de donnéessélectionnée', DB_ERROR_NOSUCHFIELD => 'nom de colonne invalide', DB_ERROR_NOSUCHTABLE => 'table ou vue inexistante', DB_ERROR_NOT_CAPABLE => 'fonction optionnelle non installée', DB_ERROR_NOT_FOUND => 'pas trouvé', DB_ERROR_NOT_LOCKED => 'non verrouillé', DB_ERROR_SYNTAX => 'erreur de syntaxe', DB_ERROR_UNSUPPORTED => 'non supporté', DB_ERROR_VALUE_COUNT_ON_ROW => 'valeur insérée trop grande pour colonne', DB_ERROR_INVALID_DSN => 'DSN invalide', DB_ERROR_CONNECT_FAILED => 'échec à la connexion', 0 => "pas d'erreur", // DB_OK DB_ERROR_NEED_MORE_DATA => 'données fournies insuffisantes', DB_ERROR_EXTENSION_NOT_FOUND=> 'extension non trouvée', DB_ERROR_NOSUCHDB => 'base de données inconnue', DB_ERROR_ACCESS_VIOLATION => 'droits insuffisants' ); ?> --- NEW FILE: adodb-en.inc.php --- <?php $ADODB_LANG_ARRAY = array ( 'LANG' => 'en', DB_ERROR => 'unknown error', DB_ERROR_ALREADY_EXISTS => 'already exists', DB_ERROR_CANNOT_CREATE => 'can not create', DB_ERROR_CANNOT_DELETE => 'can not delete', DB_ERROR_CANNOT_DROP => 'can not drop', DB_ERROR_CONSTRAINT => 'constraint violation', DB_ERROR_DIVZERO => 'division by zero', DB_ERROR_INVALID => 'invalid', DB_ERROR_INVALID_DATE => 'invalid date or time', DB_ERROR_INVALID_NUMBER => 'invalid number', DB_ERROR_MISMATCH => 'mismatch', DB_ERROR_NODBSELECTED => 'no database selected', DB_ERROR_NOSUCHFIELD => 'no such field', DB_ERROR_NOSUCHTABLE => 'no such table', DB_ERROR_NOT_CAPABLE => 'DB backend not capable', DB_ERROR_NOT_FOUND => 'not found', DB_ERROR_NOT_LOCKED => 'not locked', DB_ERROR_SYNTAX => 'syntax error', DB_ERROR_UNSUPPORTED => 'not supported', DB_ERROR_VALUE_COUNT_ON_ROW => 'value count on row', DB_ERROR_INVALID_DSN => 'invalid DSN', DB_ERROR_CONNECT_FAILED => 'connect failed', 0 => 'no error', // DB_OK DB_ERROR_NEED_MORE_DATA => 'insufficient data supplied', DB_ERROR_EXTENSION_NOT_FOUND=> 'extension not found', DB_ERROR_NOSUCHDB => 'no such database', DB_ERROR_ACCESS_VIOLATION => 'insufficient permissions' ); ?> |
From: 360team.ca <gop...@us...> - 2011-04-06 21:52:21
|
Update of /cvsroot/xrms/xrms/include/adodb/cute_icons_for_site In directory vz-cvs-3.sog:/tmp/cvs-serv16355/adodb/cute_icons_for_site Log Message: Directory /cvsroot/xrms/xrms/include/adodb/cute_icons_for_site added to the repository |
From: 360team.ca <gop...@us...> - 2011-04-06 21:52:12
|
Update of /cvsroot/xrms/xrms/include/adodb In directory vz-cvs-3.sog:/tmp/cvs-serv16292/adodb Log Message: Directory /cvsroot/xrms/xrms/include/adodb added to the repository |
From: 360team.ca <gop...@us...> - 2011-04-05 20:09:04
|
Update of /cvsroot/xrms/xrms/plugins/googlemaps In directory vz-cvs-3.sog:/tmp/cvs-serv25959 Modified Files: setup.php Log Message: FIXED Bug Artifact #2973756 Removed charset encoding parameter from the URL to enable users with extended character sets to make GET requests to GoogleMaps. Index: setup.php =================================================================== RCS file: /cvsroot/xrms/xrms/plugins/googlemaps/setup.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** setup.php 11 Mar 2010 02:45:32 -0000 1.5 --- setup.php 5 Apr 2011 20:09:02 -0000 1.6 *************** *** 149,153 **** </script> ! <a target="_blank" href="http://maps.google.com/maps?daddr='. $html_address .'&geocode=&saddr='.$user_html_address.'&f=d&ie=UTF8&z=12&om=1">Show Route</a> <div id="map" style="width: 100%; height: 300px"></div> </form> --- 149,153 ---- </script> ! <a target="_blank" href="http://maps.google.com/maps?daddr='. $html_address .'&geocode=&saddr='.$user_html_address.'&f=d&z=12&om=1">Show Route</a> <div id="map" style="width: 100%; height: 300px"></div> </form> *************** *** 180,183 **** --- 180,186 ---- /* * $Log$ + * Revision 1.6 2011/04/05 20:09:02 gopherit + * FIXED Bug Artifact #2973756 Removed charset encoding parameter from the URL to enable users with extended character sets to make GET requests to GoogleMaps. + * * Revision 1.5 2010/03/11 02:45:32 gopherit * The plugin route URL defaulted to http://maps.google.de/ and German language. Switched it to point to http://maps.google.com/ and removed the language reference to allow Google Maps to self-determine the user's language. |
From: 360team.ca <gop...@us...> - 2011-04-05 19:11:30
|
Update of /cvsroot/xrms/xrms/admin/users In directory vz-cvs-3.sog:/tmp/cvs-serv32672/admin/users Modified Files: some.php Log Message: FIXED Bug Artifact #1119512 If $xrms_use_ldap is set to TRUE in vars.php, it is now possible to create a user without entering a password for them. Index: some.php =================================================================== RCS file: /cvsroot/xrms/xrms/admin/users/some.php,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** some.php 10 Jun 2008 20:24:17 -0000 1.25 --- some.php 5 Apr 2011 19:11:28 -0000 1.26 *************** *** 161,165 **** <tr> <td class=widget_label_right><?php echo _("Password"); ?></td> ! <td class=widget_content_form_element><input type=password name=password> <?php echo $required_indicator; ?></td> </tr> <tr> --- 161,165 ---- <tr> <td class=widget_label_right><?php echo _("Password"); ?></td> ! <td class=widget_content_form_element><input type=password name=password> <?php if(!$xrms_use_ldap) echo $required_indicator; ?></td> </tr> <tr> *************** *** 206,213 **** --- 206,215 ---- } + <?php if(!$xrms_use_ldap) { ?> if (document.forms[0].password.value == '') { numberOfErrors ++; msgToDisplay += '\n<?php echo addslashes(_("You must enter a password.")); ?>'; } + <?php } ?> if (numberOfErrors > 0) { *************** *** 228,231 **** --- 230,236 ---- /** * $Log$ + * Revision 1.26 2011/04/05 19:11:28 gopherit + * FIXED Bug Artifact #1119512 If $xrms_use_ldap is set to TRUE in vars.php, it is now possible to create a user without entering a password for them. + * * Revision 1.25 2008/06/10 20:24:17 randym56 * - Add ability to deactivate users without setting the 'd'elete flag (set to 'b') so that the records don't get purged. *************** *** 244,248 **** * Revision 1.21 2006/04/11 01:15:31 vanmer * - applied patch to split users tables into Active and Disabled ! * - thanks to Jean-Noël HAYART for the patch * * Revision 1.20 2006/01/02 22:09:39 vanmer --- 249,253 ---- * Revision 1.21 2006/04/11 01:15:31 vanmer * - applied patch to split users tables into Active and Disabled ! * - thanks to Jean-No�l HAYART for the patch * * Revision 1.20 2006/01/02 22:09:39 vanmer |
From: 360team.ca <gop...@us...> - 2011-04-05 18:25:33
|
Update of /cvsroot/xrms/xrms/reports In directory vz-cvs-3.sog:/tmp/cvs-serv12202 Modified Files: companies-duplicates.php Log Message: FIXED Bug Artifact #3276491 Field name spaces in "Possible Dupe Name" caused the error when passed to the GUP_Pager. Fixed mismatched <div> tag. Index: companies-duplicates.php =================================================================== RCS file: /cvsroot/xrms/xrms/reports/companies-duplicates.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** companies-duplicates.php 2 Nov 2006 14:19:25 -0000 1.2 --- companies-duplicates.php 5 Apr 2011 18:25:29 -0000 1.3 *************** *** 80,84 **** $sql = "SELECT CONCAT('<a href=../companies/one.php?company_id=',c1.company_id,'>',c1.company_name,'</a>') as company_name, ! c1.company_code,CONCAT('Possible Dupe with ','<a href=../companies/one.php?company_id=',c2.company_id,'>',c2.company_name,' ',c2.company_code,'</a>') as 'Possible Dupe Name', c1.profile, c1.phone, --- 80,84 ---- $sql = "SELECT CONCAT('<a href=../companies/one.php?company_id=',c1.company_id,'>',c1.company_name,'</a>') as company_name, ! c1.company_code,CONCAT('Possible Dupe with ','<a href=../companies/one.php?company_id=',c2.company_id,'>',c2.company_name,' ',c2.company_code,'</a>') as 'PossibleDupeName', c1.profile, c1.phone, *************** *** 90,113 **** ?> ! <div id="report"><form name="CompanyForm"> ! <? ! //$pager = new ADODB_Pager($con,$sql); ! //$pager->Render(); ! $pager_id='CompanyPager'; ! $form_id='CompanyForm'; ! $columns = array(); ! $columns[] = array('name' => _("Company Name"), 'index_sql' => 'company_name','default_sort' => 'asc'); ! $columns[] = array('name' => _("Possible Dupe Name"), 'index_sql' => 'Possible Dupe Name'); ! $columns[] = array('name' => _("Company Code"), 'index_sql' => 'company_code'); ! $columns[] = array('name' => _("Profile"), 'index_sql' => 'profile'); ! $columns[] = array('name' => _("Phone"), 'index_sql' => 'phone'); ! $columns[] = array('name' => _("URL"), 'index_sql' => 'url', 'type' => 'html'); ! $columns[] = array('name' => _("Entered at"), 'index_sql' => 'entered_at'); ! $pager2 = new GUP_Pager($con, $sql, null, _('Duplicate Search Results'), $form_id, $pager_id, $columns); ! $pager2->Render(100); ! ?> ! </form> <? end_page(); --- 90,116 ---- ?> ! <p> </p> ! <div id="report"> ! <form name="CompanyForm" method="POST" action="companies-duplicates.php"> ! <? ! //$pager = new ADODB_Pager($con,$sql); ! //$pager->Render(); ! $pager_id='CompanyPager'; ! $form_id='CompanyForm'; ! $columns = array(); ! $columns[] = array('name' => _("Company Name"), 'index_sql' => 'company_name','default_sort' => 'asc'); ! $columns[] = array('name' => _("Possible Dupe Name"), 'index_sql' => 'PossibleDupeName'); ! $columns[] = array('name' => _("Company Code"), 'index_sql' => 'company_code'); ! $columns[] = array('name' => _("Profile"), 'index_sql' => 'profile'); ! $columns[] = array('name' => _("Phone"), 'index_sql' => 'phone'); ! $columns[] = array('name' => _("URL"), 'index_sql' => 'url', 'type' => 'html'); ! $columns[] = array('name' => _("Entered at"), 'index_sql' => 'entered_at'); ! $pager2 = new GUP_Pager($con, $sql, null, _('Duplicate Companies Search Results'), $form_id, $pager_id, $columns); ! $pager2->Render(100); ! ?> ! </form> ! </div> <? end_page(); *************** *** 116,119 **** --- 119,126 ---- /** * $Log$ + * Revision 1.3 2011/04/05 18:25:29 gopherit + * FIXED Bug Artifact #3276491 Field name spaces in "Possible Dupe Name" caused the error when passed to the GUP_Pager. + * Fixed mismatched <div> tag. + * * Revision 1.2 2006/11/02 14:19:25 niclowe * initial upload of de-dupe reports |
From: 360team.ca <gop...@us...> - 2011-04-05 18:11:00
|
Update of /cvsroot/xrms/xrms/reports In directory vz-cvs-3.sog:/tmp/cvs-serv7363 Modified Files: stale-crm-status.php Log Message: FIXED Bug Artifact #1585360 There were multiple issues with the way the CompanyPager was instantiated and sortable URL are generated. FIXED Bug Artifact # 3276472 The End time input of the stale companies is now factored in in the search SQL. Index: stale-crm-status.php =================================================================== RCS file: /cvsroot/xrms/xrms/reports/stale-crm-status.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** stale-crm-status.php 17 Sep 2007 14:34:49 -0000 1.4 --- stale-crm-status.php 5 Apr 2011 18:10:58 -0000 1.5 *************** *** 17,38 **** require_once($include_directory . 'classes/Pager/Pager_Columns.php'); - $form_name="Stale Crm Status"; $session_user_id = session_check(); $msg = $_GET['msg']; ! $starting = $_GET['starting']; ! $ending = $_GET['ending']; ! $user_id = $_GET['user_id']; ! $type = $_GET['type']; ! $friendly = $_GET['friendly']; ! $send_email = $_GET['send_email']; ! $send_email_to = $_GET['send_email_to']; ! $all_users = $_GET['all_users']; ! $display = $_GET['display']; ! ! $use_hr = 1; // comment this out to remove <hr>'s from between lines ! $say_no_when_none = 1; // display "NO (CASES|ACTIVITIES|CAMPAIGNS|OPPORTUNITES} for First_Names Last_Name" $userArray = array(); ! $starting=date("Y-m-d H:i:s"); if (!$starting) { $starting = "1970-01-01"; --- 17,35 ---- require_once($include_directory . 'classes/Pager/Pager_Columns.php'); $session_user_id = session_check(); $msg = $_GET['msg']; ! $starting = $_POST['starting']; ! $ending = $_POST['ending']; ! $user_id = (int)$_POST['user_id']; ! $crm_status_id = (int)$_POST['crm_status_id']; ! $type = $_POST['type']; ! $friendly = $_POST['friendly']; ! $send_email = $_POST['send_email']; ! $send_email_to = $_POST['send_email_to']; ! $all_users = $_POST['all_users']; ! $display = $_POST['display']; $userArray = array(); ! if (!$starting) { $starting = "1970-01-01"; *************** *** 53,200 **** } ! $page_title = "Stale Companies"; ! if (($display) || (!$friendly)) { ! start_page($page_title, true, $msg); ! } ! ! $con = &adonewconnection($xrms_db_dbtype); ! $con->connect($xrms_db_server, $xrms_db_username, $xrms_db_password, $xrms_db_dbname); //$con->debug = 1; ! $sql = "select username, user_id from users where user_record_status = 'a' order by username"; $rst = $con->execute($sql); ! $user_menu = $rst->getmenu2('user_id', '', false); $user_starting = $rst->usertimestamp( date("Y-m-d H:i:s", strtotime($starting))); $user_ending = $rst->usertimestamp( date("Y-m-d H:i:s", strtotime($ending))); $rst->close(); ! $sql = "select crm_status_short_name, crm_status_id from crm_statuses where crm_status_record_status = 'a' order by crm_status_short_name"; $rst = $con->execute($sql); ! $crm_status_menu = $rst->getmenu2('crm_status_id', '', false); $rst->close(); ! ?> ! ! <?php if (($display) || (!$friendly)) { ! echo " ! <p> </p> ! <table> ! <form action=stale-crm-status.php method=get> ! <input type=hidden name=display value=y> ! <tr> ! <th align=left>Start</th> ! <th align=left>End</th> ! <th align=left>User</th> ! <th align=left>Crm Status</th> ! <th align=left></th> ! </tr> ! <tr> ! <td><input type=text name=starting value=\"" . $starting . "\"></td> ! <td><input type=text name=ending value=\"" . $ending . "\"></td> ! <td>" . $user_menu . "</td> ! <td>" . $crm_status_menu . "</td> ! <td> ! <input class=button type=submit value=Go> ! </td> ! </tr> ! <tr> ! <td align=right> ! <td> ! <input name=all_users type=checkbox "; ! if ($all_users) { ! echo "checked"; ! } ! echo ">All Users ! </td> ! </td> ! </tr> ! </table> ! <p> </p> ! "; ! } ! ?> ! <?php ! if (($user_id) && (!$all_users)) { ! $userArray = array($user_id); ! } ! if ($all_users) { ! $sql = "select user_id from users"; ! $rst = $con->execute($sql); ! while (!$rst->EOF) { ! array_push($userArray, $rst->fields['user_id']); ! $rst->movenext(); ! } ! $rst->close(); } ! if ($userArray) { ! $crm_status_id=$_REQUEST['crm_status_id']; ! $userlist="("; ! $i=0; ! $num_users=count($userArray); ! if($num_users==1){ ! $userlist.=$userArray[0].")"; ! }else{ ! $i=1; ! foreach ($userArray as $key => $user_id) { ! if($i<>$num_users)$userlist.=$user_id.","; ! if($i==$num_users)$userlist.=$user_id.")"; ! $i++; ! } ! } ! $sql="select CONCAT('<a href=../companies/one.php?company_id=',c.company_id, '>', c.company_name,'</a>') as company_name, ! MAX(a.last_modified_at) as last_modified_at ! FROM companies c LEFT JOIN activities a ON a.company_id=c.company_id ! WHERE ! c.crm_status_id='".$crm_status_id."' ! AND ! c.user_id IN $userlist ! AND ! c.company_record_status='a' ! AND ! ( ! (a.activity_record_status='a' ! ) ! OR ! ISNULL(a.last_modified_at) ! ) ! group by c.company_name ! HAVING ! MAX(a.last_modified_at)<".$con->qstr($user_ending, get_magic_quotes_gpc()).""; ! ! $columns = array(); ! $columns[] = array('name' => 'Company', 'index_sql' => 'company_name'); ! $columns[] = array('name' => 'Last Activity Date', 'index_sql' => 'last_modified_at'); ! ! $default_columns=array('Company','Last Activity Date'); ! $pager_columns = new Pager_Columns('StaleCompaniesColumns', $columns, $default_columns, $form_name); ! $pager_columns_button = $pager_columns->GetSelectableColumnsButton(); ! $pager_columns_selects = $pager_columns->GetSelectableColumnsWidget(); ! $pager = new GUP_Pager($con, $sql,false, _("Stale Companies"), $form_name, 'StaleCompaniesColumns', $columns); ! $pager->Render(500);//having difficulty with pager next buttons..did not have time to debug fully. ! } ! $con->close(); if (($display) || (!$friendly)) { ! end_page(); } /** * $Log$ * Revision 1.4 2007/09/17 14:34:49 myelocyte * - fixed bug: "[ 1737224 ] Table opportunity_types in Closed Items Report" --- 50,189 ---- } ! $con = get_xrms_dbconnection(); //$con->debug = 1; ! $sql = "SELECT username, user_id ! FROM users ! WHERE user_record_status = 'a' ! ORDER BY username"; $rst = $con->execute($sql); ! $user_menu = $rst->getmenu2('user_id', $user_id, false); ! $user_starting = $rst->usertimestamp( date("Y-m-d H:i:s", strtotime($starting))); $user_ending = $rst->usertimestamp( date("Y-m-d H:i:s", strtotime($ending))); $rst->close(); ! $sql = "SELECT crm_status_short_name, crm_status_id ! FROM crm_statuses ! WHERE crm_status_record_status = 'a' ! ORDER BY crm_status_short_name"; $rst = $con->execute($sql); ! $crm_status_menu = $rst->getmenu2('crm_status_id', $crm_status_id, false); $rst->close(); ! $page_title = "Stale Companies"; if (($display) || (!$friendly)) { ! start_page($page_title, true, $msg); ! ?> ! <p> </p> ! <form action="stale-crm-status.php" method="POST" name="CompanyForm"> ! <input type=hidden name=display value=y> ! <table> ! <tr> ! <th align=left>Start</th> ! <th align=left>End</th> ! <th align=left>Crm Status</th> ! <th align=left>User</th> ! <th align=left></th> ! </tr> ! <tr> ! <td><input type=text name=starting value="<?php echo $starting; ?>"></td> ! <td><input type=text name=ending value="<?php echo $ending; ?>"></td> ! <td><?php echo $crm_status_menu; ?></td> ! <td> ! <?php echo $user_menu; ?> ! <input name=all_users type=checkbox <?php if ($all_users) echo '"checked"'; ?>>All Users ! </td> ! <td> ! <input class=button type=submit value=Go> ! </td> ! </tr> ! </table> ! <p> </p> ! <?php } + if (($user_id) && (!$all_users)) { + $userArray = array($user_id); + } ! if ($all_users) { ! $sql = "SELECT user_id ! FROM users"; ! $rst = $con->execute($sql); ! while (!$rst->EOF) { ! array_push($userArray, $rst->fields['user_id']); ! $rst->movenext(); ! } ! $rst->close(); ! } ! if ($userArray) { ! $crm_status_id=(int)$_REQUEST['crm_status_id']; ! $userlist="("; ! $i=0; ! $num_users=count($userArray); ! if($num_users==1){ ! $userlist.=$userArray[0].")"; ! } else { ! $i=1; ! foreach ($userArray as $key => $user_id) { ! if($i<>$num_users)$userlist.=$user_id.","; ! if($i==$num_users)$userlist.=$user_id.")"; ! $i++; ! } ! } ! $sql = 'SELECT '. $con->Concat("'<a id=\"'" , 'c.company_name', "'\" href=\"one.php?company_id='", 'c.company_id', "'\">'", 'c.company_name', "'</a>'"). " AS company_url, ! MAX(a.last_modified_at) as last_modified_at ! FROM companies c ! LEFT JOIN activities a ! ON a.company_id=c.company_id ! WHERE c.crm_status_id=$crm_status_id ! AND c.user_id IN $userlist ! AND c.company_record_status='a' ! AND ( (a.activity_record_status='a') ! OR ISNULL(a.last_modified_at) ) ! GROUP BY c.company_name ! HAVING MAX(a.last_modified_at)<". $con->qstr($user_ending, get_magic_quotes_gpc()) ." ! AND MAX(a.last_modified_at)>". $con->qstr($user_starting, get_magic_quotes_gpc()); ! $pager_id='CompanyPager'; ! $form_id='CompanyForm'; + $columns = array(); + $columns[] = array('name' => 'Company', 'index_sql' => 'company_url'); + $columns[] = array('name' => 'Last Activity Date', 'index_sql' => 'last_modified_at'); + $default_columns=array('company_url','last_modified_at'); ! $pager_columns = new Pager_Columns($pager_id, $columns, $default_columns, $form_id); ! $pager_columns_button = $pager_columns->GetSelectableColumnsButton(); ! $pager_columns_selects = $pager_columns->GetSelectableColumnsWidget(); ! $pager = new GUP_Pager($con, $sql, NULL, _("Stale Companies"), $form_id, $pager_id, $columns); ! $pager->Render($system_rows_per_page);//having difficulty with pager next buttons..did not have time to debug fully. + } + $con->close(); + ?> + </form> ! <?php if (($display) || (!$friendly)) { ! end_page(); } /** * $Log$ + * Revision 1.5 2011/04/05 18:10:58 gopherit + * FIXED Bug Artifact #1585360 There were multiple issues with the way the CompanyPager was instantiated and sortable URL are generated. + * FIXED Bug Artifact # 3276472 The End time input of the stale companies is now factored in in the search SQL. + * * Revision 1.4 2007/09/17 14:34:49 myelocyte * - fixed bug: "[ 1737224 ] Table opportunity_types in Closed Items Report" |
From: 360team.ca <gop...@us...> - 2011-03-31 21:30:15
|
Update of /cvsroot/xrms/xrms/include/classes/Pager In directory vz-cvs-3.sog:/tmp/cvs-serv24187 Modified Files: Pager_Renderer.php Log Message: FIXED Bug Artifact #1585455 the Pager_Renderer now always displays the number of record search results. Index: Pager_Renderer.php =================================================================== RCS file: /cvsroot/xrms/xrms/include/classes/Pager/Pager_Renderer.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Pager_Renderer.php 17 May 2008 16:44:05 -0000 1.4 --- Pager_Renderer.php 31 Mar 2011 21:30:12 -0000 1.5 *************** *** 75,82 **** if($render_data['show_caption_bar']) { echo " <tr><td colspan={$render_data['colspan']} class=widget_header align=left> <table width=\"100%\" cellspacing=0 cellpadding=0 border=0> ! <tr><td class=widget_header align=left>{$render_data['caption']}</td> <td class=widget_header align=right>{$render_data['showhide_link']}{$render_data['cache_indicator']}{$render_data['size_buttons']}</td> </tr> --- 75,83 ---- if($render_data['show_caption_bar']) { + $record_count = (int)$render_data['record_count']; echo " <tr><td colspan={$render_data['colspan']} class=widget_header align=left> <table width=\"100%\" cellspacing=0 cellpadding=0 border=0> ! <tr><td class=widget_header align=left>$record_count {$render_data['caption']}</td> <td class=widget_header align=right>{$render_data['showhide_link']}{$render_data['cache_indicator']}{$render_data['size_buttons']}</td> </tr> *************** *** 96,106 **** $page_count_html = _("Page") . ' ' . $render_data['current_page'] . "/" . $render_data['last_page']; ! if($render_data['record_count'] > -1) { ! $page_count_html .= ' (' . $render_data['record_count'] . ' '. _("records found") . ')'; ! } echo "<tr><td colspan={$render_data['colspan']} class=widget_label>". "<table border=0 cellpadding=0 cellspacing=0 width=\"100%\">". ! "<tr><td class=widget_label style=\"text-align: left;\">{$page_count_html} </td><td style=\"text-align: right;\" class=widget_label>{$render_data['page_nav']}</td></tr>". "</table>". "</td></tr>\n"; --- 97,107 ---- $page_count_html = _("Page") . ' ' . $render_data['current_page'] . "/" . $render_data['last_page']; ! // if($render_data['record_count'] > -1) { ! // $page_count_html .= ' (' . $render_data['record_count'] . ' '. _("records found") . ')'; ! // } echo "<tr><td colspan={$render_data['colspan']} class=widget_label>". "<table border=0 cellpadding=0 cellspacing=0 width=\"100%\">". ! "<tr><td class=widget_label style=\"text-align: left;\">{$page_count_html}</td><td style=\"text-align: right;\" class=widget_label>{$render_data['page_nav']}</td></tr>". "</table>". "</td></tr>\n"; *************** *** 278,281 **** --- 279,285 ---- /** * $Log$ + * Revision 1.5 2011/03/31 21:30:12 gopherit + * FIXED Bug Artifact #1585455 the Pager_Renderer now always displays the number of record search results. + * * Revision 1.4 2008/05/17 16:44:05 randym56 * Bug in total/subtotal fixed |
From: 360team.ca <gop...@us...> - 2011-03-31 18:22:59
|
Update of /cvsroot/xrms/xrms/contacts In directory vz-cvs-3.sog:/tmp/cvs-serv28483 Modified Files: vcard.php Log Message: FIXED Bug Artifact #999518 Removed empty fields from the VCard output. Index: vcard.php =================================================================== RCS file: /cvsroot/xrms/xrms/contacts/vcard.php,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** vcard.php 26 May 2006 19:38:02 -0000 1.11 --- vcard.php 31 Mar 2011 18:22:57 -0000 1.12 *************** *** 65,81 **** $con->close(); ! $vcard = "BEGIN:VCARD ! VERSION:2.1 ! N:".$last_name.";".$first_names." ! FN:".$first_names." ".$last_name." ! TITLE:".$title." ! ORG:".$company_name." ! ADR;WORK:;;".$line1." - ".$line2.";".$city.";".$province.";".$postal_code.";".$country." ! TEL;WORK;VOICE:".$work_phone." ! TEL;FAX:".$fax." ! EMAIL:".$email." ! TEL;CELL:".$cell_phone." ! REV:20031119T213210Z ! END:VCARD"; $filesize = strlen($vcard); --- 65,111 ---- $con->close(); ! // Construct the VCard output ! $vcard = "BEGIN:VCARD\n"; ! $vcard .= "VERSION:2.1\n"; ! ! // Add the names ! if ($first_names OR $last_name) { ! $vcard .= "N:$last_name;$first_names\n"; ! $vcard .= "FN:$first_names $last_name\n"; ! } ! ! // Add the title ! if ($title) ! $vcard .= "TITLE:$title\n"; ! ! // Add the company name ! if ($company_name) ! $vcard .= "ORG:$company_name\n"; ! ! // Add the address ! $tmp = 'ADR;WORK:;;'; ! if ($line1) ! $tmp .= $line1; ! if ($line1 AND $line2) ! $tmp .= ' - '; ! if ($line2) ! $tmp .= $line2; ! if ($city OR $province OR $postal_code OR $country) ! $tmp .=";".$city.";".$province.";".$postal_code.";".$country; ! $vcard .= "$tmp\n"; ! ! // Add the phone numbers and email ! if ($work_phone) ! $vcard .= "TEL;WORK;VOICE:".$work_phone."\n"; ! if ($fax) ! $vcard .= "TEL;FAX:".$fax."\n"; ! if ($email) ! $vcard .= "EMAIL:".$email."\n"; ! if (cell_phone) ! $vcard .= "TEL;CELL:".$cell_phone."\n"; ! ! // Add the VCard end tags ! $vcard .= "REV:20031119T213210Z\n"; ! $vcard .= "END:VCARD"; $filesize = strlen($vcard); *************** *** 89,92 **** --- 119,125 ---- /** * $Log$ + * Revision 1.12 2011/03/31 18:22:57 gopherit + * FIXED Bug Artifact #999518 Removed empty fields from the VCard output. + * * Revision 1.11 2006/05/26 19:38:02 ongardie * - Added provinces to vcard output. |
From: 360team.ca <gop...@us...> - 2011-03-31 17:19:46
|
Update of /cvsroot/xrms/xrms/reports In directory vz-cvs-3.sog:/tmp/cvs-serv20020 Modified Files: opportunities-size-by-industry.php Log Message: FIXED Bug Artifact #3264748 The graph now stacks the weighted and total opportunity sizes. Index: opportunities-size-by-industry.php =================================================================== RCS file: /cvsroot/xrms/xrms/reports/opportunities-size-by-industry.php,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** opportunities-size-by-industry.php 2 Jan 2006 23:46:52 -0000 1.11 --- opportunities-size-by-industry.php 31 Mar 2011 17:19:44 -0000 1.12 *************** *** 68,72 **** while (!$rst1->EOF) { ! $sql2 = "select sum(size*probability)/100 as total, sum(size) - sum(size*probability)/100 as weighted_total from opportunities, companies where opportunities.company_id = companies.company_id --- 68,72 ---- while (!$rst1->EOF) { ! $sql2 = "select sum(size) - sum(size*probability)/100 as total, sum(size*probability)/100 as weighted_total from opportunities, companies where opportunities.company_id = companies.company_id *************** *** 94,98 **** array_push($array_of_total_weighted_values, $weighted_total); array_push($graph_legend_array, $rst1->fields['industry_pretty_name']); ! array_push($graph_url_array, $http_site_root . '/opportunities/some.php?industry_id=' . $rst1->fields['industry_id']); $rst1->movenext(); --- 94,98 ---- array_push($array_of_total_weighted_values, $weighted_total); array_push($graph_legend_array, $rst1->fields['industry_pretty_name']); ! array_push($graph_url_array, $http_site_root . '/opportunities/some.php?industry_id=' . $rst1->fields['industry_id']); $rst1->movenext(); *************** *** 105,111 **** $graph_info = array(); $graph_info['size_class'] = 'main'; ! $graph_info['graph_type'] = 'grouped_bar'; ! $graph_info['data'] = array($array_of_total_values, $array_of_total_weighted_values); ! $graph_info['legend'] = array('Total', 'Weighted'); $graph_info['x_labels'] = $graph_legend_array; $graph_info['xaxis_label_angle'] = 30; --- 105,111 ---- $graph_info = array(); $graph_info['size_class'] = 'main'; ! $graph_info['graph_type'] = 'accumulated_bar'; ! $graph_info['data'] = array($array_of_total_weighted_values, $array_of_total_values); ! $graph_info['legend'] = array('Weighted', 'Total'); $graph_info['x_labels'] = $graph_legend_array; $graph_info['xaxis_label_angle'] = 30; *************** *** 127,130 **** --- 127,133 ---- /** * $Log$ + * Revision 1.12 2011/03/31 17:19:44 gopherit + * FIXED Bug Artifact #3264748 The graph now stacks the weighted and total opportunity sizes. + * * Revision 1.11 2006/01/02 23:46:52 vanmer * - changed to use centralized dbconnection function |
From: 360team.ca <gop...@us...> - 2011-03-31 17:15:46
|
Update of /cvsroot/xrms/xrms/reports In directory vz-cvs-3.sog:/tmp/cvs-serv18426 Modified Files: opportunities-size-by-opportunity-status.php Log Message: FIXED Bug Artifact #1208066 The graph now stacks the weighted and total opportunity sizes. Index: opportunities-size-by-opportunity-status.php =================================================================== RCS file: /cvsroot/xrms/xrms/reports/opportunities-size-by-opportunity-status.php,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** opportunities-size-by-opportunity-status.php 2 Jan 2006 23:46:52 -0000 1.14 --- opportunities-size-by-opportunity-status.php 31 Mar 2011 17:15:44 -0000 1.15 *************** *** 113,117 **** $opportunity_status_count = $rst1->recordcount(); $graph_legend_array = array(); ! $graph_url_array = array(); $array_of_total_values = array(); $array_of_total_weighted_values = array(); --- 113,117 ---- $opportunity_status_count = $rst1->recordcount(); $graph_legend_array = array(); ! $graph_url_array = array(); $array_of_total_values = array(); $array_of_total_weighted_values = array(); *************** *** 126,130 **** while (!$rst1->EOF) { ! $sql2 = "select sum(size*probability)/100 as total, sum(size) - sum(size*probability)/100 as weighted_total from opportunities where opportunity_status_id = " . $rst1->fields['opportunity_status_id'] . " --- 126,130 ---- while (!$rst1->EOF) { ! $sql2 = "select sum(size) - sum(size*probability)/100 as total, sum(size*probability)/100 as weighted_total from opportunities where opportunity_status_id = " . $rst1->fields['opportunity_status_id'] . " *************** *** 156,160 **** array_push($array_of_total_values, $total); array_push($array_of_total_weighted_values, $weighted_total); ! array_push($graph_url_array, $http_site_root . '/opportunities/some.php?opportunities_opportunity_status_id=' . $rst1->fields['opportunity_status_id']); array_push($graph_legend_array, $rst1->fields['opportunity_status_pretty_plural']); // calcul de la chaine la plus longue --- 156,160 ---- array_push($array_of_total_values, $total); array_push($array_of_total_weighted_values, $weighted_total); ! array_push($graph_url_array, $http_site_root . '/opportunities/some.php?opportunities_opportunity_status_id=' . $rst1->fields['opportunity_status_id']); array_push($graph_legend_array, $rst1->fields['opportunity_status_pretty_plural']); // calcul de la chaine la plus longue *************** *** 199,205 **** $graph_info = array(); $graph_info['size_class'] = 'main'; ! $graph_info['graph_type'] = 'grouped_bar'; $graph_info['data'] = array($array_of_total_weighted_values, $array_of_total_values); ! $graph_info['legend'] = array('Total', 'Weighted'); $graph_info['x_labels'] = $graph_legend_array; $graph_info['xaxis_label_angle'] = 30; --- 199,205 ---- $graph_info = array(); $graph_info['size_class'] = 'main'; ! $graph_info['graph_type'] = 'accumulated_bar'; $graph_info['data'] = array($array_of_total_weighted_values, $array_of_total_values); ! $graph_info['legend'] = array('Weighted', 'Total'); $graph_info['x_labels'] = $graph_legend_array; $graph_info['xaxis_label_angle'] = 30; *************** *** 221,224 **** --- 221,227 ---- /** * $Log$ + * Revision 1.15 2011/03/31 17:15:44 gopherit + * FIXED Bug Artifact #1208066 The graph now stacks the weighted and total opportunity sizes. + * * Revision 1.14 2006/01/02 23:46:52 vanmer * - changed to use centralized dbconnection function |
From: 360team.ca <gop...@us...> - 2011-03-31 15:49:26
|
Update of /cvsroot/xrms/xrms/activities In directory vz-cvs-3.sog:/tmp/cvs-serv7277 Modified Files: edit-2.php save&followup.php Log Message: FIXED Bug Artifact #1247301 Passed the charset to the SMTPs class when emailing activities. Index: save&followup.php =================================================================== RCS file: /cvsroot/xrms/xrms/activities/save&followup.php,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** save&followup.php 15 Dec 2010 17:18:33 -0000 1.8 --- save&followup.php 31 Mar 2011 15:49:24 -0000 1.9 *************** *** 477,482 **** $tmp['subject'] = _("Updated Activity") . ": " . $activity_title; $tmp['body_html'] = $output; ! $activity_mailer = do_hook_function('activity_mailer', $tmp); if (!$activity_mailer) { --- 477,483 ---- $tmp['subject'] = _("Updated Activity") . ": " . $activity_title; $tmp['body_html'] = $output; ! $tmp['charset'] = $default_charset; $activity_mailer = do_hook_function('activity_mailer', $tmp); + if (!$activity_mailer) { *************** *** 489,492 **** --- 490,494 ---- $objSMTP->setTo ( $email_to ); $objSMTP->setBodyContent ( $output, 'html'); + $objSMTP->setCharSet($default_charset); $objSMTP->sendMsg (); *************** *** 582,585 **** --- 584,590 ---- /** * $Log$ + * Revision 1.9 2011/03/31 15:49:24 gopherit + * FIXED Bug Artifact #1247301 Passed the charset to the SMTPs class when emailing activities. + * * Revision 1.8 2010/12/15 17:18:33 gopherit * Added CVS log tags. Index: edit-2.php =================================================================== RCS file: /cvsroot/xrms/xrms/activities/edit-2.php,v retrieving revision 1.91 retrieving revision 1.92 diff -C2 -d -r1.91 -r1.92 *** edit-2.php 5 May 2010 18:28:51 -0000 1.91 --- edit-2.php 31 Mar 2011 15:49:24 -0000 1.92 *************** *** 378,381 **** --- 378,382 ---- $objSMTP->setTo ( $email_to ); $objSMTP->setBodyContent ( $output, 'html'); + $objSMTP->setCharSet($default_charset); $objSMTP->sendMsg (); *************** *** 419,422 **** --- 420,426 ---- /** * $Log$ + * Revision 1.92 2011/03/31 15:49:24 gopherit + * FIXED Bug Artifact #1247301 Passed the charset to the SMTPs class when emailing activities. + * * Revision 1.91 2010/05/05 18:28:51 gopherit * Fixed: Wrong "last modified" Date, bug item #2974290. Last modified date was not storing properly in the database when a 12-hour (am/pm) clock was used. Fiix provided by hel...@so... |
From: 360team.ca <gop...@us...> - 2011-03-31 14:48:17
|
Update of /cvsroot/xrms/xrms/admin/users In directory vz-cvs-3.sog:/tmp/cvs-serv31843 Modified Files: change-password-2.php Log Message: FIXED Bug Artifact #3264216 Fixed inaccurate URL construction in /admin/users/change-password-2.php Index: change-password-2.php =================================================================== RCS file: /cvsroot/xrms/xrms/admin/users/change-password-2.php,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** change-password-2.php 25 Nov 2006 15:48:34 -0000 1.14 --- change-password-2.php 31 Mar 2011 14:48:15 -0000 1.15 *************** *** 58,62 **** $msg = urlencode(_("There was a problem with the user ID.(Or not new password). Password not Changed.")); ! header("Location: change-password.php?msg=$msg"); } } else { // no result set on finding the user --- 58,62 ---- $msg = urlencode(_("There was a problem with the user ID.(Or not new password). Password not Changed.")); ! header("Location: change-password.php?edit_user_id=$edit_user_id&msg=$msg"); } } else { // no result set on finding the user *************** *** 67,75 **** } else { ! header("Location: change-password.php?msg=password_no_match"); } /** *$Log$ *Revision 1.14 2006/11/25 15:48:34 jnhayart *change comment, where new password same of old one --- 67,78 ---- } else { ! header("Location: change-password.php?edit_user_id=$edit_user_id&msg=password_no_match"); } /** *$Log$ + *Revision 1.15 2011/03/31 14:48:15 gopherit + *FIXED Bug Artifact #3264216 Fixed inaccurate URL construction in /admin/users/change-password-2.php + * *Revision 1.14 2006/11/25 15:48:34 jnhayart *change comment, where new password same of old one |
From: 360team.ca <gop...@us...> - 2011-03-29 22:11:16
|
Update of /cvsroot/xrms/xrms/install In directory vz-cvs-3.sog:/tmp/cvs-serv32634 Modified Files: install.php Log Message: FIXED Bug Artifact #1484218 /install/install.php now aborts on problems with the database tables creation and initial data population. Index: install.php =================================================================== RCS file: /cvsroot/xrms/xrms/install/install.php,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** install.php 7 Apr 2009 07:28:29 -0000 1.24 --- install.php 29 Mar 2011 22:11:14 -0000 1.25 *************** *** 295,299 **** foreach ($structure_sql as $sql) { $rst=$con->execute($sql); ! if (!$rst) db_error_handler($con, $sql); } --- 295,302 ---- foreach ($structure_sql as $sql) { $rst=$con->execute($sql); ! if (!$rst) { ! db_error_handler($con, $sql); ! $error = TRUE; ! } } *************** *** 302,306 **** foreach ($data_sql as $sql) { $rst=$con->execute($sql); ! if (!$rst) db_error_handler($con, $sql); } } --- 305,312 ---- foreach ($data_sql as $sql) { $rst=$con->execute($sql); ! if (!$rst) { ! db_error_handler($con, $sql); ! $error = TRUE; ! } } } *************** *** 312,315 **** --- 318,327 ---- $con->close(); + if ($error) { + $problem = '<p>There were problems with the database installation.</p> + <p>You can run the installation again after the error(s) listed above have been corrected.</p>'; + install_fatal_error($problem); + } + // get message $msg = isset($_GET['msg']) ? $_GET['msg'] : ''; *************** *** 337,340 **** --- 349,355 ---- /** *$Log$ + *Revision 1.25 2011/03/29 22:11:14 gopherit + *FIXED Bug Artifact #1484218 /install/install.php now aborts on problems with the database tables creation and initial data population. + * *Revision 1.24 2009/04/07 07:28:29 gopherit *Test on line 241 was giving a false negative since get_xrms_dbconnection() returns an ADOdb object and is never null. Modified to check for an actual ADOdb error message instead. *************** *** 426,428 **** * */ ! ?> --- 441,443 ---- * */ ! ?> \ No newline at end of file |
From: 360team.ca <gop...@us...> - 2011-03-29 21:11:17
|
Update of /cvsroot/xrms/xrms/admin/acl In directory vz-cvs-3.sog:/tmp/cvs-serv25826 Modified Files: role_permission_grid.php Log Message: FIXED Bug Artifact #3258416 The grid relationship labels in the left column now show the relationship accurately as "Parent -> Child" Index: role_permission_grid.php =================================================================== RCS file: /cvsroot/xrms/xrms/admin/acl/role_permission_grid.php,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** role_permission_grid.php 2 Aug 2006 20:52:40 -0000 1.13 --- role_permission_grid.php 29 Mar 2011 21:11:15 -0000 1.14 *************** *** 136,144 **** echo "<li>" . _("N - Permission is Non-Inheritable") . '<br>'; echo "<li>" . _("empty - No Permission assigned") . '<br></ul>'; ! echo "<table class=widget><tr><th> </th>\n"; foreach ($scopes as $scope) { echo "<th colspan=$permcount>$scope</th>"; } ! echo "</tr><tr><th> </th>"; foreach ($scopes as $scope) { --- 136,145 ---- echo "<li>" . _("N - Permission is Non-Inheritable") . '<br>'; echo "<li>" . _("empty - No Permission assigned") . '<br></ul>'; ! echo '<table class=widget><tr><tr><th rowspan="2" style="text-align: right; vertical-align: middle;">' ! . _('Parent') .' -> ' ._('Child') .' '._('Relationship')." </th>\n"; foreach ($scopes as $scope) { echo "<th colspan=$permcount>$scope</th>"; } ! echo "</tr><tr>"; foreach ($scopes as $scope) { *************** *** 152,158 **** if ($rel['ParentControlledObject_id']) { $parentObject=$acl->get_controlled_object(false,$rel['ParentControlledObject_id']); ! $parent_name=" -> {$parentObject['ControlledObject_name']}"; } else $parent_name=""; ! echo "<tr><td class=widget_label_right>{$rel['ControlledObject_name']}{$parent_name}</td>"; foreach ($scopes as $scope) { foreach ($permissions as $perm) { --- 153,159 ---- if ($rel['ParentControlledObject_id']) { $parentObject=$acl->get_controlled_object(false,$rel['ParentControlledObject_id']); ! $parent_name="{$parentObject['ControlledObject_name']} -> "; } else $parent_name=""; ! echo "<tr><td class=widget_label_right>{$parent_name}{$rel['ControlledObject_name']}</td>"; foreach ($scopes as $scope) { foreach ($permissions as $perm) { |
From: 360team.ca <gop...@us...> - 2011-03-10 14:58:09
|
Update of /cvsroot/xrms/xrms/rss In directory vz-cvs-3.sog:/tmp/cvs-serv3427 Modified Files: activities.php Log Message: FIXED Bug Artifact #1585901 Added htmlentities() conversion to the company_name and author fields. Also, removed overzealous conversion of the '&' sign in the activity_title and activity_description. Index: activities.php =================================================================== RCS file: /cvsroot/xrms/xrms/rss/activities.php,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** activities.php 5 Apr 2006 01:21:51 -0000 1.8 --- activities.php 10 Mar 2011 14:58:06 -0000 1.9 *************** *** 219,224 **** while (!$rst->EOF) { $activity_id = $rst->fields['activity_id']; ! $activity_title = str_replace("&", "&", htmlentities($rst->fields['activity_title'], ENT_COMPAT, 'UTF-8')); ! $activity_description = str_replace("&", "&", htmlentities($rst->fields['activity_description'], ENT_COMPAT, 'UTF-8')); $activity_status = $rst->fields['activity_status']; $ends_at = $rst->fields['ends_at']; --- 219,224 ---- while (!$rst->EOF) { $activity_id = $rst->fields['activity_id']; ! $activity_title = htmlentities($rst->fields['activity_title'], ENT_COMPAT, 'UTF-8'); ! $activity_description = htmlentities($rst->fields['activity_description'], ENT_COMPAT, 'UTF-8'); $activity_status = $rst->fields['activity_status']; $ends_at = $rst->fields['ends_at']; *************** *** 226,231 **** $last_modified_f = date("r", strtotime($last_modified_at)); $pub_date = date("r", strtotime($last_modified_at)); ! $company_name = $rst->fields['company_name']; ! $author = $rst->fields['author']; $description = "<p><b>$company_name</b></p>" . $activity_description; $items_text .= " <item>\n"; --- 226,231 ---- $last_modified_f = date("r", strtotime($last_modified_at)); $pub_date = date("r", strtotime($last_modified_at)); ! $company_name = htmlentities($rst->fields['company_name'], ENT_COMPAT, 'UTF-8'); ! $author = htmlentities($rst->fields['author'], ENT_COMPAT, 'UTF-8'); $description = "<p><b>$company_name</b></p>" . $activity_description; $items_text .= " <item>\n"; *************** *** 275,278 **** --- 275,282 ---- /** * $Log$ + * Revision 1.9 2011/03/10 14:58:06 gopherit + * FIXED Bug Artifact #1585901 Added htmlentities() conversion to the company_name and author fields. + * Also, removed overzealous conversion of the '&' sign in the activity_title and activity_description. + * * Revision 1.8 2006/04/05 01:21:51 vanmer * - ensure last date is provided to rss stream |
From: 360team.ca <gop...@us...> - 2011-03-09 17:00:47
|
Update of /cvsroot/xrms/xrms/contacts In directory vz-cvs-3.sog:/tmp/cvs-serv17913 Modified Files: transfer-2.php transfer-3.php Log Message: FIXED Bug Artifact #3204309 When a contact is transfered, the user now has two choices: - move all records with the contact to the new company - leave all the records with another contact at the old company. In this case, the activity will now also properly track its additional participants. Index: transfer-3.php =================================================================== RCS file: /cvsroot/xrms/xrms/contacts/transfer-3.php,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** transfer-3.php 17 Aug 2010 18:40:16 -0000 1.8 --- transfer-3.php 9 Mar 2011 17:00:43 -0000 1.9 *************** *** 11,14 **** --- 11,15 ---- require_once($include_directory . 'vars.php'); require_once($include_directory . 'utils-interface.php'); + require_once($include_directory . 'utils-activities.php'); require_once($include_directory . 'utils-misc.php'); require_once($include_directory . 'adodb/adodb.inc.php'); *************** *** 17,70 **** $session_user_id = session_check(); ! $new_company_id = $_POST['company_id']; ! $old_company_id = $_POST['old_company_id']; ! $contact_id = $_POST['contact_id']; ! ! $everywhere = (isset($_POST['everywhere'])) ? TRUE : FALSE; $con = get_xrms_dbconnection(); // $con->debug = 1; // set the business address for this contact to the primary address of the new company. // not perfect, but the user will have a chance to change it from the contacts/one.php page - $new_address_id = 0; - $new_address_id = fetch_default_address($con, $new_company_id); - - $sql = "SELECT * FROM contacts WHERE contact_id = $contact_id"; - $rst = $con->execute($sql); - $rec = array(); $rec['company_id'] = $new_company_id; ! $rec['address_id'] = $new_address_id; ! $upd = $con->GetUpdateSQL($rst, $rec, false, get_magic_quotes_gpc()); ! $con->execute($upd); add_audit_item($con, $session_user_id, 'transferred', 'contacts', $contact_id, 1); add_contact_company_history($con, $contact_id, $old_company_id); ! if($everywhere) { ! $sql = "SELECT * FROM activities WHERE contact_id = $contact_id"; ! $rst = $con->execute($sql); ! $rec = array(); ! $rec['company_id'] = $new_company_id; ! $upd = $con->GetUpdateSQL($rst, $rec, false, get_magic_quotes_gpc()); ! $con->execute($upd); ! $sql = "SELECT * FROM cases WHERE contact_id = $contact_id"; ! $rst = $con->execute($sql); ! $rec = array(); ! $rec['company_id'] = $new_company_id; ! $upd = $con->GetUpdateSQL($rst, $rec, false, get_magic_quotes_gpc()); ! $con->execute($upd); ! $sql = "SELECT * FROM opportunities WHERE contact_id = $contact_id"; ! $rst = $con->execute($sql); - $rec = array(); - $rec['company_id'] = $new_company_id; - $upd = $con->GetUpdateSQL($rst, $rec, false, get_magic_quotes_gpc()); - $con->execute($upd); } --- 18,88 ---- $session_user_id = session_check(); ! $old_company_id = (int)$_POST['old_company_id']; ! $contact_id = (int)$_POST['contact_id']; ! $new_company_id = (int)$_POST['new_company_id']; ! $transfer_mode = $_POST['transfer_mode']; + // Get the database connection $con = get_xrms_dbconnection(); // $con->debug = 1; + // Prepare to transfer all the records of this contact to the new company or to another contact in the old company + switch ($transfer_mode) { + case 'company': // We are transfering the contact and its records to the new company + $update_record_fields = "company_id = $new_company_id"; + break; + case 'contact': // We are transfering the contact to a new company but we are transfering its records to a new contact in the old company + $new_contact_id = (int)$_POST['new_contact_id']; + $update_record_fields = "contact_id = $new_contact_id"; + break; + default: + header("Location: one.php?contact_id=$contact_id&msg=". urlencode(_('ERROR') .': '. _('Cound not transfer contact'))); + exit; + break; + } + // set the business address for this contact to the primary address of the new company. // not perfect, but the user will have a chance to change it from the contacts/one.php page $rec = array(); $rec['company_id'] = $new_company_id; ! $rec['address_id'] = fetch_default_address($con, $new_company_id); ! $con->AutoExecute('contacts', $rec, 'UPDATE', "contact_id = $contact_id"); + // Leave audit trail for the contact transfer add_audit_item($con, $session_user_id, 'transferred', 'contacts', $contact_id, 1); + // Record the transfer in the contact_former_companies table add_contact_company_history($con, $contact_id, $old_company_id); ! // Transfer all the records over ! if($transfer_mode) { ! // If we are transferring the activities to a new contact, we should add the new contact as a participant to all of them ! if($transfer_mode == 'contact') { ! // We'll have to use the API add_activity_participant() method and do this one activity at a time ! // to ensure we don't mess up the activity_participants table ! $sql = "SELECT activity_id ! FROM activities ! WHERE contact_id = $contact_id"; ! $activity_id_arrays = $con->GetAll($sql); ! if (is_array($activity_id_arrays) AND count($activity_id_arrays)) { ! foreach ($activity_id_arrays as $activity_id_array) { ! add_activity_participant($con, $activity_id_array['activity_id'], $new_contact_id); ! } ! } ! } ! // Now proceed to update all the records ! $records_tables = array( 'activities', ! 'cases', ! 'opportunities'); ! foreach ($records_tables as $records_table) { ! $sql = "UPDATE $records_table ! SET $update_record_fields ! WHERE contact_id = $contact_id"; ! $con->Execute($sql); ! } } *************** *** 73,81 **** $con->close(); ! //now go to the Contact Address select page so the user can make address changes ! $final_return_url="one.php?msg=saved&contact_id=$contact_id"; ! $return_url="$http_site_root/companies/addresses.php?company_id=$new_company_id&edit_contact_id=$contact_id&final_return_url=".urlencode($final_return_url); ! header("Location: $return_url"); exit; function add_contact_company_history($con, $contact_id, $company_id) { //save to database --- 91,105 ---- $con->close(); ! $final_return_url="one.php?contact_id=$contact_id&msg=saved"; ! if ($transfer_mode == 'company') { ! // If we have transferred the contact to a new company, let the user make address changes, if necessary ! $return_url="$http_site_root/companies/addresses.php?company_id=$new_company_id&edit_contact_id=$contact_id&final_return_url=".urlencode($final_return_url); ! header("Location: $return_url"); ! } else { ! // Otherwise, send the user back to the contact page ! header("Location: $final_return_url"); ! } exit; + function add_contact_company_history($con, $contact_id, $company_id) { //save to database *************** *** 92,95 **** --- 116,124 ---- /** * $Log$ + * Revision 1.9 2011/03/09 17:00:43 gopherit + * FIXED Bug Artifact #3204309 When a contact is transfered, the user now has two choices: + * - move all records with the contact to the new company + * - leave all the records with another contact at the old company. In this case, the activity will now also properly track its additional participants. + * * Revision 1.8 2010/08/17 18:40:16 gopherit * Minor interface improvements Index: transfer-2.php =================================================================== RCS file: /cvsroot/xrms/xrms/contacts/transfer-2.php,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** transfer-2.php 17 Aug 2010 22:09:04 -0000 1.15 --- transfer-2.php 9 Mar 2011 17:00:43 -0000 1.16 *************** *** 16,21 **** $session_user_id = session_check(); $msg = $_POST['msg']; ! $contact_id = $_POST['contact_id']; ! $company_name = $_POST['company_name']; $con = get_xrms_dbconnection(); --- 16,21 ---- $session_user_id = session_check(); $msg = $_POST['msg']; ! $contact_id = (int)$_POST['contact_id']; ! $new_company_name = $_POST['company_name']; $con = get_xrms_dbconnection(); *************** *** 23,85 **** // This query is done separately in case there is no current address ! $sql = "select * from contacts where contact_id = $contact_id"; $rst = $con->execute($sql); $contact_name = $rst->fields['first_names'] . ' ' . $rst->fields['last_name']; - $company_id = $rst->fields['company_id']; ! if($company_name) { ! $sql = "SELECT company_name, company_id FROM companies ! WHERE company_name LIKE ". $con->qstr(company_search_string($company_name),get_magic_quotes_gpc()) . " AND company_record_status = 'a' ORDER BY company_name"; ! $company_name_rst = $con->execute($sql); } else { ! $sql = "SELECT company_name, company_id FROM companies WHERE company_id = " . $company_id . " AND company_record_status = 'a'"; } ! if($company_name_rst && $company_name_rst->rowcount()) { ! $company_menu = $company_name_rst->getmenu2('company_id', false, false); ! $company_menu .= " <input type=button class=button value='More Info' onclick='document.forms[0].company_id.value=document.forms[1].company_id.options[document.forms[1].company_id.selectedIndex].value; document.forms[0].submit();'>"; ! $company_name_rst->close(); ! $con->close(); } else { ! if (!$company_menu) { ! $company_name=urlencode($company_name); ! Header("Location: transfer.php?company_name=$company_name&contact_id=$contact_id&msg=".urlencode(_("No Companies Found, please try another search"))); ! exit; ! } } ! $page_title = $contact_name . " - " . _("Transfer to Another Company"); start_page($page_title, true, $msg); ?> <div id="Main"> <div id="Content"> - <form action="<?php echo $http_site_root; ?>/companies/one.php" method=get target="_blank"> <input type="hidden" name="company_id"> </form> ! <form action=transfer-3.php method=post> <input type=hidden name=contact_id value=<?php echo $contact_id; ?>> ! <input type=hidden name=old_company_id value=<?php echo $company_id; ?>> <table class=widget cellspacing=1> <tr> ! <td class=widget_header colspan=2><?php echo _("Transfer to Another Company"); ?></td> </tr> <tr> ! <td class=widget_content><?php echo ($company_menu) ? $company_menu : _("No companies found"); ?></td> </tr> <tr> ! <td class=widget_content_form_element colspan=2> ! <?php if($company_menu) { ?> ! <input type="checkbox" name=everywhere /><font color="#FF0000"><strong><?php echo _("Also transfer all records attached to this contact to the new company"); ?></strong></font> ! <input class=button type=submit name=save value="<?php echo _("Save"); ?>"> ! <?php } ?> </td> </tr> </table> </form> --- 23,146 ---- // This query is done separately in case there is no current address ! $sql = "SELECT first_names, ! last_name, ! company_id ! FROM contacts ! WHERE contact_id = $contact_id"; $rst = $con->execute($sql); $contact_name = $rst->fields['first_names'] . ' ' . $rst->fields['last_name']; ! // Fetch the old company_id ! $old_company_id = $rst->fields['company_id']; ! $rst->Close(); ! ! // Fetch a list of the rest of the contacts from the old company ! $sql = 'SELECT '. $con->Concat('first_names',"' '",'last_name') ." AS contact_name, contact_id ! FROM contacts ! WHERE contact_record_status = 'a' ! AND company_id = $old_company_id ! AND contact_id <> $contact_id ! ORDER BY last_name, first_names"; ! $rst = $con->Execute($sql); ! ! if ( $rst AND !$rst->EOF ) { ! $new_contact_menu = $rst->getmenu2('new_contact_id', FALSE, TRUE); } else { ! $new_contact_menu = FALSE; } ! if($new_company_name) { ! $sql = 'SELECT company_name, company_id ! FROM companies ! WHERE ((company_name LIKE '. $con->qstr(company_search_string($new_company_name),get_magic_quotes_gpc()) .') ! OR (company_id = '. $con->qstr($new_company_name) .")) ! AND company_record_status = 'a' ! ORDER BY company_name"; ! $rst = $con->execute($sql); } else { ! Header("Location: transfer.php?contact_id=$contact_id&msg=".urlencode(_("Please enter a company name to search for"))); ! exit; } ! ! if($rst AND !$rst->EOF) { ! $new_company_menu = $rst->getmenu2('new_company_id', false, false); ! $new_company_menu .= ' <input type=button class=button value="More Info" onclick="document.forms[0].company_id.value=document.forms[\'TransferForm\'].company_id.options[document.forms[\'TransferForm\'].company_id.selectedIndex].value; document.forms[0].submit();">'; ! $rst->close(); ! } ! $con->close(); ! ! if (!$new_company_menu) { ! $new_company_name=urlencode($new_company_name); ! Header("Location: transfer.php?company_name=$new_company_name&contact_id=$contact_id&msg=".urlencode(_("No Companies Found, please try another search"))); ! exit; ! } ! ! $page_title = $contact_name . " - " . _("Transfer Contact to Another Company"); start_page($page_title, true, $msg); ?> + <script type="text/javascript"> + function confirmSubmitTransfer() { + if (confirm('<?php echo _('You are about to modify all of the records attached to this contact') .'.\n\n'. _('Do you wish to continue') .'?'; ?>')) { + document.forms['TransferForm'].submit(); + } + } + + function validateTransferForm() { + if (document.forms['TransferForm']['transfer_mode'][0].checked) { + confirmSubmitTransfer(); + } else if (document.forms['TransferForm']['transfer_mode'][1].checked + && document.forms['TransferForm']['new_contact_id'].value > 0) { + confirmSubmitTransfer(); + } else { + alert ('<?php echo _('Please select how you would like the contact records to be handled'); ?>'); + } + } + + </script> + <div id="Main"> <div id="Content"> <form action="<?php echo $http_site_root; ?>/companies/one.php" method=get target="_blank"> <input type="hidden" name="company_id"> </form> ! <form action=transfer-3.php method=post id="TransferForm"> <input type=hidden name=contact_id value=<?php echo $contact_id; ?>> ! <input type=hidden name=old_company_id value=<?php echo $old_company_id; ?>> <table class=widget cellspacing=1> <tr> ! <td class="widget_header" colspan="2"><?php echo _('Transfer') .' '. $contact_name .' '. _('to') .':'; ?></td> </tr> <tr> ! <td class="widget_content" colspan="2"><?php echo ($new_company_menu) ? $new_company_menu : _("No companies found"); ?></td> </tr> <tr> ! <td class="widget_header" colspan="2" style="font-weight: bold; color: red;"> ! <?php echo _('Please select how you want the records attached to') .' '. $contact_name .' '. _('to be handled') .':'; ?> </td> </tr> + <tr> + <td class="widget_content_form_element"> + <input type="radio" name="transfer_mode" value="company"/><?php echo _("Move all records together with the contact to the new company"); ?> + </td> + <td class="widget_content_form_element"<?php if($new_contact_menu) { ?> rowspan="2"<?php } ?>> + <input class=button type="button" name=save value="<?php echo _("Transfer"); ?>" onclick="return validateTransferForm();"> + </td> + </tr> + + <tr> + <?php if($new_contact_menu) { ?> + <td class="widget_content_form_element"> + <input type="radio" name="transfer_mode" value="contact" /><?php echo _("Retain all records in the old company and transfer them to") .':'. $new_contact_menu; ?> + </td> + <?php } ?> + </tr> + </table> </form> *************** *** 101,104 **** --- 162,170 ---- /** * $Log$ + * Revision 1.16 2011/03/09 17:00:43 gopherit + * FIXED Bug Artifact #3204309 When a contact is transfered, the user now has two choices: + * - move all records with the contact to the new company + * - leave all the records with another contact at the old company. In this case, the activity will now also properly track its additional participants. + * * Revision 1.15 2010/08/17 22:09:04 gopherit * Fixed Bug Artifact # 3047297: /contacts/transfer-2.php dies when the search string of the company we are looking to transfer to is blank or contains non-alpha characters. |
From: 360team.ca <gop...@us...> - 2011-03-09 14:54:32
|
Update of /cvsroot/xrms/xrms/include In directory vz-cvs-3.sog:/tmp/cvs-serv13879 Modified Files: utils-activities.php Log Message: Cleaned up the $activity_participant_position_id default parameter value Index: utils-activities.php =================================================================== RCS file: /cvsroot/xrms/xrms/include/utils-activities.php,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** utils-activities.php 15 Dec 2010 22:50:52 -0000 1.38 --- utils-activities.php 9 Mar 2011 14:54:30 -0000 1.39 *************** *** 517,522 **** * @return integer $activity_participant_id with ID of newly created activity participant */ ! function add_activity_participant($con, $activity_id, $contact_id, $activity_participant_position_id=false) { ! if (!$activity_participant_position_id) $activity_participant_position_id=1; if (!$contact_id) { return false; } if (!$activity_id) { return false; } --- 517,521 ---- * @return integer $activity_participant_id with ID of newly created activity participant */ ! function add_activity_participant($con, $activity_id, $contact_id, $activity_participant_position_id=1) { if (!$contact_id) { return false; } if (!$activity_id) { return false; } *************** *** 788,791 **** --- 787,793 ---- /** * $Log$ + * Revision 1.39 2011/03/09 14:54:30 gopherit + * Cleaned up the $activity_participant_position_id default parameter value + * * Revision 1.38 2010/12/15 22:50:52 gopherit * Implemented advancing of the campaign workflow on campaign workflow activity completion. |
From: 360team.ca <gop...@us...> - 2011-03-09 14:11:50
|
Update of /cvsroot/xrms/xrms/include In directory vz-cvs-3.sog:/tmp/cvs-serv26598 Modified Files: utils-misc.php Log Message: Cleaned up the fetch_default_address() function. Index: utils-misc.php =================================================================== RCS file: /cvsroot/xrms/xrms/include/utils-misc.php,v retrieving revision 1.198 retrieving revision 1.199 diff -C2 -d -r1.198 -r1.199 *** utils-misc.php 24 Feb 2011 23:05:03 -0000 1.198 --- utils-misc.php 9 Mar 2011 14:11:48 -0000 1.199 *************** *** 526,538 **** */ function fetch_default_address($con, $company_id) { ! $sql_fetch_address_id = "select default_primary_address from companies where company_id = $company_id"; ! if ($rst_address_id = $con->execute($sql_fetch_address_id)) { ! // no SQL error ! if($rst_address_id->NumRows()) { ! // record found in in table ! $address_id = $rst_address_id->fields['default_primary_address']; ! $rst_address_id->close(); ! } else { $address_id = 1; } ! } else { db_error_handler ($con,$sql_fetch_address_id);} // SQL error return $address_id; } --- 526,543 ---- */ function fetch_default_address($con, $company_id) { ! $sql = "SELECT default_primary_address ! FROM companies ! WHERE company_id = $company_id"; ! $rst = $con->Execute($sql); ! if ($rst) { ! // no SQL error ! if(!$rst->EOF) { ! // record found in in table ! $address_id = $rst->fields['default_primary_address']; ! $rst->close(); ! } else { ! $address_id = 1; ! } ! } else { db_error_handler ($con, $sql);} // SQL error return $address_id; } *************** *** 2125,2128 **** --- 2130,2136 ---- /** * $Log$ + * Revision 1.199 2011/03/09 14:11:48 gopherit + * Cleaned up the fetch_default_address() function. + * * Revision 1.198 2011/02/24 23:05:03 gopherit * FIXED Bug Artifact #3191710 Wholesale assignment of values in arr_vars_session_set() led to some unset values being assigned to the $_SESSION extention which triggers the warning. |
From: 360team.ca <gop...@us...> - 2011-01-25 16:15:32
|
Update of /cvsroot/xrms/xrms/include/jpgraph-2.x In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv23726 Modified Files: jpgraph.php Log Message: As of PHP 5.3, functions split() and ereg have been deprecated Index: jpgraph.php =================================================================== RCS file: /cvsroot/xrms/xrms/include/jpgraph-2.x/jpgraph.php,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** jpgraph.php 1 Apr 2005 17:13:03 -0000 1.3 --- jpgraph.php 25 Jan 2011 16:15:24 -0000 1.4 *************** *** 5624,5628 **** // Get the specific height for a text string function GetTextHeight($txt="",$angle=0) { ! $tmp = split("\n",$txt); $n = count($tmp); $m=0; --- 5624,5628 ---- // Get the specific height for a text string function GetTextHeight($txt="",$angle=0) { ! $tmp = explode("\n",$txt); $n = count($tmp); $m=0; *************** *** 5669,5673 **** function GetTextWidth($txt,$angle=0) { ! $tmp = split("\n",$txt); $n = count($tmp); if( $this->font_family <= FF_FONT2+1 ) { --- 5669,5673 ---- function GetTextWidth($txt,$angle=0) { ! $tmp = explode("\n",$txt); $n = count($tmp); if( $this->font_family <= FF_FONT2+1 ) { *************** *** 5820,5825 **** } else { ! if( ereg("\n",$txt) ) { ! $tmp = split("\n",$txt); for($i=0; $i < count($tmp); ++$i) { $w1 = $this->GetTextWidth($tmp[$i]); --- 5820,5825 ---- } else { ! if( preg_match("|\n|",$txt) ) { ! $tmp = explode("\n",$txt); for($i=0; $i < count($tmp); ++$i) { $w1 = $this->GetTextWidth($tmp[$i]); *************** *** 5950,5954 **** } ! if( !ereg("\n",$txt) || ($dir>0 && ereg("\n",$txt)) ) { // Format a single line --- 5950,5954 ---- } ! if( !preg_match("|\n|",$txt) || ($dir>0 && preg_match("|\n|",$txt)) ) { // Format a single line |
From: 360team.ca <gop...@us...> - 2011-01-24 22:41:09
|
Update of /cvsroot/xrms/xrms/calendar In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv4663 Modified Files: Calendar_View.php Log Message: Minor HTML tweaks. Index: Calendar_View.php =================================================================== RCS file: /cvsroot/xrms/xrms/calendar/Calendar_View.php,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Calendar_View.php 24 Jan 2011 21:20:50 -0000 1.15 --- Calendar_View.php 24 Jan 2011 22:41:01 -0000 1.16 *************** *** 139,143 **** $view_mode_buttons = " <tr> ! <td class=widget_label colspan=\"9\"> <input type=\"button\" class=\"button\" onclick=\"javascript:document.{$this->form_name}.activities_widget_type.value='list'; document.{$this->form_name}.submit();\" value=\""._("List View")."\"> <input type=\"button\" class=\"button\" onclick=\"javascript:document.{$this->form_name}.calendar_range.value='week'; document.{$this->form_name}.submit();\" value=\""._("Week View")."\"> --- 139,143 ---- $view_mode_buttons = " <tr> ! <td class=widget_label_center colspan=\"10\"> <input type=\"button\" class=\"button\" onclick=\"javascript:document.{$this->form_name}.activities_widget_type.value='list'; document.{$this->form_name}.submit();\" value=\""._("List View")."\"> <input type=\"button\" class=\"button\" onclick=\"javascript:document.{$this->form_name}.calendar_range.value='week'; document.{$this->form_name}.submit();\" value=\""._("Week View")."\"> *************** *** 256,260 **** <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> ! <td class=\"widget_label center\"> <input class=button type=button value=\"$prev_month_display\" onclick=\"javascript:calendar_previous_month();\"> <!-- --- 256,260 ---- <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> ! <td class=\"widget_label_center\" style=\"width: 33.3%;\"> <input class=button type=button value=\"$prev_month_display\" onclick=\"javascript:calendar_previous_month();\"> <!-- *************** *** 262,269 **** --> </td> ! <td class=\"widget_label center\"> $display_date </td> ! <td class=\"widget_label center\"> <!-- <input class=button type=button value=\""._("Next Day")."\" onclick=\"javascript:calendar_next_day();\"> --- 262,269 ---- --> </td> ! <td class=\"widget_label_center\" style=\"width: 33.3%;\"> $display_date </td> ! <td class=\"widget_label_center\" style=\"width: 33.3%;\"> <!-- <input class=button type=button value=\""._("Next Day")."\" onclick=\"javascript:calendar_next_day();\"> *************** *** 447,463 **** <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> ! <td class=\"widget_label center\"> <input class=button type=button value=\""._("Previous Week")."\" onclick=\"javascript:calendar_previous_week();\"> - <input class=button type=button value=\""._("Previous Day")."\" onclick=\"javascript:calendar_previous_day();\"> - </td> ! <td class=\"widget_label center\"> $display_date </td> ! <td class=\"widget_label center\"> ! <input class=button type=button value=\""._("Next Day")."\" onclick=\"javascript:calendar_next_day();\"> - <input class=button type=button value=\""._("Next Week")."\" onclick=\"javascript:calendar_next_week();\"> </td> --- 447,459 ---- <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> ! <td class=\"widget_label_center\" style=\"width: 33.3%;\"> <input class=button type=button value=\""._("Previous Week")."\" onclick=\"javascript:calendar_previous_week();\"> <input class=button type=button value=\""._("Previous Day")."\" onclick=\"javascript:calendar_previous_day();\"> </td> ! <td class=\"widget_label_center\" style=\"width: 33.3%;\"> $display_date </td> ! <td class=\"widget_label_center\" style=\"width: 33.3%;\"> <input class=button type=button value=\""._("Next Day")."\" onclick=\"javascript:calendar_next_day();\"> <input class=button type=button value=\""._("Next Week")."\" onclick=\"javascript:calendar_next_week();\"> </td> *************** *** 665,668 **** --- 661,667 ---- /** * $Log$ + * Revision 1.16 2011/01/24 22:41:01 gopherit + * Minor HTML tweaks. + * * Revision 1.15 2011/01/24 21:20:50 gopherit * FIXED: As of PHP 5.3, function ereg_replace() is deprecated |
From: 360team.ca <gop...@us...> - 2011-01-24 21:21:00
|
Update of /cvsroot/xrms/xrms/calendar In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv20672 Modified Files: Calendar_View.php Log Message: FIXED: As of PHP 5.3, function ereg_replace() is deprecated Index: Calendar_View.php =================================================================== RCS file: /cvsroot/xrms/xrms/calendar/Calendar_View.php,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Calendar_View.php 5 Feb 2009 23:06:41 -0000 1.14 --- Calendar_View.php 24 Jan 2011 21:20:50 -0000 1.15 *************** *** 651,657 **** $offset_start = $this->con->OffsetDate($calendar_view_start); ! $offset_start = ereg_replace(",",".",$offset_start); $offset_end = $this->con->OffsetDate($calendar_view_end); ! $offset_end = ereg_replace(",",".",$offset_end); $offset_sql = "\nAND a.ends_at > $offset_start AND a.scheduled_at < $offset_end"; --- 651,657 ---- $offset_start = $this->con->OffsetDate($calendar_view_start); ! $offset_start = preg_replace("|,|",".",$offset_start); $offset_end = $this->con->OffsetDate($calendar_view_end); ! $offset_end = preg_replace("|,|",".",$offset_end); $offset_sql = "\nAND a.ends_at > $offset_start AND a.scheduled_at < $offset_end"; *************** *** 665,668 **** --- 665,671 ---- /** * $Log$ + * Revision 1.15 2011/01/24 21:20:50 gopherit + * FIXED: As of PHP 5.3, function ereg_replace() is deprecated + * * Revision 1.14 2009/02/05 23:06:41 randym56 * - Bug fixes and updates in several scripts. Prep for new release. |