Release plat/al core v1.1.13
[platal.git] / classes / mmlist.php
1 <?php
2 /***************************************************************************
3 * Copyright (C) 2003-2011 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22 class MMList extends XmlrpcClient
23 {
24 public function __construct($user, $pass = null, $fqdn = null)
25 {
26 global $globals;
27 if ($user instanceof PlUser) {
28 $fqdn = $pass;
29 $uid = $user->id();
30 $pass = $user->password();
31 } else {
32 $uid = $user;
33 }
34
35 $dom = is_null($fqdn) ? $globals->mail->domain : $fqdn;
36 $url = "http://$uid:$pass@{$globals->lists->rpchost}:{$globals->lists->rpcport}/$dom";
37 parent::__construct($url);
38 if ($globals->debug & DEBUG_BT) {
39 $this->bt = new PlBacktrace('MMList');
40 }
41 }
42
43 /**
44 * Replace email in all lists where user has subscribe
45 * @param $old_email old email address used in mailing lits
46 * @param $new_email new email to use in place of the old one
47 * @return number of mailing lists changed
48 */
49 public function replace_email_in_all($old_email, $new_email) {
50 $all_lists = $this->get_lists($old_email);
51 if (!$all_lists) {
52 return 0;
53 }
54 $changed_lists = 0;
55 foreach ($all_lists as $list) {
56 if ($list['sub']) {
57 $this->replace_email($list['list'], $old_email, $new_email);
58 $changed_lists++;
59 }
60 }
61 return $changed_lists;
62 }
63 }
64
65 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
66 ?>