Mercurial > hg > rc1
comparison plugins/example_addressbook/example_addressbook_backend.php @ 0:1e000243b222
vanilla 1.3.3 distro, I hope
| author | Charlie Root |
|---|---|
| date | Thu, 04 Jan 2018 15:50:29 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:1e000243b222 |
|---|---|
| 1 <?php | |
| 2 | |
| 3 /** | |
| 4 * Example backend class for a custom address book | |
| 5 * | |
| 6 * This one just holds a static list of address records | |
| 7 * | |
| 8 * @author Thomas Bruederli | |
| 9 */ | |
| 10 class example_addressbook_backend extends rcube_addressbook | |
| 11 { | |
| 12 public $primary_key = 'ID'; | |
| 13 public $readonly = true; | |
| 14 public $groups = true; | |
| 15 | |
| 16 private $filter; | |
| 17 private $result; | |
| 18 private $name; | |
| 19 | |
| 20 public function __construct($name) | |
| 21 { | |
| 22 $this->ready = true; | |
| 23 $this->name = $name; | |
| 24 } | |
| 25 | |
| 26 public function get_name() | |
| 27 { | |
| 28 return $this->name; | |
| 29 } | |
| 30 | |
| 31 public function set_search_set($filter) | |
| 32 { | |
| 33 $this->filter = $filter; | |
| 34 } | |
| 35 | |
| 36 public function get_search_set() | |
| 37 { | |
| 38 return $this->filter; | |
| 39 } | |
| 40 | |
| 41 public function reset() | |
| 42 { | |
| 43 $this->result = null; | |
| 44 $this->filter = null; | |
| 45 } | |
| 46 | |
| 47 function list_groups($search = null, $mode = 0) | |
| 48 { | |
| 49 return array( | |
| 50 array('ID' => 'testgroup1', 'name' => "Testgroup"), | |
| 51 array('ID' => 'testgroup2', 'name' => "Sample Group"), | |
| 52 ); | |
| 53 } | |
| 54 | |
| 55 public function list_records($cols=null, $subset=0) | |
| 56 { | |
| 57 $this->result = $this->count(); | |
| 58 $this->result->add(array('ID' => '111', 'name' => "Example Contact", 'firstname' => "Example", 'surname' => "Contact", 'email' => "example@roundcube.net")); | |
| 59 | |
| 60 return $this->result; | |
| 61 } | |
| 62 | |
| 63 public function search($fields, $value, $strict=false, $select=true, $nocount=false, $required=array()) | |
| 64 { | |
| 65 // no search implemented, just list all records | |
| 66 return $this->list_records(); | |
| 67 } | |
| 68 | |
| 69 public function count() | |
| 70 { | |
| 71 return new rcube_result_set(1, ($this->list_page-1) * $this->page_size); | |
| 72 } | |
| 73 | |
| 74 public function get_result() | |
| 75 { | |
| 76 return $this->result; | |
| 77 } | |
| 78 | |
| 79 public function get_record($id, $assoc=false) | |
| 80 { | |
| 81 $this->list_records(); | |
| 82 $first = $this->result->first(); | |
| 83 $sql_arr = $first['ID'] == $id ? $first : null; | |
| 84 | |
| 85 return $assoc && $sql_arr ? $sql_arr : $this->result; | |
| 86 } | |
| 87 | |
| 88 | |
| 89 function create_group($name) | |
| 90 { | |
| 91 $result = false; | |
| 92 | |
| 93 return $result; | |
| 94 } | |
| 95 | |
| 96 function delete_group($gid) | |
| 97 { | |
| 98 return false; | |
| 99 } | |
| 100 | |
| 101 function rename_group($gid, $newname, &$newid) | |
| 102 { | |
| 103 return $newname; | |
| 104 } | |
| 105 | |
| 106 function add_to_group($group_id, $ids) | |
| 107 { | |
| 108 return false; | |
| 109 } | |
| 110 | |
| 111 function remove_from_group($group_id, $ids) | |
| 112 { | |
| 113 return false; | |
| 114 } | |
| 115 | |
| 116 } |
