Compare commits

...

26 commits

Author SHA1 Message Date
Jackson Dou
d7d2669823 update 2023-08-22 22:54:51 +08:00
Jackson Dou
d167ea1b38 update 2023-08-21 10:54:07 +08:00
Jackson Dou
07afb48fcf Add Chinese readme file 2023-08-20 11:42:33 +08:00
Jackson Dou
bfd4e90878 update 2023-08-20 11:28:52 +08:00
Jackson Dou
950498e36b feat: set primary domain 2023-07-30 02:23:50 +08:00
Jackson Dou
65f5501d67 update 2023-07-30 00:03:31 +08:00
Jackson Dou
f2b685d9b1 update 2023-07-28 17:02:19 +08:00
Jackson Dou
45c38c6da9 update 2023-07-28 11:02:33 +08:00
Jackson Dou
6210c99f9b update 2023-07-28 10:38:23 +08:00
Jackson Dou
9b13219a10 add emails view pages 2023-07-26 15:55:13 +08:00
Jackson Dou
97d9fc7ab8 update 2023-07-26 15:29:55 +08:00
Jackson Dou
03b76efc30 update sidebar 2023-07-26 00:36:03 +08:00
Jackson Dou
14f4d5c957 update: 1. 支持安装时配置数据库自定义表前缀
2. 调整安装时数据库格式和导入逻辑
2023-07-14 01:16:39 +08:00
Jackson Dou
3a2872da2c update callback api 2023-07-13 10:16:02 +08:00
Jackson Dou
39aa23f045 update 2023-07-12 01:39:39 +08:00
Jackson Dou
8eee0ffd5b
Delete install.lock 2023-07-12 00:47:43 +08:00
Jackson Dou
59dabbc30a update 2023-07-12 00:37:59 +08:00
Jackson Dou
c967c3e8ca update: add hosting hostname 2023-07-12 00:28:37 +08:00
Jackson Dou
47cf5a7bfd update: 托管主机的主机名配置和接口 2023-07-06 01:56:30 +08:00
Jackson Dou
da431fa5ca update: 登录接口 2023-07-05 01:00:42 +08:00
Jackson Dou
3b956676b1 update 2023-06-25 18:38:28 +08:00
Jackson Dou
609f629c52 update 2023-06-24 23:13:01 +08:00
Jackson Dou
723bb93b9a update 2023-06-20 18:30:58 +08:00
Jackson Dou
a269eb6cf5 update:
1. 新增黑色主题和模式的自动和手动切换
2. SSL管理支持多个
2023-06-20 18:11:31 +08:00
Jackson Dou
d186d8dc6e update 2023-06-18 00:51:44 +08:00
Jackson Dou
517ca3680f update: 后台结构和UI调整 2023-06-16 00:58:07 +08:00
277 changed files with 5907 additions and 7292 deletions

2
.gitignore vendored
View file

@ -1,3 +1,5 @@
.DS_Store
Thumbs.db
test/
install.lock
log.txt

62
README-zh.md Normal file
View file

@ -0,0 +1,62 @@
# UIISC
简体中文 | [English](README.md)
开源虚拟主机账号和支持管理系统(针对 MyOwnFreeHost
- 演示地址 : [demo.uiisc.com](http://demo.uiisc.com)
- 官网 : [uiisc.org](http://uiisc.org "UIISC")
- 作者 : [Jackson Dou](https://github.com/jksdou "Jackson Dou")
## 功能
### 多语言
- [x] 加载默认语言配置 (/core/language/)
- [x] 语言切换
- [x] 加载自定义语言配置 (/data/language/)
### 客户管理
- [x] 账号注册
- [x] 账号验证
- [x] 账号注销
- [x] 邮箱验证
- [x] 资料修改
- [x] 登录/登出, 忘记/重置/修改密码
- [x] 申请和开通虚拟主机账号
- [x] 虚拟主机账号取消
- [x] 登录到虚拟主机控制面板
### 管理员模块
- [x] 验证域名是否可用
- [x] 创建虚拟主机账号
- [x] 修改虚拟主机账号密码
- [x] 取消或禁用虚拟主机账号
- [x] 激活或启用虚拟主机账号
- [x] 检查虚拟主机账号名下域名
- [x] 客户管理
- [x] 站点配置
- [x] 供应商接口配置
- [x] 支持多个供应商
- [x] 新闻通知管理
- [ ] 翻译文件管理
### 论坛模块
- [ ] 增删改查
## 使用截图
##### <u>套餐页面</u>
> ![套餐页面](screenshot/solution.png)
##### <u>登录页面</u>
> ![登录页面](screenshot/login.png)
##### <u>注册页面</u>
> ![注册页面](screenshot/register.png)

View file

@ -1,5 +1,7 @@
# UIISC
English | [简体中文](README-zh.md)
An Open Source Web Hosting Account and Support Management System for MyOwnFreeHost
- Demo : [demo.uiisc.com](http://demo.uiisc.com)

View file

@ -4,13 +4,13 @@ require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'view', 'goftp', 'login', 'sync'))) {
if (!in_array($action, array('list', 'add', 'edit', 'details', 'goftp', 'login', 'sync'))) {
$action = 'list';
}
require __DIR__ . '/controllers/accounts/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/accounts/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';
require __DIR__ . '/views/footer.php';

41
src/admin/api/accounts.php Executable file
View file

@ -0,0 +1,41 @@
<?php
require 'application.php';
@header('Content-Type: application/json; charset=UTF-8');
if (!checkRefererHost()) exit('{"code":403}');
$act = get('act');
switch ($act) {
case 'add':
break;
case 'primary-domain':
$account_id = post('account_id', 0);
if (empty($account_id)) {
send_response(-1, $msg = 'need account_id');
}
$domain = post('domain', null);
if (empty($domain)) {
send_response(-1, $msg = 'need domain');
}
$AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1);
if (empty($AccountInfo)) {
send_response(-1, $msg = 'account not found');
}
$DomainInfo = $DB->find('account_domain', 'domain_id', array('domain_account_id' => $account_id, 'domain_name' => $domain), null, 1);
if (empty($DomainInfo)) {
send_response(-1, $msg = 'domain not found');
}
// set the primary domain
$result = $DB->update('account', array('account_domain' => $domain), array('account_id' => $account_id));
if ($result) {
send_response(200, array('account_domain' => $domain), 'success');
} else {
send_response(-1, $msg = 'error');
}
break;
default:
send_response(-4, $msg = 'No Act');
break;
}

13
src/admin/api/application.php Executable file
View file

@ -0,0 +1,13 @@
<?php
require_once __DIR__ . '/../../core/application.php';
if (isset($_SESSION['UIISC_ADMIN'])) {
$AdminInfo = $DB->find('admin', '*', array('admin_key' => base64_decode($_SESSION['UIISC_ADMIN'])), null, 1);
if (!$AdminInfo) {
unset($_SESSION['UIISC_ADMIN']);
send_response(403, null, 'need login');
}
} else {
send_response(403, null, 'need login');
}

73
src/admin/api/clients.php Executable file
View file

@ -0,0 +1,73 @@
<?php
require 'application.php';
@header('Content-Type: application/json; charset=UTF-8');
if (!checkRefererHost()) exit('{"code":403}');
$act = get('act');
switch ($act) {
case 'add':
$form_data = array(
'client_fname' => post('client_fname'),
'client_lname' => post('client_lname'),
'client_email' => post('client_email'),
'client_phone' => post('client_phone'),
'client_company' => post('client_company'),
'client_address' => post('client_address'),
'client_country' => post('client_country'),
'client_city' => post('client_city'),
'client_pcode' => post('client_pcode'),
'client_state' => post('client_state'),
'client_password'=> hash('sha256', post('client_password', '123456')),
// 'client_key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
'client_key' => randstr(8),
'client_status' => post('client_status', 0),
'client_signup_ip' => get_client_ip(),
'client_addtime' => date('Y-m-d H:i:s'),
);
$client_id = $DB->insert('clients', $form_data);
if ($client_id) {
send_response(200, array('client_id' => $client_id), 'success');
} else {
send_response(-1, $msg = 'error');
}
break;
case 'edit':
$client_id = post('client_id');
$client_password = post('client_password', '');
$form_data = array(
'client_fname' => post('client_fname'),
'client_lname' => post('client_lname'),
'client_email' => post('client_email'),
'client_phone' => post('client_phone'),
'client_company' => post('client_company'),
'client_address' => post('client_address'),
'client_country' => post('client_country'),
'client_city' => post('client_city'),
'client_pcode' => post('client_pcode'),
'client_state' => post('client_state'),
// 'client_key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
'client_status' => post('client_status', 0),
'client_updatetime' => date('Y-m-d H:i:s'),
);
if ($client_password) {
$form_data['client_password'] = hash('sha256', $client_password);
}
$result = $DB->update('clients', $form_data, array('client_id' => $client_id));
if ($result) {
send_response(200, array('client_id' => $client_id), 'success');
} else {
send_response(-1, $msg = 'error');
}
break;
default:
send_response(-4, $msg = 'No Act');
break;
}

View file

@ -0,0 +1,36 @@
<?php
require 'application.php';
@header('Content-Type: application/json; charset=UTF-8');
if (!checkRefererHost()) exit('{"code":403}');
$act = get('act');
switch ($act) {
case 'stat':
$count_client = $DB->count('clients', array('client_status' => 1));
$count_clients = $DB->count('clients');
$count_account = $DB->count('account', array('account_status' => 1));
$count_accounts = $DB->count('account');
$count_ssl = $DB->count('ssl');
$count_ssls = $DB->count('ssl');
$count_ticket = $DB->count('tickets', "`ticket_status`=0 OR `ticket_status`=2");
$count_tickets = $DB->count('tickets');
$result = [
"count_client" => $count_client,
"count_clients" => $count_clients,
"count_account" => $count_account,
"count_accounts" => $count_accounts,
"count_ssl" => $count_ssl,
"count_ssls" => $count_ssls,
"count_ticket" => $count_ticket,
"count_tickets" => $count_tickets
];
send_response(0, $result);
break;
default:
send_response(-4, null, 'No Act');
break;
}

63
src/admin/api/emails.php Executable file
View file

@ -0,0 +1,63 @@
<?php
require 'application.php';
// if (!defined('IN_CRONLITE')) {
// exit('Access Denied');
// }
@header('Content-Type: application/json; charset=UTF-8');
// if (!checkRefererHost()) exit('{"code":403}');
$act = get('act');
switch ($act) {
case 'info':
$email_id = intval(get('email_id'));
if ($email_id > 0) {
$row = $DB->find('emails', '*', array('email_id' => $email_id), null, 1);
} else {
$row = null;
}
if (!$row) send_response(-1, null, '记录不存在');
send_response(0, $row);
break;
case 'list':
$where = " 1=1";
$email_id = intval(post('email_id'));
$email_client_id = post('email_client_id');
$email_subject = post('email_subject');
$email_to = post('email_to');
if (!empty($email_id)) {
$where .= " AND `email_id`='{$email_id}'";
}
if (!empty($email_client_id)) {
$where .= " AND `email_client_id`='{$email_client_id}'";
}
if (!empty($email_subject)) {
$where .= " AND `email_subject` like '%{$email_subject}%'";
}
if (!empty($email_to)) {
$where .= " AND `email_to` like '%{$email_to}%'";
}
$offset = intval(post('offset', 0));
$limit = intval(post('limit', 10));
$total = $DB->count('emails', $where);
if ($total > 0) {
$rows = $DB->findAll('emails', 'email_id,email_client_id,email_subject,email_date,email_to,email_read', $where, "`email_id` DESC", "$offset,$limit");
} else {
$rows = array();
}
// send_response(0, array('total' => $total, 'rows' => $rows));
exit(json_encode(array('code' => 0, 'rows' => $rows, 'total' => $total)));
break;
default:
send_response(-4, null, 'No Act');
break;
}

View file

@ -0,0 +1,88 @@
<?php
require 'application.php';
@header('Content-Type: application/json; charset=UTF-8');
if (!checkRefererHost()) exit('{"code":403}');
$act = get('act');
switch ($act) {
case 'list':
$total = $DB->count('account_hostname');
$list = array();
$total = intval($total);
if ($total > 0) {
$list = $DB->findAll('account_hostname', '*', array(), '`host_id` ASC');
}
send_response(200, array('total' => $total, 'list' => $list));
break;
case 'options':
$api_id = get('api_id');
if (!$api_id) {
send_response(-1, array());
}
$where = array(
'api_id' => $api_id
);
$list = $DB->findAll('account_hostname', 'api_id,host_id,host_name', $where, '`host_id` ASC');
send_response(200, $list);
break;
case 'add':
$hostname = post('hostname');
if (!$hostname) {
send_response(-1, null, '主机名不能为空 ');
}
$api_id = post('api_id');
if (!$api_id) {
send_response(-1, null, '托管服务提供商不能为空 ');
}
$domain = strtolower($hostname);
if (substr($domain, 0, 1) != '.') {
$domain = '.' . $domain;
}
$data = array(
'api_id' => $api_id,
'host_name' => $domain,
);
$has = $DB->count('account_hostname', $data);
if ($has && $has > 0) {
send_response(-1, null, 'Hostname aleady exsist ');
} else {
$result = $DB->insert('account_hostname', $data);
if ($result) {
send_response(0, null, 'Hostname added successfully ');
} else {
send_response(-1, null, 'Something went wrong ');
}
}
break;
case 'delete':
$host_id = post('host_id');
if (!$host_id) {
send_response(-1, null, '主机ID不能为空 ');
}
$data = array(
'host_id' => $host_id
);
$has = $DB->count('account_hostname', $data);
if (!$has > 0) {
send_response(-1, null, 'Hostname not found ');
} else {
$result = $DB->delete('account_hostname', $data);
if ($result) {
send_response(0, null, 'Hostname deleted successfully ');
} else {
send_response(-1, null, 'Something went wrong ');
}
}
default:
send_response(-4, NULL, 'No Act');
break;
}

37
src/admin/api/login.php Executable file
View file

@ -0,0 +1,37 @@
<?php
require_once __DIR__ . '/../../core/application.php';
@header('Content-Type: application/json; charset=UTF-8');
if (!checkRefererHost()) exit(json_encode(['code' => 403, 'msg' => 'error' ]));
$admin_email = post('email');
if (empty($admin_email)) {
exit(json_encode(['code' => -1, 'msg' => 'Email address is required !' ]));
}
$admin_password = post('password');
if (empty($admin_password)) {
exit(json_encode(['code' => -1, 'msg' => 'Password is required !' ]));
}
$admin_password = hash('sha256', post('password'));
$data = $DB->find('admin', '*', array(
'admin_email' => $admin_email,
'admin_password' => $admin_password,
));
if (!empty($data) && is_array($data)) {
if (isset($_POST['remember'])) {
$_SESSION['UIISC_ADMIN'] = base64_encode($data['admin_key']);
} else {
$_SESSION['UIISC_ADMIN'] = base64_encode($data['admin_key']);
}
exit(json_encode(['code' => 0, 'msg' => 'Logged in successfully !' ]));
} else {
exit(json_encode(['code' => -1, 'msg' => 'Invalid email address or password !' ]));
}

18
src/admin/api/logout.php Executable file
View file

@ -0,0 +1,18 @@
<?php
require_once __DIR__ . '/../../core/application.php';
@header('Content-Type: application/json; charset=UTF-8');
if (!checkRefererHost()) exit(json_encode(['code' => 403, 'msg' => 'error']));
// ob_start();
// session_start();
if (isset($_SESSION['UIISC_ADMIN'])) {
unset($_SESSION['UIISC_ADMIN']);
exit(json_encode(['code' => 0, 'msg' => 'Logout successfully !']));
} else {
exit(json_encode(['code' => 0, 'msg' => 'Login to continue !']));
}
exit(json_encode(['code' => -1, 'msg' => 'error !']));

View file

@ -1,4 +1,7 @@
<?php
require_once __DIR__ . '/../core/application.php';
define('ROOT_ADMIN', dirname(__FILE__));
require_once ROOT . '/core/adminarea.php';

View file

@ -4,13 +4,13 @@ require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'view', 'login'))) {
if (!in_array($action, array('list', 'add', 'edit', 'details', 'login'))) {
$action = 'list';
}
require __DIR__ . '/controllers/clients/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/clients/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';
require __DIR__ . '/views/footer.php';

View file

View file

@ -17,7 +17,7 @@ if (empty($AccountInfo)) {
redirect('admin/accounts');
}
$PageInfo['title'] = 'View Account (#' . $account_id . ')';
$PageInfo['title'] = 'Account Details';
$AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountDomainList = $DB->findAll('account_domain', '*', array('domain_account_id' => $account_id));

View file

@ -0,0 +1,22 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$account_id = get('account_id');
if (empty($account_id)) {
redirect('admin/accounts');
}
$AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1);
if (empty($AccountInfo)) {
setMessage('not found', 'danger');
redirect('admin/accounts');
}
$PageInfo['title'] = 'Account Domains';
$AccountDomainList = $DB->findAll('account_domain', '*', array('domain_account_id' => $account_id));

