精品深夜福利视频,日本中文字幕不卡,久久久久国产,av综合电影网站


待發短信

在線客服
產品支持 短信寶客服
合作渠道 渠道合作
服務咨詢

4001-021-502

工作時間

9:00-21:00

whmcsV7.60 新增短信寶短信接口

WHMCS是一套國外流行的域名主機管理軟件,跟國內眾所周知的IDCSystem一樣,主要在用戶管理、財務管理、域名接口、服務器管理面板接口等方面設計的非常人性化。WHMCS是一套全面支持域名注冊管理解析,主機開通管理,VPS開通管理和服務器管理的一站式管理軟件,目前已經被越來越多的中國站長們所熟悉和了解。最近小編發現客戶提供我們一個whmcs版本的短信插件不能使用,我們這邊并修復了一下,今天小編就以替換短信接口為例告訴大家如何進行二次開發,我們講解的是whmcs_v7.60版本。

├─aktuel_sms插件目錄
 
│  ├─hooks
 
│  ├─lang
 
│  ├─senders
 
│  ├─aktuel_sms.php
 
│  ├─hooks.php         
 
│  ├─smsclass.php

1:下面具體給大家說一下目錄的作用 hooks文件夾 主要涉及到各種發送短信的模板代碼 例如:AdminLogin.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$hook = array(
    'hook' => 'AdminLogin',
    'function' => 'AdminLogin_admin',
    'type' => 'admin',
    'extra' => '',
    'defaultmessage' => '{username},已經登陸后臺.',
    'variables' => '{username}'
);
if(!function_exists('AdminLogin_admin')){
    function AdminLogin_admin($args){
        $class = new AktuelSms();
        $template = $class->getTemplateDetails(__FUNCTION__);
        if($template['active'] == 0){
            return null;
        }
        $settings = $class->getSettings();
        if(!$settings['api'] || !$settings['apiparams']){
            return null;
        }
        $admingsm = explode(",",$template['admingsm']);
 
        $template['variables'] = str_replace(" ","",$template['variables']);
        $replacefrom = explode(",",$template['variables']);
        $replaceto = array($args['username']);
        $message = str_replace($replacefrom,$replaceto,$template['template']);
 
        foreach($admingsm as $gsm){
            if(!empty($gsm)){
                $class->setGsmnumber( trim($gsm));
                $class->setUserid(1);
                $class->setMessage($message);
                $class->send();
            }
        }
    }
}
 
return $hook;

2:lang文件夾 主要涉及一些語言的配置 例如chinese.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
$_ADDONLANG['lang'] = "chinese";
 
$_ADDONLANG['newversion'] = "本插件已經有最新的版本. 請前往 <a href=\"https://github.com/AktuelSistem/WHMCS-SmsModule\">Github page</a> 下載最新版.<br><br>下載上傳以后刷新本頁面.<br><br>";
$_ADDONLANG['uptodate'] = "您的插件已經是最新版.";
$_ADDONLANG['save'] = "保存";
$_ADDONLANG['gsmnumberfield'] = "手機號碼字段(自定義用戶字段)";
$_ADDONLANG['wantsmsfield'] = "訂閱短信服務字段(自定義用戶字段)";
$_ADDONLANG['user'] = "用戶名";
$_ADDONLANG['pass'] = "密碼";
$_ADDONLANG['apiid'] = "API ID";
$_ADDONLANG['email'] = "Email";
$_ADDONLANG['countrycode'] = "國家代碼";
$_ADDONLANG['senderid'] = "發送人ID(短信標題)";
$_ADDONLANG['dateformat'] = "時間格式";
$_ADDONLANG['sender'] = "短信接口類型";
$_ADDONLANG['settings'] = "設置";
$_ADDONLANG['signature'] = "短信簽名";
$_ADDONLANG['clientsmstemplates'] = "用戶短信模版";
$_ADDONLANG['adminsmstemplates'] = "管理員短信模版";
$_ADDONLANG['sendsms'] = "發送短信";
$_ADDONLANG['messages'] = "已發送短信";
$_ADDONLANG['update'] = "升級更新";
$_ADDONLANG['smssent'] = "<br><br><b>短信發送完畢</b>";
$_ADDONLANG['client'] = "接收用戶";
$_ADDONLANG['selectclient'] = "選擇客戶";
$_ADDONLANG['message'] = "短信內容";
$_ADDONLANG['debug'] = "顯示輸出 log";
$_ADDONLANG['send'] = "發送";
$_ADDONLANG['debugsonuc'] = "返回結果";
$_ADDONLANG['gsmnumber'] = "手機號碼";
$_ADDONLANG['datetime'] = "發送時間";
$_ADDONLANG['status'] = "狀態";
$_ADDONLANG['delete'] = "刪除";
$_ADDONLANG['parameter'] = "可用參數標簽:";
$_ADDONLANG['active'] = "激活";
$_ADDONLANG['ekstra'] = "擴展 {x}";
$_ADDONLANG['admingsm'] = "管理員手機號碼";
$_ADDONLANG['admingsmornek'] = "手機號碼示例:13800138000";
$_ADDONLANG['lisans'] = "<a href=\"https://github.com/AktuelSistem/WHMCS-SmsModule\">插件開發商網站</a>";
$_ADDONLANG['credit'] = "短信可用余額";
 
