91成人在线播放_欧美一区二区视频在线观看_91精品国产高清久久久久久_国产精品久久亚洲不卡4k岛国


待發(fā)短信

在線(xiàn)客服
產(chǎn)品支持 短信寶客服
合作渠道 渠道合作
服務(wù)咨詢(xún)

4001-021-502

工作時(shí)間

9:00-21:00

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

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

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

1:下面具體給大家說(shuō)一下目錄的作用 hooks文件夾 主要涉及到各種發(fā)送短信的模板代碼 例如: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},已經(jīng)登陸后臺(tái).',
    '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文件夾 主要涉及一些語(yǔ)言的配置 例如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'] = "本插件已經(jīng)有最新的版本. 請(qǐng)前往 <a href=\"https://github.com/AktuelSistem/WHMCS-SmsModule\">Github page</a> 下載最新版.<br><br>下載上傳以后刷新本頁(yè)面.<br><br>";
$_ADDONLANG['uptodate'] = "您的插件已經(jīng)是最新版.";
$_ADDONLANG['save'] = "保存";
$_ADDONLANG['gsmnumberfield'] = "手機(jī)號(hào)碼字段(自定義用戶(hù)字段)";
$_ADDONLANG['wantsmsfield'] = "訂閱短信服務(wù)字段(自定義用戶(hù)字段)";
$_ADDONLANG['user'] = "用戶(hù)名";
$_ADDONLANG['pass'] = "密碼";
$_ADDONLANG['apiid'] = "API ID";
$_ADDONLANG['email'] = "Email";
$_ADDONLANG['countrycode'] = "國(guó)家代碼";
$_ADDONLANG['senderid'] = "發(fā)送人ID(短信標(biāo)題)";
$_ADDONLANG['dateformat'] = "時(shí)間格式";
$_ADDONLANG['sender'] = "短信接口類(lèi)型";
$_ADDONLANG['settings'] = "設(shè)置";
$_ADDONLANG['signature'] = "短信簽名";
$_ADDONLANG['clientsmstemplates'] = "用戶(hù)短信模版";
$_ADDONLANG['adminsmstemplates'] = "管理員短信模版";
$_ADDONLANG['sendsms'] = "發(fā)送短信";
$_ADDONLANG['messages'] = "已發(fā)送短信";
$_ADDONLANG['update'] = "升級(jí)更新";
$_ADDONLANG['smssent'] = "<br><br><b>短信發(fā)送完畢</b>";
$_ADDONLANG['client'] = "接收用戶(hù)";
$_ADDONLANG['selectclient'] = "選擇客戶(hù)";
$_ADDONLANG['message'] = "短信內(nèi)容";
$_ADDONLANG['debug'] = "顯示輸出 log";
$_ADDONLANG['send'] = "發(fā)送";
$_ADDONLANG['debugsonuc'] = "返回結(jié)果";
$_ADDONLANG['gsmnumber'] = "手機(jī)號(hào)碼";
$_ADDONLANG['datetime'] = "發(fā)送時(shí)間";
$_ADDONLANG['status'] = "狀態(tài)";
$_ADDONLANG['delete'] = "刪除";
$_ADDONLANG['parameter'] = "可用參數(shù)標(biāo)簽:";
$_ADDONLANG['active'] = "激活";
$_ADDONLANG['ekstra'] = "擴(kuò)展 {x}";
$_ADDONLANG['admingsm'] = "管理員手機(jī)號(hào)碼";
$_ADDONLANG['admingsmornek'] = "手機(jī)號(hào)碼示例:13800138000";
$_ADDONLANG['lisans'] = "<a href=\"https://github.com/AktuelSistem/WHMCS-SmsModule\">插件開(kāi)發(fā)商網(wǎng)站</a>";
$_ADDONLANG['credit'] = "短信可用余額";
 
$_ADDONLANG['error'] = "錯(cuò)誤";
$_ADDONLANG['pending'] = "配置中";
$_ADDONLANG['sent'] = "發(fā)送中";
$_ADDONLANG['success'] = "成功";
 
