]> git.donarmstrong.com Git - roundcube.git/blob - program/steps/addressbook/delete.inc
Imported Upstream version 0.3
[roundcube.git] / program / steps / addressbook / delete.inc
1 <?php
2
3 /*
4  +-----------------------------------------------------------------------+
5  | program/steps/addressbook/delete.inc                                  |
6  |                                                                       |
7  | This file is part of the RoundCube Webmail client                     |
8  | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland                 |
9  | Licensed under the GNU GPL                                            |
10  |                                                                       |
11  | PURPOSE:                                                              |
12  |   Delete the submitted contacts (CIDs) from the users address book    |
13  |                                                                       |
14  +-----------------------------------------------------------------------+
15  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
16  +-----------------------------------------------------------------------+
17
18  $Id: delete.inc 2758 2009-07-16 15:01:05Z thomasb $
19
20 */
21
22 if ($OUTPUT->ajax_call &&
23     ($cid = get_input_value('_cid', RCUBE_INPUT_POST)) &&
24     (preg_match('/^[0-9]+(,[0-9]+)*$/', $cid) ||
25      preg_match('/^[a-zA-Z0-9=]+(,[a-zA-Z0-9=]+)*$/', $cid))
26    )
27   {
28   $plugin = $RCMAIL->plugins->exec_hook('delete_contact', array('id' => $cid, 'source' => get_input_value('_source', RCUBE_INPUT_GPC)));
29   
30   $deleted = !$plugin['abort'] ? $CONTACTS->delete($cid) : false;
31   if (!$deleted)
32     {
33     // send error message
34     exit;
35     }
36
37   // count contacts for this user
38   $result = $CONTACTS->count();
39
40   // update message count display
41   $OUTPUT->set_env('pagecount', ceil($result->count / $CONTACTS->page_size));
42   $OUTPUT->command('set_rowcount', rcmail_get_rowcount_text($result->count));
43
44   // add new rows from next page (if any)
45   $pages = ceil(($result->count + $deleted) / $CONTACTS->page_size);
46   if ($_GET['_from'] != 'show' && $pages > 1 && $CONTACTS->list_page < $pages)
47     rcmail_js_contacts_list($CONTACTS->list_records(null, -$deleted));
48
49   // send response
50   $OUTPUT->send();
51   }
52
53 exit;
54 ?>