I've had one request for this, and figured there might be others
interested and who are fighting over this...the following patch is
supposed to be in the next snapshot of IMP (http://horde.org/imp)...


 Marc G. Fournier                                
Systems Administrator @ hub.org 
primary: [EMAIL PROTECTED]           secondary: scrappy@{freebsd|postgresql}.org 

---------- Forwarded message ----------
Date: Thu, 26 Nov 1998 00:59:48 -0400 (AST)
From: The Hermit Hacker <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Patch for pgsql.lib.php3 against 11-24 snapshot...


I'm not sure how patches are handled, but the following patches are
required to get IMP working with PostgreSQL v6.4, which is the current
stable release of PostgreSQL.  The patch adds the 'lang' field and an
appropriate 'imp_set_lang{}' function, plus changes the 'user' field to be
'username', as user is a reserved word...

Marc G. Fournier                                
Systems Administrator @ hub.org 
primary: [EMAIL PROTECTED]           secondary: scrappy@{freebsd|postgresql}.org 

*** pgsql.lib.php3.orig Wed Nov 25 23:28:50 1998
--- pgsql.lib.php3      Wed Nov 25 23:45:05 1998
***************
*** 34,48 ****
     
     Preferences Table:
      field:     type:      description:
!     user       text       [EMAIL PROTECTED] format username
      sig        text       signature
      replyto    text       [EMAIL PROTECTED] for replyto/from lines
      fullname   text       Joe Doe
      (possibly more to be added later)
   
     Address Table:
      field:     type:      description:
!     user       text       [EMAIL PROTECTED] identifier of who this entry belongs to
      address    text       [EMAIL PROTECTED] - the actual address
      nickname   text       any entered nickname - ie "bonnie".
      fullname   text       full name - "My Bonnie".
--- 34,49 ----
     
     Preferences Table:
      field:     type:      description:
!     username   text       [EMAIL PROTECTED] format username
      sig        text       signature
      replyto    text       [EMAIL PROTECTED] for replyto/from lines
      fullname   text       Joe Doe
+     lang       varchar(30)  users's preferred language (en, es, ...)
      (possibly more to be added later)
   
     Address Table:
      field:     type:      description:
!     username   text       [EMAIL PROTECTED] identifier of who this entry belongs to
      address    text       [EMAIL PROTECTED] - the actual address
      nickname   text       any entered nickname - ie "bonnie".
      fullname   text       full name - "My Bonnie".
***************
*** 57,63 ****
     global $imp_db, $db_server, $db_user, $pref_table, $db_port, $db_options,
     $db_tty;
     
!    $sql="select user from $pref_table where user='$user@$server'";
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty,$imp_db))) {
        if (($result = pg_Exec($db,$sql))) { 
         return true;
--- 58,64 ----
     global $imp_db, $db_server, $db_user, $pref_table, $db_port, $db_options,
     $db_tty;
     
!    $sql="select username from $pref_table where username='$user@$server'";
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty,$imp_db))) {
        if (($result = pg_Exec($db,$sql))) { 
         return true;
***************
*** 76,82 ****
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty,$imp_db))) { 
return false; }
!    if (!($result = pg_exec($db, "select lang from $pref_table where 
user='$user@$server'"))) { return false; }
     
     return(pg_result($result, 0, "lang"));
  }
--- 77,83 ----
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty,$imp_db))) { 
return false; }
!    if (!($result = pg_exec($db, "select lang from $pref_table where 
username='$user@$server'"))) { return false; }
     
     return(pg_result($result, 0, "lang"));
  }
***************
*** 89,95 ****
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_exec($db, "select replyto from $pref_table where 
user='$user@$server'"))) { return false; }
     
     return(pg_result($result, 0, "replyto"));
  }
--- 90,96 ----
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_exec($db, "select replyto from $pref_table where 
username='$user@$server'"))) { return false; }
     
     return(pg_result($result, 0, "replyto"));
  }
***************
*** 102,108 ****
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_exec($db, "select fullname from $pref_table where 
user='$user@$server'"))) { return false; }
     
     return(pg_result($result, 0, "fullname"));
  }
--- 103,109 ----
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_exec($db, "select fullname from $pref_table where 
username='$user@$server'"))) { return false; }
     
     return(pg_result($result, 0, "fullname"));
  }
***************
*** 115,121 ****
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_exec($db, "select sig from $pref_table where 
user='$user@$server'"))) { return false; }
     
     return(pg_result($result, 0, "sig"));
  }
--- 116,122 ----
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_exec($db, "select sig from $pref_table where 
username='$user@$server'"))) { return false; }
     
     return(pg_result($result, 0, "sig"));
  }
***************
*** 129,135 ****
      */
     
     if (imp_check_prefs($user,$server)) {
!       $sql = "update $pref_table set sig='$signature' where user='$user@$server'";
     } else {
        $sql = "insert into $pref_table values ('$user@$server', '$signature')";
     }
--- 130,136 ----
      */
     
     if (imp_check_prefs($user,$server)) {
!       $sql = "update $pref_table set sig='$signature' where 
username='$user@$server'";
     } else {
        $sql = "insert into $pref_table values ('$user@$server', '$signature')";
     }
***************
*** 147,155 ****
      returns true on success and false on failure
      */
     if (imp_check_prefs($user,$server)) { 
!       $sql = "update $pref_table set replyto='$from' where user='$user@$server'";
     } else {
!       $sql = "insert into $pref_table (user,replyto) values ('$user@$server', 
'$signature')";
     }
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
--- 148,156 ----
      returns true on success and false on failure
      */
     if (imp_check_prefs($user,$server)) { 
!       $sql = "update $pref_table set replyto='$from' where 
username='$user@$server'";
     } else {
!       $sql = "insert into $pref_table (username,replyto) values ('$user@$server', 
'$signature')";
     }
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
***************
*** 158,163 ****
--- 159,182 ----
     return true;
  }
  
