欧类av怡春院_久久久久成人网站_亚洲国产一区在线_免费在线观看污_97热在线精品视频在线观看_久久久久久色_涩涩涩999_免费不卡欧美自拍视频_亚洲精品国产无天堂网2021_中文字幕av专区_欧美成va人片在线观看_精品视频第一页


待發短信

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

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.fyzp06.cn */
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.fyzp06.cn/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.fyzp06.cn/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无码久久久久久不卡网站| 国产精品自拍网| 欧亚精品中文字幕| 91精品中文在线| 精品乱码一区二区三区| 日韩欧美一区二区视频在线播放| 亚洲无玛一区| 日韩va亚洲va欧美va清高| 久久福利电影| 一级做a爰片久久| 国产又黄又大又粗视频| 日本精品一区二区三区四区的功能| 一区二区激情小说| 欧美伊人久久久久久午夜久久久久| 日韩三级视频中文字幕| 日韩在线播放一区| 国产精品九九九| 日本一区二区免费看| www.欧美日本| 青娱乐国产视频| 一级特黄aaaaaa大片| 日本成人中文字幕| 黄色日韩网站视频| 亚洲乱码国产乱码精品精可以看| 91精品免费在线观看| 九色精品美女在线| 国产精品区免费视频| 国产一区二区在线视频播放| 波多野结衣a v在线| 波多野结衣小视频| 国产一区二区久久| 亚洲国产毛片aaaaa无费看| 精品国偷自产国产一区| 久久久免费观看| 久久99国产精品| 午夜两性免费视频| 国产一卡二卡在线播放| 少妇无码一区二区三区| 久久亚洲精华国产精华液| 欧美网站在线观看| 久久视频在线观看免费| 欧美一区二区三区成人久久片| 男人操女人免费软件| 亚洲女同二女同志奶水| 精品人妻午夜一区二区三区四区 | 国产色产综合色产在线视频 | 亚洲午夜免费电影| 中文字幕国产精品久久| 91视频免费在线| 91最新在线观看| 黄色在线免费观看| 久久久午夜电影| 精品视频www| 精品久久久三级| 荫蒂被男人添免费视频| 国产高潮流白浆喷水视频| 中文字幕在线观看不卡| 亚洲天堂网在线观看| 国产精品福利小视频| 日韩欧美猛交xxxxx无码| 超薄肉色丝袜一二三| 天天干天天做天天操| 亚洲国产一二三| 日韩在线视频导航| 久久久av水蜜桃| 国产老头和老头xxxx×| 国产精品50页| 国产91对白在线观看九色| 在线精品视频免费观看| 久久免费视频网| 三级网在线观看| 最新日韩免费视频| 美国av一区二区| 91精品办公室少妇高潮对白| 午夜精品一区二区三区在线| 狠狠干视频网站| 国产精品xxxx| 嫩草av久久伊人妇女超级a| 免费在线黄色片| 亚洲国产精品久久91精品| 国产成人综合欧美精品久久| 蜜臀av免费在线观看| 一区二区视频免费在线观看| 深夜福利日韩在线看| 亚洲国产成人精品无码区99| 一区二区乱子伦在线播放| 欧美成人免费在线观看视频| 日本少妇一级片| 亚洲老妇色熟女老太| 91国产视频在线观看| 97人人澡人人爽| 中文字幕人妻一区二区三区在线视频| 国产69精品久久777的优势| 亚洲人成在线观看网站高清| 国产精品69久久久| av资源免费看| 日韩三级视频中文字幕| 致1999电视剧免费观看策驰影院| 久久精品视频久久| 五月天激情小说综合| 成人h视频在线观看播放| 永久免费av无码网站性色av| 久久精品一区二区三区四区| 午夜精品在线观看| 欧美一区亚洲二区| 中文字幕手机在线视频| 在线看一区二区| 特级西西人体高清大胆| 中文字幕在线观看欧美| 尤物yw午夜国产精品视频| 国产精品一国产精品最新章节| 成人精品在线视频| 97在线资源站| 欧美h片在线观看| 成人综合在线观看| 久久久久北条麻妃免费看| 中文字幕亚洲精品一区| 97免费资源站| 亚洲男女一区二区三区| 岛国精品一区二区三区| 日韩精品免费在线播放| 青青草华人在线视频| 夜夜精品浪潮av一区二区三区| 国产精品va无码一区二区| 亚洲少妇30p| 国产91在线免费| 精品一区二区三区免费| 福利精品视频| 久久久www成人免费毛片麻豆 | 久青草视频在线播放| 国产情人综合久久777777| 国产视频在线视频| 蜜臀av一区二区在线免费观看| 精品视频第一区| 国产伦精品一区二区三区免费迷| 亚欧精品在线视频| 欧美二区乱c黑人| 成人三级在线视频| 免费成人美女女在线观看| 亚洲综合成人婷婷小说| 欧美午夜激情视频| 国产极品国产极品| 午夜精品一区二区三区av| 一级淫片免费看| 欧美自拍视频在线| 日本波多野结衣在线| 日本在线观看一区二区| 国产亚洲午夜高清国产拍精品| 国产中文字幕亚洲| 怡春院在线视频| 国产一区二区三区四区福利| 搡老熟女老女人一区二区| 亚洲激情久久久| 日韩欧美国产另类| 国产精品九九久久久久久久| 看片的网站亚洲| 亚洲欧美丝袜| 欧美性xxxxx极品少妇| www.黄色国产| 精品无码人妻少妇久久久久久| 国产精品国产精品国产专区不卡| 欧美一区日本一区韩国一区| 蜜桃视频在线观看一区二区| 日韩精品在线播放视频| 精品福利一二区| 影音先锋黄色网址| 97av视频在线观看| 精品在线观看免费| 91香蕉嫩草影院入口| 国产精品一品二品| 欧美一区二区三区不卡| 成人免费av片| 国内成人精品一区| 日本不卡一区二区| 艳妇乳肉豪妇荡乳xxx| 精品午夜一区二区| 色妞在线综合亚洲欧美| 亚洲日穴在线视频| 一级黄色免费网站| 欧美女同在线观看| 久久九九全国免费精品观看| 日韩黄色片在线观看| 综合视频在线观看| 色婷婷亚洲综合| 日韩在线一卡二卡| 亚洲综合精品伊人久久| 亚洲黄色尤物视频| 人人爽人人av| 精品欧美激情精品一区| 久久久久国产免费| 亚洲精品一区二区三区四区高清 | 黄色手机在线视频| 亚洲一区av在线播放| 国产又粗又黄又爽视频| 亚洲欧美日韩不卡| 91精品国产91久久综合桃花| 精品粉嫩aⅴ一区二区三区四区| 69国产精品成人在线播放| 日本中文不卡| 亚洲欧洲国产视频| 一级特黄免费视频| 成人午夜精品一区二区三区| 色婷婷久久久亚洲一区二区三区| 亚洲偷欧美偷国内偷| 亚洲xxxxx| 日本精品免费在线观看| 国产一区二区播放| 天堂蜜桃91精品| 亚洲精品欧美综合四区| 亚洲图片欧美午夜| 国产福利久久精品| 自拍偷拍一区二区三区四区| 国产精品白浆一区二小说| 免费亚洲电影在线| 岛国av午夜精品| 欧美成人第一页| 天堂av一区二区| 国产精品无码电影| av中文字幕播放| 中文字幕av一区 二区| 亚洲国产精品国自产拍av秋霞| 成人动漫网站在线观看| 日韩无套无码精品| 天堂网一区二区三区| 成人中文字幕在线| 欧美一区二区免费视频| 国产精选久久久久久| 久久网站免费视频| 日本网站在线免费观看| 国产91丝袜在线观看| 91精品国产一区二区三区| 国产精品视频免费在线| 成人黄色一区二区| 你懂的国产在线| 久久综合资源网| 亚洲精品电影在线| 国产亚洲一区二区三区在线播放| 国内av免费观看| 国产普通话bbwbbwbbw| 亚洲欧美日韩国产综合在线| 日韩视频免费在线观看| 亚洲午夜精品久久久中文影院av| 欧美人妻一区二区三区| 蜜桃av一区二区| 欧美日韩在线一区二区| 国产精品丝袜白浆摸在线| 三级a在线观看| 中文字幕人妻精品一区| 亚洲欧洲成人av每日更新| 日韩亚洲综合在线| 可以免费看的黄色网址| 91视频综合网| 成人综合在线视频| 日韩成人中文电影| 美脚丝袜一区二区三区在线观看| 中文字幕一区二区三区人妻不卡| 日韩在线观看视频一区| 欧美日韩国产中字| 国产精品6699| 视频免费1区二区三区| 国产乱码久久久| 亚洲国产成人av| 清纯唯美日韩制服另类| 精品久久久久久久无码| 中文字幕在线播放不卡| 一区二区欧美视频| 欧美亚洲第一页| 亚洲黄色小视频在线观看| 国产麻豆免费视频| 精品久久久久久久久久| 国产成人综合精品在线| 日韩a一级欧美一级| 欧美一区二区黄片| 欧美视频自拍偷拍| 91久久精品国产91性色| 日本精品一二三区| 日本不卡免费在线视频| 日韩欧美一区电影| 欧美日韩一区二区视频在线观看| 九九精品在线播放| 久久久久久av无码免费网站下载| 日韩高清精品免费观看| 国产精品少妇自拍| 欧美国产极速在线| 亚洲综合在线网站| 亚洲精品一区二区三区区别| 欧美自拍偷拍一区| 国产精品对白刺激久久久| 国产成人av一区二区三区不卡| 精品亚洲porn| 亚洲男人av在线| 69精品丰满人妻无码视频a片| 国产精品久免费的黄网站| 亚洲激情六月丁香| 国产精品免费电影| 亚洲精品乱码久久| 国内精品视频666| 国产亚洲欧洲高清一区| 成熟丰满熟妇高潮xxxxx视频| 亚洲一区在线观| 欧美在线小视频| 国产精品一码二码三码在线| 91香蕉视频在线播放| 亚洲国产成人自拍| 欧美中文在线免费| 天天躁日日躁狠狠躁av| 国产黄人亚洲片| 久久精品国产一区二区电影| 一本久道中文无码字幕av| 免费观看黄一级视频| 日韩午夜激情免费电影| 伊人狠狠色丁香综合尤物| 国产精品乱码一区二区视频| 色综合中文字幕国产| 激情视频一区二区| 久久香蕉精品视频| 亚洲一区二区三区四区在线观看| 91人成网站www| 久久国产高清视频| 亚洲视频免费在线| 国产一区二区视频在线观看| 高清国产在线观看| 国产乱国产乱300精品| 三级影片在线看| 欧美一级视频免费看| 国产精品免费电影| 日韩限制级电影在线观看| 国产精品久久久久aaaa| 亚州av在线播放| 男人晚上看的视频| www.超碰com| 福利网在线观看| 成人av网站观看| 欧美激情精品久久久久久久变态| 日韩欧美在线影院| 国产精品午夜久久| 韩国精品在线观看 | 亚洲国产精品影视| 国产精品入口免费视频一| 欧美精品一区二区三区一线天视频| 久久久久综合网| 久久精品日韩欧美| 国产精品suv一区二区69| 黄色国产在线观看| 好男人www社区| 免费看毛片的网址| 99精品国产高清一区二区| 日韩在线激情视频| 精品日韩一区二区| 欧美色videos| 一区二区免费在线播放| 中文字幕日韩免费| 中文字幕1区2区| av网站在线不卡| 青娱乐自拍偷拍| 麻豆映画在线观看| 欧美aaaaa喷水| 99高清视频有精品视频| 国产精品久久久久不卡| 97视频在线观看视频免费视频 | 亚洲少妇一区二区三区| 欧洲熟妇精品视频| 99精品人妻少妇一区二区| 精品久久久久久一区| 亚洲资源在线看| 日韩av123| 欧美大胆在线视频| 精品香蕉在线观看视频一| 色综合久久88色综合天天免费| 亚洲高清视频在线| 午夜电影一区二区| 亚洲欧美日韩国产一区二区三区| 国产成人免费在线观看| 国产成人一级电影| 成人深夜福利app| 成人免费视频免费观看| 国产.欧美.日韩| 成人午夜视频福利| www.欧美亚洲| 久久丝袜美腿综合| 不卡视频免费播放| 久久久不卡影院| 中文字幕日韩欧美一区二区三区| 国产精品免费免费| 亚洲一级二级在线| 欧美性猛交xxxx黑人猛交| 一级特黄免费视频| 国产精品亚洲lv粉色| 亚洲a视频在线| 秋霞国产午夜精品免费视频| 国产一区二区三区精品欧美日韩一区二区三区| 麻豆精品在线视频| 成人在线综合网| 国产精品色噜噜| 高跟丝袜欧美一区| 欧美一区二区三区人| 亚洲人成在线观看| 久久久影视精品| 91精品国产自产在线| 麻豆一区区三区四区产品精品蜜桃| 亚洲人体一区| 成年人黄色片视频| youjizz.com国产| 99精品中文字幕| 曰批又黄又爽免费视频| 亚洲国产精品成人久久蜜臀| 日韩一区免费视频| 丁香啪啪综合成人亚洲小说| 一区二区三区在线不卡|