$_ADDONLANG['error'] = "錯誤";
$_ADDONLANG['pending'] = "配置中";
$_ADDONLANG['sent'] = "發送中";
$_ADDONLANG['success'] = "成功";
 
$_ADDONLANG['authkey'] = "Authentication Key";
$_ADDONLANG['route'] = "SMS 發送線路 (例如: 4)";
$_ADDONLANG['flash'] = "彩信 (Yes=1/No=0)";
$_ADDONLANG['unicode'] = "Unicode編碼SMS (Yes=1/No=0)";
$_ADDONLANG['ignoreNdnc'] = "忽略 NDNC 號碼? (Yes=1/No=0)";

3:senders文件夾 主要涉及到短信的配置 例如smsbao.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/*短信寶接口 2016-10-21  http://www.980247.com */
class smsbao extends AktuelSms implements SmsSenderInterface{
 
    function __construct($message,$gsmnumber){
        $this->message = $this->utilmessage($message);
        $this->gsmnumber = $this->utilgsmnumber($gsmnumber);
    }
 
    function send(){
        if($this->gsmnumber == "numbererror"){
            $log[] = ("Number format error.".$this->gsmnumber);
            $error[] = ("Number format error.".$this->gsmnumber);
            return null;
        }
 
        $params = $this->getParams();
        $this->gsmnumber = substr($this->gsmnumber,-11);
        $result = file_get_contents('http://www.980247.com/sms?u='.$params->user.'&p='.md5($params->pass).'&m='.$this->gsmnumber.'&c='.urlencode($this->message).'&');
 
        $result = explode(" ",$result);
 
        if($result[0] == "0") {
            $log[] = ("信息發送成功.");
        } elseif($result[0] == "30") {
            $log[] = ("密碼錯誤.");
            $error[] = ("密碼錯誤.");
        } elseif($result[0] == "40") {
            $log[] = ("賬號不存在.");
            $error[] = ("賬號不存在.");
        } elseif($result[0] == "41") {
            $log[] = ("余額不足.");
            $error[] = ("余額不足.");
        } elseif($result[0] == "42") {
            $log[] = ("帳號過期.");
            $error[] = ("帳號過期.");
        } elseif($result[0] == "43") {
            $log[] = ("IP地址限制");
            $error[] = ("IP地址限制.");
        } elseif($result[0] == "50") {
            $log[] = ("內容含有敏感詞.");
            $error[] = ("內容含有敏感詞.");
        } elseif($result[0] == "51") {
            $log[] = ("手機號碼不正確.");
            $error[] = ("手機號碼不正確.");
        }
 
        return array(
            'log' => $log,
            'error' => $error,
            'msgid' => $result[0],
        );
    }
 
