From 3ca3bd467ab9c5306de4a30c52f737e92eb39a9c Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 03 Jul 2009 09:02:48 -0400
Subject: [PATCH] Add plugin hooks 'smtp_connect' and 'list_identities' (#1485954, #1485958)

---
 program/steps/settings/func.inc |   10 ++++++----
 program/include/rcube_smtp.inc  |   13 ++++++++++++-
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/program/include/rcube_smtp.inc b/program/include/rcube_smtp.inc
index ef84b03..b5bd183 100644
--- a/program/include/rcube_smtp.inc
+++ b/program/include/rcube_smtp.inc
@@ -51,7 +51,18 @@
  */
 function smtp_mail($from, $recipients, &$headers, &$body, &$response)
   {
-  global $SMTP_CONN, $CONFIG, $RCMAIL;
+  global $SMTP_CONN, $RCMAIL;
+  
+  // let plugins alter smtp connection config
+  $CONFIG = $RCMAIL->plugins->exec_hook('smtp_connect', array(
+    'smtp_server' => $RCMAIL->config->get('smtp_server'),
+    'smtp_port'   => $RCMAIL->config->get('smtp_port', 25),
+    'smtp_user'   => $RCMAIL->config->get('smtp_user'),
+    'smtp_pass'   => $RCMAIL->config->get('smtp_pass'),
+    'smtp_auth_type' => $RCMAIL->config->get('smtp_auth_type'),
+    'smtp_helo_host' => $RCMAIL->config->get('smtp_helo_host'),
+  ));
+
   $smtp_timeout = null;
   $smtp_host = $CONFIG['smtp_server'];
   $smtp_port = is_numeric($CONFIG['smtp_port']) ? $CONFIG['smtp_port'] : 25;
diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index 5fad317..ba98a2c 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -408,17 +408,19 @@
 
 function rcmail_identities_list($attrib)
   {
-  global $OUTPUT, $USER;
+  global $OUTPUT, $USER, $RCMAIL;
 
   // add id to message list table if not specified
   if (!strlen($attrib['id']))
     $attrib['id'] = 'rcmIdentitiesList';
 
-  // define list of cols to be displayed
-  $a_show_cols = array('name', 'email');
+  // get all identites from DB and define list of cols to be displayed
+  $plugin = $RCMAIL->plugins->exec_hook('list_identities', array(
+    'list' => $USER->list_identities(),
+    'cols' => array('name', 'email')));
 
   // create XHTML table  
-  $out = rcube_table_output($attrib, $USER->list_identities(), $a_show_cols, 'identity_id');
+  $out = rcube_table_output($attrib, $plugin['list'], $plugin['cols'], 'identity_id');
   
   // set client env
   $OUTPUT->add_gui_object('identitieslist', $attrib['id']);

--
Gitblit v1.9.1