$_ADDONLANG['authkey'] = "Authentication Key";
$_ADDONLANG['route'] = "SMS 發(fā)送線(xiàn)路 (例如: 4)";
$_ADDONLANG['flash'] = "彩信 (Yes=1/No=0)";
$_ADDONLANG['unicode'] = "Unicode編碼SMS (Yes=1/No=0)";
$_ADDONLANG['ignoreNdnc'] = "忽略 NDNC 號(hào)碼? (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.gjrencai.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.gjrencai.com/sms?u='.$params->user.'&p='.md5($params->pass).'&m='.$this->gsmnumber.'&c='.urlencode($this->message).'&');
 
        $result = explode(" ",$result);
 
        if($result[0] == "0") {
            $log[] = ("信息發(fā)送成功.");
        } elseif($result[0] == "30") {
            $log[] = ("密碼錯(cuò)誤.");
            $error[] = ("密碼錯(cuò)誤.");
        } elseif($result[0] == "40") {
            $log[] = ("賬號(hào)不存在.");
            $error[] = ("賬號(hào)不存在.");
        } elseif($result[0] == "41") {
            $log[] = ("余額不足.");
            $error[] = ("余額不足.");
        } elseif($result[0] == "42") {
            $log[] = ("帳號(hào)過(guò)期.");
            $error[] = ("帳號(hào)過(guò)期.");
        } elseif($result[0] == "43") {
            $log[] = ("IP地址限制");
            $error[] = ("IP地址限制.");
        } elseif($result[0] == "50") {
            $log[] = ("內(nèi)容含有敏感詞.");
            $error[] = ("內(nèi)容含有敏感詞.");
        } elseif($result[0] == "51") {
            $log[] = ("手機(jī)號(hào)碼不正確.");
            $error[] = ("手機(jī)號(hào)碼不正確.");
        }
 
        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.gjrencai.com/query?u='.$params->user.'&p='.md5($params->pass).'&');
            $result = explode(',',$result);
       if ($result[0] != '')
       {
             $remain = (int)$result[1];
             $str = sprintf('短信寶增值平臺(tái)&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文件則是控制后臺(tái)短信配置,激活相關(guān)的文件

?
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 短信服務(wù)平臺(tái)",
        "description" => "WHMCS 短信服務(wù)平臺(tái)中文版",
        "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 短信服務(wù)平臺(tái)激活成功.');
}
 
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 短信服務(wù)平臺(tái)已經(jīng)禁用.');
}
 
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'] == "未發(fā)送"||$data['status'] == "發(fā)送成功"){
                $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="請(qǐng)輸入用戶(hù)名篩選" 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>';
    }
 
}

經(jīng)過(guò)上面的替換,短信寶的短信平臺(tái)已經(jīng)替換成功了,可以正常使用了。進(jìn)行測(cè)試發(fā)送:

報(bào)備一下短信寶的VIP模板,這樣就可以走短信寶的優(yōu)質(zhì)通道了,即便遇到敏感文字我們都不會(huì)人工審核,短信內(nèi)容3~5秒就可送達(dá)。

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

開(kāi)源插件

最新更新

電商類(lèi)

CMS類(lèi)

微信類(lèi)

