summaryrefslogtreecommitdiff
path: root/program/steps
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2011-01-23 18:10:40 +0000
committerthomascube <thomas@roundcube.net>2011-01-23 18:10:40 +0000
commit8458c7ca0e787db4a04fb1a6264e15153fd173b3 (patch)
treeaacaca671437b1e16b4cfd2d682707f4980b0e14 /program/steps
parent06670e4efae4b12b5dea5e0150cfed98dffbebb7 (diff)
When creating a new contact, add it to the selected group; consider the selected group when deleting a contact
Diffstat (limited to 'program/steps')
-rw-r--r--program/steps/addressbook/save.inc13
1 files changed, 12 insertions, 1 deletions
diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc
index 7d29b6fb2..5d8b53159 100644
--- a/program/steps/addressbook/save.inc
+++ b/program/steps/addressbook/save.inc
@@ -131,7 +131,6 @@ foreach ($GLOBALS['CONTACT_COLTYPES'] as $col => $colprop) {
if (empty($a_record['name']))
$a_record['name'] = join(' ', array_filter(array($a_record['prefix'], $a_record['firstname'], $a_record['middlename'], $a_record['surname'], $a_record['suffix'],)));
-#var_dump($a_record);
// Basic input checks (TODO: delegate to $CONTACTS instance)
if (empty($a_record['name'])/* || empty($a_record['email'])*/) {
@@ -242,6 +241,18 @@ else {
if ($insert_id) {
+ // add new contact to the specified group
+ if ($CONTACTS->group_id) {
+ $plugin = $RCMAIL->plugins->exec_hook('group_addmembers', array('group_id' => $CONTACTS->group_id, 'ids' => $insert_id, 'source' => $source));
+
+ if (!$plugin['abort']) {
+ if (($maxnum = $RCMAIL->config->get('max_group_members', 0)) && ($CONTACTS->count()->count + 1 > $maxnum))
+ $OUTPUT->show_message('maxgroupmembersreached', 'warning', array('max' => $maxnum));
+
+ $CONTACTS->add_to_group($gid, $plugin['ids']);
+ }
+ }
+
// add contact row or jump to the page where it should appear
$CONTACTS->reset();
$result = $CONTACTS->search($CONTACTS->primary_key, $insert_id);