source: spip-zone/_plugins_/sms/trunk/sms_fonctions.php @ 108051

Last change on this file since 108051 was 108051, checked in by pierrekuhn82@…, 20 months ago

version 1.1.1 : Un nom de classe nomme pour le service en question.

File size: 3.7 KB
Line 
1<?php
2/**
3 * Fonctions utiles au plugin SMS SPIP
4 *
5 * @plugin         SMS SPIP
6 * @copyright  2015
7 * @author         tofulm
8 * @licence    GNU/GPL
9 * @package    SPIP\Sms\Fonctions
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) return;
13
14//Utilisation de SMS factor
15if (lire_config('sms/prestataire') == "smsfactor") {
16        function envoyer_sms($message,$destinataire,$arg=array()) {
17                return smsfactor($message,$destinataire,$arg);
18        }
19} elseif (lire_config('sms/prestataire') == "octopush") {
20        function envoyer_sms($message,$destinataire,$arg=array()) {
21                return octopush($message,$destinataire,$arg);
22        }
23}
24
25/**
26 * Envoie le sms en utilisant l'API du prestataire sms factor
27 *
28 * @param string $message
29 *              le texte d'envoie doit etre du texte et non du html
30 * @param array $destinataire
31 * @param array $arg
32 *              utilise pour : $arg['sender']
33 * @return boolean
34**/
35function smsfactor($message,$destinataire,$arg) {
36        $username = lire_config('sms/login_smsfactor');
37        $password = lire_config('sms/mdp_smsfactor');
38        $sender   = ($arg['sender']) ? $arg['sender'] : lire_config('sms/expediteur_smsfactor');
39        $message  = nettoyer_xml($message);
40
41        require_once('classes/smsfactor/sendSMSclass.php');
42        $SENDSMS = new SendSMSclass();
43        $retour  = $SENDSMS->SendSMS($username,$password,$sender,$message,$destinataire);
44
45        $reponse = new SimpleXMLElement($retour);
46        if ( $reponse->message == "OK" ) {
47                return true;
48        } else {
49                return false;
50        }
51}
52
53/**
54 * Envoie le sms en utilisant l'API du prestataire octopush-dm
55 *
56 * @param string $message
57 *              le texte d'envoie doit etre du texte et non du html
58 * @param array $destinataire
59 * @param array $arg
60 *              utilise pour : $arg['sms_sender']
61 *              utilise pour : $arg['sms_mode'] => SMS_STANDARD (par defaut) ou SMS_PREMIUM
62 *              utilise pour : $arg['sms_type'] => INSTANTANE (par defaut) ou DIFFERE (Non prévu pour le moment)
63 * @return boolean
64**/
65function octopush($sms_text,$sms_recipients,$arg) {
66        $user_login     = lire_config('sms/login_octopush');
67        $api_key        = lire_config('sms/cle_api_octopush');
68        $sms_text       = nettoyer_xml($sms_text);
69
70        // Variable pour l'envoi
71        $sms_type       = isset($arg['sms_type']) ? $arg['sms_type'] : 'SMS_STANDARD';
72        $sms_mode       = isset($arg['sms_mode']) ? $arg['sms_mode'] : 'INSTANTANE';
73        $sms_sender     = isset($arg['sms_sender']) ? $arg['sms_sender'] : lire_config('sms/expediteur_octopush');
74        require_once('classes/octopush/sms.inc.php');
75
76        $sms = new SMS_OCTOSPUSH();
77
78        $sms->set_user_login($user_login);
79        $sms->set_api_key($api_key);
80        $sms->set_sms_mode($sms_mode);
81        $sms->set_sms_text($sms_text);
82        $sms->set_sms_recipients($sms_recipients);
83        $sms->set_sms_type($sms_type);
84        $sms->set_sms_sender($sms_sender);
85        $sms->set_sms_request_id(uniqid());
86        $sms->set_option_with_replies(0);
87        $sms->set_option_transactional(1);
88        $sms->set_sender_is_msisdn(0);
89        //$sms->set_date(2016, 4, 17, 10, 19); // En cas d'envoi différé.
90        $sms->set_request_keys('TRS');
91        $xml = $sms->send();
92        $xml = simplexml_load_string($xml);
93        spip_log($xml, 'test');
94        return $xml;
95}
96function filtre_balance($type) {
97        $username = lire_config('sms/login_octopush');
98        $password = lire_config('sms/cle_api_octopush');
99
100        require_once('classes/octopush/sms.inc.php');
101        $sms = new SMS();
102
103        $sms->set_user_login($username);
104        $sms->set_api_key($password);
105
106        $xml = $sms->getBalance();
107        $xml = simplexml_load_string($xml);
108        $balance = $xml->balance;
109        $standard = $balance['0'];
110        $premium = $balance['1'];
111        $balance = array('standard' => $standard, 'premium' => $premium);
112        $valeurs = intval($balance[$type]);
113        return $valeurs;
114}
115
116function nettoyer_xml($texte) {
117        $texte = str_replace('&', '&amp;',  $texte);
118        $texte = str_replace('<', '&lt;',   $texte);
119        $texte = str_replace('>', '&gt;',   $texte);
120        $texte = str_replace('"', '&quot;', $texte);
121        $texte = str_replace("'", "&apos;", $texte);
122
123        return $texte;
124}
Note: See TracBrowser for help on using the repository browser.