source: spip-zone/_plugins_/soap-sympa/inc/soapsympa_trustedapp.php @ 62613

Last change on this file since 62613 was 62613, checked in by thomas.weiss@…, 7 years ago

ajout du plugin spip ml sympa

File size: 3.8 KB
Line 
1<?php 
2//(c) 2012 Thomas Weiss
3//(c) 2007-2008 Sébastien Santoro aka Dereckson - www.dereckson.be
4//Released under BSD license
5
6    class SympaTrustedApp {
7        public function __construct ($wsdl = false, $username = '', $password = '') {
8            if ($wsdl !== false) {
9                $this->wsdl = $wsdl;
10                $this->InitializeSOAP();
11            }
12            $this->username = $username;
13            $this->password = $password;
14        }
15
16        public function InitializeSOAP () {
17            $this->client = new SoapClient($this->wsdl);
18        }
19
20
21
22       
23
24        #SOAP calls
25
26        //Adds a user to a list
27        //if $quiet, doesn't send welcome file
28        public function add ($list, $mail, $quiet) {
29            return $this->client->authenticateRemoteAppAndRun(
30                $this->username, $this->password, "USER_EMAIL=$this->USER_EMAIL",
31                'add',
32                array($list, $mail, $quiet)
33            );
34        }
35
36      public function subscribe ($list, $name) {
37            return $this->client->authenticateRemoteAppAndRun(
38                $this->username, $this->password, "USER_EMAIL=$this->USER_EMAIL",
39                'subscribe',
40                array($list, $name)
41            );
42        }
43
44
45
46        //Deletes a user from a list
47        //if $quiet, doesn't send quit notification
48        public function del ($list, $mail, $quiet) {
49            return $this->client->authenticateRemoteAppAndRun(
50                $this->username, $this->password, "USER_EMAIL=$this->USER_EMAIL",
51                'del',
52                array($list, $mail, $quiet)
53            );
54        }
55
56public function signoff ($list, $email) {
57            return $this->client->authenticateRemoteAppAndRun(
58                $this->username, $this->password, "USER_EMAIL=$this->USER_EMAIL",
59                'signoff',
60                array($list, $email)
61            );
62        }
63
64        public function which ($mail = false) {
65            if ($mail === false) $mail = $this->USER_EMAIL;
66            $SoapAnswer = $this->client->authenticateRemoteAppAndRun($this->username, $this->password, "USER_EMAIL=$mail", 'which', null);
67            $i = 0;
68            foreach($SoapAnswer as $listString) {
69                $listArray = explode(';', $listString);
70                foreach ($listArray as $listItem) {
71                    $listInfo = explode('=', $listItem, 2);
72                    $lists[$i][$listInfo[0]] = $listInfo[1];
73                }
74                $i++;
75            }
76            return $lists;
77        }
78
79public function complexlists ($mail) {
80           try { $SoapAnswer = $this->client->authenticateRemoteAppAndRun($this->username, $this->password, "USER_EMAIL=$mail", 'complexLists', null);
81                     
82            return $SoapAnswer;
83          } catch (SoapFault $ex) {
84          return false;
85          }
86        }
87
88
89public function review ($list, $mail = false) {
90            if ($mail === false) $mail = $this->USER_EMAIL;
91 
92            $SoapAnswer = $this->client->authenticateRemoteAppAndRun($this->username, $this->password, "USER_EMAIL=$mail", 'review', array($list));
93           
94            return $SoapAnswer;
95        }
96
97
98
99public function info ($list) {
100           try { $SoapAnswer = $this->client->authenticateRemoteAppAndRun($this->username, $this->password, "USER_EMAIL=$this->USER_EMAIL", 'info', array($list));
101            return $SoapAnswer;
102            } catch (SoapFault $ex) {
103          return false;
104          }
105}
106
107public function ami ($list, $function, $mail) {
108         
109            return $this->client->authenticateRemoteAppAndRun($this->username, $this->password, "USER_EMAIL=$mail",'amI', array($list, $function, $mail));
110        }
111
112
113        //SOAP
114        private $client;
115        public $wsdl;
116
117        //AuthenticateAndRun
118        public $username;
119        public $password;
120
121        //Proxy variables
122        public $USER_EMAIL;
123        public $remote_host;
124        public $SYMPA_ROBOT;
125
126}
127?>
Note: See TracBrowser for help on using the repository browser.