文章標(biāo)簽
91成人在线播放_欧美一区二区视频在线观看_91精品国产高清久久久久久_国产精品久久亚洲不卡4k岛国
91精品福利在线| 亚洲欧美日韩小说| 国产另类ts人妖一区二区| 欧美日韩在线播放三区| 26uuu精品一区二区三区四区在线| 91精品国产麻豆国产自产在线| 99久久精品国产一区| 粉嫩13p一区二区三区| 成人免费观看男女羞羞视频| 国产成人av在线影院| 国产精品99久久久久久似苏梦涵 | 亚洲视频小说图片| 日本一区二区三区四区| 国产精品久久久久影院亚瑟| 欧美国产精品中文字幕| 国产精品久久久久久久久快鸭| 国产精品亲子伦对白| 一区二区三区在线免费观看| 亚洲综合视频网| 日日摸夜夜添夜夜添国产精品 | 午夜激情综合网| 久久不见久久见免费视频7 | 最近日韩中文字幕| 亚洲国产美国国产综合一区二区| 天天综合网天天综合色| 国内精品自线一区二区三区视频| 国产电影精品久久禁18| av高清不卡在线| 欧美三级乱人伦电影| 欧美α欧美αv大片| 国产精品久久久久一区| 亚洲国产人成综合网站| 全国精品久久少妇| 成人免费视频一区| 欧美日韩午夜精品| 久久精品无码一区二区三区| 亚洲精品国产视频| 久久精品国产精品亚洲综合| 成人免费的视频| 日韩一级完整毛片| 亚洲色图欧美在线| 极品少妇一区二区三区精品视频 | 精品久久久久一区| 亚洲精品第一国产综合野| 麻豆精品久久精品色综合| 成人av在线播放网址| 中日韩免费视频中文字幕| 国产精品女同互慰在线看| 欧美一二三区精品| 亚洲成人av中文| 国产精品毛片久久久久久久| 国产亚洲自拍一区| 亚洲一区二区成人在线观看| 国产麻豆成人精品| 欧美精选在线播放| 亚洲精品国久久99热| 国产精品中文字幕一区二区三区| 色婷婷狠狠综合| 国产日韩欧美一区二区三区综合| 日韩综合小视频| 在线视频欧美精品| 《视频一区视频二区| 国产毛片精品视频| 欧美成人精品3d动漫h| 午夜欧美电影在线观看| 91官网在线观看| 国产精品久久777777| 国产乱子伦视频一区二区三区| 欧美另类久久久品| 亚洲成人av一区| 欧美日韩在线综合| 亚洲一区二区成人在线观看| 日本高清不卡aⅴ免费网站| 国产精品色婷婷| 欧美丰满一区二区免费视频 | 日韩精品久久久久久| 东方aⅴ免费观看久久av| 国产精品综合一区二区三区| 日韩一区二区三区四区五区六区| 亚洲品质自拍视频| 91丝袜国产在线播放| 国产精品妹子av| 日本久久电影网| 黄色日韩三级电影| 亚洲精品一区二区三区蜜桃下载 | 一区二区三区中文在线| 国产视频一区在线观看 | 国产精品沙发午睡系列990531| 久久精品一区二区三区不卡| 亚洲人123区| 美美哒免费高清在线观看视频一区二区 | 久久精品人人做人人爽人人| 男男gaygay亚洲| 欧美猛男男办公室激情| 一区二区三区欧美日韩| 在线亚洲一区二区| 亚洲综合久久久久| 欧美精品乱码久久久久久按摩| 亚洲国产中文字幕在线视频综合 | 日韩欧美另类在线| 亚洲欧洲日韩一区二区三区| 懂色av噜噜一区二区三区av| 亚洲国产成人在线| 色视频一区二区| 亚洲超碰97人人做人人爱| 91精品欧美久久久久久动漫 | 国产在线精品一区二区不卡了| 久久一二三国产| 国产黄人亚洲片| 亚洲精品自拍动漫在线| 欧美精品色一区二区三区| 久久精品久久久精品美女| 精品国产99国产精品| 成人免费毛片app| 福利一区在线观看| 亚洲一区二区三区在线播放| 欧美酷刑日本凌虐凌虐| 国产精品综合一区二区| 亚洲欧美另类在线| 欧美va天堂va视频va在线| 国产又粗又猛又爽又黄91精品| 大白屁股一区二区视频| 婷婷久久综合九色综合伊人色| 伊人色综合久久天天人手人婷| 欧美区一区二区三区| 久久久久久夜精品精品免费| av中文字幕一区| 五月天欧美精品| 国产亚洲欧美色| 欧美日韩一区二区三区不卡| 国产又黄又大久久| 日韩一区精品视频| 中文字幕在线一区| 欧美疯狂做受xxxx富婆| 成人免费视频一区二区| 亚洲国产精品久久久久秋霞影院| 欧美成人aa大片| 欧美色偷偷大香| 成人爱爱电影网址| 久久精品国产一区二区三| 亚洲欧美日韩系列| 久久久国产综合精品女国产盗摄| 在线观看视频91| 不卡的电影网站| 国产一区二区三区四区五区入口 | 欧美性生交片4| 不卡一二三区首页| 国内精品伊人久久久久av影院 | 亚洲成人精品在线观看| 中文字幕中文字幕一区| 欧美r级在线观看| 欧美日韩视频在线第一区 | 日韩1区2区日韩1区2区| 一区二区三区精品在线观看| 国产精品色在线| 国产亚洲视频系列| 久久久一区二区三区| 精品精品欲导航| 欧美电影精品一区二区| 欧美一区二区在线免费观看| 欧美日韩国产综合久久| 在线一区二区三区做爰视频网站| av电影天堂一区二区在线观看| 国产不卡视频在线播放| 国产成人精品三级麻豆| 国产又黄又大久久| 国产传媒欧美日韩成人| 懂色av中文一区二区三区| 国产成人三级在线观看| 风间由美中文字幕在线看视频国产欧美| 99精品桃花视频在线观看| 一区二区三区久久| 欧美视频在线一区| 欧美三级在线看| 欧美电影影音先锋| 欧美一区日本一区韩国一区| 欧美一级日韩不卡播放免费| 日韩欧美中文字幕精品| 久久夜色精品国产噜噜av| 国产亚洲欧美日韩日本| 国产精品色眯眯| 有码一区二区三区| 五月婷婷久久综合| 蓝色福利精品导航| 国产成人a级片| 日本高清不卡一区| 日韩一区二区三区视频| 精品处破学生在线二十三| 国产日本欧洲亚洲| 一区二区三区在线看| 日韩在线a电影| 国产精品一二三| 91同城在线观看| 日韩一级高清毛片| 国产精品私人影院| 亚洲一区二区精品久久av| 狠狠色丁香久久婷婷综合丁香| 成人免费高清视频在线观看| 欧美日韩电影在线| 国产欧美一区二区精品秋霞影院|