+ function imp_set_lang ($lang, $user, $server) {
+    global $imp_db, $db_server, $db_user, $pref_table, $db_port, $db_options, 
+$db_tty;
+  
+    /* post: sets the language to $lang for the database key $user@$server      
+     returns true on success and false on failure
+     */
+  
+    if (imp_check_prefs($user, $server)) {
+       $sql = "update $pref_table set lang='$lang' where username='$user@$server'";
+    } else {
+       $sql = "insert into $pref_table (username, lang) values ('$user@$server', 
+'$lang')";
+    }
+     
+    if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty,$imp_db))) { 
+return false; }   
+    if (!($result = pg_Exec($db,$sql))) { return false; } 
+    return true;
+ }  
+ 
  function imp_set_fullname ($fullname, $user, $server) {
     global $imp_db, $db_server, $db_user, $pref_table, $db_port, $db_options, 
$db_tty;
     
***************
*** 165,173 ****
      returns true on success and false on failure
      */
     if (imp_check_prefs($user,$server)) {
!       $sql = "update $pref_table set fullname='$fullname' where 
user='$user@$server'";
     } else {
!       $sql = "insert into $pref_table (user,fullname) values ('$user@$server', 
'$fullname')";
     }
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
--- 184,192 ----
      returns true on success and false on failure
      */
     if (imp_check_prefs($user,$server)) {
!       $sql = "update $pref_table set fullname='$fullname' where 
username='$user@$server'";
     } else {
!       $sql = "insert into $pref_table (username,fullname) values ('$user@$server', 
'$fullname')";
     }
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
***************
*** 186,192 ****
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_Exec($db, "select address, nickname, fullname from 
$address_table where user='$user@$server' order by nickname"))) { return false; }
     if (($rowcount = pg_NumRows($result))==0) { return false; }
     
     for ($i=0; $i<$rowcount; $i++) {
--- 205,211 ----
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_Exec($db, "select address, nickname, fullname from 
$address_table where username='$user@$server' order by nickname"))) { return false; }
     if (($rowcount = pg_NumRows($result))==0) { return false; }
     
     for ($i=0; $i<$rowcount; $i++) {
***************
*** 204,210 ****
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_Exec($db, "delete from $address_table where 
user='$user@$server' and address='$address'"))) { return false; }
     
     return true;
  }
--- 223,229 ----
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_Exec($db, "delete from $address_table where 
username='$user@$server' and address='$address'"))) { return false; }
     
     return true;
  }
***************
*** 230,236 ****
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_Exec($db, "update $address_table set address='$address', 
nickname='$nickname', fullname='$fullname' where user='$user@$server' and 
address='$old_address'"))) { return false; }
     
     return true;
  }
--- 249,255 ----
      */
     
     if (!($db = pg_pconnect($db_server,$db_port,$db_options,$db_tty, $imp_db))) { 
return false; }
!    if (!($result = pg_Exec($db, "update $address_table set address='$address', 
nickname='$nickname', fullname='$fullname' where username='$user@$server' and 
address='$old_address'"))) { return false; }
     
     return true;
  }

Reply via email to