    function balance(){
        $params = $this->getParams();
        if($params->user && $params->pass) {
            $result = @file_get_contents('http://www.980247.com/query?u='.$params->user.'&p='.md5($params->pass).'&');
            $result = explode(',',$result);
       if ($result[0] != '')
       {
             $remain = (int)$result[1];
             $str = sprintf('短信寶增值平臺&nbsp;&nbsp;剩余:%d 條', $remain);
             return $str;
       }
       
            else {
                return null;
            }
        else {
            return null;
        }
    }
 
    function report($msgid){
        return "success";
    }
 
    //You can spesifically convert your gsm number. See netgsm for example
    function utilgsmnumber($number){
        return $number;
    }
    //You can spesifically convert your message
    function utilmessage($message){
        return $message;
    }
}
 
return array(
    'value' => 'smsbao',
    'label' => '短信寶',
    'fields' => array(
        'user','pass'
    )
);

4:aktuel_sms.php文件則是控制后臺短信配置,激活相關的文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
<?php
/* WHMCS SMS Addon with GNU/GPL Licence
 * AktuelHost - http://www.aktuelhost.com
 *
 *
 * Developed at Aktuel Sistem ve Bilgi Teknolojileri (www.aktuelsistem.com)
 * */
if (!defined("WHMCS"))
   die("This file cannot be accessed directly");
 
function aktuel_sms_config() {
    $configarray = array(
        "name" => "SMS 短信服務平臺",
        "description" => "WHMCS 短信服務平臺中文版",
        "version" => "1.1.8(20161021)",
        "author" => "imnpc",
      "language" => "chinese",
    );
    return $configarray;
}
 
function aktuel_sms_activate() {
 
    $query = "CREATE TABLE IF NOT EXISTS `mod_aktuelsms_messages` (`id` int(11) NOT NULL AUTO_INCREMENT,`sender` varchar(40) NOT NULL,`to` varchar(15) DEFAULT NULL,`text` text,`msgid` varchar(50) DEFAULT NULL,`status` varchar(10) DEFAULT NULL,`errors` text,`logs` text,`user` int(11) DEFAULT NULL,`datetime` datetime NOT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
   mysql_query($query);
 
    $query = "CREATE TABLE IF NOT EXISTS `mod_aktuelsms_settings` (`id` int(11) NOT NULL AUTO_INCREMENT,`api` varchar(40) CHARACTER SET utf8 NOT NULL,`apiparams` varchar(500) CHARACTER SET utf8 NOT NULL,`dateformat` varchar(12) CHARACTER SET utf8 DEFAULT NULL,`version` varchar(6) CHARACTER SET utf8 DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
   mysql_query($query);
 
    $query = "INSERT INTO `mod_aktuelsms_settings` (`api`, `apiparams`,`dateformat`, `version`) VALUES ('', '','%y.%m.%d','1.1.8');";
   mysql_query($query);
 
    $query = "CREATE TABLE IF NOT EXISTS `mod_aktuelsms_templates` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) CHARACTER SET utf8 NOT NULL,`type` enum('client','admin') CHARACTER SET utf8 NOT NULL,`admingsm` varchar(255) CHARACTER SET utf8 NOT NULL,`template` varchar(240) CHARACTER SET utf8 NOT NULL,`variables` varchar(500) CHARACTER SET utf8 NOT NULL,`active` tinyint(1) NOT NULL,`extra` varchar(3) CHARACTER SET utf8 NOT NULL,`description` text CHARACTER SET utf8,PRIMARY KEY (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
   mysql_query($query);
 
    //Creating hooks
   require_once("smsclass.php");
    $class = new AktuelSms();
    $class->checkHooks();
 
    return array('status'=>'success','description'=>'SMS 短信服務平臺激活成功.');
}
 
function aktuel_sms_deactivate() {
 
    $query = "DROP TABLE `mod_aktuelsms_templates`";
   mysql_query($query);
    $query = "DROP TABLE `mod_aktuelsms_settings`";
    mysql_query($query);
    $query = "DROP TABLE `mod_aktuelsms_messages`";
    mysql_query($query);
 
    return array('status'=>'success','description'=>'SMS 短信服務平臺已經禁用.');
}
 
function aktuel_sms_upgrade($vars) {
    $version = $vars['version'];
 
    switch($version){
        case "1":
        case "1.0.1":
            $sql = "ALTER TABLE `mod_aktuelsms_messages` ADD `errors` TEXT NULL AFTER `status` ;ALTER TABLE `mod_aktuelsms_templates` ADD `description` TEXT NULL ;ALTER TABLE `mod_aktuelsms_messages` ADD `logs` TEXT NULL AFTER `errors` ;";
            mysql_query($sql);
        case "1.1":
            $sql = "ALTER TABLE `mod_aktuelsms_settings` CHANGE `apiparams` `apiparams` VARCHAR( 500 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ;";
            mysql_query($sql);
        case "1.1.1":
        case "1.1.2":
            $sql = "UPDATE `mod_aktuelsms_settings` SET dateformat = '%y.%m.%d';";
            mysql_query($sql);
        case "1.1.3":
        case "1.1.4":
            $sql = "ALTER TABLE `mod_aktuelsms_templates` CHANGE `name` `name` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,CHANGE `type` `type` ENUM( 'client', 'admin' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,CHANGE `admingsm` `admingsm` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,CHANGE `template` `template` VARCHAR( 240 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,CHANGE `variables` `variables` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,CHANGE `extra` `extra` VARCHAR( 3 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,CHANGE `description` `description` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;";
            mysql_query($sql);
            $sql = "ALTER TABLE `mod_aktuelsms_settings` CHANGE `api` `api` VARCHAR( 40 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,CHANGE `apiparams` `apiparams` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,CHANGE `dateformat` `dateformat` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,CHANGE `version` `version` VARCHAR( 6 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;";
            mysql_query($sql);
            $sql = "ALTER TABLE `mod_aktuelsms_messages` CHANGE `sender` `sender` VARCHAR( 40 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,CHANGE `to` `to` VARCHAR( 15 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,CHANGE `text` `text` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,CHANGE `msgid` `msgid` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,CHANGE `status` `status` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,CHANGE `errors` `errors` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,CHANGE `logs` `logs` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;";
            mysql_query($sql);
 
            $sql = "ALTER TABLE `mod_aktuelsms_templates` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
            mysql_query($sql);
            $sql = "ALTER TABLE `mod_aktuelsms_settings` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
            mysql_query($sql);
            $sql = "ALTER TABLE `mod_aktuelsms_messages` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
            mysql_query($sql);
        case "1.1.5":
        case "1.1.6":
        case "1.1.7":
            break;
 
    }
 
    $class = new AktuelSms();
    $class->checkHooks();
}
 
function aktuel_sms_output($vars){
   $modulelink = $vars['modulelink'];
   $version = $vars['version'];
   $LANG = $vars['_lang'];
   //putenv("TZ=Europe/Istanbul");
 
    $class = new AktuelSms();
 
    $tab = $_GET['tab'];
    echo '
    <div id="clienttabs">
        <ul class="nav nav-tabs admin-tabs">
            <li class="' . (($tab == "settings")?"active":"tab") . '"><a href="addonmodules.php?module=aktuel_sms&tab=settings">'.$LANG['settings'].'</a></li>
            <li class="' . ((@$_GET['type'] == "client")?"active":"tab") . '"><a href="addonmodules.php?module=aktuel_sms&tab=templates&type=client">'.$LANG['clientsmstemplates'].'</a></li>
            <li class="' . ((@$_GET['type'] == "admin")?"active":"tab") . '"><a href="addonmodules.php?module=aktuel_sms&tab=templates&type=admin">'.$LANG['adminsmstemplates'].'</a></li>
            <li class="' . (($tab == "sendbulk")?"active":"tab") . '"><a href="addonmodules.php?module=aktuel_sms&tab=sendbulk">'.$LANG['sendsms'].'</a></li>
            <li class="' . (($tab == "messages")?"active":"tab") . '"><a href="addonmodules.php?module=aktuel_sms&amp;tab=messages">'.$LANG['messages'].'</a></li>
        </ul>
    </div>
    ';
    if (!isset($tab) || $tab == "settings")
    {
        /* UPDATE SETTINGS */
        if ($_POST['params']) {
            $update = array(
                "api" => $_POST['api'],
                "apiparams" => json_encode($_POST['params']),
                'dateformat' => $_POST['dateformat']
            );
            update_query("mod_aktuelsms_settings", $update, "");
        }
        /* UPDATE SETTINGS */
 
        $settings = $class->getSettings();
        $apiparams = json_decode($settings['apiparams']);
 
 
        $classers = $class->getSenders();
        $classersoption = '';
        $classersfields = '';
        foreach($classers as $classer){
            $classersoption .= '<option value="'.$classer['value'].'" ' . (($settings['api'] == $classer['value'])?"selected=\"selected\"":"") . '>'.$classer['label'].'</option>';
            if($settings['api'] == $classer['value']){
                foreach($classer['fields'] as $field){
                    $classersfields .=
                        '<tr>
                            <td class="fieldlabel" width="30%">'.$LANG[$field].'</td>
                            <td class="fieldarea"><input type="text" name="params['.$field.']" size="40" value="' . $apiparams->$field . '"></td>
                        </tr>';
                }
            }
        }
 
        echo '
        <script type="text/javascript">
            $(document).ready(function(){
                $("#api").change(function(){
                    $("#form").submit();
                });
            });
        </script>
        <form action="" method="post" id="form">
        <input type="hidden" name="action" value="save" />
            <div style="text-align: left;background-color: whiteSmoke;margin: 0px;padding: 10px;border: 1px solid #ddd;">
                <table class="form" width="100%" border="0" cellspacing="2" cellpadding="3">
                    <tbody>
                        <tr>
                            <td class="fieldlabel" width="30%">'.$LANG['sender'].'</td>
                            <td class="fieldarea">
                                <select name="api" id="api">
                                    '.$classersoption.'
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td class="fieldlabel" width="30%">'.$LANG['senderid'].'</td>
                            <td class="fieldarea"><input type="text" name="params[senderid]" size="40" value="' . $apiparams->senderid . '"> e.g:  WHMCS</td>
                        </tr>
                        '.$classersfields.'
                        <tr>
                            <td class="fieldlabel" width="30%">'.$LANG['signature'].'</td>
                            <td class="fieldarea"><input type="text" name="params[signature]" size="40" value="' . $apiparams->signature . '"> e.g:  www.whmcs.com</td>
                        </tr>
                        <tr>
                            <td class="fieldlabel" width="30%">'.$LANG['dateformat'].'</td>
                            <td class="fieldarea"><input type="text" name="dateformat" size="40" value="' . $settings['dateformat'] . '"> e.g:  %y.%m.%d (2016.01.18)</td>
                        </tr>
                    </tbody>
                </table>
            </div>
            <br/>
            <p align="center"><input type="submit" value="'.$LANG['save'].'" class="btn btn-primary" /></p>
        </form>
        ';
    }
    elseif ($tab == "templates")
    {
        if ($_POST['submit']) {
            $where = array("type" => array("sqltype" => "LIKE""value" => $_GET['type']));
            $result = select_query("mod_aktuelsms_templates""*", $where);
            while ($data = mysql_fetch_array($result)) {
                if ($_POST[$data['id'] . '_active'] == "on") {
                    $tmp_active = 1;
                else {
                    $tmp_active = 0;
                }
                $update = array(
                    "template" => $_POST[$data['id'] . '_template'],
                    "active" => $tmp_active
                );
 
                if(isset($_POST[$data['id'] . '_extra'])){
                    $update['extra']= trim($_POST[$data['id'] . '_extra']);
                }
                if(isset($_POST[$data['id'] . '_admingsm'])){
                    $update['admingsm']= $_POST[$data['id'] . '_admingsm'];
                    $update['admingsm'] = str_replace(" ","",$update['admingsm']);
                }
                update_query("mod_aktuelsms_templates", $update, "id = " . $data['id']);
            }
        }
 
        echo '<form action="" method="post">
        <input type="hidden" name="action" value="save" />
            <div style="text-align: left;background-color: whiteSmoke;margin: 0px;padding: 10px;border: 1px solid #ddd;">
                <table class="form" width="100%" border="0" cellspacing="2" cellpadding="3">
                    <tbody>';
        $where = array("type" => array("sqltype" => "LIKE""value" => $_GET['type']));
        $result = select_query("mod_aktuelsms_templates""*", $where);
 
        while ($data = mysql_fetch_array($result)) {
            if ($data['active'] == 1) {
                $active = 'checked = "checked"';
            else {
                $active = '';
            }
            $desc = json_decode($data['description']);
            if(isset($desc->$LANG['lang'])){
                $name = $desc->$LANG['lang'];
            }else{
                $name = $data['name'];
            }
            echo '
                <tr>
                    <td class="fieldlabel" width="30%">' . $name . '</td>
                    <td class="fieldarea">
                        <textarea cols="50" name="' . $data['id'] . '_template">' . $data['template'] . '</textarea>
                    </td>
                </tr>';
            echo '
            <tr>
                <td class="fieldlabel" width="30%" style="float:right;">'.$LANG['active'].'</td>
                <td><input type="checkbox" value="on" name="' . $data['id'] . '_active" ' . $active . '></td>
            </tr>
            ';
            echo '
            <tr>
                <td class="fieldlabel" width="30%" style="float:right;">'.$LANG['parameter'].'</td>
                <td>' . $data['variables'] . '</td>
            </tr>
            ';
 
            if(!empty($data['extra'])){
                echo '
                <tr>
                    <td class="fieldlabel" width="30%">'.$LANG['ekstra'].'</td>
                    <td class="fieldarea">
                        <input type="text" name="'.$data['id'].'_extra" value="'.$data['extra'].'">
                    </td>
                </tr>
                ';
            }
            if($_GET['type'] == "admin"){
                echo '
                <tr>
                    <td class="fieldlabel" width="30%">'.$LANG['admingsm'].'</td>
                    <td class="fieldarea">
                        <input type="text" name="'.$data['id'].'_admingsm" value="'.$data['admingsm'].'">
                        '.$LANG['admingsmornek'].'
                    </td>
                </tr>
                ';
            }
            echo '<tr>
                <td colspan="2"><hr></td>
            </tr>';
        }
        echo '
        </tbody>
                </table>
            </div>
            <br/>
            <p align="center"><input type="submit" name="submit" value="'.$LANG['save'].'" class="btn btn-primary" /></p>
        </form>';
 
    }
    elseif ($tab == "messages")
    {
        if(!empty($_GET['deletesms'])){
            $smsid = (int) $_GET['deletesms'];
            $sql = "DELETE FROM mod_aktuelsms_messages WHERE id = '$smsid'";
            mysql_query($sql);
        }
        echo  '
        <link rel="stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css" type="text/css">
        <link rel="stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables_themeroller.css" type="text/css">
        <script type="text/javascript">
            $(document).ready(function(){
                $(".datatable").dataTable();
            });
        </script>-->
 
        <div style="text-align: left;background-color: whiteSmoke;margin: 0px;padding: 10px;border: 1px solid #ddd;">
        <table class="datatable" border="0" cellspacing="1" cellpadding="3">
        <thead>
            <tr>
                <th>#</th>
                <th>'.$LANG['client'].'</th>
                <th>'.$LANG['gsmnumber'].'</th>
                <th>'.$LANG['message'].'</th>
                <th>'.$LANG['datetime'].'</th>
                <th>'.$LANG['status'].'</th>
                <th width="20"></th>
            </tr>
        </thead>
        <tbody>
        ';
 
        // Getting pagination values.
        $page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
        $limit = (isset($_GET['limit']) && $_GET['limit']<=50) ? (int)$_GET['limit'] : 10;
        $start  = ($page > 1) ? ($page*$limit)-$limit : 0;
        $order = isset($_GET['order']) ? $_GET['order'] : 'DESC';
        /* Getting messages order by date desc */
        $sql = "SELECT `m`.*,`user`.`firstname`,`user`.`lastname`
        FROM `mod_aktuelsms_messages` as `m`
        JOIN `tblclients` as `user` ON `m`.`user` = `user`.`id`
        ORDER BY `m`.`datetime` {$order} limit {$start},{$limit}";
        $result = mysql_query($sql);
        $i = 0;
 
        //Getting total records
        $total = "SELECT count(id) as toplam FROM `mod_aktuelsms_messages`";
        $sonuc = mysql_query($total);
        $sonuc = mysql_fetch_array($sonuc);
        $toplam = $sonuc['toplam'];
 
        //Page calculation
        $sayfa = ceil($toplam/$limit);
 
        while ($data = mysql_fetch_array($result)) {
            if($data['msgid'] && $data['status'] == ""||$data['status'] == "未發送"||$data['status'] == "發送成功"){
                $status = $class->getReport($data['msgid']);
                mysql_query("UPDATE mod_aktuelsms_messages SET status = '$status' WHERE id = ".$data['id']."");
            }else{
                $status = $data['status'];
            }
 
            $i++;
            echo  '<tr>
            <td>'.$data['id'].'</td>
            <td><a href="clientssummary.php?userid='.$data['user'].'">'.$data['firstname'].' '.$data['lastname'].'</a></td>
            <td>'.$data['to'].'</td>
            <td>'.$data['text'].'</td>
            <td>'.$data['datetime'].'</td>
            <td>'.$data['status'].'</td>
            <td><a href="addonmodules.php?module=aktuel_sms&tab=messages&deletesms='.$data['id'].'" title="'.$LANG['delete'].'"><img src="images/delete.gif" width="16" height="16" border="0" alt="Delete"></a></td></tr>';
        }
        /* Getting messages order by date desc */
 
        echo '
        </tbody>
        </table>
 
        ';  
        $list="";
        for($a=1;$a<=$sayfa;$a++)
        {
            $selected = ($page==$a) ? 'selected="selected"' '';
            $list.="<option value='addonmodules.php?module=aktuel_sms&tab=messages&page={$a}&limit={$limit}&order={$order}' {$selected}>{$a}</option>";
        }
        echo "<select  onchange=\"this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);\">{$list}</select></div>";
 
    }
    elseif($tab=="sendbulk")
    {
        $settings = $class->getSettings();
 
        if(!empty($_POST['client'])){
            $userinf = explode("_",$_POST['client']);
            $userid = $userinf[0];
            $gsmnumber = $userinf[1];
 
            $class->setGsmnumber($gsmnumber);
            $class->setMessage($_POST['message']);
            $class->setUserid($userid);
 
            $result = $class->send();
            if($result == false){
                echo $class->getErrors();
            }else{
                echo $LANG['smssent'].' '.$gsmnumber;
            }
 
            if($_POST["debug"] == "ON"){
                $debug = 1;
            }
        }
 
        $userSql = "SELECT `id`,`firstname`, `lastname`, `phonenumber` as `gsmnumber`
        FROM `tblclients` ORDER BY `tblclients`.`id` ASC";
        $clients = '';
        $result = mysql_query($userSql);
        while ($data = mysql_fetch_array($result)) {
            $clients .= '<option value="'.$data['id'].'_'.$data['gsmnumber'].'">'.$data['firstname'].' '.$data['lastname'].' (#'.$data['id'].')</option>';
        }
        echo '
        <script>
        jQuery.fn.filterByText = function(textbox, selectSingleMatch) {
          return this.each(function() {
            var select = this;
            var options = [];
            $(select).find("option").each(function() {
              options.push({value: $(this).val(), text: $(this).text()});
            });
            $(select).data("options", options);
            $(textbox).bind("change keyup", function() {
              var options = $(select).empty().scrollTop(0).data("options");
              var search = $.trim($(this).val());
              var regex = new RegExp(search,"gi");
 
              $.each(options, function(i) {
                var option = options[i];
                if(option.text.match(regex) !== null) {
                  $(select).append(
                     $("<option>").text(option.text).val(option.value)
                  );
                }
              });
              if (selectSingleMatch === true &&
                  $(select).children().length === 1) {
                $(select).children().get(0).selected = true;
              }
            });
          });
        };
        $(function() {
          $("#clientdrop").filterByText($("#textbox"), true);
        });
        </script>';
        echo '<form action="" method="post">
        <input type="hidden" name="action" value="save" />
            <div style="text-align: left;background-color: whiteSmoke;margin: 0px;padding: 10px;border: 1px solid #ddd;">
                <table class="form" width="100%" border="0" cellspacing="2" cellpadding="3">
                    <tbody>
                        <tr>
                            <td class="fieldlabel" width="30%">'.$LANG['client'].'</td>
                            <td class="fieldarea">
                                <input id="textbox" type="text" placeholder="請輸入用戶名篩選" style="width:498px;padding:5px"><br>
                                <select name="client" multiple id="clientdrop" style="width:512px;padding:5px">
                                    <option value="">'.$LANG['selectclient'].'</option>
                                    ' . $clients . '
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td class="fieldlabel" width="30%">'.$LANG['mesaj'].'</td>
                            <td class="fieldarea">
                               <textarea cols="70" rows="20" name="message" style="width:498px;padding:5px"></textarea>
                            </td>
                        </tr>
                        <tr>
                            <td class="fieldlabel" width="30%">'.$LANG['debug'].'</td>
                            <td class="fieldlabel"><input type="checkbox" name="debug" value="ON"></td>
                        </tr>
                    </tbody>
                </table>
            </div>
            <br/>
            <p align="center"><input type="submit" value="'.$LANG['send'].'" class="btn btn-primary" /></p>
        </form>';
 
        if(isset($debug)){
            echo $class->getLogs();
        }
    }
  
 
    $credit =  $class->getBalance();
    if($credit){
        echo '
            <div style="text-align: left;background-color: whiteSmoke;margin: 0px;padding: 10px;border: 1px solid #ddd;">
            <b>'.$LANG['credit'].':</b> '.$credit.'
            </div>';
    }
 
}

經過上面的替換,短信寶的短信平臺已經替換成功了,可以正常使用了。進行測試發送:

報備一下短信寶的VIP模板,這樣就可以走短信寶的優質通道了,即便遇到敏感文字我們都不會人工審核,短信內容3~5秒就可送達。

另外:完整的whmcsv7.60系統短信寶插件,點擊此鏈接 下載及查看安裝流程。

開源插件

最新更新

電商類

CMS類

微信類

文章標簽
精品深夜福利视频,日本中文字幕不卡,久久久久国产,av综合电影网站
精品三级av| 欧美一级网站| 亚洲精品无播放器在线播放| 一区三区视频| 久久久久美女| 九九色在线视频| 高清久久一区| 国产高清亚洲| 精品国内亚洲2022精品成人 | 亚洲精品福利| 少妇精品久久久一区二区| 国产91精品对白在线播放| 国产精品伦理久久久久久| 久久精品资源| 国产不卡精品| 久久只有精品| 久久伊人久久| 久久精品国产久精国产| 91一区二区三区四区| 国产不卡精品| 国产v日韩v欧美v| 亚洲国内精品| 亚洲一级特黄| 亚洲国产专区校园欧美| 午夜国产精品视频免费体验区| 欧美特黄一区| 亚洲一级在线| 日韩精品一区二区三区av| 日本不卡一区二区| 欧美精品国产| 国产美女高潮在线| 亚洲成人va| av资源亚洲| 欧美亚洲国产激情| 欧美日韩国产一区二区三区不卡 | 精品99在线| 国产自产自拍视频在线观看| 亚洲手机视频| 亚洲婷婷在线| 久久午夜精品一区二区| 欧美日韩a区| 欧美激情久久久久久久久久久| 午夜免费一区| 伊人www22综合色| 欧美日韩一区二区国产| 黄在线观看免费网站ktv| 蜜桃tv一区二区三区| 中文字幕免费一区二区| 你懂的国产精品永久在线| 97精品国产一区二区三区| 久久91导航| 日本亚洲欧洲无免费码在线| 久久久国产精品网站| 精品丝袜在线| 日韩中文字幕麻豆| 少妇高潮一区二区三区99| 日本va欧美va欧美va精品| 精品一区二区三区免费看| 特黄毛片在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 日本精品在线播放| 精品欠久久久中文字幕加勒比| 日韩亚洲一区在线| 五月天激情综合网| 日韩精品1区2区3区| 日产精品一区二区| 黄色亚洲精品| 日韩影片在线观看| 蜜桃精品在线| 日韩国产一二三区| 国产成人精品免费视| 日韩影院免费视频| 国产+成+人+亚洲欧洲在线| 日韩中文字幕一区二区三区| 精品一区二区三区四区五区| 乱人伦精品视频在线观看| 久久uomeier| 日韩一区精品视频| 欧美日韩一区二区三区视频播放| 蜜桃一区二区三区在线观看| 91欧美在线| 一区二区电影| 天堂√中文最新版在线| 日本亚洲视频在线| 色在线视频观看| 激情综合亚洲| 日本亚洲最大的色成网站www | 91福利精品在线观看| 日韩欧美中文| 日韩av中文字幕一区二区三区| 欧美影院三区| 美腿丝袜亚洲三区| 日韩精品欧美大片| 欧美精选一区二区三区| 久久中文在线| 国产视频网站一区二区三区| 国产在线不卡| 色在线视频观看| 欧美天堂一区| 久久在线电影| 日韩啪啪电影网| 国产精品黄色片| 日韩精品免费一区二区夜夜嗨| 国产99久久| 国产一区二区三区四区大秀| 日韩欧美美女在线观看| 国产精品17p| 国产婷婷精品| 日韩成人亚洲| 日韩成人亚洲| 国产一区二区三区探花| 你懂的亚洲视频| 日韩激情精品| 午夜亚洲福利| 尹人成人综合网| 国产主播一区| 精品五月天堂| 国产精品三p一区二区| 亚洲视频国产精品| 黄色日韩在线| 91精品一区国产高清在线gif| 国产一二在线播放| 国产精品九九| 欧美精品aa| 欧美在线看片| 日本欧美一区二区| 亚洲区国产区| 日精品一区二区三区| 男人的天堂久久精品| 亚洲激情欧美| 久久影院一区| 国产亚洲毛片| 黄色日韩精品| 视频一区二区三区在线| 国产亚洲激情| 色天使综合视频| 日韩一区二区三区在线免费观看| 日本不卡一区二区| 天堂久久一区| 日韩av在线免费观看不卡| 欧美日韩 国产精品| 久久激情综合网| 国产一区二区三区网| 精品国产一区二| 国产一二在线播放| 国产a亚洲精品| 日韩在线二区| 日韩毛片在线| 亚洲在线免费| 日韩精品久久理论片| 国产精品网址| 久久中文字幕一区二区| 国产精品日本一区二区三区在线| 国产视频一区三区| 国产美女撒尿一区二区| 日韩一级网站| 国产精品不卡| 色一区二区三区| 欧洲毛片在线视频免费观看| 91亚洲国产| 偷拍亚洲精品| 亚洲资源网站| 久久的色偷偷| 天堂av在线| 亚洲一区二区成人| 久久精品午夜| aⅴ色国产欧美| 日本在线不卡视频| 欧美激情一区| 亚洲性色av| 日韩中文字幕不卡| 国产视频一区在线观看一区免费| 精品视频在线一区二区在线| 麻豆91小视频| 狂野欧美性猛交xxxx| 天堂av在线一区| 欧美日韩在线二区| 成人精品中文字幕| 蜜臀久久精品| 91嫩草亚洲精品| 999久久久精品国产| 91免费精品| 国产精品男女| 黑丝一区二区三区| 国产精品97| 日韩和欧美一区二区| 麻豆视频一区二区| 尤物tv在线精品| 亚洲精品美女91| 日韩大片免费观看| 麻豆精品蜜桃| 日韩不卡一区二区| 国产精品久久久久久久久久10秀| 国产在线不卡| 在线观看亚洲精品福利片| 国产精品久久久久9999高清 | 欧美一区影院| 国产在线看片免费视频在线观看| 亚洲2区在线| 免费日韩精品中文字幕视频在线|