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