View file

@ -6,4 +6,4 @@ $account_id = get('account_id');
$AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1);
$ClientInfo = $DB->find('clients', '*', array('client_id' => $AccountInfo['account_client_id']), null, 1);
$PageInfo['title'] = 'Edit Account #' . $account_id;
$PageInfo['title'] = 'Account Edit';

View file

@ -37,6 +37,7 @@ if ($AccountInfo['account_status'] == 1) {
$DomainList = array();
}
if (count($DomainList) > 0) {
// import all domains
foreach($DomainList as &$item) {
// 格式 ("abc.com",1234)
$item = '("' . $item . '",' .$account_id . ')';
@ -45,7 +46,7 @@ if (count($DomainList) > 0) {
$result = $DB->delete('account_domain', array('domain_account_id' => $account_id));
// 同步到本地
// $result = $DB->insert('account_domain', $DomainList);
$sql = "INSERT INTO `hosting_account_domain` (domain_name,domain_account_id) VALUES " . implode(',', $DomainList);
$sql = "INSERT INTO `pre_account_domain` (domain_name,domain_account_id) VALUES " . implode(',', $DomainList);
$result = $DB->query($sql);
}
redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id));
redirect('admin/accounts', '', array('action' => 'details', 'account_id' => $account_id));

View file

@ -0,0 +1,4 @@
<?php
require_once ROOT . '/core/library/countries.php';
$PageInfo['title'] = 'Client Add';

View file

@ -0,0 +1,25 @@
<?php
require_once ROOT . '/core/library/countries.php';
$client_id = get('id');
if (empty($client_id)) {
redirect('admin/clients');
}
$ClientInfo = $DB->find('clients', '*', array('client_id' => $client_id), null, 1);
$CountryName = 'Not Defined';
foreach ($countries as $country) {
if ($ClientInfo['client_country'] == $country['code']) {
$CountryName = $country['name'];
break;
}
}
$PageInfo['title'] = 'Client Details';
$count_account = $DB->count('account', array('account_client_id' => $ClientInfo['client_id']));
$count_ssl = $DB->count('ssl', array('ssl_client_id' => $ClientInfo['client_id']));
$count_tickets = $DB->count('tickets', array('ticket_client_id' => $ClientInfo['client_id']));

View file

@ -2,7 +2,7 @@
require_once ROOT . '/core/library/countries.php';
$client_id = get('client_id');
$client_id = get('id');
if (empty($client_id)) {
redirect('admin/clients');
@ -20,7 +20,7 @@ foreach ($countries as $country) {
}
}
$PageInfo['title'] = 'View client (' . $client_id . ')';
$PageInfo['title'] = 'Client Edit';
$count_account = $DB->count('account', array('account_client_id' => $ClientInfo['client_id']));
$count_ssl = $DB->count('ssl', array('ssl_client_id' => $ClientInfo['client_id']));
$count_tickets = $DB->count('tickets', array('ticket_client_id' => $ClientInfo['client_id']));

View file

