From ce92ba767a9557daf7f18be94882dd7e6f4591fb Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 30 Sep 2010 09:24:33 -0400
Subject: [PATCH] - Plugin API: improved 'abort' flag handling, added 'result' item in some hooks: group_*, contact_*, identity_* (#1486914)

---
 program/steps/mail/addcontact.inc |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/program/steps/mail/addcontact.inc b/program/steps/mail/addcontact.inc
index 7a2b69e..d46db8e 100644
--- a/program/steps/mail/addcontact.inc
+++ b/program/steps/mail/addcontact.inc
@@ -30,8 +30,7 @@
 {
   $contact_arr = $IMAP->decode_address_list(get_input_value('_address', RCUBE_INPUT_POST, true), 1, false);
   
-  if (!empty($contact_arr[1]['mailto']))
-  {
+  if (!empty($contact_arr[1]['mailto'])) {
     $contact = array(
       'email' => $contact_arr[1]['mailto'],
       'name' => $contact_arr[1]['name']
@@ -45,21 +44,23 @@
 
     // check for existing contacts
     $existing = $CONTACTS->search('email', $contact['email'], true, false);
+
     if ($done = $existing->count)
       $OUTPUT->show_message('contactexists', 'warning');
-    else
-    {
+    else {
       $plugin = $RCMAIL->plugins->exec_hook('contact_create', array('record' => $contact, 'source' => null));
       $contact = $plugin['record'];
 
-      if (!$plugin['abort'] && ($done = $CONTACTS->insert($contact)))
+      $done = !$plugin['abort'] ? $CONTACTS->insert($contact) : $plugin['result'];
+
+      if ($done)
         $OUTPUT->show_message('addedsuccessfully', 'confirmation');
     }
   }
 }
 
 if (!$done)
-  $OUTPUT->show_message('errorsavingcontact', 'warning');
+  $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsavingcontact', 'warning');
 
 $OUTPUT->send();
 

--
Gitblit v1.9.1