@ -2,7 +2,7 @@
require_once __DIR__ . '/../../application.php';
$client_id = get('client_id');
$client_id = get('id');
if (empty($client_id)) {
redirect('admin/clients');

View file

@ -1,7 +1,6 @@
<?php
$PageInfo['title'] = 'Dashboard';
$count_clients = $DB->count('clients', null);
$count_account = $DB->count('account', array('account_status' => 1));
$count_ssl = $DB->count('ssl');
$count_tickets = $DB->count('tickets', "`ticket_status`=0 OR `ticket_status`=2");
$date = date("Y-m-d H:i:s");
$mysqlversion = $DB->getColumn("select VERSION()");

View file

@ -1,37 +0,0 @@
<?php
require_once __DIR__ . '/../../application.php';
if (!isset($_POST['submit'])) {
exit('Method Not Allowed');
}
$domain = post('domain');
if (!$domain) {
redirect('admin/domain');
}
$domain = strtolower($domain);
if (substr($domain, 0, 1) != '.') {
$domain = '.' . $domain;
}
$data = array(
'extension_value' => $domain,
);
$has = $DB->count('domain_extensions', $data);
if ($has && $has > 0) {
setMessage('Extension aleady <b>exsist!</b>', 'danger');
} else {
$result = $DB->insert('domain_extensions', $data);
if ($result) {
setMessage('Extension added <b>successfully!</b>');
} else {
setMessage('Something went' . "'" . 's <b>wrong!</b>', 'danger');
}
}
redirect('admin/domain');

View file

@ -1,38 +0,0 @@
<?php
require_once __DIR__ . '/../../application.php';
if (!isset($_POST['submit'])) {
exit('Method Not Allowed');
}
$extension = post('extension');
if (!$extension) {
redirect('admin/domain');
}
$extension = strtolower($extension);
if (substr($extension, 0, 1) != '.') {
$extension = '.' . $extension;
}
$data = array(
'extension_value' => $extension,
);
$count = $DB->count('domain_extensions', $data);
if (!$count > 0) {
setMessage('Extension won' . "'" . 't <b>exsist!</b>', 'danger');
} else {
$result = $DB->delete('domain_extensions', $data);
if ($result) {
setMessage('Extension deleted <b>successfully!</b>');
} else {
setMessage('Something went' . "'" . 's <b>wrong!</b>', 'danger');
}
}
redirect('admin/domain');

View file

@ -1,9 +0,0 @@
<?php
$PageInfo['title'] = 'Domain Extensions';
$count = $DB->count('domain_extensions');
if ($count > 0) {
$rows = $DB->findAll('domain_extensions', '*', array(), '`extension_id` ASC');
}

View file

@ -0,0 +1,16 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$count = $DB->count('emails');
if ($count > 0) {
$rows = $DB->findAll('emails', '*', array(), "`email_id` DESC");
}
$status_types = array(
"未查看",
"已查看",
);
$PageInfo['title'] = $lang->I18N('Emails List');

View file

@ -0,0 +1,24 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$id = get('id');
if (empty($id)) {
redirect('admin/emails');
exit();
}
$status_types = array(
'关闭',
'打开',
);
$data = null;
if ($id > 0) {
$data = $DB->find('emails', '*', array('email_id' => $id), null, 1);
}
$PageInfo['title'] = $lang->I18N('Email Details');

View file

@ -0,0 +1,17 @@
<?php
$PageInfo['title'] = $lang->I18N('Hosting Hostname');
$api_id = get('id');
$where = array();
if ($api_id > 0) {
$has = $DB->find('account_api', 'api_id', array('api_id' => $api_id), null, 1);
if ($has) {
$where = array('api_id' => $api_id);
}
}
$count = $DB->count('account_hostname', $where);
if ($count > 0) {
$rows = $DB->findAll('account_hostname', '*', $where, '`host_id` ASC');
}

View file

@ -5,67 +5,67 @@ if (isset($_POST['submit'])) {
if (!post('api_type')) {
setMessage('need field: api_type', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_key')) {
setMessage('need field: api_key', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_username')) {
setMessage('need field: api_username', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_password')) {
setMessage('need field: api_password', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_server_domain')) {
setMessage('need field: api_server_domain', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_cpanel_url')) {
setMessage('need field: api_cpanel_url', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_server_ip')) {
setMessage('need field: api_server_ip', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_server_ftp_domain')) {
setMessage('need field: api_server_ftp_domain', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_server_sql_domain')) {
setMessage('need field: api_server_sql_domain', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_ns_1')) {
setMessage('need field: api_ns_1', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_ns_2')) {
setMessage('need field: api_ns_2', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_package')) {
setMessage('need field: api_package', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_callback_token')) {
setMessage('need field: api_callback_token', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
@ -93,5 +93,5 @@ if (isset($_POST['submit'])) {
setMessage("Something went's wrong !", 'danger');
}
redirect('admin/hosting');
redirect('admin/hosting-provider');
}

View file

@ -0,0 +1,18 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$api_id = get('id');
$api_key = get('api_key');
if ($api_id > 0) {
$data = $DB->find('account_api', '*', array('api_id' => $api_id), null, 1);
$api_callback_url = "{$site_url}/callback/{$data['api_type']}/{$data['api_key']}/{$data['api_callback_token']}";
} else if (!empty($api_key)) {
$data = $DB->find('account_api', '*', array('api_key' => $api_key), null, 1);
$api_callback_url = "{$site_url}/callback/{$data['api_type']}/{$data['api_key']}/{$data['api_callback_token']}";
} else {
$data = null;
}

View file

@ -5,72 +5,72 @@ if (isset($_POST['submit'])) {
$api_id = post('api_id');
if (!$api_id) {
setMessage('need field: api_id', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
if (!post('api_type')) {
setMessage('need field: api_type', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_key')) {
setMessage('need field: api_key', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_username')) {
setMessage('need field: api_username', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_password')) {
setMessage('need field: api_password', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_server_domain')) {
setMessage('need field: api_server_domain', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_cpanel_url')) {
setMessage('need field: api_cpanel_url', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_server_ip')) {
setMessage('need field: api_server_ip', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_server_ftp_domain')) {
setMessage('need field: api_server_ftp_domain', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_server_sql_domain')) {
setMessage('need field: api_server_sql_domain', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_ns_1')) {
setMessage('need field: api_ns_1', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_ns_2')) {
setMessage('need field: api_ns_2', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_package')) {
setMessage('need field: api_package', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_callback_token')) {
setMessage('need field: api_callback_token', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
}
$data = array(
@ -97,7 +97,7 @@ if (isset($_POST['submit'])) {
setMessage("Something went's wrong !", 'danger');
}
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
redirect('admin/hosting-provider', '', ['action' => 'edit', 'id' => $api_id]);
} else {
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
@ -105,9 +105,8 @@ if (isset($_POST['submit'])) {
$id = get('id');
if ($id > 0) {
$data = $DB->find('account_api', '*', array('api_id' => $id), null, 1);
$PageInfo = ['title' => 'Edit Hosting Provider #' . $id, 'rel' => ''];
} else {
setMessage('need field: id', 'danger');
redirect('admin/hosting');
redirect('admin/hosting-provider');
}
}

View file

@ -1,21 +0,0 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$api_id = get('id');
$api_key = get('api_key');
if ($api_id > 0) {
$data = $DB->find('account_api', '*', array('api_id' => $api_id), null, 1);
$api_callback_url = "{$site_url}/callback/{$data['api_key']}/{$data['api_callback_token']}";
$PageInfo = ['title' => 'View Hosting Provider', 'rel' => ''];
} else if (!empty($api_key)) {
$data = $DB->find('account_api', '*', array('api_key' => $api_key), null, 1);
$api_callback_url = "{$site_url}/callback/{$data['api_key']}/{$data['api_callback_token']}";
$PageInfo = ['title' => 'View Hosting Provider', 'rel' => ''];
} else {
$PageInfo = ['title' => 'Unathorized Access', 'rel' => ''];
$data = null;
}

View file

@ -17,6 +17,5 @@ if (isset($_POST['submit'])) {
}
redirect('admin/knowledgebase');
} else {
$PageInfo = ['title' => 'New Knowledgebase', 'rel' => ''];
$load_editor = 1;
}

View file

@ -7,9 +7,7 @@ if (!defined('IN_CRONLITE')) {
$knowledgebase_id = get('id');
if ($knowledgebase_id > 0) {
$PageInfo = ['title' => 'View Knowledgebase #' . $knowledgebase_id, 'rel' => ''];
$Knowledgebase = $DB->find('knowledgebase', '*', array('knowledgebase_id' => $knowledgebase_id), null, 1);
} else {
$PageInfo = ['title' => 'Unathorized Access', 'rel' => ''];
$Knowledgebase = null;
}

View file

@ -35,10 +35,8 @@ if (isset($_POST['submit'])) {
$id = get('id');
$load_editor = 1;
if ($id > 0) {
$PageInfo = ['title' => 'Edit Knowledgebase #' . $id, 'rel' => ''];
$Knowledgebase = $DB->getRow("SELECT * FROM pre_knowledgebase WHERE knowledgebase_id='{$id}' limit 1");
} else {
$PageInfo = ['title' => 'Unathorized Access', 'rel' => ''];
$Knowledgebase = null;
}
}

View file

@ -1,20 +1,16 @@
<?php
require '../../application.php';
if (!isset($_POST['submit'])) {
exit('405 / Method Not Allowed');
}
$FormData = array(
if (isset($_POST['submit'])) {
require_once __DIR__ . '/../../application.php';
$FormData = array(
'old_password' => post('old_password'),
'new_password' => post('new_password'),
'hashed_password' => hash('sha256', post('new_password')),
'user_key' => $AdminInfo['admin_key'],
'user_password' => $AdminInfo['admin_password'],
);
);
if (hash('sha256', $FormData['old_password']) == $FormData['user_password']) {
if (hash('sha256', $FormData['old_password']) == $FormData['user_password']) {
$result = $DB->update('admin', array('admin_password' => $FormData['hashed_password']), array('admin_key' => $FormData['user_key']));
if ($result) {
setMessage('Password changed successfully !');
@ -24,7 +20,8 @@ if (hash('sha256', $FormData['old_password']) == $FormData['user_password']) {
setMessage("Something went's wrong !", 'danger');
redirect('admin/settings');
}
} else {
} else {
setMessage('Invalid user password !', 'danger');
redirect('admin/settings');
}
}

View file

@ -0,0 +1,37 @@
<?php
if (isset($_POST['submit'])) {
require '../../application.php';
if (!post('api_type')) {
setMessage('need field: api_type', 'danger');
redirect('admin/ssl-provider');
}
if (!post('username')) {
setMessage('need field: username', 'danger');
redirect('admin/ssl-provider');
}
if (!post('password')) {
setMessage('need field: password', 'danger');
redirect('admin/ssl-provider');
}
$data = array(
'api_type' => post('api_type'),
'api_name' => post('api_name', ''),
'api_username' => post('username'),
'api_password' => post('password'),
);
$result = $DB->insert('ssl_api', $data);
if ($result) {
setMessage('SSL Provider added <b>successfully!</b>');
} else {
setMessage("Something went's <b>wrong!</b>", 'danger');
}
redirect('admin/ssl-provider');
}

View file

@ -0,0 +1,5 @@
<?php
$id = get('id');
$data = $DB->find('ssl_api', '*', array('id' => $id), null, 1);

View file

@ -0,0 +1,49 @@
<?php
if (isset($_POST['submit'])) {
require '../../application.php';
if (!post('id')) {
setMessage('need field: id', 'danger');
redirect('admin/ssl-provider');
}
if (!post('username')) {
setMessage('need field: username', 'danger');
redirect('admin/ssl-provider');
}
if (!post('password')) {
setMessage('need field: password', 'danger');
redirect('admin/ssl-provider');
}
$data = array(
'api_name' => post('api_name', ''),
'api_username' => post('username'),
'api_password' => post('password'),
);
$where = array(
'id' => post('id'),
);
$result = $DB->update('ssl_api', $data, $where);
if ($result) {
setMessage('SSL API updated <b>successfully!</b>');
} else {
setMessage("Something went's <b>wrong!</b>", 'danger');
}
redirect('admin/ssl-provider', '', array('action' => 'details', 'id' => post('id')));
} else {
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$id = get('id');
if ($id > 0) {
$data = $DB->find('ssl_api', '*', array('id' => $id), null, 1);
} else {
setMessage('need field: id', 'danger');
redirect('admin/ssl-provider');
}
}

View file

@ -0,0 +1,10 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$count = $DB->count('ssl_api');
if ($count > 0) {
$rows = $DB->findAll('ssl_api', '*', array(), "`id` DESC");
}

View file

@ -0,0 +1,22 @@
<?php
$ssl_id = get('id');
$SSLInfo = $DB->find('ssl', '*', array('ssl_id' => $ssl_id), null, 1);
if (!$SSLInfo) {
redirect('ssl');
}
if ($SSLInfo['ssl_status'] == 'processing') {
$Status = '<span class="label label-primary">Processing</span>';
} elseif ($SSLInfo['ssl_status'] == 'active') {
$Status = '<span class="label label-success">Active</span>';
} elseif ($SSLInfo['ssl_status'] == 'incomplete') {
$Status = '<span class="label label-info">Incomplete</span>';
} elseif ($SSLInfo['ssl_status'] == 'cancelled') {
$Status = '<span class="label label-warning">Cancelled</span>';
} elseif ($SSLInfo['ssl_status'] == 'expired') {
$Status = '<span class="label label-danger">Expired</span>';
} else {
$Status = '';
}

View file

@ -9,10 +9,4 @@ $PageInfo['title'] = $lang->I18N('SSL Certificates');
$count = $DB->count('ssl');
if ($count > 0) {
$rows = $DB->findAll('ssl', '*', array(), "`ssl_id` DESC");
require_once ROOT . '/core/handler/SSLHandler.php';
require_once ROOT . '/modules/GoGetSSL/GoGetSSLApi.php';
$apiClient = new GoGetSSLApi();
$apiClient->auth($SSLApi['api_username'], $SSLApi['api_password']);
}

View file

@ -0,0 +1,47 @@
<?php
$ssl_id = get('ssl_id');
$SSLInfo = $DB->find('ssl', '*', array('ssl_id' => $ssl_id), null, 1);
if (!$SSLInfo) {
redirect('ssl');
}
$SSLApi = $DB->find('ssl_api', '*', array('id' => $SSLInfo['ssl_api_id']), null, 1);
// 现有 token 未过期,直接使用
if ($SSLApi['api_token'] && strtotime($SSLApi['api_token_expiretime']) - 180 >= time()) {
$apiClient = new third\GoGetSSLApi($SSLApi['api_token']);
} else {
// 无 token 或现有 token 已过期
$apiClient = new third\GoGetSSLApi();
// 获取新的 token
$api_token = $apiClient->auth($SSLApi['api_username'], $SSLApi['api_password']);
// 更新入库,设置有效期 365 天
$api_token_expiretime = time() + 365 * 86400;
$DB->update('ssl_api', array('api_token' => $api_token, 'api_token_expiretime' => time() + 365 * 86400), array('id' => $id));
}
$SSLInfo = $apiClient->getOrderStatus($SSLApi['ssl_key']);
if ($SSLInfo['status'] == 'processing') {
$Status = '<span class="label label-primary">Processing</span>';
} elseif ($SSLInfo['status'] == 'active') {
$Status = '<span class="label label-success">Active</span>';
} elseif ($SSLInfo['status'] == 'incomplete') {
$Status = '<span class="label label-info">Incomplete</span>';
} elseif ($SSLInfo['status'] == 'cancelled') {
$Status = '<span class="label label-warning">Cancelled</span>';
} elseif ($SSLInfo['status'] == 'expired') {
$Status = '<span class="label label-danger">Expired</span>';
} else {
$Status = '';
}
if (empty($SSLInfo['begin_date'])) {
$Begin = '-- -- ----';
$End = $Begin;
} else {
$Begin = $SSLInfo['begin_date'];
$End = $SSLInfo['end_date'];
}

View file

@ -1,25 +0,0 @@
<?php
require_once __DIR__ . '/../../application.php';
if (!isset($_POST['submit'])) {
exit('Method Not Allowed');
}
$data = array(
'api_username' => post('username'),
'api_password' => post('password'),
);
$where = array(
'api_key' => 'FREESSL',
);
$result = $DB->update('ssl_api', $data, $where);
if ($result) {
setMessage('SSL API updated <b>successfully!</b>');
} else {
setMessage("Something went's <b>wrong!</b>", 'danger');
}
redirect('admin/settings', 'sslapi');

View file

@ -1,9 +0,0 @@
<?php
$PageInfo['title'] = 'SSL API Settings';
$where = array(
'api_key' => 'FREESSL'
);
$SSLApi = $DB->find('ssl_api', '*', $where, null, 1);

View file

@ -1,33 +0,0 @@
<?php
$ssl_id = get('ssl_id');
require_once ROOT . '/core/handler/SSLHandler.php';
require_once ROOT . '/modules/GoGetSSL/GoGetSSLApi.php';
$apiClient = new GoGetSSLApi();
$token = $apiClient->auth($SSLApi['api_username'], $SSLApi['api_password']);
$SSLInfo = $apiClient->getOrderStatus($ssl_id);
if ($SSLInfo['status'] == 'processing') {
$Status = '<span class="badge bg-primary">Processing</span>';
} elseif ($SSLInfo['status'] == 'active') {
$Status = '<span class="badge bg-success">Active</span>';
} elseif ($SSLInfo['status'] == 'incomplete') {
$Status = '<span class="badge bg-danger">Incomplete</span>';
} elseif ($SSLInfo['status'] == 'cancelled') {
$Status = '<span class="badge bg-">Cancelled</span>';
} elseif ($SSLInfo['status'] == 'expired') {
$Status = '<span class="badge bg-danger">Expired</span>';
} else {
$Status = '';
}
if (empty($SSLInfo['begin_date'])) {
$Begin = '-- -- ----';
$End = $Begin;
} else {
$Begin = $SSLInfo['begin_date'];
$End = $SSLInfo['end_date'];
}

View file

@ -6,11 +6,9 @@ if (!defined('IN_CRONLITE')) {
$ticket_id = get('ticket_id', 0);
if ($ticket_id > 0) {
$PageInfo['title'] = 'View Ticket #' . $ticket_id;
$TicketInfo = $DB->find('tickets', '*', array('ticket_id' => $ticket_id), null, 1);
$ReplyCount = $DB->count('ticket_replies', array('reply_for' => $ticket_id));
$ReplyInfo = $DB->findAll('ticket_replies', '*', array('reply_for' => $ticket_id), '`reply_id` DESC');
} else {
$PageInfo['title'] = 'Unathorized Access';
$TicketInfo = null;
}

View file

@ -12,7 +12,7 @@ if (!$ticket_id) {
exit('Access Denied');
}
$TicketInfo = $DB->find('tickets', 'ticket_email, ticket_client_id', array('ticket_id' => $ticket_id));
$TicketInfo = $DB->find('tickets', '*', array('ticket_id' => $ticket_id));
if (!$TicketInfo) {
exit('Access Denied');

18
src/admin/domain-provider.php Executable file
View file

@ -0,0 +1,18 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'details'))) {
$action = 'list';
}
$PageInfo['title'] = 'Domain Provider ' . ucfirst($action);
// require __DIR__ . '/controllers/domain-provider/' . $action . '.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/domain-provider/' . $action . '.php';
require __DIR__ . '/views/footer.php';

View file

@ -1,18 +0,0 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'view'))) {
$action = 'list';
}
$PageInfo['title'] = 'Domain Provider ' . ucfirst($action);
require __DIR__ . '/controllers/domain/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/domain/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';

12
src/admin/emails.php Executable file
View file

@ -0,0 +1,12 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'view'))) {
$action = 'list';
}
require __DIR__ . '/controllers/emails/' . $action . '.php';
require __DIR__ . '/views/emails/' . $action . '.php';

View file

@ -2,6 +2,6 @@
require_once __DIR__ . '/../core/application.php';
require_once __DIR__ . '/controllers/profile/forgetpassword.php';
require_once __DIR__ . '/views/common/header.php';
require_once __DIR__ . '/views/profile/forgetpassword.php';
require_once __DIR__ . '/views/common/footer.php';
require_once __DIR__ . '/views/login/header.php';
require_once __DIR__ . '/views/login/forgetpassword.php';
require_once __DIR__ . '/views/login/footer.php';

18
src/admin/hosting-hostname.php Executable file
View file

@ -0,0 +1,18 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list'))) {
$action = 'list';
}
$PageInfo['title'] = 'Hosting Hostname ' . ucfirst($action);
require __DIR__ . '/controllers/hosting-hostname/' . $action . '.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/hosting-hostname/' . $action . '.php';
require __DIR__ . '/views/footer.php';

18
src/admin/hosting-provider.php Executable file
View file

@ -0,0 +1,18 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'details'))) {
$action = 'list';
}
$PageInfo['title'] = 'Hosting Provider ' . ucfirst($action);
require __DIR__ . '/controllers/hosting-provider/' . $action . '.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/hosting-provider/' . $action . '.php';
require __DIR__ . '/views/footer.php';

View file

@ -1,18 +0,0 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'view'))) {
$action = 'list';
}
$PageInfo['title'] = 'Hosting Provider ' . ucfirst($action);
require __DIR__ . '/controllers/hosting/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/hosting/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';

View file

@ -2,8 +2,4 @@
require_once __DIR__ . '/application.php';
require_once __DIR__ . '/controllers/dashboard/view.php';
require_once __DIR__ . '/views/common/header.php';
require_once __DIR__ . '/views/common/navbar.php';
require_once __DIR__ . '/views/common/sidebar.php';
require_once __DIR__ . '/views/dashboard/view.php';
require_once __DIR__ . '/views/common/footer.php';

View file

@ -4,15 +4,15 @@ require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'view'))) {
if (!in_array($action, array('list', 'add', 'edit', 'details'))) {
$action = 'list';
}
$PageInfo['title'] = 'Knowledgebase ' . ucfirst($action);
require __DIR__ . '/controllers/knowledgebase/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/knowledgebase/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';
require __DIR__ . '/views/footer.php';

View file

@ -9,6 +9,6 @@ if (isset($_SESSION['UIISC_ADMIN'])) {
$PageInfo['title'] = $lang->I18N('login');
$PageInfo['rel'] = '<link href="' . $site_url . '/assets/css/login.css" rel="stylesheet" />';
require_once __DIR__ . '/views/common/header.php';
require_once __DIR__ . '/views/login/header.php';
require_once __DIR__ . '/views/login/login.php';
require_once __DIR__ . '/views/common/footer.php';
require_once __DIR__ . '/views/login/footer.php';

View file

@ -9,8 +9,8 @@ if (!in_array($action, array('list', 'add', 'edit', 'view'))) {
}
require __DIR__ . '/controllers/news/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/news/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';
require __DIR__ . '/views/footer.php';

View file

@ -4,13 +4,13 @@ require_once __DIR__ . '/application.php';
$action = get('action', 'view');
if (!in_array($action, array('edit', 'view'))) {
if (!in_array($action, array('edit', 'view', 'password'))) {
$action = 'view';
}
require __DIR__ . '/controllers/profile/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/profile/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';
require __DIR__ . '/views/footer.php';

View file

@ -2,6 +2,6 @@
require_once __DIR__ . '/../core/application.php';
require_once __DIR__ . '/controllers/profile/resetpassword.php';
require_once __DIR__ . '/views/common/header.php';
require_once __DIR__ . '/views/profile/resetpassword.php';
require_once __DIR__ . '/views/common/footer.php';
require_once __DIR__ . '/views/login/header.php';
require_once __DIR__ . '/views/login/resetpassword.php';
require_once __DIR__ . '/views/login/footer.php';

View file

@ -14,9 +14,8 @@ if (!in_array($action, array('edit', 'view'))) {
}
require __DIR__ . '/controllers/' . $section . '/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/settings/menu.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/' . $section . '/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';
require __DIR__ . '/views/footer.php';

View file

@ -0,0 +1,18 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'details', 'raw'))) {
$action = 'list';
}
$PageInfo['title'] = $lang->I18N('SSL Provider') . $lang->I18N($action);
require __DIR__ . '/controllers/ssl-provider/' . $action . '.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/ssl-provider/' . $action . '.php';
require __DIR__ . '/views/footer.php';

18
src/admin/ssl.php Executable file
View file

@ -0,0 +1,18 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'details'))) {
$action = 'list';
}
$PageInfo['title'] = 'SSL ' . $lang->I18N($action);
require __DIR__ . '/controllers/ssl/' . $action . '.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/ssl/' . $action . '.php';
require __DIR__ . '/views/footer.php';

View file

@ -1,16 +0,0 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'view'))) {
$action = 'list';
}
require __DIR__ . '/controllers/sslcert/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/sslcert/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';

View file

@ -5,15 +5,15 @@ require_once ROOT . '/core/library/tickets.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'view'))) {
if (!in_array($action, array('list', 'add', 'edit', 'details'))) {
$action = 'list';
}
$PageInfo['title'] = 'Tckets ' . ucfirst($action);
$PageInfo['title'] = 'Ticket ' . ucfirst($action);
require __DIR__ . '/controllers/tickets/' . $action . '.php';
require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php';
require __DIR__ . '/views/common/sidebar.php';
require __DIR__ . '/views/header.php';
require __DIR__ . '/views/navbar.php';
require __DIR__ . '/views/sidebar.php';
require __DIR__ . '/views/tickets/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';
require __DIR__ . '/views/footer.php';

102
src/admin/views/accounts/add.php Executable file
View file

@ -0,0 +1,102 @@
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="accounts.php"><?php echo $lang->I18N('Account List'); ?></a></li>
<li class="active"><?php echo $lang->I18N('add'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="<?php echo setURL('admin/accounts', '', array('action' => 'list')); ?>" class="btn btn-info btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('list'); ?>
</a>
</div>
<div class="panel-title">
<?php echo $PageInfo['title']; ?>
</div>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Name</label>
<input type="text" value="<?php echo $ClientInfo['client_fname'] . ' ' . $ClientInfo['client_lname']; ?>" class="form-control disabled" readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Email</label>
<input type="text" value="<?php echo $ClientInfo['client_email']; ?>" class="form-control disabled" readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required"><?php echo $lang->I18N('Phone Number'); ?></label>
<input type="text" value="<?php echo $ClientInfo['client_phone']; ?>" class="form-control disabled" readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Billing Address</label>
<input type="text" value="<?php echo $ClientInfo['client_address']; ?>" class="form-control disabled" readonly>
</div>
</div>
</div>
<div class="col-md-12"><hr /></div>
<?php if ($AccountInfo['account_status'] == '1'): ?>
<form class="row" action="controllers/accounts/password.php" method="post">
<input type="hidden" name="account_id" value="<?php echo $account_id; ?>">
<div class="col-md-6">
<div class="pb-10 px-10">
<label class="form-label required">New Password</label>
<input type="password" name="new_password" placeholder="New password here..." class="form-control">
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label">&nbsp;</label>
<button type="submit" name="submit" class="form-control btn btn-primary btn-sm text-white">Change Password</button>
</div>
</div>
<!-- <div class="col-md-12">
<div class="mb-10 px-10">
<input type="submit" name="submit" value="Change Password" class="btn btn-primary btn-sm text-white">
</div>
</div> -->
</form>
<hr>
<form
action="controllers/accounts/deactivate.php"
method="post"
onsubmit="
var reason = document.getElementsByName('reason')[0].value;
if (reason.length < 8) {
alert('Reason must be 8 characters long...');
return false;
}
return true;
">
<div class="mb-10 px-10">
<label class="form-label required">Deacivation Reason</label>
<textarea name="reason" placeholder="Deactivation reason here..." class="form-control" id="reason"></textarea>
<div class="text-muted my-10 alert alert-secondary">Your account will be deleted after 30 days of your account deactivation and all of the account data will be removed completely(This action cannot be undo).</div>
<input type="hidden" name="account_id" value="<?php echo $AccountInfo['account_id']; ?>">
</div>
<div class="mb-10 px-10">
<input type="submit" name="submit" value="Deactivate Account" class="btn btn-danger btn-sm text-white">
</div>
</form>
<?php else: ?>
<form class="row" action="controllers/accounts/reactivate.php" method="post">
<input type="hidden" name="account_id" value="<?php echo $account_id; ?>">
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label">Activate Account</label>
<button type="submit" name="submit" class="btn btn-success text-white btn-block my-5">Activate Account</button>
</div>
</div>
</form>
<?php endif;?>
</div>
</div>
</div>

View file

@ -1,14 +1,18 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card pt-0">
<div class="card-header d-flex justify-content-between align-items-center pt-15 px-5">
<h5 class="m-0">Viewing Account (# <?php echo $account_id; ?>)</h5>
<a href="accounts.php" class="btn btn-sm btn-danger">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>
</a>
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="accounts.php"><?php echo $lang->I18N('Account List'); ?></a></li>
<li class="active"><?php echo $lang->I18N('Account Details'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-title">
<?php echo $PageInfo['title']; ?>
<span class="label label-default"> ID <?php echo $account_id; ?></span>
</div>
<hr />
<div class="card-body">
</div>
<div class="panel-body">
<?php if ($AccountInfo['account_status'] == '0'): ?>
<div class="alert alert-secondary col-md-12">This account is inactive.</div>
<?php elseif ($AccountInfo['account_status'] == '2'): ?>
@ -24,13 +28,10 @@
</div>
<div class="col-md-6 py-5 text-center text-md-right">
<?php if ($AccountInfo['account_status'] == '1'): ?>
<a href="accounts.php?action=login&account_id=<?php echo $account_id; ?>" target="_blank" class="btn btn-success text-white btn-block my-5 btn-rounded"><?php echo $lang->I18N('Control Panel'); ?></a>
<a href="accounts.php?action=goftp&account_id=<?php echo $account_id; ?>" target="_blank" class="btn btn-primary text-white btn-block my-5 btn-rounded"><?php echo $lang->I18N('File Manager'); ?></a>
<?php else: ?>
<button class="btn btn-success text-white btn-block my-5 btn-rounded disabled"><?php echo $lang->I18N('Control Panel'); ?></button>
<button class="btn btn-primary text-white btn-block my-5 btn-rounded disabled"><?php echo $lang->I18N('File Manager'); ?></button>
<a href="accounts.php?action=login&account_id=<?php echo $account_id; ?>" target="_blank" class="btn btn-success btn-block"><?php echo $lang->I18N('Control Panel'); ?></a>
<a href="accounts.php?action=goftp&account_id=<?php echo $account_id; ?>" target="_blank" class="btn btn-primary btn-block"><?php echo $lang->I18N('File Manager'); ?></a>
<?php endif;?>
<a href="accounts.php?action=edit&account_id=<?php echo $account_id; ?>" class="btn btn-secondary btn-block my-5 btn-rounded"><?php echo $lang->I18N('Edit Settings'); ?></a>
<a href="accounts.php?action=edit&account_id=<?php echo $account_id; ?>" class="btn btn-secondary btn-block"><?php echo $lang->I18N('Edit Settings'); ?></a>
</div>
</div>
</div>
@ -42,130 +43,164 @@
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>Control Panel Password:</b>
<span><kbd><?php echo $AccountInfo['account_password']; ?></kbd></span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<b>Main Domain:</b>
<div class="d-flex justify-content-between align-items-center">
<b><?php echo $lang->I18N('Primary Domain'); ?>: </b>
<span><?php echo $AccountInfo['account_domain']; ?></span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>Control Panel Domain:</b>
<span><?php echo $AccountApi['api_cpanel_url']; ?></span>
</div>
</div>
<div class="col-md-4 col-sm-6 col-md-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>Status:</b>
<span>
<?php if ($AccountInfo['account_status'] == '0') {
echo '<span class="badge bg-secondary">Inactive</span>';
} elseif ($AccountInfo['account_status'] == '1') {
echo '<span class="badge bg-success">Active</span>';
} elseif ($AccountInfo['account_status'] == '2') {
echo '<span class="badge bg-danger">Suspend</span>';
} elseif ($AccountInfo['account_status'] == '3') {
echo '<span class="badge bg-danger">Deleted</span>';
} ?>
</span>
<span><?php if ($AccountInfo['account_status'] == '0'): ?>
<span class="label label-info"><?php echo $lang->I18N('Inactive'); ?></span>
<?php elseif ($AccountInfo['account_status'] == '1'): ?>
<span class="label label-success"><?php echo $lang->I18N('Active'); ?></span>
<?php elseif ($AccountInfo['account_status'] == '2'): ?>
<span class="label label-warning"><?php echo $lang->I18N('Suspended'); ?></span>
<?php elseif ($AccountInfo['account_status'] == '3'): ?>
<span class="label label-default"><?php echo $lang->I18N('Deleted'); ?></span>
<?php endif; ?></span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>Creation Date:</b>
<span><?php echo $AccountInfo['account_date']; ?></span>
<span><?php echo $AccountInfo['account_addtime']; ?></span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>Server IP:</b>
<span><?php echo $AccountApi['api_server_ip']; ?></span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>Your IP:</b>
<span><?php echo get_client_ip(); ?></span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>FTP Hostname:</b>
<span><?php echo $AccountApi['api_server_ftp_domain']; ?></span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>FTP Port:</b>
<span>21</span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>MySQL Hostname:</b>
<span><?php echo $AccountInfo['account_sql'] . '.' . $AccountApi['api_server_sql_domain']; ?></span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>Mysql Port:</b>
<span>3306</span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>Nameserver 1:</b>
<span><?php echo $AccountApi['api_ns_1']; ?></span>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5">
<div class="d-flex justify-content-between align-items-center">
<b>Nameserver 2:</b>
<span><?php echo $AccountApi['api_ns_2']; ?></span>
</div>
</div>
</div>
</div>
<hr />
<div class="card-footer">
<div class="col-md-6">
<div class="panel-footer">
<?php if ($AccountInfo['account_status'] == '1'): ?>
<a href="accounts.php?action=login&account_id=<?php echo $account_id; ?>" target="_blank" class="btn btn-success text-white m-5 btn-rounded">Control Panel</a>
<a href="accounts.php?action=goftp&account_id=<?php echo $account_id; ?>" target="_blank" class="btn btn-primary text-white m-5 btn-rounded">File Manager</a>
<?php else: ?>
<button class="btn btn-success text-white m-5 btn-rounded disabled">Control Panel</button>
<button class="btn btn-primary text-white m-5 btn-rounded disabled">File Manager</button>
<a href="accounts.php?action=login&account_id=<?php echo $account_id; ?>" target="_blank" class="btn btn-success"><?php echo $lang->I18N('Control Panel'); ?></a>
<a href="accounts.php?action=goftp&account_id=<?php echo $account_id; ?>" target="_blank" class="btn btn-primary"><?php echo $lang->I18N('File Manager'); ?></a>
<?php endif;?>
<a href="accounts.php?action=edit&account_id=<?php echo $account_id; ?>" class="btn btn-secondary m-5 btn-rounded">Edit Settings</a>
</div>
<a href="accounts.php?action=edit&account_id=<?php echo $account_id; ?>" class="btn btn-default"><?php echo $lang->I18N('Account Settings'); ?></a>
</div>
</div>
<div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0">Account Domains</h5>
<a href="accounts.php?action=sync&type=domain&account_id=<?php echo $account_id; ?>" class="btn btn-sm btn-danger">
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="accounts.php?action=sync&type=domain&account_id=<?php echo $account_id; ?>" class="btn btn-xs btn-primary">
<i class="fa fa-sync"></i> <?php echo $lang->I18N('Sync'); ?>
</a>
</div>
<hr />
<div class="mb-10 px-10">
<span class="panel-title">Account Domains</span>
</div>
<?php if (count($AccountDomainList) > 0): ?>
<ul class="list-group">
<?php foreach ($AccountDomainList as $domain): ?>
<div class='d-flex justify-content-between align-items-center m-5'>
<span><a href="http://<?php echo $domain['domain_name']; ?>" target="_blank" ref="noreferrer noopener"><?php echo $domain['domain_name']; ?></a></span>
<span><a href="accounts.php?action=goftp&account_id=<?php echo $account_id; ?>&domain=<?php echo $domain['domain_name']; ?>" class='btn btn-sm btn-square btn-secondary' target='_blank'><i class='fa fa-file-import'></i></a></span>
</div>
<?php endforeach;?>
<li class="list-group-item">
<span class="pull-right">
<button class="btn btn-info btn-xs" onclick="setPrimaryDomain(<?php echo $account_id; ?>, '<?php echo $domain['domain_name']; ?>');"><i class="fa fa-globe"></i> <?php echo $lang->I18N('Set As Primary Domain'); ?></button>
<a class="btn btn-primary btn-xs" href="accounts.php?action=goftp&account_id=<?php echo $account_id; ?>&domain=<?php echo $domain['domain_name']; ?>" target="_blank"><i class="fa fa-file-import"></i> <?php echo $lang->I18N('File Manager'); ?></a>
</span>
<a href="http://<?php echo $domain['domain_name']; ?>" target="_blank" ref="noreferrer noopener"><?php echo $domain['domain_name']; ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<div class="panel-body">
<p class='text-center'>No Domain Found</p>
<?php endif;?>
</div>
<?php endif; ?>
</div>
</div>
</div>
<script>
function setPrimaryDomain(account_id, domain) {
layer.confirm('将 ' + domain + ' 设置为主域名 ?', {
icon: 3,
btn: ['确定', '取消']
}, function() {
var ii = layer.load(2);
$.ajax({
type: 'POST',
url: 'api/accounts.php?act=primary-domain',
dataType: 'json',
data: {
account_id: account_id,
domain: domain
},
success: function(data) {
layer.close(ii);
if (data.code == 200) {
layer.msg('主域设置成功');
setTimeout(function() {
window.location.href = window.location.href;
}, 500);
} else {
layer.alert(data.msg, {
icon: 1
});
}
},
error: function(data) {
layer.close(ii);
layer.msg('服务器错误');
}
});
});
}
</script>

View file

@ -1,14 +1,29 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h5 class="m-0"><?php echo $lang->I18N('Hosting Account Settings'); ?></h5>
<a href="accounts.php?action=view&account_id=<?php echo $account_id; ?>" class="btn btn-danger btn-sm">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="accounts.php"><?php echo $lang->I18N('Account List'); ?></a></li>
<li><a href="accounts.php?action=details&account_id=<?php echo $account_id; ?>"><?php echo $lang->I18N('Account Details'); ?></a></li>
<li class="active"><?php echo $lang->I18N('Account Settings'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="<?php echo setURL('admin/accounts', '', array('action' => 'details', 'account_id' => $account_id)); ?>" class="btn btn-success btn-xs">
<i class="fa fa-info-circle"></i> <?php echo $lang->I18N('details'); ?>
</a>
<a href="<?php echo setURL('admin/accounts', '', array('action' => 'add')); ?>" class="btn btn-primary btn-xs">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
<a href="<?php echo setURL('admin/accounts', '', array('action' => 'list')); ?>" class="btn btn-info btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('list'); ?>
</a>
</div>
<hr />
<div class="card-body">
<div class="panel-title">
<?php echo $PageInfo['title']; ?>
<span class="label label-default"> ID <?php echo $account_id; ?></span>
</div>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
@ -85,7 +100,7 @@
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label">Activate Account</label>
<button type="submit" name="submit" class="btn btn-success text-white btn-block my-5 btn-rounded">Activate Account</button>
<button type="submit" name="submit" class="btn btn-success text-white btn-block my-5">Activate Account</button>
</div>
</div>
</form>
@ -93,4 +108,3 @@
</div>
</div>
</div>
</div>

View file

@ -1,15 +1,21 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15">
<h3 class="m-0"><?php echo $PageInfo['title']; ?></h3>
<a href="index.php" class="btn text-white btn-danger btn-sm">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li class="active"><?php echo $lang->I18N('Hosting Accounts'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="accounts.php?action=add" class="btn btn-primary btn-xs">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
</div>
<hr />
<div class="card-body table-responsive">
<div class="panel-title">
<?php echo $PageInfo['title']; ?>
</div>
</div>
<div class="table-responsive">
<table class="table table-stripped table-bordered table-hover">
<thead>
<th>ID</th>
@ -23,51 +29,55 @@
</thead>
<tbody>
<?php if ($count > 0): ?>
<?php foreach ($rows as $row): ?>
<?php foreach ($rows as $row): ?>
<tr>
<td><?php echo $row['account_id'];?></td>
<td><?php echo $row['account_client_id']; ?></td>
<td>
<a href="hosting.php?action=view&api_key=<?php echo $row['account_api_key']; ?>">
<a href="accounts.php?action=details&account_id=<?php echo $row['account_id']; ?>">
<?php echo $row['account_id']; ?>
</a>
</td>
<td>
<a href="clients.php?action=details&id=<?php echo $row['account_client_id']; ?>">
<?php echo $row['account_client_id']; ?>
</a>
</td>
<td>
<a href="hosting-provider.php?action=details&api_key=<?php echo $row['account_api_key']; ?>">
<?php echo $row['account_api_key']; ?>
</a>
</td>
<td><?php echo $row['account_username']; ?></td>
<td><?php echo $row['account_domain']; ?></td>
<td><?php echo $row['account_date']; ?></td>
<td><?php
if ($row['account_status'] == '0') {
$btn = ['danger', 'lock'];
echo '<span class="badge bg-danger text-white border-0">Inactive</span>';
} elseif ($row['account_status'] == '1') {
$btn = ['success', 'globe'];
echo '<span class="badge bg-success border-0 text-white">Active</span>';
} elseif ($row['account_status'] == '2') {
$btn = ['danger', 'lock'];
echo '<span class="badge bg-danger text-white border-0">Suspended</span>';
} elseif ($row['account_status'] == '3') {
$btn = ['danger', 'lock'];
echo '<span class="badge bg-danger text-white border-0">Deleted</span>';
}
?></td>
<td><?php echo $row['account_addtime']; ?></td>
<td><?php if ($row['account_status'] == '0'): ?>
<span class="label label-info"><?php echo $lang->I18N('Inactive'); ?></span>
<?php elseif ($row['account_status'] == '1'): ?>
<span class="label label-success"><?php echo $lang->I18N('Active'); ?></span>
<?php elseif ($row['account_status'] == '2'): ?>
<span class="label label-warning"><?php echo $lang->I18N('Suspended'); ?></span>
<?php elseif ($row['account_status'] == '3'): ?>
<span class="label label-default"><?php echo $lang->I18N('Deleted'); ?></span>
<?php endif; ?></td>
<td>
<a href="accounts.php?action=view&account_id=<?php echo $row['account_id']; ?>" class="btn btn-sm btn-<?php echo $btn[0]; ?> btn-rounded">
<i class="fa fa-<?php echo $btn[1]; ?>"></i> Manage
<a href="accounts.php?action=edit&account_id=<?php echo $row['account_id']; ?>" class="btn btn-success btn-xs">
<i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?>
</a>
<a href="accounts.php?action=details&account_id=<?php echo $row['account_id']; ?>" class="btn btn-primary btn-xs">
<i class="fa fa-info-circle"></i> <?php echo $lang->I18N('details'); ?>
</a>
</td>
</tr>
<?php endforeach;?>
<?php endforeach;?>
<?php else: ?>
<tr>
<td colspan="6" class="text-center">Nothing found</td>
<td colspan="8" class="text-center">Nothing found</td>
</tr>
<?php endif;?>
</tbody>
</table>
</div>
<div class="card-footer">
<p class="py-10"><?php echo $count; ?> Records Founds</p>
<div class="panel-footer">
<?php echo $count; ?> Records Founds
</div>
</div>
</div>
</div>

View file

@ -1,5 +1,4 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h3 class="m-0"><?php echo $lang->I18N('Login to Control Panel'); ?></h3>
@ -13,15 +12,14 @@
<input type="hidden" name="language" value="<?php echo $lang->get_language_value(); ?>">
<div class="text-center">
<a class="btn btn-danger btn-sm" href="accounts.php?action=view&account_id=<?php echo $account_id; ?>">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('cancel'); ?>
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Cancel'); ?>
</a>
<input type="submit" name="Submit" value="Click here to Redirect" class="btn btn-primary btn-sm text-white">
</div>
</form>
</div>
</div>
</div>
</div>
<script type="text/javascript">
// document.getElementById('account_ogin').submit(); // SUBMIT FORM
document.getElementById('account_ogin').submit(); // SUBMIT FORM
</script>

View file

@ -0,0 +1,113 @@
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="clients.php"><?php echo $lang->I18N('Client List'); ?></a></li>
<li class="active"><?php echo $lang->I18N('add'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="<?php echo setURL('admin/clients', '', array('action' => 'list')); ?>" class="btn btn-info btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('list'); ?>
</a>
</div>
<span class="panel-title"><?php echo $PageInfo['title']; ?></span>
</div>
<div class="panel-body">
<form id="form-client-add" class="row" onsubmit="return saveSubmit();" method="post">
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('Status'); ?></label>
<select class="form-control" name="client_status">
<option value="0"><?php echo $lang->I18N('Inactive'); ?></option>
<option value="1"><?php echo $lang->I18N('Active'); ?></option>
<option value="2"><?php echo $lang->I18N('Suspended'); ?></option>
</select>
</div>
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('Password'); ?></label>
<input type="text" name="client_password" value="123456" class="form-control" placeholder="默认密码 123456">
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('First Name'); ?></label>
<input type="text" name="client_fname" value="" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Last Name'); ?></label>
<input type="text" name="client_lname" value="" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Email Address'); ?></label>
<input type="text" name="client_email" value="" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Phone Number'); ?></label>
<input type="text" name="client_phone" value="" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('Billing Address'); ?></label>
<input type="text" name="client_address" value="" class="form-control">
</div>
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('Company'); ?></label>
<input type="text" name="client_company" value="" class="form-control">
</div>
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('Country'); ?></label>
<input type="text" name="client_country" value="" class="form-control">
</div>
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('State'); ?></label>
<input type="text" name="client_state" value="" class="form-control">
</div>
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('City'); ?></label>
<input type="text" name="client_city" value="" class="form-control">
</div>
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('Postal Code'); ?></label>
<input type="text" name="client_pcode" value="" class="form-control">
</div>
</form>
</div>
<div class="panel-footer">
<button class="btn btn-primary btn-sm" onclick="saveSubmit();"><?php echo $lang->I18N('Save') ?></button>
</div>
</div>
</div>
<script>
function saveSubmit() {
var ii = layer.load(2);
$.ajax({
type: 'POST',
url: 'api/clients.php?act=add',
data: $("#form-client-add").serialize(),
dataType: 'json',
success: function(res) {
layer.close(ii);
if (res.code == 200) {
layer.alert(res.msg, {
icon: 1,
closeBtn: false
}, function() {
if (res.data.client_id) {
window.location.href = 'clients.php?action=details&id=' + res.data.client_id;
} else {
window.location.href = 'clients.php';
}
});
} else {
layer.alert(res.msg, {
icon: 2
});
}
},
error: function(res) {
layer.close(ii);
layer.msg('服务器错误');
}
});
return false;
}
</script>

View file

@ -0,0 +1,81 @@
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="clients.php"><?php echo $lang->I18N('Client List'); ?></a></li>
<li class="active"><?php echo $lang->I18N('details'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="<?php echo setURL('admin/clients', '', array('action' => 'edit', 'id' => $ClientInfo['client_id'])); ?>" class="btn btn-success btn-xs">
<i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?>
</a>
<a href="<?php echo setURL('admin/clients', '', array('action' => 'add')); ?>" class="btn btn-primary btn-xs">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
<a href="<?php echo setURL('admin/clients', '', array('action' => 'list')); ?>" class="btn btn-info btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('list'); ?>
</a>
</div>
<span class="panel-title">
<?php echo $PageInfo['title']; ?>
<span class="label label-default">ID <?php echo $ClientInfo['client_id']; ?></span>
</span>
</div>
<div class="panel-body">
<table class="table table-stripped table-bordered table-hover">
<tr>
<td width="200"><?php echo $lang->I18N('First Name'); ?></td>
<td><?php echo $ClientInfo['client_fname']; ?></td>
</tr>
<tr>
<td><?php echo $lang->I18N('Last Name'); ?></td><td><?php echo $ClientInfo['client_lname']; ?></td>
</tr>
<tr>
<td><?php echo $lang->I18N('Email Address'); ?></td><td><?php echo $ClientInfo['client_email']; ?></td>
</tr>
<tr>
<td><?php echo $lang->I18N('Phone Number'); ?></td><td><?php echo $ClientInfo['client_phone']; ?></td>
</tr>
<tr>
<td><?php echo $lang->I18N('Billing Address'); ?></td><td><?php echo $ClientInfo['client_address']; ?></td>
</tr>
<tr>
<td><?php echo $lang->I18N('Company'); ?></td><td><?php echo $ClientInfo['client_company']; ?></td>
</tr>
<tr>
<td><?php echo $lang->I18N('Country'); ?></td><td><?php echo $CountryName; ?></td>
</tr>
<tr>
<td><?php echo $lang->I18N('City'); ?></td><td><?php echo $ClientInfo['client_city']; ?></td>
</tr>
<tr>
<td>Postal Code</td><td><?php echo $ClientInfo['client_pcode']; ?></td>
</tr>
<tr>
<td><?php echo $lang->I18N('Hosting Accounts'); ?></td>
<td><a href="<?php echo setURL('admin/accounts', '', array('action' => 'list', 'client_id' => $ClientInfo['client_id'])); ?>"><?php echo $count_account; ?></a></td>
</tr>
<tr>
<td><?php echo $lang->I18N('SSL Certificates'); ?></td>
<td><a href="<?php echo setURL('admin/ssl', '', array('action' => 'list', 'client_id' => $ClientInfo['client_id'])); ?>"><?php echo $count_ssl; ?></a></td>
</tr>
<tr>
<td>Support Tickets</td>
<td><a href="<?php echo setURL('admin/tickets', '', array('action' => 'list', 'client_id' => $ClientInfo['client_id'])); ?>"><?php echo $count_tickets; ?></a></td>
</tr>
</table>
</div>
<div class="panel-footer">
<a href="clients.php?action=login&id=<?php echo $ClientInfo['client_id'] ?>" target="_blank" class="btn btn-primary btn-sm">
<i class="fa fa-sign-in-alt"></i> Login as <?php echo $ClientInfo['client_fname'] ?>
</a>
<?php if ($ClientInfo['client_status'] !== '1'): ?>
<a href="controllers/clients/activate.php?client_id=<?php echo $ClientInfo['client_id']; ?>" class="btn btn-success btn-sm">Mark as Active</a>
<?php else: ?>
<a href="controllers/clients/suspend.php?client_id=<?php echo $ClientInfo['client_id']; ?>" class="btn btn-default btn-sm">Mark as Suspended</a>
<?php endif; ?>
</div>
</div>
</div>

124
src/admin/views/clients/edit.php Executable file
View file

@ -0,0 +1,124 @@
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="clients.php"><?php echo $lang->I18N('Client List'); ?></a></li>
<li><a href="<?php echo setURL('admin/clients', '', array('action' => 'details', 'id' => $ClientInfo['client_id'])); ?>"><?php echo $lang->I18N('details'); ?></a></li>
<li class="active"><?php echo $lang->I18N('edit'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="<?php echo setURL('admin/clients', '', array('action' => 'details', 'id' => $ClientInfo['client_id'])); ?>" class="btn btn-success btn-xs">
<i class="fa fa-info-circle"></i> <?php echo $lang->I18N('details'); ?>
</a>
<a href="<?php echo setURL('admin/clients', '', array('action' => 'add')); ?>" class="btn btn-primary btn-xs">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
<a href="<?php echo setURL('admin/clients', '', array('action' => 'list')); ?>" class="btn btn-info btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('list'); ?>
</a>
</div>
<span class="panel-title">
<?php echo $PageInfo['title']; ?>
<span class="label label-default">ID <?php echo $ClientInfo['client_id']; ?></span>
</span>
</div>
<div class="panel-body">
<form id="form-client-edit" class="row" onsubmit="return saveSubmit();" method="post">
<input type="hidden" name="client_id" value="<?php echo $ClientInfo['client_id']; ?>" />
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('Status'); ?></label>
<select class="form-control" name="client_status" default="<?php echo $ClientInfo['client_status']; ?>">
<option value="0"><?php echo $lang->I18N('Inactive'); ?></option>
<option value="1"><?php echo $lang->I18N('Active'); ?></option>
<option value="2"><?php echo $lang->I18N('Suspended'); ?></option>
</select>
</div>
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('Password'); ?></label>
<input type="text" name="client_password" value="" class="form-control" placeholder="留空白则不修改">
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('First Name'); ?></label>
<input type="text" name="client_fname" value="<?php echo $ClientInfo['client_fname']; ?>" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Last Name'); ?></label>
<input type="text" name="client_lname" value="<?php echo $ClientInfo['client_lname']; ?>" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Email Address'); ?></label>
<input type="text" name="client_email" value="<?php echo $ClientInfo['client_email']; ?>" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Phone Number'); ?></label>
<input type="text" name="client_phone" value="<?php echo $ClientInfo['client_phone']; ?>" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Billing Address'); ?></label>
<input type="text" name="client_address" value="<?php echo $ClientInfo['client_address']; ?>" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Company'); ?></label>
<input type="text" name="client_company" value="<?php echo $ClientInfo['client_company']; ?>" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Country'); ?></label>
<input type="text" name="country_name" value="<?php echo $CountryName; ?>" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label"><?php echo $lang->I18N('State'); ?></label>
<input type="text" name="client_state" value="<?php echo $ClientInfo['client_state']; ?>" class="form-control">
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('City'); ?></label>
<input type="text" name="client_city" value="<?php echo $ClientInfo['client_city']; ?>" class="form-control" required>
</div>
<div class="col-md-6 mb-10">
<label class="form-label required"><?php echo $lang->I18N('Postal Code'); ?></label>
<input type="text" name="client_pcode" value="<?php echo $ClientInfo['client_pcode']; ?>" class="form-control" required>
</div>
</form>
</div>
<div class="panel-footer">
<button class="btn btn-primary btn-sm" onclick="saveSubmit();"><?php echo $lang->I18N('Save') ?></button>
</div>
</div>
</div>
<script>
function saveSubmit() {
var ii = layer.load(2);
$.ajax({
type: 'POST',
url: 'api/clients.php?act=edit',
data: $("#form-client-edit").serialize(),
dataType: 'json',
success: function(res) {
layer.close(ii);
if (res.code == 200) {
layer.alert(res.msg, {
icon: 1,
closeBtn: false
}, function() {
if (res.data.client_id) {
window.location.href = 'clients.php?action=edit&id=' + res.data.client_id;
} else {
window.location.href = 'clients.php';
}
});
} else {
layer.alert(res.msg, {
icon: 2
});
}
},
error: function(res) {
layer.close(ii);
layer.msg('服务器错误');
}
});
return false;
}
</script>

View file

@ -1,12 +1,18 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card m-20 p-20">
<div class="card-header d-flex justify-content-between align-items-center">
<h3 class="m-0"><?php echo $lang->I18N('Clients List'); ?></h3>
<a href="index.php" class="btn btn-danger btn-sm pull-right"><i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?></a>
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li class="active"><?php echo $lang->I18N('Clients List'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="<?php echo setURL('admin/clients', '', array('action' => 'add')); ?>" class="btn btn-primary btn-xs">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
</div>
<hr />
<div class="card-body table-responsive">
<span class="panel-title"><?php echo $PageInfo['title']; ?></span>
</div>
<div class="table-responsive">
<table class="table table-stripped table-bordered table-hover">
<thead>
<th>ID</th>
@ -21,40 +27,42 @@
<?php if ($count > 0): ?>
<?php foreach ($rows as $value): ?>
<tr>
<td><?php echo $value['client_id']; ?></td>
<td>
<a href="clients.php?action=details&id=<?php echo $value['client_id']; ?>"><?php echo $value['client_id']; ?></a>
</td>
<td><?php echo $value['client_fname'] . " " . $value['client_lname']; ?></td>
<td><?php echo $value['client_email']; ?></td>
<td><?php echo $value['client_phone']; ?></td>
<td><?php echo $value['client_date']; ?></td>
<td><?php
if ($value['client_status'] == '0') {
$btn = ['secondary', 'cog'];
echo '<span class="badge bg-secondary badge-pill">Inactive</span>';
} elseif ($value['client_status'] == '1') {
$btn = ['success', 'globe'];
echo '<span class="badge bg-success badge-pill">Active</span>';
} elseif ($value['client_status'] == '2') {
$btn = ['danger', 'lock'];
echo '<span class="badge bg-danger badge-pill">Suspended</span>';
}
?></td>
<td><?php echo $value['client_addtime']; ?></td>
<td><?php if ($value['client_status'] == '0'): ?>
<span class="label label-warning"><?php echo $lang->I18N('Inactive'); ?></span>
<?php elseif ($value['client_status'] == '1'): ?>
<span class="label label-success"><?php echo $lang->I18N('Active'); ?></span>
<?php elseif ($value['client_status'] == '2'): ?>
<span class="label label-default"><?php echo $lang->I18N('Suspended'); ?></span>
<?php endif; ?>
</td>
<td>
<a href="clients.php?action=view&client_id=<?php echo $value['client_id']; ?>" class="btn btn-sm btn-<?php echo $btn[0] ?> btn-rounded">
<i class="fa fa-<?php echo $btn[1]; ?>"></i> Manage
<a href="<?php echo setURL('admin/clients', '', array('action' => 'edit', 'id' => $value['client_id'])); ?>" class="btn btn-success btn-xs">
<i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?>
</a>
<a href="<?php echo setURL('admin/clients', '', array('action' => 'details', 'id' => $value['client_id'])); ?>" class="btn btn-primary btn-xs">
<i class="fa fa-info-circle"></i> <?php echo $lang->I18N('details'); ?>
</a>
<a href="clients.php?action=login&id=<?php echo $value['client_id'] ?>" target="_blank" class="btn btn-info btn-xs">
<i class="fa fa-sign-in-alt"></i> <?php echo $lang->I18N('login'); ?>
</a>
</td>
</tr>
<?php endforeach;?>
<?php else: ?>
<tr>
<td colspan="6" class="text-center">Nothing found</td>
<td colspan="7" class="text-center">Nothing found</td>
</tr>
<?php endif;?>
</tbody>
</table>
</div>
<hr />
<div class="card-footer"><?php echo $count; ?> Records Founds.</div>
<div class="panel-footer"><?php echo $count; ?> Records Founds.</div>
</div>
</div>
</div>

View file

@ -1,63 +0,0 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card m-20 p-20">
<div class="card-header d-flex justify-content-between align-items-center">
<h3 class="m-0">Client Information</h3>
<a href="clients.php" class="btn btn-danger btn-sm">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>
</a>
</div>
<hr />
<div class="card-body">
<div class="row">
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('First Name'); ?>:</b> <?php echo $ClientInfo['client_fname']; ?>
</div>
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('Last Name'); ?>:</b> <?php echo $ClientInfo['client_lname']; ?>
</div>
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('Email Address'); ?>:</b> <?php echo $ClientInfo['client_email']; ?>
</div>
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('Phone Number'); ?>:</b> <?php echo $ClientInfo['client_phone']; ?>
</div>
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('Billing Address'); ?>:</b> <?php echo $ClientInfo['client_address']; ?>
</div>
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('Company'); ?>:</b> <?php echo $ClientInfo['client_company']; ?>
</div>
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('Country'); ?>:</b> <?php echo $CountryName; ?>
</div>
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('City'); ?>:</b> <?php echo $ClientInfo['client_city']; ?>
</div>
<div class="col-md-6 mb-10">
<b>Postal Code:</b> <?php echo $ClientInfo['client_pcode']; ?>
</div>
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('Hosting Accounts'); ?>:</b> <?php echo $count_account; ?>
</div>
<div class="col-md-6 mb-10">
<b><?php echo $lang->I18N('SSL Certificates'); ?>:</b> <?php echo $count_ssl; ?>
</div>
<div class="col-md-6 mb-10">
<b>Support Tickets:</b> <?php echo $count_tickets; ?>
</div>
<div class="col-md-12"><hr /></div>
<div class="col-md-12 py-5">
<a href="clients.php?action=login&client_id=<?php echo $ClientInfo['client_id'] ?>" target="_blank" class="btn btn-primary">Login as <?php echo $ClientInfo['client_fname'] ?></a>
<?php if ($ClientInfo['client_status'] !== '1'): ?>
<a href="controllers/clients/activate.php?client_id=<?php echo $ClientInfo['client_id']; ?>" class="btn btn-success text-white">Mark as Active</a>
<?php else: ?>
<a href="controllers/clients/suspend.php?client_id=<?php echo $ClientInfo['client_id']; ?>" class="btn btn-secondary">Mark as Suspended</a>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
</div>

View file

@ -1,8 +0,0 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card text-center">
<h1 class="mb-0">404</h1>
<h5 class="mb-0">Not Found</h5>
</div>
</div>
</div>

View file

@ -1,9 +0,0 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card text-center">
<h1 class="mb-0">503</h1>
<h5 class="mb-0">Unathorized Access</h5>
<p>You are trying to access a page which is not allowed to be displayed to an unauthorized user.</p>
</div>
</div>
</div>

View file

@ -1,23 +0,0 @@
</div>
<div id="hidden-area"><?php getMessage(); ?></div>
<script src="<?php echo $site_url; ?>/assets/jquery/jquery.min.js"></script>
<!-- <script src="<?php echo $site_url; ?>/assets/bootstrap/js/bootstrap.min.js?_=<?php echo $static_release; ?>"></script> -->
<script src="<?php echo $site_url; ?>/assets/js/halfmoon.min.js"></script>
<!-- <script src="<?php echo $site_url; ?>/assets/ui/js/main.min.js"></script> -->
<script src="<?php echo $site_url; ?>/assets/js/common.js"></script>
<?php if (!empty($load_editor)): ?>
<script src="<?php echo $site_url; ?>/assets/nicedit/nicedit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function(){
new nicEditor({
iconsPath : '<?php echo $site_url; ?>/assets/nicedit/nicEditorIcons.gif'
}).panelInstance('content');
});
</script>
<?php endif; ?>
</body>
</html>

View file

@ -1,37 +0,0 @@
<nav class="navbar">
<div class="container-fluid">
<a href="index.php" class="navbar-brand"><?php echo $lang->I18N('Admin Area'); ?></a>
<ul class="navbar-nav ml-auto">
<li class="nav-item nav-height">
<button class="btn btn-sm my-auto" role="button" onclick="halfmoon.toggleDarkMode()">
<i class="fas fa-sun"></i>
</button>
</li>
<!-- 语言 -->
<div class="nav-item nav-height dropdown with-arrow">
<button class="btn" data-toggle="dropdown" type="button" id="language-change-toggle" aria-haspopup="true" aria-expanded="false">
<?php echo $lang->get_language_name(); ?> <i class="fa fa-angle-up ml-5" aria-hidden="true"></i>
</button>
<div class="dropdown-menu language-change" aria-labelledby="language-change-toggle">
<?php echo $lang->get_languages_tags(); ?>
</div>
</div>
<li class="nav-item nav-height dropdown with-arrow">
<a class="btn btn-sm m5x" data-toggle="dropdown" id="nav-link-dropdown-toggle">
<i class="fa fa-user"></i>
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="nav-link-dropdown-toggle">
<a href="<?php echo $site_url; ?>" class="dropdown-item" target="_blank"><?php echo $lang->I18N('Home'); ?></a>
<div class="dropdown-divider"></div>
<a href="profile.php" class="dropdown-item"><?php echo $lang->I18N('Profile'); ?></a>
<a href="settings.php" class="dropdown-item"><?php echo $lang->I18N('Settings'); ?></a>
<div class="dropdown-divider"></div>
<a href="logout.php" class="dropdown-item"><?php echo $lang->I18N('logout'); ?></a>
</div>
</li>
<li class="nav-item nav-height hidden-on-up">
<button class="btn btn-sm my-auto" onclick="halfmoon.toggleSidebar()"><i class="fa fa-bars"></i></button>
</li>
</div>
</nav>

View file

@ -1,71 +0,0 @@
<?php
$avatar_path = $AdminInfo['admin_email'] ? md5($AdminInfo['admin_email']) : 'default';
?>
<!-- Sidebar Start -->
<div class="sidebar-overlay" onclick="halfmoon.toggleSidebar()"></div>
<div class="sidebar">
<div class="sidebar-menu">
<h5 class="sidebar-title"><?php echo $lang->I18N('Logged in as'); ?>:</h5>
<div class="sidebar-divider"></div>
<a href="profile.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent text-dark rounded-circle">
<img class="rounded-circle" src="https://dn-qiniu-avatar.qbox.me/avatar/<?php echo $avatar_path; ?>?s=30" height="30px" width="30px">
</span>
<?php echo $AdminInfo['admin_fname'] . " " . $AdminInfo['admin_lname']; ?>
</a>
<h5 class="sidebar-title"><?php echo $lang->I18N('Main Menu'); ?></h5>
<div class="sidebar-divider"></div>
<a href="./" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-home" aria-hidden="true"></i></span>
<?php echo $lang->I18N('home'); ?>
</a>
<a href="clients.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-users" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Clients List'); ?>
</a>
<a href="tickets.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-ticket-alt" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Tickets List'); ?>
</a>
<a href="sslcert.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-shield-alt" aria-hidden="true"></i></span>
<?php echo $lang->I18N('SSL Certificates'); ?>
</a>
<a href="accounts.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-shopping-cart" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Hosting Accounts'); ?>
</a>
<a href="knowledgebase.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-book" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Knowledgebase'); ?>
</a>
<a href="news.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-newspaper" aria-hidden="true"></i></span>
<?php echo $lang->I18N('News List'); ?>
</a>
<a href="hosting.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-server" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Hosting Provider'); ?>
</a>
<a href="domain.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-globe" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Domain Provider'); ?>
</a>
<a href="settings.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-cog" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Settings'); ?>
</a>
<a href="logout.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-arrow-circle-right" aria-hidden="true"></i></span>
<?php echo $lang->I18N('logout'); ?>
</a>
</div>
<div class="sidebar-footer">
<p class="copyright text-center">
&copy; <?php echo date("Y") ?> <a target="_blank" href="https://uiisc.org">UIISC</a> All rights reserved.
</p>
</div>
</div>
<!-- Sidebar End -->

View file

@ -1,126 +1,193 @@
<?php
if (!defined('IN_CRONLITE')) {
exit;
}
require ROOT_ADMIN . '/views/header.php';
require ROOT_ADMIN . '/views/navbar.php';
require ROOT_ADMIN . '/views/sidebar.php';
?>
<div class="content-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-lg-3">
<div class="card text-center bg-matrix-1 m-20 p-0 border-0">
<div class="mx-20 my-15 d-flex justify-content-between align-items-center">
<h3 class="my-0 pt-0 text-white"><?php echo $count_clients; ?></h3>
<i class="fa fa-users fa-3x pt-10 text-white"></i>
</div>
<div class="py-5" style="background: rgba(0,0,0,0.05); border-radius: 0px 0px 10px 10px;">
<a href="clients.php" class="text-white">View Client <i class="fa fa-forward"></i></a>
</div>
</div>
</div>
<div class="col-md-6 col-lg-3">
<div class="card text-center bg-matrix-2 m-20 p-0 border-0">
<div class="mx-20 my-15 d-flex justify-content-between align-items-center">
<h3 class="my-0 pt-0 text-white"><?php echo $count_account; ?></h3>
<i class="fa fa-shopping-cart fa-3x pt-10 text-white"></i>
</div>
<div class="py-5" style="background: rgba(0,0,0,0.05); border-radius: 0px 0px 10px 10px;">
<a href="accounts.php" class="text-white">View Account <i class="fa fa-forward"></i></a>
</div>
</div>
</div>
<div class="col-md-6 col-lg-3">
<div class="card text-center bg-matrix-3 m-20 p-0 border-0">
<div class="mx-20 my-15 d-flex justify-content-between align-items-center">
<h3 class="my-0 pt-0 text-white"><?php echo $count_ssl; ?></h3>
<i class="fa fa-shield-alt fa-3x pt-10 text-white"></i>
</div>
<div class="py-5" style="background: rgba(0,0,0,0.05); border-radius: 0px 0px 10px 10px;">
<a href="myssl.php" class="text-white">View SSL <i class="fa fa-forward"></i></a>
</div>
</div>
</div>
<div class="col-md-6 col-lg-3">
<div class="card text-center bg-matrix-4 m-20 p-0 border-0">
<div class="mx-20 my-15 d-flex justify-content-between align-items-center">
<h3 class="my-0 pt-0 text-white"><?php echo $count_tickets; ?></h3>
<i class="fa fa-ticket-alt fa-3x pt-10 text-white"></i>
</div>
<div class="py-5" style="background: rgba(0,0,0,0.05); border-radius: 0px 0px 10px 10px;">
<a href="tickets.php" class="text-white">View Ticket <i class="fa fa-forward"></i></a>
</div>
</div>
</div>
</div>
<div class="card mx-20 my-10 p-15">
<div class="card-header d-flex justify-content-between align-items-center px-0 pt-0">
<h3 class="m-0">System information</h3>
<a href="settings.php" class="btn btn-danger">Settings</a>
</div>
<hr />
<div class="card-body">
<div class="col-lg-3 col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<div class="row">
<div class="col-md-6 col-lg-4">
<p class="mb-0"><b>Version:</b> <?php echo APP_VERSION; ?></p>
<div class="col-xs-3">
<i class="fa fa-users fa-5x"></i>
</div>
<div class="col-md-6 col-lg-4">
<p class="mb-0"><b>Status:</b> <?php if ($SiteConfig['site_status'] == 1) {echo '<span class="badge badge-success">Live</span>';} elseif ($SiteConfig['site_status'] == 0) {echo '<span class="badge badge-secondary">Maintaince</span>';}?></p>
<div class="col-xs-9 text-right">
<div class="huge">
<span id="count_client"></span>/<span class="count-all" id="count_clients"></span>
</div>
<div class="col-md-6 col-lg-4">
<p class="mb-0"><b>Site Name:</b> <?php echo $SiteConfig['site_name']; ?></p>
<div>客户数量</div>
</div>
<div class="col-md-6 col-lg-4">
<p class="mb-0"><b>Brand Name:</b> <?php echo $SiteConfig['site_brand']; ?></p>
</div>
<div class="col-md-6 col-lg-4">
<p class="mb-0"><b>Company Name:</b> <?php echo $SiteConfig['site_company']; ?></p>
</div>
<div class="col-md-6 col-lg-4">
<p class="mb-0"><b>URI:</b> <?php echo $SiteConfig['site_path']; ?></p>
<a href="clients.php">
<div class="panel-footer">
<span class="pull-left"><?php echo $lang->I18N('View details'); ?></span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
<div class="col-md-6 col-lg-4">
<p class="mb-0"><b>Contact Email:</b> <?php echo $SiteConfig['site_email']; ?></p>
</a>
</div>
<div class="col-md-6 col-lg-4">
<p class="mb-0"><b>PHP Version:</b> <?php echo PHP_VERSION; ?></p>
</div>
<div class="col-md-6 col-lg-4">
<p class="mb-0"><b>Server Protocol:</b> <?php echo HTTP_PROTOCOL; ?></p>
<div class="col-lg-3 col-md-6">
<div class="panel panel-yellow">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="fa fa-server fa-5x"></i>
</div>
<!-- <div class="col-md-12"><hr></div> -->
<div class="col-md-12">
<p class="mb-0"><b>Document Root:</b> <?php echo $_SERVER['DOCUMENT_ROOT'] ?></p>
<div class="col-xs-9 text-right">
<div class="huge">
<span id="count_account"></span>/<span class="count-all" id="count_accounts"></span>
</div>
<div>账户数量</div>
</div>
</div>
</div>
<a href="accounts.php">
<div class="panel-footer">
<span class="pull-left"><?php echo $lang->I18N('View details'); ?></span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="panel panel-red">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="fa fa-ticket-alt fa-5x"></i>
</div>
<div class="col-xs-9 text-right">
<div class="huge">
<span id="count_ticket"></span>/<span class="count-all" id="count_tickets"></span>
</div>
<div>工单数量</div>
</div>
</div>
</div>
<a href="tickets.php">
<div class="panel-footer">
<span class="pull-left"><?php echo $lang->I18N('View details'); ?></span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="panel panel-green">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="fa fa-shield-alt fa-5x"></i>
</div>
<div class="col-xs-9 text-right">
<div class="huge">
<span id="count_ssl"></span>/<span class="count-all" id="count_ssls"></span>
</div>
<div>证书数量</div>
</div>
</div>
</div>
<a href="ssl.php">
<div class="panel-footer">
<span class="pull-left"><?php echo $lang->I18N('View details'); ?></span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
</div>
<div class="panel panel-danger">
<div class="list-group">
<div class="list-group-item">
<span class="fa fa-paper-plane fa-fw"></span> <b><?php echo $lang->I18N('Shortcuts'); ?></b>&nbsp;
<a href="settings.php" class="btn btn-info btn-xs">Settings</a>&nbsp;&nbsp;
<a href="<?php echo $site_url; ?>" class="btn btn-xs btn-info" target="_blank"><?php echo $lang->I18N('home'); ?></a>&nbsp;&nbsp;
<a href="<?php echo setURL('contact'); ?>" class="btn btn-xs btn-info" target="_blank"><?php echo $lang->I18N('contact'); ?></a>&nbsp;&nbsp;
<a href="<?php echo setURL('news'); ?>" class="btn btn-xs btn-info" target="_blank"><?php echo $lang->I18N('News'); ?></a>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6">
<div class="card mx-20 my-10 p-15">
<div class="card-header">
<h4 class="m-0">Welcome to Dear Admin!</h4>
<div class="col-md-8 col-sm-12">
<div class="panel panel-info">
<div class="panel-heading">
<h3 class="panel-title">服务器信息</h3>
</div>
<div class="card-body">
<p>
Here you can manage your free hosting clients and free ssl with free support system remember that any action in this system cannot be undo.
</p>
<div class="text-right">
<a href="accounts.php" class="btn btn-default">Getting Started</a>
<ul class="list-group">
<li class="list-group-item"><b>服务器时间:</b><?php echo $date; ?></li>
<li class="list-group-item"><b>PHP 版本:</b><?php echo PHP_VERSION; ?>-<?php echo ini_get('safe_mode') ? '线程安全' : '非线程安全'; ?></li>
<li class="list-group-item"><b>MySQL 版本:</b><?php echo $mysqlversion ?></li>
<li class="list-group-item"><b>WEB软件</b><?php echo $_SERVER['SERVER_SOFTWARE'] ?></li>
<li class="list-group-item"><b>操作系统:</b><?php echo php_uname(); ?></li>
<li class="list-group-item"><b>POST许可</b><?php echo ini_get('post_max_size'); ?></li>
<li class="list-group-item"><b>文件上传许可:</b><?php echo ini_get('upload_max_filesize'); ?></li>
</ul>
</div>
</div>
<div class="col-md-4 col-sm-12">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">应用信息</h3>
</div>
</div>
<div class="col-lg-6">
<div class="card mx-20 my-10 p-15">
<div class="card-header">
<h4 class="m-0">Free SSL Available!</h4>
</div>
<div class="card-body">
<p>
Now generation of free ssl has been allowed in order to provide fast website access and increase the security and protection of your website.
</p>
<div class="text-right">
<a href="ssl.php" class="btn btn-default">Check Now</a>
</div>
</div>
<ul class="list-group text-dark">
<li class="list-group-item">当前版本V<?php echo APP_VERSION; ?> (Build <?php echo APP_BUILD; ?>, DB <?php echo DB_VERSION; ?></li>
<li class="list-group-item"><?php echo $lang->I18N('App Status'); ?>&nbsp;:&nbsp;<?php if ($SiteConfig['site_status'] == 1) {echo '<span class="label label-success">Live</span>';} elseif ($SiteConfig['site_status'] == 0) {echo '<span class="label label-danger">Maintaince</span>';}?></li>
<li class="list-group-item"><?php echo $lang->I18N('App URL'); ?>&nbsp;:&nbsp;<?php echo $site_url; ?></li>
<li class="list-group-item">官网网站:<a href="https://uiisc.org/" target="_blank">https://uiisc.org</a></li>
<li class="list-group-item">Github<a href="https://github.com/uiisc/uiisc/" target="_blank">https://github.com/uiisc/uiisc</a></li>
<li class="list-group-item">&copy; 2013-<?php echo date("Y") ?> <a href="https://uiisc.org/" target="_blank">UIISC</a>, Powered by <a href="https://crogram.org/" target="_blank">CROGRAM</a></li>
</ul>
<ul class="list-group text-dark" id="checkupdate"></ul>
</div>
</div>
</div>
</div>
</div>
<?php
require ROOT_ADMIN . '/views/footer.php';
?>
<script>
$(document).ready(function() {
$.ajax({
type: "GET",
url: "api/dashboard.php?act=stat",
dataType: 'json',
async: true,
success: function(res) {
var data = res.data;
$('#count_client').html(data.count_client);
$('#count_clients').html(data.count_clients);
$('#count_account').html(data.count_account);
$('#count_accounts').html(data.count_accounts);
$('#count_ssl').html(data.count_ssl);
$('#count_ssls').html(data.count_ssls);
$('#count_ticket').html(data.count_ticket);
$('#count_tickets').html(data.count_tickets);
}
});
// check update
// $.ajax({
// url: '<?php // echo $checkupdate ?>',
// type: 'get',
// dataType: 'jsonp',
// jsonpCallback: 'callback'
// }).done(function(data){
// $("#checkupdate").html(data.msg);
// });
});
</script>
</body>
</html>

View file

@ -0,0 +1,25 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
?>
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li class="active"><?php echo $lang->I18N('Domain Provider'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="domain-provider.php?action=add" class="btn btn-primary btn-xs">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
</div>
<span class="panel-title"><?php echo $PageInfo['title']; ?></span>
</div>
<div class="panel-body">
</div>
<div class="panel-footer"></div>
</div>
</div>

View file

@ -1,60 +0,0 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0"><?php echo $PageInfo['title']; ?></h5>
<a href="index.php" class="btn btn-danger btn-sm">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return');?>
</a>
</div>
<hr />
<form class="card-body" action="controllers/domain/add.php" method="post">
<div class="row">
<div class="col-md-6">
<label class="form-label required">Add Domain Extension</label>
<input type="text" name="domain" id="cudomain" class="form-control" placeholder="eg .example.com">
</div>
<div class="col-md-6">
<label class="form-label required">Add Domain Extension</label>
<button name="submit" class="btn btn-primary">Register</button>
</div>
</div>
</form>
<div class="card-body table-responsive">
<h4 class="mb-5">Registered Extensions</h4>
<table class="table table-stripped table-bordered table-hover">
<thead>
<th width="10%">ID</th>
<th width="75%">Domain</th>
<th width="15%">Action</th>
</thead>
<tbody>
<?php if ($count > 0): ?>
<?php foreach ($rows as $value): ?>
<tr>
<td># <?php echo $value['extension_id']; ?></td>
<td><?php echo $value['extension_value']; ?></td>
<td>
<form action="controllers/domain/delete.php" method="post">
<input hidden type="text" name="extension" value="<?php echo $value['extension_value']; ?>" />
<button name="submit" class="btn btn-sm btn-secondary btn-rounded"><i class="fa fa-trash"></i></button>
</form>
</td>
</tr>
<?php endforeach;?>
<?php else: ?>
<tr>
<td colspan="3" class="text-center">No domain found</td>
</tr>
<?php endif;?>
</tbody>
</table>
</div>
<hr />
<div class="card-footer">
<p class="pb-10"><?php echo $count; ?> Records Found</p>
</div>
</div>
</div>
</div>

115
src/admin/views/emails/list.php Executable file
View file

@ -0,0 +1,115 @@
<?php
if (!defined('IN_CRONLITE')) {
exit;
}
$PageInfo['rel'] = '<link href="' . $site_url . '/assets/css/bootstrap-table.css" rel="stylesheet" />';
require ROOT_ADMIN . '/views/header.php';
require ROOT_ADMIN . '/views/navbar.php';
require ROOT_ADMIN . '/views/sidebar.php';
?>
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li class="active"><?php echo $lang->I18N('Emails List'); ?></li>
</ol>
<div id="searchToolbar">
<form onsubmit="return searchSubmit()" method="GET" class="form-inline">
<input type="hidden" name="did">
<div class="form-group">
<label>搜索</label>
<input type="text" class="form-control" name="email_id" placeholder="邮件ID" style="width: 80px;" />
</div>
<div class="form-group">
<input type="text" class="form-control" name="email_client_id" placeholder="客户ID" style="width: 80px;" />
</div>
<div class="form-group">
<input type="text" class="form-control" name="email_to" placeholder="接收人" style="width: 120px;" />
</div>
<div class="form-group">
<input type="text" class="form-control" name="email_subject" placeholder="主题">
</div>
<div class="form-group">
<button class="btn btn-primary" type="submit"><i class="fa fa-search"></i> 搜索</button>&nbsp;
<a href="javascript:searchClear()" class="btn btn-default" title="刷新记录列表"><i class="fa fa-repeat"></i> 重置</a>&nbsp;
</div>
</form>
</div>
<table id="listTable"></table>
</div>
<?php
require ROOT_ADMIN . '/views/footer.php';
?>
<script src="<?php echo $site_cdnpublic; ?>bootstrap-table/1.20.2/bootstrap-table.min.js"></script>
<script src="<?php echo $site_cdnpublic; ?>bootstrap-table/1.20.2/extensions/page-jump-to/bootstrap-table-page-jump-to.min.js"></script>
<script src="<?php echo $site_url; ?>/assets/js/custom.js"></script>
<script>
$(document).ready(function() {
updateToolbar();
const defaultPageSize = 15;
const pageNumber = typeof window.$_GET['pageNumber'] != 'undefined' ? parseInt(window.$_GET['pageNumber']) : 1;
const pageSize = typeof window.$_GET['pageSize'] != 'undefined' ? parseInt(window.$_GET['pageSize']) : defaultPageSize;
$("#listTable").bootstrapTable({
url: 'api/emails.php?act=list',
pageNumber: pageNumber,
pageSize: pageSize,
classes: 'table table-striped table-hover table-bordered',
columns: [{
field: 'email_id',
title: '<?php echo $lang->I18N('Email ID'); ?>',
formatter: function(value, row, index) {
return '<a href="emails.php?action=view&id=' + value + '">' + value + '</a>';
}
},
{
field: 'email_client_id',
title: '<?php echo $lang->I18N('Clients'); ?>',
formatter: function(value, row, index) {
if (value > 0) {
return '<a href="clients.php?action=details&id=' + value + '">' + value + '</a>';
}
return '-';
}
},
{
field: 'email_subject',
title: '<?php echo $lang->I18N('Title'); ?>'
},
{
field: 'email_to',
title: '接收人',
formatter: function(value, row, index) {
return value || '-';
}
},
{
field: 'email_date',
title: '<?php echo $lang->I18N('Date'); ?>'
},
{
field: 'email_read',
title: '<?php echo $lang->I18N('Status'); ?>',
formatter: function(value, row, index) {
return value == 0 ? '<span class="label label-success">已查看</span>' : '<span class="label label-default">未查看</span>';
}
},
{
field: '',
title: '<?php echo $lang->I18N('Action'); ?>',
formatter: function(value, row, index) {
return '<a href="emails.php?action=view&id=' + row.email_id + '" class="btn btn-primary btn-xs"><i class="fa fa-info-circle"></i> <?php echo $lang->I18N('details'); ?></a>';
}
}
]
})
});
</script>
</body>
</html>

49
src/admin/views/emails/view.php Executable file
View file

@ -0,0 +1,49 @@
<?php
if (!defined('IN_CRONLITE')) {
exit;
}
require ROOT_ADMIN . '/views/header.php';
require ROOT_ADMIN . '/views/navbar.php';
require ROOT_ADMIN . '/views/sidebar.php';
?>
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="emails.php"><?php echo $lang->I18N('Emails List'); ?></a></li>
<li class="active"><?php echo $lang->I18N('details'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="<?php echo setURL('admin/emails', '', array('action' => 'list', 'email_client_id' => $data['email_client_id'])); ?>" class="btn btn-success btn-xs">
<i class="fa fa-edit"></i> <?php echo $lang->I18N('Client More'); ?>
</a>
<a href="emails.php?action=list" class="btn btn-primary btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('list'); ?>
</a>
</div>
<span class="panel-title"><?php echo $PageInfo['title']; ?> ID:<?php echo $id; ?></span>
</div>
<div class="panel-body">
<div class="alert alert-info">
<p>Subject: <?php echo $data['email_subject']; ?></p>
<p>Date: <?php echo $data['email_date']; ?></p>
<p>To: <?php echo $data['email_to']; ?></p>
<p>Client ID: <?php echo $data['email_client_id']; ?></p>
</div>
<div class="news-content">
<?php echo htmlspecialchars_decode($data['email_body']); ?>
</div>
</div>
</div>
</div>
<?php
require ROOT_ADMIN . '/views/footer.php';
?>
</body>
</html>

24
src/admin/views/footer.php Executable file
View file

@ -0,0 +1,24 @@
</div><!-- col-sm-9 col-md-9 col-lg-10 end -->
</div><!-- row page-wrapper end -->
</div><!-- container-fluid end -->
<div id="hidden-area"><?php getMessage(); ?></div>
<script src="<?php echo $site_cdnpublic; ?>jquery/1.12.4/jquery.min.js"></script>
<script src="<?php echo $site_cdnpublic; ?>twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="<?php echo $site_cdnpublic; ?>layer/3.1.1/layer.js"></script>
<script src="<?php echo $site_url; ?>/assets/js/common.js?_=<?php echo $static_release; ?>"></script>
<script src="<?php echo $site_url; ?>/assets/js/admin.js?_=<?php echo $static_release; ?>"></script>
<?php if (!empty($load_editor)): ?>
<script src="<?php echo $site_url; ?>/assets/nicedit/nicedit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function(){
new nicEditor({
iconsPath : '<?php echo $site_url; ?>/assets/nicedit/nicEditorIcons.gif'
}).panelInstance('content');
});
</script>
<?php endif; ?>

38
src/admin/views/header.php Executable file
View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="<?php echo $lang->language_current; ?>">
<head>
<!-- Meta tags -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<meta name="robots" content="noindex,nofollow">
<meta name="format-detection" content="telephone=no,email=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="description" content="UIISC is a free of cost we hosting and SSL management software allow you to manage your clients and accounts from a single place!" />
<meta name="keywords" content="<?php echo $page_keywords; ?>" />
<meta name="author" content="UIISC" />
<meta name="copyright" content="® CROGRAM" />
<!-- Site info -->
<title><?php echo $PageInfo['title']; ?> - <?php echo $lang->I18N('AdminArea'); ?> - <?php echo $SiteConfig['site_name']; ?></title>
<link rel="icon" type="image/x-icon" href="<?php echo $site_url; ?>/assets/image/favicon.ico">
<link rel="shortcut" type="image/x-icon" href="<?php echo $site_url; ?>/assets/image/favicon.ico">
<!-- Style -->
<link href="<?php echo $site_cdnpublic; ?>twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<link href="<?php echo $site_cdnpublic; ?>font-awesome/5.15.4/css/fontawesome.min.css" rel="stylesheet" />
<link href="<?php echo $site_url; ?>/assets/theme.switcher/css/auto.css" id="theme" type="text/css" rel="stylesheet" media="screen,projection" />
<link href="<?php echo $site_url; ?>/assets/css/common.css?_=<?php echo $static_release; ?>" rel="stylesheet" />
<link href="<?php echo $site_url; ?>/assets/css/admin.css?_=<?php echo $static_release; ?>" rel="stylesheet" />
<!-- Common JS -->
<script type="text/javascript">
var site_domain = "<?php echo $site_domain; ?>";
var cur_lang = "<?php echo $lang->language_current; ?>";
var ifastnet_aff = "<?php echo $ifastnet_aff; ?>";
</script>
<script src="<?php echo $site_url; ?>/assets/theme.switcher/theme.switcher.js" type="text/javascript"></script>
<!-- Custom JS -->
<?php echo $PageInfo['rel']; ?>
</head>
<body>

View file

@ -0,0 +1,141 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
?>
<div class="content-wrapper">
<input type="hidden" value="<?php echo $api_id; ?>" name="api_id" />
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="hosting-provider.php"><?php echo $lang->I18N('Hosting Provider'); ?></a></li>
<li><a href="<?php echo setURL('admin/hosting-provider', '', array('action' => 'details', 'id' => $api_id)); ?>"><?php echo $lang->I18N('details'); ?></a></li>
<li class="active"><?php echo $lang->I18N('Hostname'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a class="btn btn-primary btn-xs" onclick="add_hostname();">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
</div>
<span class="panel-title"><?php echo $PageInfo['title']; ?></span>
</div>
<div class="table-responsive">
<table class="table table-stripped table-bordered table-hover">
<thead>
<th>ID</th>
<th><?php echo $lang->I18N('Hosting Provider'); ?></th>
<th><?php echo $lang->I18N('Hostname'); ?></th>
<th><?php echo $lang->I18N('Action'); ?></th>
</thead>
<tbody>
<?php if ($count > 0): ?>
<?php foreach ($rows as $value): ?>
<tr>
<td><?php echo $value['host_id']; ?></td>
<td><?php echo $value['api_id']; ?></td>
<td><?php echo $value['host_name']; ?></td>
<td>
<button class="btn btn-danger btn-xs" onclick="delete_hostname('<?php echo $value['host_id']; ?>');"><i class="fa fa-trash"></i></button>
</td>
</tr>
<?php endforeach;?>
<?php else: ?>
<tr>
<td colspan="4" class="text-center">No Data Found</td>
</tr>
<?php endif;?>
</tbody>
</table>
</div>
<div class="panel-footer">
<div><?php echo $count; ?> Records Found</div>
</div>
</div>
</div>
<script>
function delete_hostname(host_id) {
layer.confirm('确定删除 ', {
icon: 3,
btn: ['确定', '取消']
}, function() {
var ii = layer.load(2);
$.ajax({
type: 'POST',
url: 'api/hosting-hostname.php?act=delete',
data: {
host_id: host_id
},
dataType: 'json',
success: function(data) {
layer.close(ii);
if (data.code == 0) {
layer.msg('删除成功');
setTimeout(function() {
window.location.href = window.location.href;
}, 1000);
} else {
layer.alert(data.msg, {
icon: 2
});
}
},
error: function(data) {
layer.close(ii);
layer.msg('服务器错误');
}
});
});
}
function add_hostname() {
layer.open({
type: 1,
area: ['350px'],
closeBtn: 2,
title: '<?php echo $lang->I18N('Add Hostname'); ?>',
content: '<div style="padding:15px 15px 0 15px"><p>请输入主机名。</p><div class="form-group"><input class="form-control" type="text" name="content" value="" autocomplete="off" placeholder="请输入主机名 eg .example.com"></div></div>',
btn: ['<?php echo $lang->I18N('Save'); ?>', '<?php echo $lang->I18N('Cancel'); ?>'],
yes: function() {
var content = $("input[name='content']").val();
if (content == '') {
$("input[name='content']").focus();
return;
}
var ii = layer.load(2, {
shade: [0.1, '#fff']
});
var api_id = $("input[name='api_id']").val();
$.ajax({
type: 'POST',
url: 'api/hosting-hostname.php?act=add',
data: {
api_id: api_id,
hostname: content
},
dataType: 'json',
success: function(data) {
layer.close(ii);
if (data.code == 0) {
layer.alert(data.msg, {
icon: 1
}, function() {
layer.closeAll();
window.location.href = window.location.href;
});
} else {
layer.alert(data.msg, {
icon: 0
});
}
},
error: function(data) {
layer.close(ii);
layer.msg('服务器错误');
}
});
}
});
}
</script>

View file

@ -0,0 +1,119 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
?>
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="hosting-provider.php"><?php echo $lang->I18N('Hosting Provider'); ?></a></li>
<li class="active"><?php echo $lang->I18N('add'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="hosting-provider.php" class="btn btn-primary btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('Hosting Provider'); ?>
</a>
</div>
<span class="panel-title"><?php echo $PageInfo['title']; ?></span>
</div>
<form action="controllers/hosting-provider/add.php" method="post">
<div class="panel-body">
<div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required"><?php echo $lang->I18N('Provider Type'); ?></label>
<select name="api_type" class="form-control" required>
<option value="myownfreehost" selected>MyOwnFreeHost</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Key</label>
<input type="text" name="api_key" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">API Username</label>
<input type="text" name="api_username" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">API Password</label>
<input type="text" name="api_password" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Server domain</label>
<input type="text" name="api_server_domain" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Server IP</label>
<input type="text" name="api_server_ip" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">FTP Server</label>
<input type="text" name="api_server_ftp_domain" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">SQL Server</label>
<input type="text" name="api_server_sql_domain" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Control Panel URL</label>
<input type="text" name="api_cpanel_url" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Package</label>
<input type="text" name="api_package" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Nameserver 1</label>
<input type="text" name="api_ns_1" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Nameserver 2</label>
<input type="text" name="api_ns_2" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">API Callback Token</label>
<input type="text" name="api_callback_token" class="form-control" maxlength="32" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label">API Callback URL</label>
<input type="text" class="form-control" value="<?php echo $site_url ?>/callback/[Provider Type][Hosting Key]/[API Callback Token]" readonly>
</div>
</div>
</div>
</div>
<div class="panel-footer">
<div class="my-10 px-10">
<button name="submit" class="btn btn-primary"><?php echo $lang->I18N('Save'); ?></button>
</div>
</div>
</form>
</div>
</div>

View file

@ -1,22 +1,33 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
?>
<div class="content-wrapper">
<div class="container-fluid">
<div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0"><?php echo $PageInfo['title']; ?></h5>
<div>
<a href="hosting.php" class="btn btn-sm btn-danger">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="hosting-provider.php"><?php echo $lang->I18N('Hosting Provider'); ?></a></li>
<li class="active"><?php echo $lang->I18N('details'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="hosting-hostname.php?id=<?php echo $data['api_id']; ?>" class="btn btn-info btn-xs">
<i class="fa fa-ethernet"></i> <?php echo $lang->I18N('Hostname'); ?>
</a>
<a href="<?php echo setURL('admin/hosting', '', array('action' => 'edit', 'id' => $data['api_id'])); ?>" class="btn btn-sm btn-success">
<a href="<?php echo setURL('admin/hosting-provider', '', array('action' => 'edit', 'id' => $data['api_id'])); ?>" class="btn btn-success btn-xs">
<i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?>
</a>
<a href="hosting.php?action=add" class="btn btn-sm btn-primary">
<a href="hosting-provider.php?action=add" class="btn btn-primary btn-xs">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
<a href="hosting-provider.php" class="btn btn-primary btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('list'); ?>
</a>
</div>
<span class="panel-title"><?php echo $PageInfo['title']; ?> ID: <?php echo $data['api_id']; ?></span>
</div>
<hr />
<div class="card-body">
<div class="panel-body">
<div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
@ -103,15 +114,15 @@
</div>
</div>
</div>
<hr />
</div>
<div class="panel-footer">
<div class="row">
<div class="col-md-12">
<div class="mb-20 px-10">
<a href="<?php echo setURL('admin/hosting', '', array('action' => 'edit', 'id' => $data['api_id'])); ?>" class="btn btn-sm btn-secondary mx-5 btn-rounded"><i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?></a>
<a href="<?php echo setURL('admin/hosting-provider', '', array('action' => 'edit', 'id' => $data['api_id'])); ?>" class="btn btn-success btn-xs"><i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?></a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,119 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
?>
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="hosting-provider.php"><?php echo $lang->I18N('Hosting Provider'); ?></a></li>
<li><a href="<?php echo setURL('admin/hosting-provider', '', array('action' => 'details', 'id' => $data['api_id'])); ?>"><?php echo $lang->I18N('details'); ?></a></li>
<li class="active"><?php echo $lang->I18N('edit'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="<?php echo setURL('admin/hosting-provider', '', array('action' => 'details', 'id' => $data['api_id'])); ?>" class="btn btn-success btn-xs">
<i class="fa fa-info-circle"></i> <?php echo $lang->I18N('details'); ?>
</a>
<a href="hosting-provider.php?action=add" class="btn btn-primary btn-xs">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
<a href="hosting-provider.php" class="btn btn-primary btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('list'); ?>
</a>
</div>
<span class="panel-title"><?php echo $PageInfo['title']; ?> ID: <?php echo $data['api_id']; ?></span>
</div>
<form action="controllers/hosting-provider/edit.php" method="post">
<input type="hidden" name="api_id" value="<?php echo $data['api_id']; ?>" style="display:none;">
<div class="panel-body">
<div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required"><?php echo $lang->I18N('Provider Type'); ?></label>
<input type="text" name="api_type" value="<?php echo $data['api_type']; ?>" class="form-control" required readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Key</label>
<input type="text" name="api_key" value="<?php echo $data['api_key']; ?>" class="form-control" required readonly>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">MOFH API Username</label>
<input type="text" name="api_username" value="<?php echo $data['api_username']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">MOFH API Password</label>
<input type="text" name="api_password" value="<?php echo $data['api_password']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Server domain</label>
<input type="text" name="api_server_domain" value="<?php echo $data['api_server_domain']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Server IP</label>
<input type="text" name="api_server_ip" value="<?php echo $data['api_server_ip']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">FTP Server</label>
<input type="text" name="api_server_ftp_domain" value="<?php echo $data['api_server_ftp_domain']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">SQL Server</label>
<input type="text" name="api_server_sql_domain" value="<?php echo $data['api_server_sql_domain']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Control Panel URL</label>
<input type="text" name="api_cpanel_url" value="<?php echo $data['api_cpanel_url']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Package</label>
<input type="text" name="api_package" value="<?php echo $data['api_package']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Nameserver 1</label>
<input type="text" name="api_ns_1" value="<?php echo $data['api_ns_1']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Nameserver 2</label>
<input type="text" name="api_ns_2" value="<?php echo $data['api_ns_2']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">API Callback Token</label>
<input type="text" name="api_callback_token" value="<?php echo $data['api_callback_token']; ?>" class="form-control" maxlength="32" required>
</div>
</div>
</div>
</div>
<div class="panel-footer">
<div class="my-10 px-10">
<button name="submit" class="btn btn-primary"><?php echo $lang->I18N('Save'); ?></button>
</div>
</div>
</form>
</div>
</div>

View file

@ -0,0 +1,56 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
?>
<div class="content-wrapper">
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li class="active"><?php echo $lang->I18N('Hosting Provider'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="hosting-provider.php?action=add" class="btn btn-primary btn-xs">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
</div>
<span class="panel-title"><?php echo $PageInfo['title']; ?></span>
</div>
<div class="table-responsive">
<table class="table table-stripped table-bordered table-hover">
<thead>
<th>ID</th>
<th>Key</th>
<th><?php echo $lang->I18N('Type'); ?></th>
<th>Panel URL</th>
<th><?php echo $lang->I18N('Package'); ?></th>
<th><?php echo $lang->I18N('Action'); ?></th>
</thead>
<tbody>
<?php if ($count > 0): ?>
<?php foreach ($rows as $value): ?>
<tr>
<td><?php echo $value['api_id']; ?></td>
<td><?php echo $value['api_key']; ?></td>
<td><?php echo $value['api_type']; ?></td>
<td><?php echo $value['api_cpanel_url']; ?></td>
<td><?php echo $value['api_package']; ?></td>
<td>
<a href="hosting-provider.php?action=edit&id=<?php echo $value['api_id']; ?>" class="btn btn-success btn-xs"><i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?></a>
<a href="hosting-provider.php?action=details&id=<?php echo $value['api_id']; ?>" class="btn btn-primary btn-xs"><i class="fa fa-info-circle"></i> <?php echo $lang->I18N('details'); ?></a>
<a href="hosting-hostname.php?id=<?php echo $value['api_id']; ?>" class="btn btn-info btn-xs"><i class="fa fa-ethernet"></i> <?php echo $lang->I18N('Hostname'); ?></a>
</td>
</tr>
<?php endforeach;?>
<?php else: ?>
<tr>
<td colspan="6" class="text-center">Nothing found</td>
</tr>
<?php endif;?>
</tbody>
</table>
</div>
<div class="panel-footer"><?php echo $count; ?> Records Found</div>
</div>
</div>

View file

@ -1,113 +0,0 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0"><?php echo $PageInfo['title']; ?></h5>
<div>
<a href="hosting.php" class="btn btn-danger btn-sm">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>
</a>
</div>
</div>
<hr />
<form class="card-body" action="controllers/hosting/add.php" method="post">
<div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required"><?php echo $lang->I18N('Provider Type'); ?></label>
<select name="api_type" class="form-control" required>
<option value="myownfreehost" selected>MyOwnFreeHost</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Key</label>
<input type="text" name="api_key" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">MOFH API Username</label>
<input type="text" name="api_username" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">MOFH API Password</label>
<input type="text" name="api_password" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Server domain</label>
<input type="text" name="api_server_domain" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Server IP</label>
<input type="text" name="api_server_ip" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">FTP Server</label>
<input type="text" name="api_server_ftp_domain" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">SQL Server</label>
<input type="text" name="api_server_sql_domain" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Control Panel URL</label>
<input type="text" name="api_cpanel_url" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Package</label>
<input type="text" name="api_package" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Nameserver 1</label>
<input type="text" name="api_ns_1" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Nameserver 2</label>
<input type="text" name="api_ns_2" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">API Callback Token</label>
<input type="text" name="api_callback_token" class="form-control" maxlength="32" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label">API Callback URL</label>
<input type="text" class="form-control" value="<?php echo $site_url ?>/callback/[Hosting Key]/[API Callback Token]" readonly>
</div>
</div>
</div>
<hr />
<div class="row">
<div class="col-md-12">
<div class="my-10 px-10">
<button name="submit" class="btn btn-primary"><?php echo $lang->I18N('Save'); ?></button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>

View file

@ -1,106 +0,0 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0"><?php echo $PageInfo['title']; ?></h5>
<div>
<a href="hosting.php" class="btn btn-danger btn-sm">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>
</a>
</div>
</div>
<hr />
<form class="card-body" action="controllers/hosting/edit.php" method="post">
<input type="hidden" name="api_id" value="<?php echo $data['api_id']; ?>" style="display:none;">
<div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required"><?php echo $lang->I18N('Provider Type'); ?></label>
<input type="text" name="api_type" value="<?php echo $data['api_type']; ?>" class="form-control" required readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Key</label>
<input type="text" name="api_key" value="<?php echo $data['api_key']; ?>" class="form-control" required readonly>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">MOFH API Username</label>
<input type="text" name="api_username" value="<?php echo $data['api_username']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">MOFH API Password</label>
<input type="text" name="api_password" value="<?php echo $data['api_password']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Server domain</label>
<input type="text" name="api_server_domain" value="<?php echo $data['api_server_domain']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Server IP</label>
<input type="text" name="api_server_ip" value="<?php echo $data['api_server_ip']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">FTP Server</label>
<input type="text" name="api_server_ftp_domain" value="<?php echo $data['api_server_ftp_domain']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">SQL Server</label>
<input type="text" name="api_server_sql_domain" value="<?php echo $data['api_server_sql_domain']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Control Panel URL</label>
<input type="text" name="api_cpanel_url" value="<?php echo $data['api_cpanel_url']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Package</label>
<input type="text" name="api_package" value="<?php echo $data['api_package']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Nameserver 1</label>
<input type="text" name="api_ns_1" value="<?php echo $data['api_ns_1']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Nameserver 2</label>
<input type="text" name="api_ns_2" value="<?php echo $data['api_ns_2']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">API Callback Token</label>
<input type="text" name="api_callback_token" value="<?php echo $data['api_callback_token']; ?>" class="form-control" maxlength="32" required>
</div>
</div>
</div>
<hr />
<div class="row">
<div class="col-md-12">
<div class="my-10 px-10">
<button name="submit" class="btn btn-primary"><?php echo $lang->I18N('Save'); ?></button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>

View file

@ -1,45 +0,0 @@
<div class="content-wrapper">
<div class="container-fluid">
<div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0">Hosting Provider</h5>
<a href="hosting.php?action=add" class="btn btn-primary btn-sm">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a>
</div>
<hr>
<div class="table-responsive">
<table class="table table-stripped table-bordered table-hover">
<thead>
<th>Key</th>
<th>Type</th>
<th>Panel URL</th>
<th>Package</th>
<th>Action</th>
</thead>
<tbody>
<?php if ($count > 0): ?>
<?php foreach ($rows as $value): ?>
<tr>
<td><?php echo $value['api_key']; ?></td>
<td><?php echo $value['api_type']; ?></td>
<td><?php echo $value['api_cpanel_url']; ?></td>
<td><?php echo $value['api_package']; ?></td>
<td>
<a href="hosting.php?action=edit&id=<?php echo $value['api_id']; ?>" class="btn btn-sm btn-secondary mx-5 btn-rounded"><i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?></a>
<a href="hosting.php?action=view&id=<?php echo $value['api_id']; ?>" class="btn btn-sm btn-secondary mx-5 btn-rounded"><i class="fa fa-info-circle"></i> <?php echo $lang->I18N('details'); ?></a>
</td>
</tr>
<?php endforeach;?>
<?php else: ?>
<tr>
<td colspan="5" class="text-center">Nothing found</td>
</tr>
<?php endif;?>
</tbody>
</table>
</div>
<p class="pb-10"><?php echo $count; ?> Records Found</p>
</div>
</div>
</div>

View file

@ -1,14 +1,25 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
?>
<div class="content-wrapper">
<div class="container-fluid">
<div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0">New Knowledgebase</h5>
<a href="knowledgebase.php" class="btn btn-sm btn-danger">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>
<ol class="breadcrumb page-breadcrumb">
<li><a href="index.php"><?php echo $lang->I18N('Dashboard'); ?></a></li>
<li><a href="knowledgebase.php"><?php echo $lang->I18N('Knowledgebase'); ?></a></li>
<li class="active"><?php echo $lang->I18N('add'); ?></li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
<a href="knowledgebase.php" class="btn btn-primary btn-xs">
<i class="fa fa-list"></i> <?php echo $lang->I18N('list'); ?>
</a>
</div>
<hr>
<span class="panel-title"><?php echo $PageInfo['title']; ?></span>
</div>
<form action="controllers/knowledgebase/add.php" method="post">
<div class="panel-body">
<div class="row pb-20">
<div class="col-md-12">
<div class="mb-10 px-10">
@ -22,13 +33,17 @@
<textarea name="editor" id="content" placeholder="Enter ticket content..." class="form-control" style="height: 200px;"></textarea>
</div>
</div>
</div>
</div>
<div class="panel-footer">
<div class="row pb-20">
<div class="col-md-12">
<div class="mb-10 px-10">
<button name="submit" class="btn btn-sm btn-primary">Create Knowledgebase</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show more