Compare commits

...

101 commits

Author SHA1 Message Date
Jackson Dou
ecc42caf98
Delete install.lock 2023-07-12 00:44:42 +08:00
Jackson Dou
28c9ef0a2a update: 添加停放域名添加/删除的回调处理 2023-06-13 20:20:01 +08:00
Jackson Dou
2cd4637d26 update: 1. 新增:账号删除同步到本地回调处理,2. 新增:域名增删同步到本地的回调 2023-06-13 20:08:26 +08:00
Jackson Dou
3df3d25422 新增托管账户域名的同步和本地缓存机制 2023-06-02 01:46:24 +08:00
Jackson Dou
663ea7dd4d 修复回调token不对的问题:区分路径字符大小写 2023-06-01 18:54:19 +08:00
Jackson Dou
a3374a79da 新增托管服务回调功能:账号激活、暂停deng,支持多个托管服务 2023-06-01 12:28:11 +08:00
Jackson Dou
60169378f7
Update README.md 2023-05-30 10:44:48 +08:00
Jackson Dou
7fe0145c72 1. 解决语言设置可能不生效得问题
2. 添加对托管服务商的配置功能,支持多个服务商
3. 代码单词规范处理
2023-05-30 10:40:06 +08:00
Jackson Dou
a7f7814e74 修复:新用户注册失败 2023-05-29 18:30:40 +08:00
Jackson Dou
9eee69b7fc update:
1. Database field improvement
2. fixed #4, fixed #7, fixed #8
2023-05-22 02:03:15 +08:00
Jackson Dou
87929ce135 update:
1. support custom language config
2023-05-20 11:59:27 +08:00
Jackson Dou
097726c785 update to v2.0.2 2023-05-20 10:37:56 +08:00
Jackson Dou
589d349226
Update README.md 2023-02-14 09:51:13 +08:00
Jackson Dou
2b3178cb4e update 2022-12-13 22:42:14 +08:00
Jackson Dou
a3b34f5745 update 2022-12-13 00:53:14 +08:00
Jackson Dou
f154e90369 Merge branch 'master' into v2.0.1 2022-12-13 00:03:19 +08:00
Jackson Dou
48ae5ead66 update 2022-12-13 00:01:51 +08:00
Jackson Dou
242662fd83 Squashed commit of the following:
commit 63cc6c5fcb
Author: Jackson Dou <jksdou@qq.com>
Date:   Sun Dec 11 23:16:17 2022 +0800

    update

commit 78197bce95
Author: Jackson Dou <jksdou@qq.com>
Date:   Sun Dec 11 22:43:10 2022 +0800

    update: 调整数据表结构
2022-12-12 08:34:28 +08:00
Jackson Dou
63cc6c5fcb update 2022-12-11 23:16:17 +08:00
Jackson Dou
78197bce95 update: 调整数据表结构 2022-12-11 22:43:10 +08:00
Jackson Dou
50d96ae9f6 update README.md 2022-12-11 17:19:29 +08:00
Jackson Dou
0d02973801 update 2022-12-11 16:17:28 +08:00
Jackson Dou
12ea496427 add v2.0 2022-12-11 16:03:29 +08:00
Jackson Dou
9865fd6891 update 2022-11-24 14:20:44 +08:00
Jackson Dou
ca2ed7ae4f update 2022-08-25 08:50:31 +08:00
Jackson Dou
be8350320b update 2022-08-25 08:47:47 +08:00
Jackson Dou
feae9a1482
Update LICENSE 2022-08-23 00:49:04 +08:00
Jackson Dou
778babe4b1
Update README.md 2022-08-23 00:47:15 +08:00
Jackson Dou
7a4beecbbd UPDATE 2022-08-23 00:42:28 +08:00
唐钰豆豆
4803990aa6
Merge pull request #3 from uiisc/dev
update readme for screenshot
2019-10-31 16:04:11 +08:00
doudoudzj
cb1457d458 update 2019-10-31 16:02:38 +08:00
唐钰豆豆
eecaa0d673
Merge pull request #2 from uiisc/dev
merge dev to master
2019-10-31 15:56:17 +08:00
doudoudzj
0c7990600a add logo 2019-10-31 15:52:50 +08:00
唐钰豆豆
21a56df14c update 2019-08-18 22:59:36 +08:00
doudoudzj
671e4e7f68 update 2019-07-21 23:11:33 +08:00
doudoudzj
7260313a1d update 2019-07-19 18:25:53 +08:00
doudoudzj
de54437872 update 2019-07-18 17:34:32 +08:00
doudoudzj
959e423a8d update 2019-07-16 19:16:43 +08:00
doudoudzj
8354190f96 update 2019-07-16 17:23:53 +08:00
doudoudzj
0c8bed50dc add summernote editor 2019-07-16 16:42:20 +08:00
doudoudzj
c6ba200ff0 update language 2019-07-15 23:33:33 +08:00
doudoudzj
dcc2695657 update 2019-07-12 18:33:08 +08:00
doudoudzj
68c2f5a963 update 2019-07-12 16:10:28 +08:00
doudoudzj
bb133f7613 update 2019-07-11 20:44:54 +08:00
doudoudzj
f6fcbd4a70 use I18N() replace $LANG 2019-07-11 17:04:44 +08:00
doudoudzj
da7cbcb1c2 update 2019-07-10 20:28:07 +08:00
doudoudzj
73061adf62 update 2019-07-01 19:50:09 +08:00
doudoudzj
421d79cc5c update 2019-06-27 21:22:04 +08:00
doudoudzj
94b07d1336 update 2019-06-27 20:07:13 +08:00
doudoudzj
04ce754737 update 2019-06-26 20:54:54 +08:00
doudoudzj
0e99eb711e update 2019-06-26 10:02:35 +08:00
doudoudzj
c8aa241511 update 2019-06-26 02:51:54 +08:00
doudoudzj
82b5967c57 update 2019-06-26 01:36:11 +08:00
doudoudzj
98e8745cdd update 2019-06-26 01:33:12 +08:00
doudoudzj
cd80052f47 update 2019-06-26 01:00:55 +08:00
doudoudzj
e357608c6a update 2019-06-25 21:54:36 +08:00
doudoudzj
f5b15ec4a3 upload 2019-06-24 23:03:17 +08:00
doudoudzj
244429f1c1 add ClientArea module 2019-06-24 21:04:26 +08:00
doudoudzj
5d0f61d77f update 2019-06-24 21:01:10 +08:00
doudoudzj
bcafdd180f update 2019-06-24 18:14:22 +08:00
doudoudzj
3bf955064e update 2019-06-24 15:32:46 +08:00
doudoudzj
4894be8108 add dev 2019-06-23 22:53:09 +08:00
doudoudzj
7df2f9d986 add forum, member module 2019-06-15 16:04:02 +08:00
doudoudzj
b266c90090 update README.md 2019-06-15 16:03:18 +08:00
唐钰豆豆
666063b68f
Update README.md 2019-06-05 18:47:13 +08:00
doudoudzj
fab80450be update 2019-06-05 18:05:31 +08:00
doudoudzj
9fd3613aee update 2019-06-05 12:00:39 +08:00
doudoudzj
a00ca50ac9 Added Management Module 2019-06-05 11:59:53 +08:00
doudoudzj
335f234dbb bak 2019-06-04 20:49:25 +08:00
doudoudzj
0e256c44a6 update 2019-06-04 20:48:44 +08:00
doudoudzj
91c6c0f57e update 2019-05-20 19:26:52 +08:00
唐钰豆豆
9a4058e198
Update README.md 2019-05-17 18:52:39 +08:00
doudoudzj
137e4a8928 update 2019-05-17 18:44:52 +08:00
唐钰豆豆
e20652a435
Update README.md 2019-01-30 22:08:01 +08:00
唐钰豆豆
c3d4db905d
Update README.md 2019-01-30 22:01:07 +08:00
doudoudzj
deab9c38a4 hide the Affiliates link parameter in JS by temporary form 2018-12-12 16:00:52 +08:00
doudoudzj
c2c6d74836 add Screenshot 2018-12-11 20:04:05 +08:00
doudoudzj
5fb81ff50b add octocat icon link to repository 2018-12-11 19:47:18 +08:00
doudoudzj
15d525a9d0 Add more selectable languages to the login page 2018-12-11 19:25:09 +08:00
doudoudzj
163f113f1b set: Singapore Chinese default to Simplified Chinese Language 2018-12-11 18:07:46 +08:00
doudoudzj
7e6a99f5c7 add Affiliates link to iFastNet 2018-12-11 18:06:34 +08:00
doudoudzj
c5161c8c65 1.Update multi-language module
2.add: Add Korean Language
2018-12-11 17:57:47 +08:00
doudoudzj
a833a6373d update 2018-12-11 12:59:52 +08:00
doudoudzj
52d0937a2f update 2018-12-11 12:42:16 +08:00
doudoudzj
2d170ee0f9 update 2018-12-11 12:06:31 +08:00
doudoudzj
2a40bed56b update 2018-12-07 18:48:15 +08:00
doudoudzj
038876ebda update 2018-11-24 10:10:35 +08:00
doudoudzj
2cad83c3d5 update 2018-11-16 18:07:00 +08:00
唐钰豆豆
389f728439
Update LICENSE 2018-11-16 15:53:38 +08:00
唐钰豆豆
ef1f8c3742
Update README.md 2018-11-16 15:52:50 +08:00
doudoudzj
0affcc9a0a update 2018-11-16 15:39:39 +08:00
唐钰豆豆
20cb4e5379
Create LICENSE 2018-09-05 15:30:50 +08:00
唐钰豆豆
26876e5678 update 2018-05-15 22:35:31 +08:00
唐钰豆豆
569dc9cd59 update 2018-05-15 12:02:55 +08:00
唐钰豆豆
10fe3cc6c9 update 2018-05-14 22:13:55 +08:00
唐钰豆豆
9d96985d7f update 2018-05-14 20:53:39 +08:00
唐钰豆豆
e8cbffc9ca update 2018-05-14 20:28:36 +08:00
唐钰豆豆
b0914fe01a 1 2018-05-12 18:25:53 +08:00
唐钰豆豆
14d7d3663e add solution 2017-09-11 04:02:26 +08:00
唐钰豆豆
bf0b804251 use local resources 2017-09-10 01:38:44 +08:00
豆振江
57f7973114 use php include to translate language 2017-09-08 15:01:08 +08:00
573 changed files with 49019 additions and 2684 deletions

7
.editorconfig Normal file
View file

@ -0,0 +1,7 @@
[*.{js,jsx,ts,tsx,vue}]
indent_style = space
indent_size = 4
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 300

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
.DS_Store
Thumbs.db
test/

View file

@ -1,5 +0,0 @@
php_value display_errors Off
php_flag magic_quotes 1
php_flag magic_quotes_gpc 1
php_value mbstring.http_input auto
php_value date.timezone Asia/Shanghai

8
.prettierrc Normal file
View file

@ -0,0 +1,8 @@
{
"eslintIntegration": true,
"tabWidth": 4,
"singleQuote": true,
"trailingComma": "none",
"printWidth": 300,
"semi": false
}

29
LICENSE Normal file
View file

@ -0,0 +1,29 @@
BSD 3-Clause License
Copyright (c) 2018 - present, Jackson Dou
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -1,5 +1,60 @@
# myownfreehost-template
a bootstrap template for myownfreehost site uiisc.com by crogram
# UIISC
* author : doudoudzj
* site : https://uiisc.com
An Open Source Web Hosting Account and Support Management System for MyOwnFreeHost
- Demo : [demo.uiisc.com](http://demo.uiisc.com)
- Official Site : [uiisc.org](http://uiisc.org "UIISC")
- Author : [Jackson Dou](https://github.com/jksdou "Jackson Dou")
## Functions
### multi-language module
- [x] Load default language config (/core/language/)
- [x] Change language
- [x] Load custom language config (/data/language/)
### ClientArea module
- [x] Account registration
- [x] Account verification
- [x] Account cancellation
- [x] Email verification
- [x] Profile modification
- [x] Login / Logout, Forget / Reset / Change password
- [x] Apply for a web hosting account
- [x] Web hosting account deletion / deactivation
- [x] Login to web hosting control panel
### AdminArea module
- [x] Verify if a domain is available
- [x] Creation of hosting account
- [x] Change password to hosting account
- [x] Deactivate or disable a hosting account
- [x] Activate or enable hosting account
- [x] Verify how many domain and state of the hosting account
- [x] Members management
- [x] Site configuration
- [x] API configuration
- [x] multi hosting provider management
- [x] News management
- [ ] Translation file management
### forum module
- [ ] Add/edit/delete posts
## Screenshot
##### <u>Solution Page</u>
> ![Solution Page](screenshot/solution.png)
##### <u>Login Page</u>
> ![Login Page](screenshot/login.png)
##### <u>Register Page</u>
> ![Register Page](screenshot/register.png)

18
SECURITY.md Normal file
View file

@ -0,0 +1,18 @@
# Security Policy
## Supported Versions
There is the list of supported versions of php to run UIISC
| Version | Supported |
| ------- | ------------------ |
| 8.0.x | :white_check_mark: |
| > 7.4 | :white_check_mark: |
| 7.1.x | :white_check_mark: |
| > 5.6.x | :white_check_mark: |
| < 5.6 | :x: |
## Reporting a Vulnerability
In case of any error the user can report it by sending email to `admin@uiisc.org` or by contacting phone at `+86-021-51351888`.

View file

@ -1,50 +0,0 @@
<?php
require_once ("core.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?> - News</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet">
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="container">
<div class="row">
<section class="section-wrap">
<div class="container">
<div class="row">
<div class="hidden-xs col-sm-12 col-md-12 termsHead"><h1 data-i18n="contact_us">Contact Us</h1></div>
<div class="col-sm-12 col-md-12">
<h2>Contact</h2>
<p>If you have any problems or have the need to contact us to ask a question,
you can use the <span>integrated support system</span> in your control panel to create a support ticket.</p>
<p>We will reply to your question as soon as possible.</p>
<p>For technical support please look at the <a href="http://byet.net/forumdisplay.php?f=28" target="_blank">Knowledge Base</a></p>
</div>
<div class="col-sm-12 col-md-12">
<h2 data-i18n="address">Address</h2>
<p>Shanghai China.</p>
</div>
<div class="col-sm-12 col-md-12">
<h2>Others</h2>
<p class="alert alert-warning"><i class="glyphicon glyphicon-info-sign"></i> Crogram Inc.</p>
</div>
</div>
</div>
</section>
</div>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

View file

@ -1,28 +0,0 @@
<?php
$title = "UIISC";
$title_s = "UIISC";
$author = 'Crogram Inc.';
$description = "uiisc, freewebhost, webhost, Crogram";
$rooturl = $_SERVER['HTTP_HOST'];
$domain = preg_replace('/^www\./', '', $rooturl);
$static_release = "crogram_build_20161230";
$static_bootstrap_css = "ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css";
function curlrequest($url, $data, $method="post") {
$ch = curl_init(); // 初始化CURL句柄
curl_setopt($ch, CURLOPT_URL, $url); // 设置请求的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // 设为TRUE把curl_exec()结果转化为字串,而不是直接输出
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); // 设置请求方式
curl_setopt($ch, CURLOPT_REFERER,$url); // 构造来路
curl_setopt($ch, CURLOPT_HTTPHEADER,array("X-HTTP-Method-Override: $method")); // 设置HTTP头信息
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // 设置提交的字符串
$document = curl_exec($ch); // 执行预定义的CURL
if(!curl_errno($ch)) {
$info = curl_getinfo($ch);
echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
} else {
echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);
// $document=preg_replace("/[\t\n\r]+/","",$document);
return $document;
}

View file

@ -1,45 +0,0 @@
body {
padding-top: 60px;
padding-bottom: 100px;
line-height: 1.5;
color: #000;
background-color: #fff;
outline: 0;
overflow-x: hidden;
overflow-y: auto;
}
.section-wrap {
padding: 10px 0;
}
.section-wrap.title {
/*background: #349424;*/
/*color: #fff;*/
border-bottom: 1px solid;
}
.terms_policies_menu ul {
list-style-type: circle;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin input[name="uname"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}

View file

@ -1,22 +0,0 @@
<footer class="navbar navbar-default navbar-fixed-bottom">
<div class="container">
<div class="navbar-inner navbar-content-center" style="padding-top:15px;">
<ul class="navbar-left list-inline text-center text-muted credit">
<li>&copy; 2017 <a href="./index.php"><?=$title_s?></a> &nbsp;&nbsp;&nbsp; Powered By <a href="https://crogram.com" target="blank">Crogram</a> & <a href="https://ifastnet.com" target="blank">iFastNet</a></li>
</ul>
<ul class="legal navbar-right list-inline text-center">
<li><a href="./index.php" data-i18n="home">Home</a></li>
<li><a href="./legal_terms.php" data-i18n="tos">Terms of service</a></li>
<li><a href="./contact.php" data-i18n="contact_us">Contact us</a></li>
<li><a href="//help.<?=$domain?>" data-i18n="help">Help</a></li>
<li><a href="./news.php" data-i18n="news">News</a></li>
</ul>
</div>
</div>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/bootstrap.min.js"></script>
<!--<script src="//cdn.bootcss.com/jquery.pjax/1.9.6/jquery.pjax.min.js"></script>-->
<script src="./js/ie10-viewport-bug-workaround.js"></script>
<script src="./js/jquery.i18n.properties.min.js"></script>
<script src="./js/languages.js?_=<?=$static_release?>"></script>

View file

@ -1,51 +0,0 @@
<?php
require_once ("core.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?></title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet"><!--[if lt IE 9]>
<script src="./js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/respond/1.4.2/respond.min.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="jumbotron">
<div class="container">
<h1>Instant activation</h1>
<p>Free hosting accounts are activated instantly, no need to wait for manual approval, you can start building your pages immediately! A powerful Vista Panel control panel is provided to manage your website, packed with hundreds of great features including Email, FTP add-on domain ...</p>
<p>
<a class="btn btn-lg btn-primary" href="./signup.php" role="button">More &raquo;</a>
</p>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-6">
<h2>Automated features!</h2>
<img src="images/img6.jpg" alt="server" class="img-rounded">
<!--<p class="text-danger">As of v8.0, Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing.</p>-->
<p>We provide free FTP, PHP 5.3, MySQL and our very popular feature: The Automatic Script Installer Fantastico can install many popular scripts such as PHPbb2 and PHPbb3, Wordpress, Zen-Cart, osCommerce, MyBB, UseBB, MyLittle Forum, 4images, Coppermine, SMF, Joomla, e107, XOOPS, PHP Wind, CuteNews, Mambo, WikiWig and many more! No need to wait a long time uploading files, Our Automatic Script Installer deploys your files in seconds!.</p>
</div>
<div class="col-md-6">
<h2>Quotas and forum</h2>
<img src="images/img5.jpg" alt="server" class="img-rounded">
<p>Combined with our high bandwidth, space provisions and excellent sub-domain options, make us the optimal option. Our very popular Community Forums has been taken up excellently and active members are growing steadily, hence resulting in a better hosting and friendly experience..</p>
<h3>Cluster servers</h3>
<p>We are using a powerful cluster of webservers that are all interconnected to act as one giant super computer.</p>
</div>
</div>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

View file

@ -1,51 +0,0 @@
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
// IT'S JUST JUNK FOR OUR DOCS!
// ++++++++++++++++++++++++++++++++++++++++++
/*!
* Copyright 2014 Twitter, Inc.
*
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
* details, see http://creativecommons.org/licenses/by/3.0/.
*/
// Intended to prevent false-positive bug reports about Bootstrap not working properly in old versions of IE due to folks testing using IE's unreliable emulation modes.
(function () {
'use strict';
function emulatedIEMajorVersion() {
var groups = /MSIE ([0-9.]+)/.exec(window.navigator.userAgent)
if (groups === null) {
return null
}
var ieVersionNum = parseInt(groups[1], 10)
var ieMajorVersion = Math.floor(ieVersionNum)
return ieMajorVersion
}
function actualNonEmulatedIEMajorVersion() {
// Detects the actual version of IE in use, even if it's in an older-IE emulation mode.
// IE JavaScript conditional compilation docs: http://msdn.microsoft.com/en-us/library/ie/121hztk3(v=vs.94).aspx
// @cc_on docs: http://msdn.microsoft.com/en-us/library/ie/8ka90k2e(v=vs.94).aspx
var jscriptVersion = new Function('/*@cc_on return @_jscript_version; @*/')() // jshint ignore:line
if (jscriptVersion === undefined) {
return 11 // IE11+ not in emulation mode
}
if (jscriptVersion < 9) {
return 8 // IE8 (or lower; haven't tested on IE<8)
}
return jscriptVersion // IE9 or IE10 in any mode, or IE11 in non-IE11 mode
}
var ua = window.navigator.userAgent
if (ua.indexOf('Opera') > -1 || ua.indexOf('Presto') > -1) {
return // Opera, which might pretend to be IE
}
var emulated = emulatedIEMajorVersion()
if (emulated === null) {
return // Not IE
}
var nonEmulated = actualNonEmulatedIEMajorVersion()
if (emulated !== nonEmulated) {
window.alert('WARNING: You appear to be using IE' + nonEmulated + ' in IE' + emulated + ' emulation mode.\nIE emulation modes can behave significantly differently from ACTUAL older versions of IE.\nPLEASE DON\'T FILE BOOTSTRAP BUGS based on testing in IE emulation modes!')
}
})();

View file

@ -1,22 +0,0 @@
/*!
* IE10 viewport hack for Surface/desktop Windows 8 bug
* Copyright 2014 Twitter, Inc.
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
* details, see http://creativecommons.org/licenses/by/3.0/.
*/
// See the Getting Started docs for more information:
// http://getbootstrap.com/getting-started/#support-ie10-width
(function () {
'use strict';
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
var msViewportStyle = document.createElement('style')
msViewportStyle.appendChild(
document.createTextNode(
'@-ms-viewport{width:auto!important}'
)
)
document.querySelector('head').appendChild(msViewportStyle)
}
})();

View file

@ -1,13 +0,0 @@
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
// IT'S JUST JUNK FOR OUR DOCS!
// ++++++++++++++++++++++++++++++++++++++++++
/*!
* Copyright 2011-2014 Twitter, Inc.
*
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
* details, see http://creativecommons.org/licenses/by/3.0/.
*/
// Intended to prevent false-positive bug reports about responsive styling supposedly not working in IE8.
if (window.location.protocol == 'file:') {
window.alert('ERROR: Bootstrap\'s responsive CSS is disabled!\nSee getbootstrap.com/getting-started/#respond-file-proto for details.')
}

View file

@ -1,554 +0,0 @@
/******************************************************************************
* jquery.i18n.properties
*
* Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
* MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
*
* @version 1.2.2
* @url https://github.com/jquery-i18n-properties/jquery-i18n-properties
* @inspiration Localisation assistance for jQuery (http://keith-wood.name/localisation.html)
* by Keith Wood (kbwood{at}iinet.com.au) June 2007
*
*****************************************************************************/
(function ($) {
$.i18n = {};
/** Map holding bundle keys (if mode: 'map') */
$.i18n.map = {};
/**
* Load and parse message bundle files (.properties),
* making bundles keys available as javascript variables.
*
* i18n files are named <name>.js, or <name>_<language>.js or <name>_<language>_<country>.js
* Where:
* The <language> argument is a valid ISO Language Code. These codes are the lower-case,
* two-letter codes as defined by ISO-639. You can find a full list of these codes at a
* number of sites, such as: http://www.loc.gov/standards/iso639-2/englangn.html
* The <country> argument is a valid ISO Country Code. These codes are the upper-case,
* two-letter codes as defined by ISO-3166. You can find a full list of these codes at a
* number of sites, such as: http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
*
* Sample usage for a bundles/Messages.properties bundle:
* $.i18n.properties({
* name: 'Messages',
* language: 'en_US',
* path: 'bundles'
* });
* @param name (string/string[], optional) names of file to load (eg, 'Messages' or ['Msg1','Msg2']). Defaults to "Messages"
* @param language (string, optional) language/country code (eg, 'en', 'en_US', 'pt_BR'). if not specified, language reported by the browser will be used instead.
* @param path (string, optional) path of directory that contains file to load
* @param mode (string, optional) whether bundles keys are available as JavaScript variables/functions or as a map (eg, 'vars' or 'map')
* @param cache (boolean, optional) whether bundles should be cached by the browser, or forcibly reloaded on each page load. Defaults to false (i.e. forcibly reloaded)
* @param encoding (string, optional) the encoding to request for bundles. Property file resource bundles are specified to be in ISO-8859-1 format. Defaults to UTF-8 for backward compatibility.
* @param callback (function, optional) callback function to be called after script is terminated
*/
$.i18n.properties = function (settings) {
// set up settings
var defaults = {
name: 'Messages',
language: '',
path: '',
mode: 'vars',
cache: false,
encoding: 'UTF-8',
async: false,
checkAvailableLanguages: false,
callback: null
};
settings = $.extend(defaults, settings);
// Try to ensure that we have at a least a two letter language code
settings.language = this.normaliseLanguageCode(settings.language);
var languagesFileLoadedCallback = function (languages) {
settings.totalFiles = 0;
settings.filesLoaded = 0;
// load and parse bundle files
var files = getFiles(settings.name);
if (settings.async) {
for (var i = 0, j = files.length; i < j; i++) {
// 1 for the base.
settings.totalFiles += 1;
// 2. with language code (eg, Messages_pt.properties)
var shortCode = settings.language.substring(0, 2);
if (languages.length == 0 || $.inArray(shortCode, languages) != -1) {
// 1 for the short code file
settings.totalFiles += 1;
}
// 3. with language code and country code (eg, Messages_pt_BR.properties)
if (settings.language.length >= 5) {
var longCode = settings.language.substring(0, 5);
if (languages.length == 0 || $.inArray(longCode, languages) != -1) {
// 1 for the long code file
settings.totalFiles += 1;
}
}
}
}
var defaultFileName, shortFileName, longFilename;
for (var k = 0, m = files.length; k < m; k++) {
// 1. load base (eg, Messages.properties)
defaultFileName = settings.path + files[k] + '.properties';
// 2. with language code (eg, Messages_pt.properties)
var shortCode = settings.language.substring(0, 2);
if (languages.length == 0 || $.inArray(shortCode, languages) != -1) {
shortFileName = settings.path + files[k] + '_' + shortCode + '.properties';
}
// 3. with language code and country code (eg, Messages_pt_BR.properties)
if (settings.language.length >= 5) {
var longCode = settings.language.substring(0, 5);
if (languages.length == 0 || $.inArray(longCode, languages) != -1) {
longFileName = settings.path + files[k] + '_' + longCode + '.properties';
}
}
loadAndParseFiles([defaultFileName,shortFileName,longFileName], settings);
defaultFileName = shortFileName = longFileName = null;
}
// call callback
if (settings.callback && !settings.async) {
settings.callback();
}
};
if (settings.checkAvailableLanguages) {
$.ajax({
url: settings.path + 'languages.json',
async: settings.async,
cache: false,
success: function (data, textStatus, jqXHR) {
languagesFileLoadedCallback(data.languages || []);
}
});
} else {
languagesFileLoadedCallback([]);
}
};
/**
* When configured with mode: 'map', allows access to bundle values by specifying its key.
* Eg, jQuery.i18n.prop('com.company.bundles.menu_add')
*/
$.i18n.prop = function (key /* Add parameters as function arguments as necessary */) {
var value = $.i18n.map[key];
if (value == null)
return '[' + key + ']';
var phvList;
if (arguments.length == 2 && $.isArray(arguments[1]))
// An array was passed as the only parameter, so assume it is the list of place holder values.
phvList = arguments[1];
// Place holder replacement
/**
* Tested with:
* test.t1=asdf ''{0}''
* test.t2=asdf '{0}' '{1}'{1}'zxcv
* test.t3=This is \"a quote" 'a''{0}''s'd{fgh{ij'
* test.t4="'''{'0}''" {0}{a}
* test.t5="'''{0}'''" {1}
* test.t6=a {1} b {0} c
* test.t7=a 'quoted \\ s\ttringy' \t\t x
*
* Produces:
* test.t1, p1 ==> asdf 'p1'
* test.t2, p1 ==> asdf {0} {1}{1}zxcv
* test.t3, p1 ==> This is "a quote" a'{0}'sd{fgh{ij
* test.t4, p1 ==> "'{0}'" p1{a}
* test.t5, p1 ==> "'{0}'" {1}
* test.t6, p1 ==> a {1} b p1 c
* test.t6, p1, p2 ==> a p2 b p1 c
* test.t6, p1, p2, p3 ==> a p2 b p1 c
* test.t7 ==> a quoted \ s tringy x
*/
var i;
if (typeof(value) == 'string') {
// Handle escape characters. Done separately from the tokenizing loop below because escape characters are
// active in quoted strings.
i = 0;
while ((i = value.indexOf('\\', i)) != -1) {
if (value.charAt(i + 1) == 't')
value = value.substring(0, i) + '\t' + value.substring((i++) + 2); // tab
else if (value.charAt(i + 1) == 'r')
value = value.substring(0, i) + '\r' + value.substring((i++) + 2); // return
else if (value.charAt(i + 1) == 'n')
value = value.substring(0, i) + '\n' + value.substring((i++) + 2); // line feed
else if (value.charAt(i + 1) == 'f')
value = value.substring(0, i) + '\f' + value.substring((i++) + 2); // form feed
else if (value.charAt(i + 1) == '\\')
value = value.substring(0, i) + '\\' + value.substring((i++) + 2); // \
else
value = value.substring(0, i) + value.substring(i + 1); // Quietly drop the character
}
// Lazily convert the string to a list of tokens.
var arr = [], j, index;
i = 0;
while (i < value.length) {
if (value.charAt(i) == '\'') {
// Handle quotes
if (i == value.length - 1)
value = value.substring(0, i); // Silently drop the trailing quote
else if (value.charAt(i + 1) == '\'')
value = value.substring(0, i) + value.substring(++i); // Escaped quote
else {
// Quoted string
j = i + 2;
while ((j = value.indexOf('\'', j)) != -1) {
if (j == value.length - 1 || value.charAt(j + 1) != '\'') {
// Found start and end quotes. Remove them
value = value.substring(0, i) + value.substring(i + 1, j) + value.substring(j + 1);
i = j - 1;
break;
}
else {
// Found a double quote, reduce to a single quote.
value = value.substring(0, j) + value.substring(++j);
}
}
if (j == -1) {
// There is no end quote. Drop the start quote
value = value.substring(0, i) + value.substring(i + 1);
}
}
}
else if (value.charAt(i) == '{') {
// Beginning of an unquoted place holder.
j = value.indexOf('}', i + 1);
if (j == -1)
i++; // No end. Process the rest of the line. Java would throw an exception
else {
// Add 1 to the index so that it aligns with the function arguments.
index = parseInt(value.substring(i + 1, j));
if (!isNaN(index) && index >= 0) {
// Put the line thus far (if it isn't empty) into the array
var s = value.substring(0, i);
if (s != "")
arr.push(s);
// Put the parameter reference into the array
arr.push(index);
// Start the processing over again starting from the rest of the line.
i = 0;
value = value.substring(j + 1);
}
else
i = j + 1; // Invalid parameter. Leave as is.
}
}
else
i++;
}
// Put the remainder of the no-empty line into the array.
if (value != "")
arr.push(value);
value = arr;
// Make the array the value for the entry.
$.i18n.map[key] = arr;
}
if (value.length == 0)
return "";
if (value.length == 1 && typeof(value[0]) == "string")
return value[0];
var str = "";
for (i = 0; i < value.length; i++) {
if (typeof(value[i]) == "string")
str += value[i];
// Must be a number
else if (phvList && value[i] < phvList.length)
str += phvList[value[i]];
else if (!phvList && value[i] + 1 < arguments.length)
str += arguments[value[i] + 1];
else
str += "{" + value[i] + "}";
}
return str;
};
function callbackIfComplete(settings) {
if (settings.async) {
settings.filesLoaded += 1;
if (settings.filesLoaded === settings.totalFiles) {
if (settings.callback) {
settings.callback();
}
}
}
}
function loadAndParseFiles(filenames, settings) {
if (filenames!=null && filenames.length > 0) {
loadAndParseFile(filenames[0],settings,function(){
filenames.shift();
loadAndParseFiles(filenames,settings)
});
}
}
/** Load and parse .properties files */
function loadAndParseFile(filename, settings,next) {
if (filename!=null) {
$.ajax({
url: filename,
async: settings.async,
cache: settings.cache,
dataType: 'text',
success: function (data, status) {
parseData(data, settings.mode);
next();
callbackIfComplete(settings);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log('Failed to download or parse ' + filename);
callbackIfComplete(settings);
}
});
}
}
/** Parse .properties files */
function parseData(data, mode) {
var parsed = '';
var parameters = data.split(/\n/);
var regPlaceHolder = /(\{\d+})/g;
var regRepPlaceHolder = /\{(\d+)}/g;
var unicodeRE = /(\\u.{4})/ig;
for (var i = 0; i < parameters.length; i++) {
parameters[i] = parameters[i].replace(/^\s\s*/, '').replace(/\s\s*$/, ''); // trim
if (parameters[i].length > 0 && parameters[i].match("^#") != "#") { // skip comments
var pair = parameters[i].split('=');
if (pair.length > 0) {
/** Process key & value */
var name = decodeURI(pair[0]).replace(/^\s\s*/, '').replace(/\s\s*$/, ''); // trim
var value = pair.length == 1 ? "" : pair[1];
// process multi-line values
while (value.match(/\\$/) == "\\") {
value = value.substring(0, value.length - 1);
value += parameters[++i].replace(/\s\s*$/, ''); // right trim
}
// Put values with embedded '='s back together
for (var s = 2; s < pair.length; s++) {
value += '=' + pair[s];
}
value = value.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); // trim
/** Mode: bundle keys in a map */
if (mode == 'map' || mode == 'both') {
// handle unicode chars possibly left out
var unicodeMatches = value.match(unicodeRE);
if (unicodeMatches) {
for (var u = 0; u < unicodeMatches.length; u++) {
value = value.replace(unicodeMatches[u], unescapeUnicode(unicodeMatches[u]));
}
}
// add to map
$.i18n.map[name] = value;
}
/** Mode: bundle keys as vars/functions */
if (mode == 'vars' || mode == 'both') {
value = value.replace(/"/g, '\\"'); // escape quotation mark (")
// make sure namespaced key exists (eg, 'some.key')
checkKeyNamespace(name);
// value with variable substitutions
if (regPlaceHolder.test(value)) {
var parts = value.split(regPlaceHolder);
// process function args
var first = true;
var fnArgs = '';
var usedArgs = [];
for (var p = 0; p < parts.length; p++) {
if (regPlaceHolder.test(parts[p]) && (usedArgs.length == 0 || usedArgs.indexOf(parts[p]) == -1)) {
if (!first) {
fnArgs += ',';
}
fnArgs += parts[p].replace(regRepPlaceHolder, 'v$1');
usedArgs.push(parts[p]);
first = false;
}
}
parsed += name + '=function(' + fnArgs + '){';
// process function body
var fnExpr = '"' + value.replace(regRepPlaceHolder, '"+v$1+"') + '"';
parsed += 'return ' + fnExpr + ';' + '};';
// simple value
} else {
parsed += name + '="' + value + '";';
}
} // END: Mode: bundle keys as vars/functions
} // END: if(pair.length > 0)
} // END: skip comments
}
eval(parsed);
}
/** Make sure namespace exists (for keys with dots in name) */
// TODO key parts that start with numbers quietly fail. i.e. month.short.1=Jan
function checkKeyNamespace(key) {
var regDot = /\./;
if (regDot.test(key)) {
var fullname = '';
var names = key.split(/\./);
for (var i = 0; i < names.length; i++) {
if (i > 0) {
fullname += '.';
}
fullname += names[i];
if (eval('typeof ' + fullname + ' == "undefined"')) {
eval(fullname + '={};');
}
}
}
}
/** Make sure filename is an array */
function getFiles(names) {
return (names && names.constructor == Array) ? names : [names];
}
/** Ensure language code is in the format aa_AA. */
$.i18n.normaliseLanguageCode = function (lang) {
if (!lang || lang.length < 2) {
lang = (navigator.languages) ? navigator.languages[0]
: (navigator.language || navigator.userLanguage /* IE */ || 'en');
}
lang = lang.toLowerCase();
lang = lang.replace(/-/,"_"); // some browsers report language as en-US instead of en_US
if (lang.length > 3) {
lang = lang.substring(0, 3) + lang.substring(3).toUpperCase();
}
return lang;
};
/** Unescape unicode chars ('\u00e3') */
function unescapeUnicode(str) {
// unescape unicode codes
var codes = [];
var code = parseInt(str.substr(2), 16);
if (code >= 0 && code < Math.pow(2, 16)) {
codes.push(code);
}
// convert codes to text
var unescaped = '';
for (var i = 0; i < codes.length; ++i) {
unescaped += String.fromCharCode(codes[i]);
}
return unescaped;
}
/* Cross-Browser Split 1.0.1
(c) Steven Levithan <stevenlevithan.com>; MIT License
An ECMA-compliant, uniform cross-browser split method */
var cbSplit;
// avoid running twice, which would break `cbSplit._nativeSplit`'s reference to the native `split`
if (!cbSplit) {
cbSplit = function (str, separator, limit) {
// if `separator` is not a regex, use the native `split`
if (Object.prototype.toString.call(separator) !== "[object RegExp]") {
if (typeof cbSplit._nativeSplit == "undefined")
return str.split(separator, limit);
else
return cbSplit._nativeSplit.call(str, separator, limit);
}
var output = [],
lastLastIndex = 0,
flags = (separator.ignoreCase ? "i" : "") +
(separator.multiline ? "m" : "") +
(separator.sticky ? "y" : ""),
separator = new RegExp(separator.source, flags + "g"), // make `global` and avoid `lastIndex` issues by working with a copy
separator2, match, lastIndex, lastLength;
str = str + ""; // type conversion
if (!cbSplit._compliantExecNpcg) {
separator2 = new RegExp("^" + separator.source + "$(?!\\s)", flags); // doesn't need /g or /y, but they don't hurt
}
/* behavior for `limit`: if it's...
- `undefined`: no limit.
- `NaN` or zero: return an empty array.
- a positive number: use `Math.floor(limit)`.
- a negative number: no limit.
- other: type-convert, then use the above rules. */
if (limit === undefined || +limit < 0) {
limit = Infinity;
} else {
limit = Math.floor(+limit);
if (!limit) {
return [];
}
}
while (match = separator.exec(str)) {
lastIndex = match.index + match[0].length; // `separator.lastIndex` is not reliable cross-browser
if (lastIndex > lastLastIndex) {
output.push(str.slice(lastLastIndex, match.index));
// fix browsers whose `exec` methods don't consistently return `undefined` for nonparticipating capturing groups
if (!cbSplit._compliantExecNpcg && match.length > 1) {
match[0].replace(separator2, function () {
for (var i = 1; i < arguments.length - 2; i++) {
if (arguments[i] === undefined) {
match[i] = undefined;
}
}
});
}
if (match.length > 1 && match.index < str.length) {
Array.prototype.push.apply(output, match.slice(1));
}
lastLength = match[0].length;
lastLastIndex = lastIndex;
if (output.length >= limit) {
break;
}
}
if (separator.lastIndex === match.index) {
separator.lastIndex++; // avoid an infinite loop
}
}
if (lastLastIndex === str.length) {
if (lastLength || !separator.test("")) {
output.push("");
}
} else {
output.push(str.slice(lastLastIndex));
}
return output.length > limit ? output.slice(0, limit) : output;
};
cbSplit._compliantExecNpcg = /()??/.exec("")[1] === undefined; // NPCG: nonparticipating capturing group
cbSplit._nativeSplit = String.prototype.split;
} // end `if (!cbSplit)`
String.prototype.split = function (separator, limit) {
return cbSplit(this, separator, limit);
};
})(jQuery);

View file

@ -1,61 +0,0 @@
/******************************************************************************
* jquery.i18n.properties
*
* Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
* MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
*
* @version 1.2.2
* @url https://github.com/jquery-i18n-properties/jquery-i18n-properties
* @inspiration Localisation assistance for jQuery (http://keith-wood.name/localisation.html)
* by Keith Wood (kbwood{at}iinet.com.au) June 2007
*
*****************************************************************************/
!function($){function callbackIfComplete(e){e.async&&(e.filesLoaded+=1,e.filesLoaded===e.totalFiles&&e.callback&&e.callback())}function loadAndParseFile(e,a){$.ajax({url:e,async:a.async,cache:a.cache,dataType:"text",success:function(e,r){parseData(e,a.mode),callbackIfComplete(a)},error:function(r,t,n){console.log("Failed to download or parse "+e),callbackIfComplete(a)}})}function parseData(data,mode){for(var parsed="",parameters=data.split(/\n/),regPlaceHolder=/(\{\d+})/g,regRepPlaceHolder=/\{(\d+)}/g,unicodeRE=/(\\u.{4})/gi,i=0;i<parameters.length;i++)if(parameters[i]=parameters[i].replace(/^\s\s*/,"").replace(/\s\s*$/,""),parameters[i].length>0&&"#"!=parameters[i].match("^#")){var pair=parameters[i].split("=")
if(pair.length>0){for(var name=decodeURI(pair[0]).replace(/^\s\s*/,"").replace(/\s\s*$/,""),value=1==pair.length?"":pair[1];"\\"==value.match(/\\$/);)value=value.substring(0,value.length-1),value+=parameters[++i].replace(/\s\s*$/,"")
for(var s=2;s<pair.length;s++)value+="="+pair[s]
if(value=value.replace(/^\s\s*/,"").replace(/\s\s*$/,""),"map"==mode||"both"==mode){var unicodeMatches=value.match(unicodeRE)
if(unicodeMatches)for(var u=0;u<unicodeMatches.length;u++)value=value.replace(unicodeMatches[u],unescapeUnicode(unicodeMatches[u]))
$.i18n.map[name]=value}if("vars"==mode||"both"==mode)if(value=value.replace(/"/g,'\\"'),checkKeyNamespace(name),regPlaceHolder.test(value)){for(var parts=value.split(regPlaceHolder),first=!0,fnArgs="",usedArgs=[],p=0;p<parts.length;p++)!regPlaceHolder.test(parts[p])||0!=usedArgs.length&&-1!=usedArgs.indexOf(parts[p])||(first||(fnArgs+=","),fnArgs+=parts[p].replace(regRepPlaceHolder,"v$1"),usedArgs.push(parts[p]),first=!1)
parsed+=name+"=function("+fnArgs+"){"
var fnExpr='"'+value.replace(regRepPlaceHolder,'"+v$1+"')+'"'
parsed+="return "+fnExpr+";};"}else parsed+=name+'="'+value+'";'}}eval(parsed)}function checkKeyNamespace(key){var regDot=/\./
if(regDot.test(key))for(var fullname="",names=key.split(/\./),i=0;i<names.length;i++)i>0&&(fullname+="."),fullname+=names[i],eval("typeof "+fullname+' == "undefined"')&&eval(fullname+"={};")}function getFiles(e){return e&&e.constructor==Array?e:[e]}function unescapeUnicode(e){var a=[],r=parseInt(e.substr(2),16)
r>=0&&r<Math.pow(2,16)&&a.push(r)
for(var t="",n=0;n<a.length;++n)t+=String.fromCharCode(a[n])
return t}$.i18n={},$.i18n.map={},$.i18n.properties=function(e){var a={name:"Messages",language:"",path:"",mode:"vars",cache:!1,encoding:"UTF-8",async:!1,checkAvailableLanguages:!1,callback:null}
e=$.extend(a,e),e.language=this.normaliseLanguageCode(e.language)
var r=function(a){e.totalFiles=0,e.filesLoaded=0
var r=getFiles(e.name)
if(e.async)for(var t=0,n=r.length;n>t;t++){e.totalFiles+=1
var s=e.language.substring(0,2)
if(0!=a.length&&-1==$.inArray(s,a)||(e.totalFiles+=1),e.language.length>=5){var l=e.language.substring(0,5)
0!=a.length&&-1==$.inArray(l,a)||(e.totalFiles+=1)}}for(var i=0,g=r.length;g>i;i++){loadAndParseFile(e.path+r[i]+".properties",e)
var s=e.language.substring(0,2)
if(0!=a.length&&-1==$.inArray(s,a)||loadAndParseFile(e.path+r[i]+"_"+s+".properties",e),e.language.length>=5){var l=e.language.substring(0,5)
0!=a.length&&-1==$.inArray(l,a)||loadAndParseFile(e.path+r[i]+"_"+l+".properties",e)}}e.callback&&!e.async&&e.callback()}
e.checkAvailableLanguages?$.ajax({url:e.path+"languages.json",async:e.async,cache:!1,success:function(e,a,t){r(e.languages||[])}}):r([])},$.i18n.prop=function(e){var a=$.i18n.map[e]
if(null==a)return"["+e+"]"
var r
2==arguments.length&&$.isArray(arguments[1])&&(r=arguments[1])
var t
if("string"==typeof a){for(t=0;-1!=(t=a.indexOf("\\",t));)a="t"==a.charAt(t+1)?a.substring(0,t)+" "+a.substring(t++ +2):"r"==a.charAt(t+1)?a.substring(0,t)+"\r"+a.substring(t++ +2):"n"==a.charAt(t+1)?a.substring(0,t)+"\n"+a.substring(t++ +2):"f"==a.charAt(t+1)?a.substring(0,t)+"\f"+a.substring(t++ +2):"\\"==a.charAt(t+1)?a.substring(0,t)+"\\"+a.substring(t++ +2):a.substring(0,t)+a.substring(t+1)
var n,s,l=[]
for(t=0;t<a.length;)if("'"==a.charAt(t))if(t==a.length-1)a=a.substring(0,t)
else if("'"==a.charAt(t+1))a=a.substring(0,t)+a.substring(++t)
else{for(n=t+2;-1!=(n=a.indexOf("'",n));){if(n==a.length-1||"'"!=a.charAt(n+1)){a=a.substring(0,t)+a.substring(t+1,n)+a.substring(n+1),t=n-1
break}a=a.substring(0,n)+a.substring(++n)}-1==n&&(a=a.substring(0,t)+a.substring(t+1))}else if("{"==a.charAt(t))if(n=a.indexOf("}",t+1),-1==n)t++
else if(s=parseInt(a.substring(t+1,n)),!isNaN(s)&&s>=0){var i=a.substring(0,t)
""!=i&&l.push(i),l.push(s),t=0,a=a.substring(n+1)}else t=n+1
else t++
""!=a&&l.push(a),a=l,$.i18n.map[e]=l}if(0==a.length)return""
if(1==a.length&&"string"==typeof a[0])return a[0]
var g=""
for(t=0;t<a.length;t++)g+="string"==typeof a[t]?a[t]:r&&a[t]<r.length?r[a[t]]:!r&&a[t]+1<arguments.length?arguments[a[t]+1]:"{"+a[t]+"}"
return g},$.i18n.normaliseLanguageCode=function(e){return(!e||e.length<2)&&(e=navigator.languages?navigator.languages[0]:navigator.language||navigator.userLanguage||"en"),e=e.toLowerCase(),e=e.replace(/-/,"_"),e.length>3&&(e=e.substring(0,3)+e.substring(3).toUpperCase()),e}
var cbSplit
cbSplit||(cbSplit=function(e,a,r){if("[object RegExp]"!==Object.prototype.toString.call(a))return"undefined"==typeof cbSplit._nativeSplit?e.split(a,r):cbSplit._nativeSplit.call(e,a,r)
var t,n,s,l,i=[],g=0,c=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.sticky?"y":""),a=new RegExp(a.source,c+"g")
if(e+="",cbSplit._compliantExecNpcg||(t=new RegExp("^"+a.source+"$(?!\\s)",c)),void 0===r||0>+r)r=1/0
else if(r=Math.floor(+r),!r)return[]
for(;(n=a.exec(e))&&(s=n.index+n[0].length,!(s>g&&(i.push(e.slice(g,n.index)),!cbSplit._compliantExecNpcg&&n.length>1&&n[0].replace(t,function(){for(var e=1;e<arguments.length-2;e++)void 0===arguments[e]&&(n[e]=void 0)}),n.length>1&&n.index<e.length&&Array.prototype.push.apply(i,n.slice(1)),l=n[0].length,g=s,i.length>=r)));)a.lastIndex===n.index&&a.lastIndex++
return g===e.length?!l&&a.test("")||i.push(""):i.push(e.slice(g)),i.length>r?i.slice(0,r):i},cbSplit._compliantExecNpcg=void 0===/()??/.exec("")[1],cbSplit._nativeSplit=String.prototype.split),String.prototype.split=function(e,a){return cbSplit(this,e,a)}}(jQuery)

View file

@ -1,25 +0,0 @@
jQuery.i18n.properties({
name: 'lang',
path: './locales/',
mode: 'both',
// language: 'zh_CN',
checkAvailableLanguages: true,
async: true,
cache: true,
callback: function () {
jQuery("html").attr("lang", jQuery.i18n.normaliseLanguageCode());
$("[data-i18n]").each(function () {
var elem = $(this), localizedValue = jQuery.i18n.map[elem.data("i18n")];
if (elem.is("input[type=text]") || elem.is("input[type=password]") || elem.is("input[type=email]")) {
elem.attr("placeholder", localizedValue);
} else if (elem.is("input[type=button]") || elem.is("input[type=submit]")) {
elem.attr("value", localizedValue);
} else {
elem.text(localizedValue);
}
});
if (window.location.pathname == "/login.php") {
jQuery("input[name=language]").attr("value", jQuery.i18n.map["language"])
}
}
});

View file

@ -1,105 +0,0 @@
<?php
require_once ("core.php");
// $html = file_get_contents('https://ifastnet.com/portal/cancellation-refund.php');
// preg_match('/<footer[^>]*id="footer"[^>]*>(.*?) <//footer>/si', $html, $match);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?> - Cancellation & Refund</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet"><!--[if lt IE 9]>
<script src="./js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="container">
<div class="row">
<section class="section-wrap title">
<div class="container">
<h2 class="text-center">Cancelation policy &amp; Refund policy</h2>
<p class="text-center">Cancelation &amp; refund information</p>
</div>
</section>
<section class="section-wrap cancelationInfo">
<div class="container">
<div class="row">
<div class="hidden-xs col-sm-12 col-md-12 termsHead"><h1>Cancellation Policy</h1></div>
<div class="col-sm-12 col-md-12">
<p>IFastNet.com (IFastNet LTD) believes in helping its customers as far as possible, and has
therefore a liberal cancellation policy. Under this policy:</p>
<ul type="d">
<li>Cancellations will be considered only if the request is made within 7 days of placing an
order. However, the cancellation request will not be entertained if the orders have been
communicated to the vendors/merchants and they have initiated the process of provisioning
services.
</li>
<li>Cancelations must be communicated to Ifastnet.com a minimum of 14 days before the service is
due. Failure to cancel before this period is acceptance of renewal of the service.
</li>
</ul>
</div>
</div>
</div>
</section>
<section class="section-wrap refundInfo">
<div class="container">
<div class="row">
<div class="hidden-xs col-sm-12 col-md-12 termsHead"><h1>Refund Policy</h1></div>
<div class="col-sm-12 col-md-12">
<p>When you buy our products/services, your purchase is covered by our 7-day money-back guarantee.
If you are, for any reason, not entirely happy with your purchase, we will cheerfully issue a
full refund. We develop and sell software that we use ourselves every day and have thousands of
satisfied customers worldwide, and our support is second to none. That is why we can afford to
back our products with this special guarantee.</p>
<p>To request a refund, simply contact us with your
purchase details within seven (7) days of your purchase. Please include your order number (sent
to you via email after ordering) and optionally tell us why youre requesting a refund we take
customer feedback very seriously and use it to constantly improve our products and quality of
service. Refunds are not being provided for services delivered in full such as installation
service and provided knowledge base hosting service. Refunds are being processed within a 7 day
period.</p>
<p>If a service is canceled and a refund requested, the cost incurred of renewing or providing a
free domain name (if included with the service being canceled ) will be minused from the refund
amount (this could sometimes lead to a negative value).</p>
<p class="alert alert-warning"><i class="glyphicon glyphicon-info-sign"></i> Domain name renewal / registration fees and costs are non-refundable.</p>
</div>
</div>
</div>
</section>
<section class="section-wrap">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 terms_policies_menu">
<div class="panel panel-default">
<div class="panel-heading"><i class="glyphicon glyphicon-list-alt"></i> Other legal information</div>
<div class="panel-body">
<ul>
<li><a href="./legal_terms.php" data-i18n="tos">Terms of Service</a></li>
<li class="active" data-i18n="cancellation_refund">Cancellation &amp; Refund</li>
<li><a href="./legal_privacy.php" data-i18n="privacy_policy">Privacy Policy</a></li>
<li><a href="./legal_payment-methods.php" data-i18n="payment_methods">Payment Methods &amp; Information</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

View file

@ -1,97 +0,0 @@
<?php
require_once ("core.php");
// $html = file_get_contents('https://ifastnet.com/payment-methods.php');
// preg_match('/<footer[^>]*id="footer"[^>]*>(.*?) <//footer>/si', $html, $match);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?> - Payment Methods & Information</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet"><!--[if lt IE 9]>
<script src="./js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="container">
<div class="row">
<section class="section-wrap title">
<div class="container">
<h2 class="text-center">Payment Methods</h2>
<p class="text-center">Payment methods information</p>
</div>
</section>
<section class="section-wrap paymentsInfo">
<div class="container">
<div class="row">
<div class="hidden-xs col-sm-12 col-md-12 termsHead"><h1>Payment Methods</h1></div>
<div class="col-sm-12 col-md-12">
<p>We currently accept payments using 3 major payment gateways:</p>
<ul>
<li><strong>Paypal</strong> - using credit cards and paypal accounts</li>
<li><strong>WorldPay</strong> - instant credit cards payments</li>
<li><strong>2CheckOut</strong> - instant and recurrent credit cards payments as well as paypal payments where countries support it.</li>
</ul>
</div>
</div>
</div>
</section>
<section class="section-wrap sectionPaymentLogos">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12">
<div class="col-sm-12 col-md-12">
<img src="./images/payment/paypal.jpg" border="0" alt="Paypal payments">
<img src="./images/payment/poweredByWorldPay.gif" border="0" alt="Worldpay payments">
<img src="./images/payment/2co11.jpg" border="0" alt="2CheckOut payments">
</div>
<div class="col-sm-12 col-md-12">
<img src="./images/payment/visa_debit.gif" border="0" alt="Visa Debit payments supported by WorldPay">
<img src="./images/payment/visa_electron.gif" border="0" alt="Visa Electron payments supported by WorldPay">
<img src="./images/payment/mastercard.gif" border="0" alt="Mastercard payments supported by WorldPay">
<img src="./images/payment/maestro.gif" border="0" alt="Maestro payments supported by WorldPay">
<img src="./images/payment/AMEX.gif" border="0" alt="American Express payments supported by WorldPay">
<img src="./images/payment/diners.gif" border="0" alt="Diners payments supported by WorldPay">
<img src="./images/payment/JCB.gif" border="0" alt="JCB payments supported by WorldPay">
<img src="./images/payment/laser.gif" border="0" alt="Laser payments supported by WorldPay">
<img src="./images/payment/ELV.gif" border="0" alt="ELV payments supported by WorldPay">
</div>
</div>
</div>
</div>
</section>
<section class="section-wrap">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 terms_policies_menu">
<div class="panel panel-default">
<div class="panel-heading"><i class="glyphicon glyphicon-list-alt"></i> Other legal information</div>
<div class="panel-body">
<ul>
<li><a href="./legal_terms.php" data-i18n="tos">Terms of Service</a></li>
<li><a href="./legal_cancellation-refund.php" data-i18n="cancellation_refund">Cancellation &amp; Refund</a></li>
<li><a href="./legal_privacy.php" data-i18n="privacy_policy">Privacy Policy</a></li>
<li class="active" data-i18n="payment_methods">Payment Methods &amp; Information</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

View file

@ -1,115 +0,0 @@
<?php
require_once ("core.php");
// $html = file_get_contents('https://ifastnet.com/privacy.php');
// preg_match('/<footer[^>]*id="footer"[^>]*>(.*?) <//footer>/si', $html, $match);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?> - Privacy Policy</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet"><!--[if lt IE 9]>
<script src="./js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="container">
<div class="row">
<section class="section-wrap title">
<div class="container">
<h2 class="text-center">Privacy Policy</h2>
<p class="text-center">Privacy policy information</p>
</div>
</section>
<section class="section-wrap privacyInfo">
<div class="container">
<div class="row">
<div class="hidden-xs col-sm-12 col-md-12 termsHead"><h1>Privacy Policy</h1></div>
<div class="col-sm-12 col-md-12">
<h2>IFastNet LTD Privacy Policy</h2>
<p>In an effort to protect our clients' and site visitors privacy and rights, IFastNet LTD has
established a Privacy Policy which explains what information we gather on visitors and what we
do with information that we gather.</p>
<p>This Privacy Policy governs the manner in which IFastNet LTD collects, uses, maintains and
discloses information collected from users of this Web site (each, a "User").</p>
</div>
<div class="col-sm-12 col-md-12">
<h2>Privacy</h2>
<p>Users' privacy is very important to IFastNet LTD. We are committed to safeguarding the
information Users entrust to IFastNet LTD.</p>
</div>
<div class="col-sm-12 col-md-12">
<h2>The information we collect</h2>
<p>IFastNet LTD collects personally identifiable information from Users through online forms for
ordering products and services. We may also collect information about how Users use our Web
site, for example, by tracking the number of unique views received by the pages of the Web site
or the domains from which Users originate. We use "cookies" to track how Users use our Web
site.</p>
</div>
<div class="col-sm-12 col-md-12">
<h2>How we use information</h2>
<p>IFastNet LTD may use personally identifiable information collected through our Web site to
contact Users regarding products and services offered by IFastNet LTD and its trusted
affiliates, independent contractors and business partners, and otherwise to enhance Users'
experience with IFastNet LTD and such affiliates, independent contractors and business partners.
</p>
<p>At no time will IFastNet LTD's database of users ever be sold to any entity for the purpose of
marketing or mailing lists. Personal information will not be sold or otherwise transferred to
our business partners without your prior consent, except that we will disclose the information
we collect to third parties when, in our good faith judgment, we are obligated to do so under
applicable laws.</p>
</div>
<div class="col-sm-12 col-md-12">
<h2>Cookies</h2>
<p>Cookies are small digital signature files that are stored by your web browser that allow your
preferences to be recorded when visiting the website. Also they may be used to track your return
visits to the website.</p>
<p>3rd party advertising companies may also use cookies for tracking purposes.</p>
</div>
</div>
</div>
</section>
<section class="section-wrap">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 terms_policies_menu">
<div class="panel panel-default">
<div class="panel-heading"><i class="glyphicon glyphicon-list-alt"></i> Other legal information
</div>
<div class="panel-body">
<ul>
<li><a href="./legal_terms.php" data-i18n="tos">Terms of Service</a></li>
<li><a href="./legal_cancellation-refund.php" data-i18n="cancellation_refund">Cancellation &amp; Refund</a></li>
<li class="active" data-i18n="privacy_policy">Privacy Policy</li>
<li><a href="./legal_payment-methods.php" data-i18n="payment_methods">Payment Methods &amp; Information</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

View file

@ -1,875 +0,0 @@
<?php
require_once ("core.php");
// $html = file_get_contents('https://ifastnet.com/portal/terms.php');
// preg_match('/<footer[^>]*id="footer"[^>]*>(.*?) <//footer>/si', $html, $match);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?> - Terms of Service</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet"><!--[if lt IE 9]>
<script src="./js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="container">
<div class="row">
<section class="section-wrap title">
<div class="container">
<h2 class="text-center">Terms of Service</h2>
<p class="text-center">Service conditions and policies</p>
</div>
</section>
<section class="section-wrap termsInfo">
<div class="container">
<div class="row">
<div class="hidden-xs col-sm-12 col-md-12 termsHead"><h1>Terms of Service</h1></div>
<div class="col-sm-12 col-md-12 termsInfo">
<p>On this page you will find our terms of service as well as links to our privacy policies and payment information. Click on the links bellow to change between other legal information.</p>
</div>
<div class="col-sm-12 col-md-12 termsDiv">
<h2>1. ACCEPTANCE OF TERMS</h2>
<p>IFastNet LTD (from
now on named "IFastNet") welcomes you.</p>
<p>IFastNet provides
its service to you subject to the following Terms of Service ("TOS"),
which may be updated by us from time to time without notice to you.
In addition, when using particular IFastNet owned or operated
services, you and IFastNet shall be subject to any posted guidelines
or rules applicable to such services, which may be posted from time
to time.</p>
<p>All such guidelines
or rules (including, but not limited to our Spam Policy) are hereby
incorporated by reference into the TOS. IFastNet may also offer other
services that are governed by different Terms of Service.</p>
<h2>2. DESCRIPTION OF SERVICE</h2>
<p>IFastNet provides
users with access to a rich collection of resources, including
various communications tools, forums, shopping services, search
services, personalized content and branded programming through its
network of properties which may be accessed through any various
medium or device now known or hereafter developed (the "Service").</p>
<p>You also understand
and agree that the Service may include advertisements and that these
advertisements are necessary for IFastNet to provide the Service. You
also understand and agree that the Service may include certain
communications from IFastNet, such as service announcements,
administrative messages and the IFastNet Newsletter, and that these
communications are considered part of IFastNet membership and you
will not be able to opt out of receiving them. Unless explicitly
stated otherwise, any new features that augment or enhance the
current Service, including the release of new IFastNet properties,
shall be subject to the TOS.</p>
<p>You understand and
agree that the Service is provided "AS-IS" and that
IFastNet assumes no responsibility for the timeliness, deletion,
mis-delivery or failure to store any user communications or
personalization settings. You are responsible for obtaining access to
the Service, and that access may involve third-party fees (such as
Internet service provider or airtime charges). You are responsible
for those fees, including those fees associated with the display or
delivery of advertisements. In addition, you must provide and are
responsible for all equipment necessary to access the Service.</p>
<h2>3. YOUR REGISTRATION OBLIGATIONS</h2>
<p>In consideration of
your use of the Service, you represent that you are of legal age to
form a binding contract and are not a person barred from receiving
services under the laws of the United States or other applicable
jurisdiction.</p>
<p>You also agree to:</p>
<ol type="a">
<li><p>provide true,
accurate, current and complete information about yourself as
prompted by the Service's registration form (the "Registration
Data") and</p>
</li><li><p>maintain and
promptly update the Registration Data to keep it true, accurate,
current and complete. If you provide any information that is untrue,
inaccurate, not current or incomplete, or IFastNet has reasonable
grounds to suspect that such information is untrue, inaccurate, not
current or incomplete, IFastNet has the right to suspend or
terminate your account and refuse any and all current or future use
of the Service (or any portion thereof).</p>
</li></ol>
<p>IFastNet is
concerned about the safety and privacy of all its users, particularly
children. Please remember that the Service is designed to appeal to a
broad audience. Accordingly, as the legal guardian, it is your
responsibility to determine whether any of the Service areas and/or
Content (as defined in Section 6 below) are appropriate for your
child.</p>
<h2>4. IFASTNET PRIVACY POLICY</h2>
<p>Registration Data
and certain other information about you is subject to our Privacy
Policy. For more information, see our full privacy policy at Privacy
Policy , You understand that through your use of the Service you
consent to the collection and use (as set forth in the Privacy
Policy) of this information, including the transfer of this
information to the United States and/or other countries for storage,
processing and use by IFastNet and its affiliates.</p>
<h2>5. MEMBER ACCOUNT, PASSWORD AND SECURITY</h2>
<p>You will receive a
password and account designation upon completing the Service's
registration process. You are responsible for maintaining the
confidentiality of the password and account and are fully responsible
for all activities that occur under your password or account. You
agree to:</p>
<ol type="a">
<li><p>immediately
notify IFastNet of any unauthorized use of your password or account
or any other breach of security, and</p>
</li><li><p>ensure that you
exit from your account at the end of each session. IFastNet cannot
and will not be liable for any loss or damage arising from your
failure to comply with this Section 5.</p>
</li></ol>
<h2>6. MEMBER CONDUCT</h2>
<p>You understand that
all information, data, text, software, music, sound, photographs,
graphics, video, messages, tags, or other materials ("Content"),
whether publicly posted or privately transmitted, are the sole
responsibility of the person from whom such Content originated. This
means that you, and not IFastNet , are entirely responsible for all
Content that you upload, post, email, transmit or otherwise make
available via the Service. IFastNet does not control the Content
posted via the Service and, as such, does not guarantee the accuracy,
integrity or quality of such Content. You understand that by using
the Service, you may be exposed to Content that is offensive,
pornographic, indecent or objectionable.</p>
<p>Under no
circumstances will IFastNet be liable in any way for any Content,
including, but not limited to, any errors or omissions in any
Content, or any loss or damage of any kind incurred as a result of
the use of any Content posted, emailed, transmitted or otherwise made
available via the Service.</p>
<p>Utilization of the
myownfreehost product requires any abuse emails to be forwarded to
abuse@ifastnet.com, or abuse tickets escalating. Failure to comply is
a gross violation of these Terms.</p>
<p>You agree to not use
the Service to:</p>
<ul>
<li><p>upload, post,
email, transmit or otherwise make available any Content that is
unlawful, harmful, threatening, abusive, harassing, tortious,
defamatory, vulgar, obscene, libelous, invasive of another's
privacy, hateful, or racially, ethnically or otherwise
objectionable;</p>
</li><li><p>harm minors in
any way;</p>
</li><li><p>impersonate any
person or entity, including, but not limited to, a IFastNet
official, forum leader, guide or host, or falsely state or otherwise
misrepresent your affiliation with a person or entity;</p>
</li><li><p>forge headers
or otherwise manipulate identifiers in order to disguise the origin
of any Content transmitted through the Service;</p>
</li><li><p>upload, post,
email, transmit or otherwise make available any Content that you do
not have a right to make available under any law or under
contractual or fiduciary relationships (such as inside information,
proprietary and confidential information learned or disclosed as
part of employment relationships or under nondisclosure agreements);</p>
</li><li><p>upload, post,
email, transmit or otherwise make available any Content that
infringes any patent, trademark, trade secret, copyright or other
proprietary rights ("Rights") of any party; This includes
linking to or redirecting to any content or copyright files hosted
on a 3rd party resource / servers.</p>
</li><li><p>upload, post,
email, transmit or otherwise make available any unsolicited or
unauthorized advertising, promotional materials, "junk mail,"
"spam," "chain letters," "pyramid schemes,"
or any other form of solicitation, except in those areas (such as
shopping) that are designated for such purpose (please read our
complete Spam Policy);</p>
</li><li><p>upload, post,
email, transmit or otherwise make available any material that
contains software viruses or any other computer code, files or
programs designed to interrupt, destroy or limit the functionality
of any computer software or hardware or telecommunications
equipment;</p>
</li><li><p>upload, post,
email, transmit or otherwise make available any material that is of
broadcast / streaming types.</p>
</li><li><p>upload, post,
email, transmit or otherwise make available any material that is of</p>
</li><li><p>keylogging /
proxy service / irc / shell(s) if any type / file hosting / file
sharing types.</p>
</li><li><p>upload, post,
email, transmit or otherwise make available any material on free
hosting accounts that is of pornographic nature. This excludes
premium paid hosting accounts (cPanel/WHM hosting accounts).</p>
</li><li><p>interfere with
or disrupt the Service or servers or networks connected to the
Service, or disobey any requirements, procedures, policies or
regulations of networks connected to the Service;</p>
</li><li><p>intentionally
or unintentionally violate any applicable local, state, national or
international law, including, but not limited to, regulations
promulgated by the U.S. Securities and Exchange Commission, any
rules of any national or other securities exchange, including,
without limitation, the New York Stock Exchange, the American Stock
Exchange or the NASDAQ, and any regulations having the force of law;</p>
</li><li><p>provide
material support or resources (or to conceal or disguise the nature,
location, source, or ownership of material support or resources) to
any organization(s) designated by the United States government as a
foreign terrorist organization pursuant to section 219 of the
Immigration and Nationality Act;</p>
</li><li><p>"stalk"
or otherwise harass another; and/or</p>
</li><li><p>upload, post,
email, transmit or otherwise material for the purposes of file
distribution, relay, or streaming reasons.</p>
</li><li><p>collect or
store personal data about other users in connection with the
prohibited conduct and activities set forth in paragraphs 1 through
15 above.</p>
</li></ul>
<h3>USE OF COPYRIGHT MATERIAL AND PROOF OF OWNERSHIP
OF CONTENT</h3>
<p>Sites must not
contain Warez, copyright or other illegal material including links or
redirects to copyright material hosted on 3rd party websites /
resources. The onus is on you the customer to prove that you own the
rights to publish material, not for IFastNet to prove that you do
not. IFastNet does not allow the propagation or distribution of
copyright material, files or warez under any circumstances.</p>
<h3>ACCEPTABLE SERVER RESOURCE USE</h3>
<p>Sites must not use
excessive amounts of server resources. These include bandwidth,
processor utilization and / or disk space. Please see the 'High
Resource Use Policy' in the General Terms and Conditions.</p>
<h3>SCRIPT USAGE TERMS</h3>
<p>Scripts on the site
must be designed to produce web-based content, and not to use the
server as an application server. Using the server to generate large
volumes of email from a database is an example of activity that is
not allowed. Scripts should not attempt to manipulate the timeouts on
servers. These are set at the present values to ensure the
reliability of the server. Sites that reset these do so because they
are resource intensive, and adversely affect server performance and
are therefore not allowed. Scripts that are designed to provide proxy
services, anonymous or otherwise, are not allowed.</p>
<p>The primary purpose
of any script must be to produce a web page. Scripts that send a
single email based upon user entered information, or update a
database are acceptable. Scripts that send bulk email or perform
processor intensive database processes are not allowed. All outgoing
mail is monitored and filtered and must be sent to or from a IFastNet
-hosted domain.</p>
<p>Sites must not
contain scripts that attempt to access privileged server resources,
or other sites on the same server</p>
<h3>USAGE OF DISK SPACE TERMS</h3>
<p>IFastNet offers
large web space and bandwidth with hosting accounts. By this, we mean
space for legitimate web site content and bandwidth for visitors to
view it. All files on a domain must be part of the active website and
linked to the site. Sites should not contain any backups, downloads,
or other non-web based content. We will treat all password protected
archive (e.g. zip and rar) files as unacceptable. Multimedia content
such as audio and video is acceptable provided it is streamed to the
user, links to HTTP download of this content is not acceptable.</p>
<p>On unlimited disk
space plans we offer quotaless disk space access, however the disks
in servers are not unlimited so you may become limited if a hard
drive begins to fill to capacity.</p>
<p>INODE USAGE</p>
<p>In computing, an
inode is a data structure on a traditional Unix-style file system
such as UFS. An inode stores basic information about a regular file,
directory, or other file system object.</p>
<p><a href="https://en.wikipedia.org/wiki/Inode">en.wikipedia.org/wiki/Inode</a></p>
<p>IFastNet reserves
the right to limit INODEs usage on premium hosting plans to 380000 on starter premium plan, 840000 on super and ultimate premium plans, and unlimited inodes on Business hosting plans subject to acceptable
usage.</p>
<h3>RIGHT TO SUSPEND / TERMINATE HOSTING SERVICES</h3>
<p>You acknowledge that
IFastNet may or may not pre-screen Content, but that IFastNet and its
designees shall have the right (but not the obligation) in their sole
discretion to pre-screen, refuse, or remove any Content that is
available via the Service. Without limiting the foregoing, IFastNet
and its designees shall have the right to remove any Content that
violates the TOS or is otherwise objectionable. You agree that you
must evaluate, and bear all risks associated with, the use of any
Content, including any reliance on the accuracy, completeness, or
usefulness of such Content. In this regard, you acknowledge that you
may not rely on any Content created by IFastNet or submitted to
IFastNet , including without limitation information in IFastNet
Message Boards and in all other parts of the Service.</p>
<p>You acknowledge,
consent and agree that IFastNet may access, preserve and disclose
your account information and Content if required to do so by law or
in a good faith belief that such access preservation or disclosure is
reasonably necessary to:</p>
<ol type="a">
<li><p>comply with
legal process;</p>
</li><li><p>enforce the
TOS;</p>
</li><li><p>respond to
claims that any Content violates the rights of third parties;</p>
</li><li><p>respond to your
requests for customer service; or (e) protect the rights, property
or personal safety of IFastNet , its users and the public;</p>
</li></ol>
<p>You understand that
the technical processing and transmission of the Service, including
your Content, may involve</p>
<ol type="a">
<li><p>transmissions
over various networks; and</p>
</li><li><p>changes to
conform and adapt to technical requirements of connecting networks
or devices;</p>
</li></ol>
<p>You understand that
the Service and software embodied within the Service may include
security components that permit digital materials to be protected,
and that use of these materials is subject to usage rules set by
IFastNet and/or content providers who provide content to the Service.
You may not attempt to override or circumvent any of the usage rules
embedded into the Service. Any unauthorized reproduction,
publication, further distribution or public exhibition of the
materials provided on the Service, in whole or in part, is strictly
prohibited.</p>
<h2>7. INTERSTATE NATURE OF COMMUNICATIONS ON
IFASTNET NETWORK</h2>
<p>When you register
with IFastNet , you acknowledge that in using IFastNet services to
send electronic communications (including but not limited to email,
uploading photos and files and other Internet activities), you will
be causing communications to be sent through IFastNet 's computer
networks, portions of which are located in California, Ohio, UK, and
other locations in the United States and portions of which are
located abroad. As a result, and also as a result of IFastNet 's
network architecture and business practices and the nature of
electronic communications, even communications that seem to be
intrastate in nature can result in the transmission of interstate
communications regardless of where you are physically located at the
time of transmission. Accordingly, by agreeing to this Terms of
Service, you acknowledge that use of the service results in
interstate data transmissions.</p>
<h3>8. SPECIAL ADMONITIONS FOR INTERNATIONAL USE</h3>
<p>Recognizing the
global nature of the Internet, you agree to comply with all local
rules regarding online conduct and acceptable Content. Specifically,
you agree to comply with all applicable laws regarding the
transmission of technical data exported from the United States or the
country in which you reside.</p>
<h2>9. CONTENT SUBMITTED OR MADE AVAILABLE FOR
INCLUSION ON THE SERVICE</h2>
<p>IFastNet does not
claim ownership of Content you submit or make available for inclusion
on the Service. However, with respect to Content you submit or make
available for inclusion on publicly accessible areas of the Service,
you grant IFastNet the following worldwide, royalty-free and
non-exclusive license(s), as applicable:</p>
<ul>
<li><p>With respect to
Content you submit or make available for inclusion on publicly
accessible areas of IFastNet Servers, the license to use,
distribute, reproduce, modify, adapt, publicly perform and publicly
display such Content on the Service solely for the purposes of
providing and promoting the IFastNet Service to which such Content
was submitted or made available. This license exists only for as
long as you elect to continue to include such Content on the Service
and will terminate at the time you remove or IFastNet removes such
Content from the Service.</p>
</li><li><p>With respect to
photos, graphics, audio or video you submit or make available for
inclusion on publicly accessible areas of the Service other than
IFastNet Servers, the license to use, distribute, reproduce, modify,
adapt, publicly perform and publicly display such Content on the
Service solely for the purpose for which such Content was submitted
or made available. This license exists only for as long as you elect
to continue to include such Content on the Service and will
terminate at the time you remove or IFastNet removes such Content
from the Service.</p>
</li><li><p>With respect to
Content other than photos, graphics, audio or video you submit or
make available for inclusion on publicly accessible areas of the
Service other than ifastnet Servers, the perpetual, irrevocable and
fully sublicensable license to use, distribute, reproduce, modify,
adapt, publish, translate, publicly perform and publicly display
such Content (in whole or in part) and to incorporate such Content
into other works in any format or medium now known or later
developed.</p>
</li></ul>
<p>"Publicly
accessible" areas of the Service are those areas of the IFastNet
network of properties that are intended by IFastNet to be available
to the general public. By way of example, publicly accessible areas
of the Service would include IFastNet Message Boards and all areas
that are open to both members and visitors. However, publicly
accessible areas of the Service would not include portions of
IFastNet Servers that are limited to members, IFastNet services
intended for private communication such as IFastNet Mail or, or areas
off of the IFastNet network of properties such as portions of World
Wide Web sites that are accessible via hypertext or other links but
are not hosted or served by IFastNet .</p>
<h2>10. CONTRIBUTIONS TO IFASTNET</h2>
<p>By submitting ideas,
suggestions, documents, and/or proposals ("Contributions")
to ifastnet through its forum, or contact forums, you acknowledge and
agree that:</p>
<ol type="a">
<li><p>your
Contributions do not contain confidential or proprietary
information;</p>
</li><li><p>IFastNet is not
under any obligation of confidentiality, express or implied, with
respect to the Contributions;</p>
</li><li><p>IFastNet shall
be entitled to use or disclose (or choose not to use or disclose)
such Contributions for any purpose, in any way, in any media
worldwide;</p>
</li><li><p>IFastNet may
have something similar to the Contributions already under
consideration or in development;</p>
</li><li><p>your
Contributions automatically become the property of IFastNet without
any obligation of IFastNet to you; and</p>
</li><li><p>you are not
entitled to any compensation or reimbursement of any kind from
IFastNet under any circumstances.</p>
</li></ol>
<h2>11. INDEMNITY</h2>
<p>You agree to
indemnify and hold IFastNet and its subsidiaries, affiliates,
officers, agents, employees, partners and licensors harmless from any
claim or demand, including reasonable attorneys' fees, made by any
third party due to or arising out of Content you submit, post,
transmit or otherwise make available through the Service, your use of
the Service, your connection to the Service, your violation of the
TOS, or your violation of any rights of another.</p>
<h2>12. NO RESALE OF SERVICE</h2>
<p>You agree not to
reproduce, duplicate, copy, sell, trade, resell or exploit for any
commercial purposes, any portion of the Service (including your
IFastNet ID), use of the Service, or access to the Service, unless
you are a member of the IFastNet Reseller Service, utilising the
reselling platform to resell to end users.</p>
<h2>13. GENERAL PRACTICES REGARDING USE AND STORAGE</h2>
<p>You acknowledge that
IFastNet may establish general practices and limits concerning use of
the Service, including without limitation the maximum number of days
that idle hosting accounts, message board postings or other uploaded
Content will be retained by the Service, the maximum number of email
messages that may be sent from or received by an account on the
Service, the maximum size of any email message that may be sent from
or received by an account on the Service, the maximum disk space that
will be allotted on IFastNet 's servers on your behalf, and the
maximum number of times (and the maximum duration for which) you may
access the Service in a given period of time. You agree that IFastNet
has no responsibility or liability for the deletion or failure to
store any messages and other communications or other Content
maintained or transmitted by the Service. You acknowledge that
IFastNet reserves the right to log off accounts that are inactive for
an extended period of time. You further acknowledge that ifastnet
reserves the right to modify these general practices and limits from
time to time.</p>
<h2>14. MODIFICATIONS TO SERVICE</h2>
<p>You agree that
IFastNet may, under certain circumstances and without prior notice,
immediately terminate your IFastNet account, any associated email
address, and access to the Service. Cause for such termination shall
include, but not be limited to:</p>
<ol type="a">
<li><p>breaches or
violations of the TOS or other incorporated agreements or guidelines</p>
</li><li><p>requests by law
enforcement or other government agencies</p>
</li><li><p>a request by
you (self-initiated account deletions)</p>
</li><li><p>discontinuance
or material modification to the Service (or any part thereof)</p>
</li><li><p>unexpected
technical or security issues or problems</p>
</li><li><p>extended
periods of inactivity</p>
</li><li><p>engagement by
you in fraudulent or illegal activities, and/or nonpayment of any
fees owed by you in connection with the Services.</p>
</li></ol>
<p>Termination of your
IFastNet account includes</p>
<ol type="a">
<li><p>removal of
access to all offerings within the Service, including but not
limited to Hosting accounts, Email Services, SQL databases</p>
</li><li><p>deletion of
your password and all related information, files and content
associated with or inside your account (or any part thereof), and</p>
</li><li><p>barring of
further use of the Service. Further, you agree that all terminations
for cause shall be made in IFastNet's sole discretion and that
IFastNet shall not be liable to you or any third party for any
termination of your account, any associated email address, or access
to the Service</p>
</li></ol>
<h3>Refund Policy</h3>
<p>Refunds are issued
at the sole discretion of IFastNet. IFastNet reserves the right not
to issue a refund. Customer agrees that hosting payments are
NONREFUNDABLE. For example, if Customer submits payment for twelve
(12) months of service, service will be provided for twelve (12)
months and will not be refunded if customer chooses to discontinue
service with IFastNet mid-way through the term. Payments which are
deemed to be fraud which can be verfied and certain to be fraud are
elligable to a refund, subject to the terms and conditions of the
payment provider such as PayPal or 2Checkout.</p>
<h2>16. DEALINGS WITH ADVERTISERS</h2>
<p>Your correspondence
or business dealings with, or participation in promotions of,
advertisers found on or through the Service, including payment and
delivery of related goods or services, and any other terms,
conditions, warranties or representations associated with such
dealings, are solely between you and such advertiser. You agree that
IFastNet shall not be responsible or liable for any loss or damage of
any sort incurred as the result of any such dealings or as the result
of the presence of such advertisers on the Service.</p>
<h2>17. LINKS</h2>
<p>The Service may
provide, or third parties may provide, links to other World Wide Web
sites or resources. Because IFastNet has no control over such sites
and resources, you acknowledge and agree that IFastNet is not
responsible for the availability of such external sites or resources,
and does not endorse and is not responsible or liable for any
Content, advertising, products or other materials on or available
from such sites or resources. You further acknowledge and agree that
IFastNet shall not be responsible or liable, directly or indirectly,
for any damage or loss caused or alleged to be caused by or in
connection with use of or reliance on any such Content, goods or
services available on or through any such site or resource.</p>
<h2>18. IFASTNET 'S PROPRIETARY RIGHTS</h2>
<p>You acknowledge and
agree that the Service and any necessary software used in connection
with the Service ("Software") contain proprietary and
confidential information that is protected by applicable intellectual
property and other laws. You further acknowledge and agree that
Content contained in sponsor advertisements or information presented
to you through the Service or by advertisers is protected by
copyrights, trademarks, service marks, patents or other proprietary
rights and laws. Except as expressly authorized by IFastNet or
advertisers, you agree not to modify, rent, lease, loan, sell,
distribute or create derivative works based on the Service or the
Software, in whole or in part.</p>
<h2>19 FREE DOMAIN WITH PAID HOSTING</h2>
<p>Free domain names
which are included with Paid Hosting accounts are the property of
ifastnet Internet. IFastNet will always retain ownership of free
domain names we register. If requested, IFastNet will allow the
'transfer' any free domains to an alternative hosting provider if a
transfer administration fee is paid, which amounts to $29.99. If the
service has been provisioned for over 12 months or sooner IFastNet
may waiver the above mentioned transfer fee. IFastNet reserves the
right to cancel / transfer domain names which are provided with paid
hosting accounts. We reserve the right to renew or allow the
expiration of domain names we register.</p>
<p>If a service is
cancelled and a refund requested the cost incurred of renewing or
providing the free domain name will be minused from the refund
amounts (this could sometimes lead to a negative value). The .INFO
domain name provided with the 'monthly standard' premium plan is free
for the 1st year only, to keep the domain after the 1st year, a
renewal fee needs to be paid. (This is a separate additional payment
to the monthly payments for the hosting) To renew the INFO domain
name, we require a payment of $11.00 USD to cover the cost of
renewing the domain with the registrars.</p>
<p>The free domain
included with the monthly ultimate account is free to renewal each
year providing you are in good billing status for all 12 monthly
payments over the year.</p>
<p>You are not allowed
to alter the name servers or transfer a free domain included with the
monthly ultimate plan until 2 (two) complete months of payment has
been made (2 x $6.99). We reserve the right to suspend any free
domain name associated with a monthly ultimate account which has not
been paid for 2 complete months.</p>
<h3>DOMAIN NAME GENERAL TERMS OF SERVICE</h3>
<p>We use
PublicDomainRegistry.com and ENOM to register domain names for our
clients.</p>
<p>If you are
registering or transferring a domain name you must also agree to the
Domain Name Registration Agreement which can be seen here:
<a href="http://www.enom.com/terms/agreement.aspx">http://www.enom.com/terms/agreement.aspx</a>
and here: <a href="http://www.enom.com/terms/agreement.aspx">http://www.enom.com/terms/agreement.aspx</a></p>
<p>Domains shall be
renewed at the same price as new registrations. The current pricing
is displayed on our website.</p>
<p>Domain renewal
reminders and invoices for renewal will be sent in advance of
expiration via email to the address stored in your client area once
paid the domain name will be renewed.</p>
<p>Domain names that
expire have a 'grace' period that they can be renewed. The grace
period differs per extension, the grace periods can be seen here:
<a href="https://ifastnet.com/portal/delete-autorenew.html">https://ifastnet.com/portal/delete-autorenew.html</a></p>
<p>Should an expired
domain enter the redemption period, the cost of restoring the domain
shall be no more than $240 the price does depend on the domain
extension, for exact pricing please see
<a href="http://doma151591.supersite2.myorderbox.com/domain-registration/domain-registration-price.php">http://doma151591.supersite2.myorderbox.com/domain-registration/domain-registration-price.php</a>
and click on 'Restoration' in the top right corner.</p>
<h2>19b. MYOWNFREEHOST RESELLER PAID PLAN LINKS</h2>
<p><b>MyOwnFreeHost.net</b>
resellers using the free or plan 2 service are required to have paid
hosting plan links to ifastnet.com present in a visible location on
the reseller domain home page. IFastNet reserves the right to suspend
and cancel resellers who do not have the paid plan links to
ifastnet.com. Resellers are entitled to use the securesignup
affiliate program for paid plan links.</p>
<p>MyOwnFreeHost.net
resellers using plan 3 or above may remove the paid plan links and
are exempt from the requirement for placing paid plan links.</p>
<h2>20. DISCLAIMER OF WARRANTIES</h2>
<p>YOU EXPRESSLY
UNDERSTAND AND AGREE THAT:</p>
<ul>
<li><p>Your use of the
service is at your sole risk. The service is provided on an "As
is" and "As Available" basis. IFastNet and its
subsidiaries, affiliates, officers, employees, agents, Partners and
licensors expressly disclaim all warranties of any kind, whether
express or Implied, including, but not limited to the implied
warranties of merchantability, fitness For a particular purpose and
non-infringement.</p>
</li><li><p>IFastNet and
its subsidiaries, affiliates, officers, employees, agents, partners
and Licensors make no warranty that (i) the service will meet your
requirements; (ii) the Service will be uninterrupted, timely, secure
or error-free; (iii) the results that may be Obtained from the use
of the service will be accurate or reliable; (iv) the quality of any
Products, services, information or other material purchased or
obtained by you through the Service will meet your expectations; and
(v) any errors in the software will be corrected.</p>
</li><li><p>Any material
downloaded or otherwise obtained through the use of the service is
accessed at Your own discretion and risk, and you will be solely
responsible for any damage to your Computer system or loss of data
that results from the download of any such material.</p>
</li><li><p>No advice or
information, whether oral or written, obtained by you from ifastnet
or through Or from the service shall create any warranty not
expressly stated in the tos.</p>
</li><li><p>A small
percentage of users may experience epileptic seizures when exposed
to certain light Patterns or backgrounds on a computer screen or
while using the service. Certain conditions May induce previously
undetected epileptic symptoms even in users who have no history of
Prior seizures or epilepsy. If you, or anyone in your family, have
an epileptic condition, Consult your physician prior to using the
service. Immediately discontinue use of the Service and consult your
physician if you experience any of the following symptoms while
Using the service: dizziness, altered vision, eye or muscle
twitches, loss of awareness, Disorientation, any involuntary
movement, or convulsions.</p>
<p></p>
</li></ul>
<h2>21.LIMITATION OF LIABILITY</h2>
<p>You expressly
understand and agree that ifastnet and its subsidiaries, affiliates,
officers, Employees, agents, partners and licensors shall not be
liable to you for any direct, indirect, Incidental, special,
consequential or exemplary damages, including, but not limited to,
damages For loss of profits, goodwill, use, data or other intangible
losses (even if ifastnet has been Advised of the possibility of such
damages), resulting from: ( I ) the use or the inability to use The
service; (ii) the cost of procurement of substitute goods and
services resulting from any Goods, data, information or services
purchased or obtained or messages received or transactions Entered
into through or from the service; (iii) unauthorized access to or
alteration of your Transmissions or data; (iv) statements or conduct
of any third party on the service; or (v) any Other matter relating
to the service.</p>
<h2>22. EXCLUSIONS AND LIMITATIONS</h2>
<p>Some jurisdictions
do not allow the exclusion of certain warranties or the limitation or
Exclusion of liability for incidental or consequential damages.
Accordingly, some of the above Limitations of sections 19 and 20 may
not apply to you.</p>
<h2>23. SPECIAL ADMONITION FOR SERVICES RELATING TO
FINANCIAL MATTERS</h2>
<p>If you intend to
create or join any service, receive or request any news, messages,
alerts or other information from the Service concerning companies,
stock quotes, investments or securities, please read the above
Sections 19 and 20 again. They go doubly for you. In addition, for
this type of information particularly, the phrase "Let the
investor beware" is apt. The Service is provided for
informational purposes only, and no Content included in the Service
is intended for trading or investing purposes. IFastNet and its
licensors shall not be responsible or liable for the accuracy,
usefulness or availability of any information transmitted or made
available via the Service, and shall not be responsible or liable for
any trading or investment decisions based on such information.</p>
<h2>24. NO THIRD-PARTY BENEFICIARIES</h2>
<p>You agree that,
except as otherwise expressly provided in this TOS, there shall be no
third-party beneficiaries to this agreement.</p>
<h2>25. NOTICE</h2>
<p>IFastNet may provide
you with notices, including those regarding changes to the TOS, by
email, regular mail or postings on the Service.</p>
<h2>26. TRADEMARK INFORMATION</h2>
<p>The IFastNet ,
IFastNet logo, IFastNet (in Chinese characters), trademarks and
service marks and other IFastNet logos and product and service names
are trademarks of IFastNet (the "IFastNet Marks"). Without
IFastNet 's prior permission, you agree not to display or use in any
manner the IFastNet Marks.</p>
<h2>27. NOTICE AND PROCEDURE FOR MAKING CLAIMS OF
COPYRIGHT OR INTELLECTUAL PROPERTY INFRINGEMENT</h2>
<p>IFastNet respects
the intellectual property of others, and we ask our users to do the
same. IFastNet may, in appropriate circumstances and at its
discretion, disable and/or terminate the accounts of users who may be
repeat infringers. If you believe that your work has been copied in a
way that constitutes copyright infringement, or your intellectual
property rights have been otherwise violated, please provide IFastNet
's Copyright Agent the following information:</p>
<ul>
<li><p>an electronic
or physical signature of the person authorized to act on behalf of
the owner of the copyright or other intellectual property interest;</p>
</li><li><p>a description
of the copyrighted work or other intellectual property that you
claim has been infringed;</p>
</li><li><p>a description
of where the material that you claim is infringing is located on the
site;</p>
</li><li><p>your address,
telephone number, and email address;</p>
</li><li><p>a statement by
you that you have a good faith belief that the disputed use is not
authorized by the copyright owner, its agent, or the law;</p>
</li><li><p>a statement by
you, made under penalty of perjury, that the above information in
your Notice is accurate and that you are the copyright or
intellectual property owner or authorized to act on the copyright or
intellectual property owner's behalf.</p>
</li></ul>
<p>IFastNet 's Agent
for Notice of claims of copyright or other intellectual property
infringement can be reached as follows:</p>
<ul>
<li><p><b>By mail</b>:</p>
</li></ul>
<p> Copyright Agent</p>
<p> 7 Old Gloucester
Street</p>
<p> London, London WC1N
3XX</p>
<p> United Kingdom</p>
<ul>
<li><p><b>By phone</b>:
441912478100</p>
</li><li><p><b>By fax</b>:
441912478100</p>
</li><li><p><b>By email</b>:
abuse@ifastnet.com</p>
</li></ul>
<h2>28. GENERAL INFORMATION</h2>
<h3>Entire Agreement</h3>
<p>The TOS constitutes
the entire agreement between you and IFastNet and governs your use of
the Service, superseding any prior agreements between you and
IFastNet with respect to the Service. You also may be subject to
additional terms and conditions that may apply when you use or
purchase certain other IFastNet services, affiliate services,
third-party content or third-party software.</p>
<h3>Choice of Law and Forum</h3>
<p>The TOS and the
relationship between you and IFastNet shall be governed by the laws
of the United Kingdom without regard to its conflict of law
provisions. You and IFastNet agree to submit to the personal and
exclusive jurisdiction of the courts located within the county of
Northumberland, United Kingdom.</p>
<h3>Waiver and Severability of Terms</h3>
<p>The failure of
IFastNet to exercise or enforce any right or provision of the TOS
shall not constitute a waiver of such right or provision. If any
provision of the TOS is found by a court of competent jurisdiction to
be invalid, the parties nevertheless agree that the court should
endeavor to give effect to the parties' intentions as reflected in
the provision, and the other provisions of the TOS remain in full
force and effect.</p>
<h3>No Right of Survivorship and Non-Transferability</h3>
<p>You agree that your
IFastNet account is non-transferable and any rights to your IFastNet
ID or contents within your account terminate upon your death. Upon
receipt of a copy of a death certificate, your account may be
terminated and all contents therein permanently deleted.</p>
<h3>Statute of Limitations.</h3>
<p>You agree that
regardless of any statute or law to the contrary, any claim or cause
of action arising out of or related to use of the Service or the TOS
must be filed within one (1) year after such claim or cause of action
arose or be forever barred.</p>
<p>The section titles
in the TOS are for convenience only and have no legal or contractual
effect.</p>
</div>
</div>
</div>
</section>
<section class="section-wrap">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 terms_policies_menu">
<div class="panel panel-default">
<div class="panel-heading"><i class="glyphicon glyphicon-list-alt"></i> Other legal information
</div>
<div class="panel-body">
<ul>
<li class="active" data-i18n="tos">Terms of Service</li>
<li><a href="./legal_cancellation-refund.php" data-i18n="cancellation_refund">Cancellation &amp; Refund</a></li>
<li><a href="./legal_privacy.php" data-i18n="privacy_policy">Privacy Policy</a></li>
<li><a href="./legal_payment-methods.php" data-i18n="payment_methods">Payment Methods &amp; Information</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

View file

@ -1,10 +0,0 @@
msg_hello = Hello
msg_world = World
msg_complex = Good morning {0}! \
Are you OK? \
This is a multi-line property :)
msg_url = http://localhost/webapp/servletName?solution={0}
msg_multi_placeholder = It\'s a {0} day... let\'s go {1}?
msg_multi_placeholder_corrected = It''s a {0} day... let''s go {1}?

View file

@ -1,39 +0,0 @@
language = English
home = Home
production = Product
news = News
contact = Contact
contact_us = Contact Us
help = Help
login = Login
signup = Signup
username = Username
input_username = Please Input Username
password = Password
input_password = Please Input Password
email = Email
input_email = Please Input Email Address
site_category = Site Category
personal = Personal
business = Business
hobby = Hobby
forum = Forum
adult = Adult
dating = Dating
software_download = Software / Download
choose_from_below = Choose from Below
site_language = Site Language
english = English
non_english = Non English
security_code = Security Code
input_security_code = Please Input Security Code
input_security_code_above = Please Input Security Code Above
legal_information = Legal Information
privacy_policy = Privacy Policy
tos = Terms of service
cancellation_refund = Cancellation & Refund
payment_methods = Payment Methods & Information
signup_free_hosting = Sign Up For Free Hosting
remember_me = Remember me
please_login = Please sign in
lost_password = Lost your password?

View file

@ -1,39 +0,0 @@
language = English
home = Home
production = Product
news = News
contact = Contact
contact_us = Contact Us
help = Help
login = Login
signup = Signup
username = Username
input_username = Please Input Username
password = Password
input_password = Please Input Password
email = Email
input_email = Please Input Email Address
site_category = Site Category
personal = Personal
business = Business
hobby = Hobby
forum = Forum
adult = Adult
dating = Dating
software_download = Software / Download
choose_from_below = Choose from Below
site_language = Site Language
english = English
non_english = Non English
security_code = Security Code
input_security_code = Please Input Security Code
input_security_code_above = Please Input Security Code Above
legal_information = Legal Information
privacy_policy = Privacy Policy
tos = Terms of service
cancellation_refund = Cancellation & Refund
payment_methods = Payment Methods & Information
signup_free_hosting = Sign Up For Free Hosting
remember_me = Remember me
please_login = Please sign in
lost_password = Lost your password?

View file

@ -1,12 +0,0 @@
language = Korean
home = 홈 페이지
production = 생산
contact = 접촉
contact_us = 연락
login = 로그인
signup = 가입과
legal_information = 법률 정보
privacy_policy = 개인 정보 보호 정책
tos = 이용 약관
cancellation_refund = 취소 및 환불
payment_methods = 지불 방법

View file

@ -1,40 +0,0 @@
language = Chinese_simplified
home = 主页
production = 产品
news = 新闻
contact = 联系
contact_us = 联系我们
help = 帮助
login = 登录
signup = 注册
username = 用户名
input_username = 请输入用户名
password = 密码
input_password = 请输入密码
email = 电子邮箱地址
input_email = 请输入电子邮箱地址
site_category = 网站类型
personal = 个人
business = 商业
hobby = 爱好
forum = 论坛
adult = 成人
dating = 约会
software_download = 软件/下载
choose_from_below = 下拉选择
site_language = 网站语言
english = 英文
non_english = 非英文
security_code = 验证码
input_security_code = 输入验证码
input_security_code_above = 请输入上面图中验证码
legal_information = 法律信息
privacy_policy = 隐私政策
tos = 服务条款
cancellation_refund = 取消与退款
payment_methods = 支付方式
signup_free_hosting = 注册免费空间
remember_me = 记住我
please_login = 请登录
lost_password = 忘记密码了?
address = 地址

View file

@ -1,40 +0,0 @@
language = Chinese_traditional
home = 主頁
production = 產品
news = 新聞
contact = 聯繫
contact_us = 聯繫我們
help = 幫助
login = 登錄
signup = 註冊
username = 用戶名
input_username = 請輸入用戶名
password = 密碼
input_password = 請輸入密碼
email = 電子郵箱地址
input_email = 請輸入電子郵箱地址
site_category = 網站類型
personal = 個人
business = 商業
hobby = 愛好
forum = 論壇
adult = 成人
dating = 約會
software_download = 軟件/下載
choose_from_below = 下拉選擇
site_language = 網站語言
english = 英文
non_english = 非英文
security_code = 驗證碼
input_security_code = 輸入驗證碼
input_security_code_above = 請輸入上面圖中驗證碼
legal_information = 法律信息
privacy_policy = 隱私政策
tos = 服務條款
cancellation_refund = 取消與退款
payment_methods = 支付方式
signup_free_hosting = 註冊免費空間
remember_me = 記住我
please_login = 請登錄
lost_password = 忘記密碼了?
address = 地址

View file

@ -1 +0,0 @@
{"languages":["zh_CN","zh_TW","en_US","en_GB","ko_KR"]}

View file

@ -1,40 +0,0 @@
<?php
require_once ("core.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?> - Login</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet"><!--[if lt IE 9]>
<script src="./js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="container">
<form class="form-signin" role="form" action="//cpanel.<?=$domain?>/login.php" method="post" name="login">
<h2 class="form-signin-heading" data-i18n="please_login">Please sign in</h2>
<input type="text" name="uname" class="form-control" placeholder="Username" data-i18n="input_username" required autofocus>
<input type="password" name="passwd" class="form-control" placeholder="Password" data-i18n="input_password" required>
<input type="hidden" name="language" value="English" data-i18n="language">
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"><span data-i18n="remember_me">Remember me</span>
<a href="//cpanel.<?=$domain?>/lostpassword.php" data-i18n="lost_password">Lost your password?</a>
</label>
</div>
<button type="submit" name="submit" class="btn btn-lg btn-primary btn-block" data-i18n="login">Sign in</button>
</form>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

40
nav.php
View file

@ -1,40 +0,0 @@
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.php"><?=$title_s?></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="index.php" data-i18n="home">Home</a></li>
<!--<li><a href="product.php" data-i18n="production">Product</a></li>-->
<li><a href="contact.php" data-i18n="contact">Contact</a></li>
<li><a href="//help.<?=$domain?>" data-i18n="help">Help</a></li>
<li class="dropdown"><a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">Others <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="javascript:void(0)" data-i18n="home">home</a></li>
<li><a href="javascript:void(0)" data-i18n="other">Another action</a></li>
<li><a href="javascript:void(0)" data-i18n="home">Something else here</a></li>
<li><a href="javascript:void(0)" data-i18n="tos">Terms of service</a></li>
<li class="divider"></li>
<li class="dropdown-header" data-i18n="legal_information">Legal Information</li>
<li><a href="./legal_terms.php" data-i18n="tos">Terms of Service</a></li>
<li><a href="./legal_cancellation-refund.php" data-i18n="cancellation_refund">Cancellation & Refund</a></li>
<li><a href="./legal_privacy.php" data-i18n="privacy_policy">Privacy Policy</a></li>
<li><a href="./legal_payment-methods.php" data-i18n="payment_methods">Payment Methods & Information</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="./index.php" data-i18n="home">Home</a></li>
<li><a href="./login.php" data-i18n="login">Login</a></li>
<li><a href="./signup.php" data-i18n="signup">Signup</a></li>
</ul>
</div>
</div>
</nav>

View file

@ -1,71 +0,0 @@
<?php
require_once ("core.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?> - News</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet"><!--[if lt IE 9]>
<script src="./js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="container">
<div class="panel panel-default">
<div class="panel-body">
<h2>free hosting news</h2>
<p>We proudly announce the following new features on all free hosting accounts!..</p>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">1. cPanel x3 theme</h3>
</div>
<div class="panel-body">
The popular and professional x3 theme is now available for all free hosting accounts.
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">2. Automatic HTTP/SSL</h3>
</div>
<div class="panel-body">
We are the only webhost's in the world to offer automatic free SSL/HTTP's encryption on all free hosted domain names. You can instantly browse any domain on our network on a https:// url.
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">3. Softaculous 1 click script installer</h3>
</div>
<div class="panel-body">
Softaculous is an auto installer for cPanel. Unlike other auto installers Softaculous is much faster, well designed and it installs all scripts in just ONE STEP.
</div>
</div>
<div class="panel panel-default">
<div class="panel-body">
<div class="media">
<div class="media-left media-middle">
<img src="images/cluster.jpg" alt="rack">
</div>
<div class="media-body">
<h4 class="media-heading">Value for free</h4>
<p>Our cluster-based GRID network features hundreds of server nodes using the right software for the right job powered by Linux and Unix operating systems.</p>
<p><?=$title_s?> hosting has the right services for you and at the right price... $0.00!</p>
</div>
</div>
</div>
</div>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

3
nginx.conf Normal file
View file

@ -0,0 +1,3 @@
location /callback {
rewrite ^(.*)$ /callback/index.php?s=$1 last; break;
}

View file

@ -1,11 +0,0 @@
<?php
require_once ("core.php");
$domain = "uiisc.com";
$post_data = $_POST;
print_r($post_data);
$data = file_get_contents("php://input");
$url = "http://order.".$domain."/register.php";
// $data = $post_data;
$return = curlrequest($url, $post_data, "post");
var_dump($return);exit;

View file

@ -1,56 +0,0 @@
<?php
require_once ("core.php");
$domain = "uiisc.com";
// $html = file_get_contents("http://cpanel.".$domain."/lostpassword.php");
// preg_match('/<footer[^>]*id="footer"[^>]*>(.*?) <//footer>/si', $html, $match);
$password_reset_token_id = "b374b5bd4e35d2cadd98caa77d68c19a";
$logged_ipaddress = "116.228.234.98";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?> - Lost Password / Password Recovery</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet"><!--[if lt IE 9]>
<script src="./js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="container">
<!--<?=$match?>-->
<!--<?=$str_code?>-->
<blink>ipaddress logged <?=$logged_ipaddress?></blink>
<h2 data-i18n="password_eset">Lost Password Retrieval System</h2>
<form class="form-signin" role="form" action="http://cpanel.<?=$domain?>/passwords.php" method="post" name="password_reset">
<h2 data-i18n="password_eset">Password Reset</h2>
<input type="hidden" name="token" value="<?=$password_reset_token_id?>">
<div class="form-group">
<label for="inputUsername" class="control-label" data-i18n="username">Username</label>
<input type="text" name="username" class="form-control" id="inputUsername" placeholder="Username" data-i18n="input_username" required autofocus>
</div>
<div class="form-group">
<label for="inputEmail" class="control-label" data-i18n="email">Email Address</label>
<input type="email" name="email" class="form-control" id="inputEmail" placeholder="Email Address" data-i18n="input_email" required>
</div>
<div class="form-group">
<button type="submit" name="submit" class="btn btn-lg btn-primary btn-block" data-i18n="Fetch">Fetch</button>
</div>
</form>
<div class="row">
<p>In the above form, enter the username and the REGISTERED email address that was used when signing up for the account.<br>
We will then email the registered email address with reset account details.
</p>
</div>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="logo"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="122.124px" height="150px" viewBox="0 0 122.124 150" enable-background="new 0 0 122.124 150" xml:space="preserve">
<polygon fill="#810D6F" points="116.921,3.288 25.752,3.288 2.803,3.288 2.803,144.71 27.084,144.71 27.084,30.878 116.921,30.878" />
<polygon fill="#C22E91" points="63.308,75.153 116.921,75.153 116.921,50.566 40.359,50.566 40.359,133.518 40.359,133.761 116.921,133.761 116.921,109.171 63.308,109.171" />
<path fill="#D1D3D4" d="M119.628,136.383H37.557v2.664h84.568v-33.165h-2.496V136.383z M119.628,0v33.499H29.793v113.833H0V150 h32.287V36.167h89.837V0H119.628z M119.628,77.777H66.015v25.438h2.496V80.442h53.613V47.279h-2.496V77.777z" />
</svg>

Before

Width:  |  Height:  |  Size: 945 B

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="logo"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="122.124px" height="150px" viewBox="0 0 122.124 150" enable-background="new 0 0 122.124 150" xml:space="preserve">
<polygon fill="blue" points="116.921,3.288 25.752,3.288 2.803,3.288 2.803,144.71 27.084,144.71 27.084,30.878 116.921,30.878" />
<polygon fill="#00F" points="63.308,75.153 116.921,75.153 116.921,50.566 40.359,50.566 40.359,133.518 40.359,133.761 116.921,133.761 116.921,109.171 63.308,109.171" />
<path fill="red" d="M119.628,136.383H37.557v2.664h84.568v-33.165h-2.496V136.383z M119.628,0v33.499H29.793v113.833H0V150 h32.287V36.167h89.837V0H119.628z M119.628,77.777H66.015v25.438h2.496V80.442h53.613V47.279h-2.496V77.777z" />
</svg>

Before

Width:  |  Height:  |  Size: 935 B

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="122.124px" height="150px" viewBox="0 0 122.124 150" enable-background="new 0 0 122.124 150" xml:space="preserve">
<polygon fill="#810D6F" points="116.921,3.288 25.752,3.288 2.803,3.288 2.803,144.71 27.084,144.71 27.084,30.878 116.921,30.878 "/>
</svg>

Before

Width:  |  Height:  |  Size: 528 B

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="122.124px" height="150px" viewBox="0 0 122.124 150" enable-background="new 0 0 122.124 150" xml:space="preserve">
<polygon fill="#C22E91" points="63.308,75.153 116.921,75.153 116.921,50.566 40.359,50.566 40.359,133.518 40.359,133.761 116.921,133.761 116.921,109.171 63.308,109.171 "/>
</svg>

Before

Width:  |  Height:  |  Size: 568 B

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="122.124px" height="150px" viewBox="0 0 122.124 150" enable-background="new 0 0 122.124 150" xml:space="preserve">
<path fill="#D1D3D4" d="M119.628,136.383H37.557v2.664h84.568v-33.165h-2.496V136.383z M119.628,0v33.499H29.793v113.833H0V150 h32.287V36.167h89.837V0H119.628z M119.628,77.777H66.015v25.438h2.496V80.442h53.613V47.279h-2.496V77.777z"/>
</svg>

Before

Width:  |  Height:  |  Size: 628 B

BIN
screenshot/login.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
screenshot/register.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
screenshot/solution.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

View file

@ -1,16 +0,0 @@
<?php
require_once ("core.php");
// $security_id = md5(rand(6000,getrandmax())); // $security_id = md5(rand(6000,99999999999999991000));
$security_id = $_GET["id"];
header('Content-Type:image/png');
$url = "http://order.uiisc.com/image.php?id=".$security_id."";//图片链接
$ch = curl_init();
// Cookie:PHPSESSID=121b1127dcded8702c6a1e702c40eca4
curl_setopt($ch, CURLOPT_URL, $url);
// curl_setopt($ch,CURLOPT_COOKIE,'PHPSESSID=121b1127dcded8702c6a1e702c40eca4'); // 如果不需要cookies就删除这条语句
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT,0); // 忽略超时
curl_setopt($ch, CURLOPT_NOBODY, false);
$str = curl_exec($ch);
curl_close($ch);

View file

@ -1,107 +0,0 @@
<?php
require_once ("core.php");
$security_id = md5(rand(6000,getrandmax())); // $security_id = md5(rand(6000,PHP_INT_MAX));
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$title?></title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="description" content="<?=$description?>">
<meta name="author" content="<?=$author?>">
<link href="favicon.ico?_=<?=$static_release?>" rel="icon">
<link href="//<?=$static_bootstrap_css?>" rel="stylesheet">
<link href="./css/style.css?_=<?=$static_release?>" rel="stylesheet"><!--[if lt IE 9]>
<script src="./js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./js/ie-emulation-modes-warning.js"></script><!--[if lt IE 9]>
<script src="//apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="//apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script><![endif]-->
</head>
<body>
<?php include ("nav.php"); ?>
<div class="container">
<div class="panel panel-default">
<div class="panel-body">
<h2 data-i18n="signup_free_hosting">Sign Up For Free Hosting</h2>
<p>You can sign up here for fast free PHP & MySQL hosting including a free sub domain. Fill out the form below and your free hosting account will be created. <em>Enjoy :)</em></p>
</div>
</div>
<div class="panel panel-default">
<!--<div class="panel-heading">
<h3 class="panel-title"><h2>Sign Up</h2>
<p>You can sign up here for fast free PHP & MySQL hosting including a free sub domain.
Fill out the form below and your free hosting account will be created. <em>Enjoy :)</em>
</p></h3>
</div>-->
<div class="panel-body">
<form class="form-horizontal" role="form" method=post action="//order.<?=$domain?>/register.php"><!--remote_reg.php-->
<input type="hidden" name="plan_name" value="free webhosting">
<div class="form-group">
<label for="inputUsername" class="col-sm-4 control-label" data-i18n="username">Username</label>
<div class="col-sm-5">
<input type="text" name="username" class="form-control" id="inputUsername" placeholder="Username" data-i18n="input_username" value="<?php if (isset($_GET['username'])) { echo $_GET['username']; }?>">
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="col-sm-4 control-label" data-i18n="password">Password</label>
<div class="col-sm-5">
<input type="password" name="password" class="form-control" id="inputPassword" placeholder="Password" data-i18n="input_password">
</div>
</div>
<div class="form-group">
<label for="inputEmail" class="col-sm-4 control-label" data-i18n="email">Email Address</label>
<div class="col-sm-5">
<input type="email" name="email" class="form-control" id="inputEmail" placeholder="Email Address" data-i18n="input_email" value="<?php if (isset($_GET['email'])) { echo $_GET['email']; }?>">
</div>
</div>
<div class="form-group">
<label for="inputCategory" class="col-sm-4 control-label" data-i18n="site_category">Site Category</label>
<div class="col-sm-5">
<select class="form-control" name="website_category" id="inputCategory">
<option data-i18n="choose_from_below">Choose from Below</option>
<option data-i18n="personal">Personal</option>
<option data-i18n="business">Business</option>
<option data-i18n="hobby">Hobby</option>
<option data-i18n="forum">Forum</option>
<option data-i18n="dating">Dating</option>
<option data-i18n="software_download">Software / Download</option>
</select>
</div>
</div>
<div class="form-group">
<label for="inputLanguage" class="col-sm-4 control-label" data-i18n="site_language">Site Language</label>
<div class="col-sm-5">
<select class="form-control" name="website_language" id="inputLanguage">
<option data-i18n="choose_from_below">Choose from Below</option>
<option data-i18n="english">English</option>
<option data-i18n="non_english">Non-English</option>
</select>
</div>
</div>
<div class="form-group">
<label for="inputID" class="col-sm-4 control-label" data-i18n="security_code">Security Code</label>
<div class="col-sm-5">
<img width="90px" height="25px" src="./security_code.php?id=<?=$security_id?>">
<input type="hidden" name="id" class="form-control" id="inputID" placeholder="ID" value="<?=$security_id?>">
</div>
</div>
<div class="form-group">
<label for="inputSecurityCode" class="col-sm-4 control-label" data-i18n="input_security_code">Enter Security Code</label>
<div class="col-sm-5">
<input type="text" name="number" class="form-control" id="inputSecurityCode" placeholder="Input Above Security Code" data-i18n="input_security_code_above">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-6">
<button type="submit" name="submit" class="btn btn-default" data-i18n="signup">Register</button>
</div>
</div>
</form>
</div>
</div>
</div>
<?php include ("footer.php"); ?>
</body>
</html>

3
src/about.php Executable file
View file

@ -0,0 +1,3 @@
<?php
require __DIR__ . '/core/application.php';
require __DIR__ . '/public/controllers/about.php';

16
src/admin/accounts.php Executable file
View file

@ -0,0 +1,16 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'view', '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/accounts/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';

4
src/admin/application.php Executable file
View file

@ -0,0 +1,4 @@
<?php
require_once __DIR__ . '/../core/application.php';
require_once ROOT . '/core/adminarea.php';

16
src/admin/clients.php Executable file
View file

@ -0,0 +1,16 @@
<?php
require_once __DIR__ . '/application.php';
$action = get('action', 'list');
if (!in_array($action, array('list', 'add', 'edit', 'view', '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/clients/' . $action . '.php';
require __DIR__ . '/views/common/footer.php';

View file

@ -0,0 +1,92 @@
<?php
require_once __DIR__ . '/../../application.php';
if (!isset($_POST['submit'])) {
exit('Method Not Allowed');
}
$account_id = post('account_id', '');
if (empty($account_id)) {
setMessage('need field: account_id', 'danger');
redirect('admin/accounts');
}
$reason = post('reason', '');
if (strlen($reason) < 8) {
setMessage('Reason must be at least 8 characters !', 'danger');
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
}
$AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1);
if (empty($AccountInfo)) {
setMessage('Account not found', 'danger');
redirect('admin/accounts');
}
// if ($AccountInfo['account_status'] != 1) {
// setMessage('Hosting Account is deactivated', 'danger');
// redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id));
// }
$AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client;
$client = Client::create($AccountApiConfig);
$request = $client->suspend(array(
'username' => $AccountInfo['account_key'],
'reason' => $reason,
));
$response = $request->send();
$Data = $response->getData();
$Result = array(
'status' => $Data['result']['status'],
'message' => $Data['result']['statusmsg'],
);
if ($Result['status'] == 0 && !is_array($Result['message'])) {
// 执行操作失败
setMessage($Result['message'], 'danger');
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
} elseif ($Result['status'] == 1 && is_array($Result['message'])) {
// 执行操作成功
$sql = $DB->update('account', array('account_status' => '0'), array('account_id' => $account_id));
if ($sql) {
// 本地同步成功
$ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id']), null, 1);
$EmailContent = '<p>We had a good time with you while you were with us. </p>';
$EmailDescription = 'Your account(# ' . $account_id . ') have been deactivate successfully and all files and database will be deleted within 30 days.';
$email_body = email_build_body('Hosting Account Deactivated', $ClientInfo['client_fname'], $EmailContent, $EmailDescription);
send_mail(array(
'to' => $ClientInfo['client_email'],
'message' => $email_body,
'subject' => 'Hosting Account Deactivated'
));
setMessage('Hosting Account deactivated <b>successfully</b> !', 'success');
redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id));
} else {
// 本地同步异常
setMessage('Something went' . "'" . 's <b>wrong</b> !', 'danger');
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
}
} elseif ($Result['status'] == 0 && $Result['message'] == 0) {
// 执行操作异常
setMessage('Something went' . "'" . 's <b>wrong</b> !', 'danger');
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
}

View file

@ -0,0 +1,9 @@
<?php
$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;

View file

@ -0,0 +1,20 @@
<?php
require_once __DIR__ . '/../../application.php';
$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)) {
redirect('admin/accounts');
}
$AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$filemanager_url = get_filemanager_url($AccountApi['api_server_ftp_domain'], $AccountInfo['account_username'], $AccountInfo['account_password']);
header("Location: " . $filemanager_url);

View file

@ -0,0 +1,9 @@
<?php
$PageInfo['title'] = $lang->I18N('Hosting Accounts');
$count = $DB->count('account', "`account_status`!=0 OR `account_status`!=2");
if ($count > 0) {
$rows = $DB->findAll('account', '*', "`account_status`!=0 OR `account_status`!=2", "`account_id` DESC");
}

View file

@ -0,0 +1,17 @@
<?php
require_once __DIR__ . '/../../application.php';
$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)) {
redirect('admin/accounts');
}
$AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);

View file

@ -0,0 +1,76 @@
<?php
require_once __DIR__ . '/../../application.php';
if (!isset($_POST['submit'])) {
exit('Method Not Allowed');
}
$account_id = post('account_id', '');
if (empty($account_id)) {
setMessage('need field: account_id', 'danger');
redirect('admin/accounts');
}
$new_password = post('new_password', '');
if (empty($new_password)) {
setMessage('need field: new_password', 'danger');
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
}
$AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1);
if (empty($AccountInfo)) {
setMessage('Account not found', 'danger');
redirect('admin/accounts');
}
if ($AccountInfo['account_status'] != 1) {
setMessage('Hosting Account is deactivated', 'danger');
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
}
$AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client;
$client = Client::create($AccountApiConfig);
$request = $client->password([
'username' => $AccountInfo['account_key'],
'password' => $new_password,
'enabledigest' => 1,
]);
$response = $request->send();
$Data = $response->getData();
$Result = array(
'status' => $Data['passwd']['status'],
'message' => $Data['passwd']['statusmsg']
);
if ($Result['status'] == 0 && strlen($Result['message']) > 1) {
setMessage($Result['message'], 'danger');
} elseif ($Result['status'] == 1 && strlen($Result['message']) > 1) {
$sql = $DB->update('account', array('account_password' => $new_password), array('account_id' => $account_id));
if ($sql) {
setMessage('Password changed <b>successfully</b> !', 'success');
} else {
setMessage("1Something went's <b>wrong</b> !", 'danger');
}
} elseif ($Result['status'] == 0 && $Result['message'] == 0) {
setMessage("2Something went's <b>wrong</b> !", 'danger');
} else {
setMessage("3Something went's <b>wrong</b> !", 'danger');
}
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));

View file

@ -0,0 +1,84 @@
<?php
require_once __DIR__ . '/../../application.php';
if (!isset($_POST['submit'])) {
exit('Method Not Allowed');
}
$account_id = post('account_id', '');
if (empty($account_id)) {
setMessage('need field: account_id', 'danger');
redirect('admin/accounts');
}
$AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1);
if (empty($AccountInfo)) {
setMessage('Account not found', 'danger');
redirect('admin/accounts');
}
if ($AccountInfo['account_status'] == 1) {
setMessage('Hosting Account is active', 'danger');
redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id));
}
$AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client;
$client = Client::create($AccountApiConfig);
$request = $client->unsuspend(array(
'username' => $AccountInfo['account_key'],
));
$response = $request->send();
$Data = $response->getData();
$Result = array(
'status' => $Data['result']['status'],
'message' => $Data['result']['statusmsg'],
);
if ($Result['status'] == 0 && !is_array($Result['message'])) {
// 执行操作失败
setMessage($Result['message'], 'danger');
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
} elseif ($Result['status'] == 1 && is_array($Result['message'])) {
// 执行操作成功
$sql = $DB->update('account', array('account_status' => '1'), array('account_id' => $account_id));
if ($sql) {
// 本地同步成功
$ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id']), null, 1);
$EmailContent = 'Your account(# ' . $account_id . ') have been activated successfully.';
$EmailDescription = '<p><a href="' . setURL('clientarea/login') . '" target="_blank">Login to Clientarea</a></p>';
$email_body = email_build_body('Hosting Account Activated', $ClientInfo['client_fname'], $EmailContent, $EmailDescription);
send_mail(array(
"to" => $ClientInfo['client_email'],
"message" => $email_body,
"subject" => 'Activate Hosting Account',
));
setMessage('Hosting Account activated <b>successfully</b> !', 'success');
redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id));
} else {
// 本地同步异常
setMessage('Something went' . "'" . 's <b>wrong</b> !', 'danger');
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
}
} elseif ($Result['status'] == 0 && $Result['message'] == 0) {
// 执行操作异常
setMessage('Something went' . "'" . 's <b>wrong</b> !', 'danger');
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
}

View file

@ -0,0 +1,51 @@
<?php
require_once __DIR__ . '/../../application.php';
$account_id = get('account_id', 0);
if (empty($account_id)) {
redirect('clientarea/accounts');
}
$AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1);
if (empty($AccountInfo)) {
setMessage('not found', 'danger');
redirect('clientarea/accounts');
}
// TODO: Change to an asynchronous request
require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client;
if ($AccountInfo['account_status'] == 1) {
$AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
$client = Client::create($AccountApiConfig);
$request = $client->getUserDomains(array('username' => $AccountInfo['account_username']));
$response = $request->send();
$DomainList = $response->getDomains();
} else {
// inactive
$DomainList = array();
}
if (count($DomainList) > 0) {
foreach($DomainList as &$item) {
// 格式 ("abc.com",1234)
$item = '("' . $item . '",' .$account_id . ')';
}
// 清理
$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);
$result = $DB->query($sql);
}
redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id));

View file

@ -0,0 +1,23 @@
<?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'] = 'View Account (#' . $account_id . ')';
$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,19 @@
<?php
require '../../application.php';
$client_id = get('client_id');
if (!$client_id) {
exit('Access Denied');
}
$result = $DB->update('clients', array('client_status' => 1), array('client_id' => $client_id));
if ($result) {
setMessage('Client activated successfully !');
} else {
setMessage("Something went's wrong !", 'danger');
}
redirect('admin/clients', '', array('action' => 'view', 'client_id' => $client_id));

View file

@ -0,0 +1,9 @@
<?php
$PageInfo['title'] = $lang->I18N('Clients List');
$count = $DB->count('clients');
if ($count > 0) {
$rows = $DB->findAll('clients');
}

View file

@ -0,0 +1,22 @@
<?php
require_once __DIR__ . '/../../application.php';
$client_id = get('client_id');
if (empty($client_id)) {
redirect('admin/clients');
}
$ClientInfo = $DB->find('clients', '*', array('client_id' => $client_id), null, 1);
$key = rand(000000, 999999);
$email = $ClientInfo['client_email'];
$token = hash('sha256', json_encode([$email, $ClientInfo['client_key'], $key]));
$times = 1;
setcookie('UIISC_MEMBER', base64_encode(gzcompress(json_encode(array('email' => $email, 'token' => $token, 'key' => $key)))), time() + $times * 86400, '/', $site_domain);
setMessage('Logged in as ' . $email . ' <b>successfully!</b>', 'success');
redirect('clientarea/index');

View file

@ -0,0 +1,19 @@
<?php
require '../../application.php';
$client_id = get('client_id');
if (!$client_id) {
exit('Access Denied');
}
$result = $DB->update('clients', array('client_status' => 2), array('client_id' => $client_id));
if ($result) {
setMessage('Client suspended successfully !');
} else {
setMessage("Something went's wrong !", 'danger');
}
redirect('admin/clients', '', array('action' => 'view', 'client_id' => $client_id));

View file

@ -0,0 +1,26 @@
<?php
require_once ROOT . '/core/library/countries.php';
$client_id = get('client_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'] = 'View client (' . $client_id . ')';
$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

@ -0,0 +1,7 @@
<?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");

View file

@ -0,0 +1,37 @@
<?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

@ -0,0 +1,38 @@
<?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

@ -0,0 +1,9 @@
<?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,97 @@
<?php
if (isset($_POST['submit'])) {
require '../../application.php';
if (!post('api_type')) {
setMessage('need field: api_type', 'danger');
redirect('admin/hosting');
}
if (!post('api_key')) {
setMessage('need field: api_key', 'danger');
redirect('admin/hosting');
}
if (!post('api_username')) {
setMessage('need field: api_username', 'danger');
redirect('admin/hosting');
}
if (!post('api_password')) {
setMessage('need field: api_password', 'danger');
redirect('admin/hosting');
}
if (!post('api_server_domain')) {
setMessage('need field: api_server_domain', 'danger');
redirect('admin/hosting');
}
if (!post('api_cpanel_url')) {
setMessage('need field: api_cpanel_url', 'danger');
redirect('admin/hosting');
}
if (!post('api_server_ip')) {
setMessage('need field: api_server_ip', 'danger');
redirect('admin/hosting');
}
if (!post('api_server_ftp_domain')) {
setMessage('need field: api_server_ftp_domain', 'danger');
redirect('admin/hosting');
}
if (!post('api_server_sql_domain')) {
setMessage('need field: api_server_sql_domain', 'danger');
redirect('admin/hosting');
}
if (!post('api_ns_1')) {
setMessage('need field: api_ns_1', 'danger');
redirect('admin/hosting');
}
if (!post('api_ns_2')) {
setMessage('need field: api_ns_2', 'danger');
redirect('admin/hosting');
}
if (!post('api_package')) {
setMessage('need field: api_package', 'danger');
redirect('admin/hosting');
}
if (!post('api_callback_token')) {
setMessage('need field: api_callback_token', 'danger');
redirect('admin/hosting');
}
$data = array(
'api_username' => post('api_username'),
'api_password' => post('api_password'),
'api_type' => post('api_type'),
'api_key' => post('api_key'),
'api_server_domain' => post('api_server_domain'),
'api_cpanel_url' => post('api_cpanel_url'),
'api_server_ftp_domain' => post('api_server_ftp_domain'),
'api_server_sql_domain' => post('api_server_sql_domain'),
'api_server_ip' => post('api_server_ip'),
'api_ns_1' => post('api_ns_1'),
'api_ns_2' => post('api_ns_2'),
'api_package' => post('api_package'),
'api_callback_token' => post('api_callback_token')
);
$result = $DB->insert('account_api', $data);
if ($result) {
setMessage('Hosting Provider added successfully !');
} else {
setMessage("Something went's wrong !", 'danger');
}
redirect('admin/hosting');
}

View file

@ -0,0 +1,113 @@
<?php
if (isset($_POST['submit'])) {
require '../../application.php';
$api_id = post('api_id');
if (!$api_id) {
setMessage('need field: api_id', 'danger');
redirect('admin/hosting');
}
if (!post('api_type')) {
setMessage('need field: api_type', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_key')) {
setMessage('need field: api_key', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_username')) {
setMessage('need field: api_username', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_password')) {
setMessage('need field: api_password', 'danger');
redirect('admin/hosting', '', ['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]);
}
if (!post('api_cpanel_url')) {
setMessage('need field: api_cpanel_url', 'danger');
redirect('admin/hosting', '', ['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]);
}
if (!post('api_server_ftp_domain')) {
setMessage('need field: api_server_ftp_domain', 'danger');
redirect('admin/hosting', '', ['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]);
}
if (!post('api_ns_1')) {
setMessage('need field: api_ns_1', 'danger');
redirect('admin/hosting', '', ['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]);
}
if (!post('api_package')) {
setMessage('need field: api_package', 'danger');
redirect('admin/hosting', '', ['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]);
}
$data = array(
'api_username' => post('api_username'),
'api_password' => post('api_password'),
'api_type' => post('api_type'),
'api_key' => post('api_key'),
'api_server_domain' => post('api_server_domain'),
'api_cpanel_url' => post('api_cpanel_url'),
'api_server_ftp_domain' => post('api_server_ftp_domain'),
'api_server_sql_domain' => post('api_server_sql_domain'),
'api_server_ip' => post('api_server_ip'),
'api_ns_1' => post('api_ns_1'),
'api_ns_2' => post('api_ns_2'),
'api_package' => post('api_package'),
'api_callback_token' => post('api_callback_token')
);
$result = $DB->update('account_api', $data, array('api_id' => $api_id));
if ($result) {
setMessage('Hosting Provider updated successfully !');
} else {
setMessage("Something went's wrong !", 'danger');
}
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
} else {
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$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');
}
}

View file

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

View file

@ -0,0 +1,21 @@
<?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

@ -0,0 +1,22 @@
<?php
if (isset($_POST['submit'])) {
require '../../application.php';
$data = array(
'knowledgebase_subject' => post('subject'),
'knowledgebase_content' => post('editor'),
'knowledgebase_date' => date('Y-m-d H:i:s'),
);
$result = $DB->insert('knowledgebase', $data);
if ($result) {
setMessage('Knowledgebase added successfully !');
} else {
setMessage("Something went's wrong !", 'danger');
}
redirect('admin/knowledgebase');
} else {
$PageInfo = ['title' => 'New Knowledgebase', 'rel' => ''];
$load_editor = 1;
}

View file

@ -0,0 +1,44 @@
<?php
if (isset($_POST['submit'])) {
require '../../application.php';
$id = post('id');
if (!$id) {
setMessage('need field: id', 'danger');
redirect('admin/knowledgebase', '', array('action' => 'edit', 'id' => $id));
}
$subject = post('subject');
if (!$subject) {
setMessage('need field: subject', 'danger');
redirect('admin/knowledgebase', '', array('action' => 'edit', 'id' => $id));
}
$editor = post('editor');
if (!$editor) {
setMessage('need field: editor', 'danger');
redirect('admin/knowledgebase', '', array('action' => 'edit', 'id' => $id));
}
$FormData = array(
'knowledgebase_subject' => $subject,
'knowledgebase_content' => $editor,
'knowledgebase_date' => date('Y-m-d H:i:s'),
);
$result = $DB->update('knowledgebase', $FormData, array('knowledgebase_id' => $id));
if ($result) {
setMessage('Knowledgebase updated successfully !');
} else {
setMessage("Something went's wrong !", 'danger');
}
redirect('admin/knowledgebase', '', array('action' => 'edit', 'id' => $id));
} else {
$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

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

View file

@ -0,0 +1,15 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$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

@ -0,0 +1,42 @@
<?php
require_once __DIR__ . '/../../../core/application.php';
if (!isset($_POST['login'])) {
redirect('admin/login');
exit();
}
$admin_email = post('email');
if (empty($admin_email)) {
setMessage('Email address is required !', 'danger');
redirect('admin/login');
}
$admin_password = post('password');
if (empty($admin_password)) {
setMessage('Password is required !', 'danger');
redirect('admin/login');
}
$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']);
}
setMessage('Logged in successfully !');
redirect('admin/index');
} else {
setMessage('Invalid email address or password !', 'danger');
redirect('admin/login');
}

View file

@ -0,0 +1,20 @@
<?php
ob_start();
session_start();
if (isset($_SESSION['UIISC_ADMIN'])) {
unset($_SESSION['UIISC_ADMIN']);
$_SESSION['message'] = '<div class="alert alert-success" role="alert">
<button class="close" data-dismiss="alert" type="button" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
Logged out <b>successfully!</b>
</div>';
} else {
$_SESSION['message'] = '<div class="alert alert-danger" role="alert">
<button class="close" data-dismiss="alert" type="button" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
Login to <b>continue!</b>
</div>';
}
header('location: login.php');

View file

@ -0,0 +1,29 @@
<?php
require_once __DIR__ . '/../../application.php';
if (isset($_POST['submit'])) {
$data = array(
'news_subject' => post('subject'),
'news_content' => post('content'),
'news_status' => post('status'),
'news_date' => date('Y-m-d H:i:s'),
);
$result = $DB->insert('news', $data);
if ($result) {
setMessage('News added <b>successfully!</b>');
} else {
setMessage("Something went's <b>wrong!</b>", 'danger');
}
redirect('admin/news');
} else {
$PageInfo['title'] = $lang->I18N('News Add');
$status_types = array(
"关闭",
"打开",
);
$load_editor = 1;
}

View file

@ -0,0 +1,49 @@
<?php
if (isset($_POST['submit'])) {
require '../../application.php';
$id = post('id');
if (!$id) {
setMessage('need field: id', 'danger');
redirect('admin/news');
}
$data = array(
'news_subject' => post('subject'),
'news_content' => post('content'),
'news_status' => post('status'),
'news_lastupdated' => date('Y-m-d H:i:s'),
);
$result = $DB->update('news', $data, array('news_id' => $id));
if ($result) {
setMessage('News update <b>successfully!</b>');
} else {
setMessage("Something went's <b>wrong!</b>", 'danger');
}
redirect('admin/news', '', array());
}
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$id = get('id');
if (empty($id)) {
redirect('admin/news');
exit();
}
$status_types = array(
'关闭',
'打开',
);
$news = null;
if ($id > 0) {
$news = $DB->find('news', '*', array('news_id' => $id), null, 1);
}
$load_editor = 1;
$PageInfo['title'] = $lang->I18N('News Edit');

View file

@ -0,0 +1,16 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$count = $DB->count('news');
if ($count > 0) {
$rows = $DB->findAll('news', '*', array(), "`news_id` DESC");
}
$status_types = array(
"关闭",
"打开",
);
$PageInfo['title'] = $lang->I18N('News List');

View file

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

View file

@ -0,0 +1,20 @@
<?php
if (isset($_POST['submit'])) {
require '../../application.php';
$data = array(
'admin_fname' => post('fname'),
'admin_lname' => post('lname')
);
$where = array(
'admin_key' => $AdminInfo['admin_key']
);
$result = $DB->update('admin', $data, $where);
if ($result) {
setMessage('Profile updated successfully !');
} else {
setMessage("Something went's wrong !", 'danger');
}
redirect('admin/profile');
}

View file

@ -0,0 +1,43 @@
<?php
require_once __DIR__ . '/../../../core/application.php';
if (isset($_SESSION['UIISC_ADMIN']) && $_SESSION['UIISC_ADMIN'] != 'NULL') {
setMessage('Your has been logged !', 'danger');
redirect('admin/index');
}
if (isset($_POST['reset'])) {
$post_mail = post('email');
if (empty($post_mail)) {
setMessage('need field: <b>email</b> !', 'danger');
redirect('admin/forgetpassword');
}
$AdminInfo = $DB->find('admin', 'admin_key, admin_fname', array('admin_email' => $post_mail), null, 1);
if ($AdminInfo) {
$TokenId = password_hash($AdminInfo['admin_key'], PASSWORD_DEFAULT);
$TokenData = [['token' => str_replace('$2y$10$', '', $TokenId), 'email' => $post_mail]];
$Token = base64_encode(json_encode($TokenData));
$EmailContent = '<p>You have requested a password reset.</p>';
$EmailDescription = '<div style="padding:1rem;background:#e6e6e6;overflow-x:auto;">' . $Token . '</div>';
$EmailDescription .= '<p><a href="' . setURL('admin/resetpassword') . '" target="_blank">Reset Password</a></p>';
$email_body = email_build_body('Reset Password', $AdminInfo['admin_fname'], $EmailContent, $EmailDescription);
send_mail(array(
'to' => $post_mail,
'message' => $email_body,
'subject' => 'Forget Password',
));
setMessage('Email sent <b>successfully</b> !', 'success');
redirect('admin/resetpassword');
} else {
setMessage('Invalid <b>email</b> !', 'danger');
}
redirect('admin/forgetpassword');
}
$PageInfo['title'] = 'Forget Password';
$PageInfo['rel'] = '<link href="' . $site_url . '/assets/css/login.css" rel="stylesheet" />';

View file

@ -0,0 +1,30 @@
<?php
require '../../application.php';
if (!isset($_POST['submit'])) {
exit('405 / Method Not Allowed');
}
$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']) {
$result = $DB->update('admin', array('admin_password' => $FormData['hashed_password']), array('admin_key' => $FormData['user_key']));
if ($result) {
setMessage('Password changed successfully !');
unset($_SESSION['UIISC_ADMIN']);
redirect('admin/login');
} else {
setMessage("Something went's wrong !", 'danger');
redirect('admin/settings');
}
} else {
setMessage('Invalid user password !', 'danger');
redirect('admin/settings');
}

View file

@ -0,0 +1,67 @@
<?php
require_once __DIR__ . '/../../../core/application.php';
if (isset($_SESSION['UIISC_ADMIN']) && $_SESSION['UIISC_ADMIN'] != 'NULL') {
setMessage('Your has been logged !', 'danger');
redirect('admin/index');
}
if (isset($_POST['reset'])) {
$post_token = post('token');
if (!$post_token) {
setMessage('Invalid reset <b>token</b> !', 'danger');
redirect('admin/resetpassword');
}
$new_password = post('password');
if (!$new_password) {
setMessage('Invalid <b>password</b> !', 'danger');
redirect('admin/resetpassword');
}
try {
$TokenInfo = json_decode(base64_decode($post_token));
} catch (Exception $e) {
setMessage('Invalid reset <b>token</b> !', 'danger');
redirect('admin/resetpassword');
}
$AdminEmail = $TokenInfo[0]->email;
$AdminInfo = $DB->find('admin', 'admin_key, admin_fname', array('admin_email' => $AdminEmail), null, 1);
if (!$AdminInfo) {
setMessage('Invalid reset <b>token</b> !', 'danger');
redirect('admin/resetpassword');
}
$Key = '$2y$10$' . $TokenInfo[0]->token;
if (password_verify($AdminInfo['admin_key'], $Key)) {
$hashed_password = hash('sha256', $new_password);
$result = $DB->update('admin', array('admin_password' => $hashed_password), array('admin_email' => $AdminEmail));
if ($result) {
$EmailContent = '<p>Your account password has been reset successfully. Please login to clientarea to use our services again.</p>';
$EmailDescription = '<p>Click <a href="' . setURL('admin/login') . '">here</a> to login.</p>';
$email_body = email_build_body('Reset Password', $AdminInfo['admin_fname'], $EmailContent, $EmailDescription);
send_mail(array(
'to' => $AdminEmail,
'message' => $email_body,
'subject' => 'Reset Password',
));
setMessage('Password reset <b>successfully</b> !', 'success');
redirect('admin/login');
} else {
setMessage('Something went' . "'" . 's <b>wrong</b> !', 'danger');
redirect('admin/resetpassword');
}
} else {
setMessage('Invalid reset <b>token</b> !', 'danger');
redirect('admin/resetpassword');
}
} else {
$PageInfo['title'] = 'Reset Password';
$PageInfo['rel'] = '<link href="' . $site_url . '/assets/css/login.css" rel="stylesheet" />';
}

View file

@ -0,0 +1,3 @@
<?php
$PageInfo['title'] = $lang->I18N('My Profile');

View file

@ -0,0 +1,33 @@
<?php
require_once __DIR__ . '/../../application.php';
if (isset($_POST['submit'])) {
$data = array(
'site_name' => post('name'),
'site_path' => post('url'),
'site_email' => post('email'),
'site_phone' => post('phone'),
'site_brand' => post('brand'),
'site_company' => post('company'),
'site_status' => post('status'),
'page_title' => post('page_title'),
'page_description' => post('page_description'),
'page_keywords' => post('page_keywords'),
'page_copyright' => post('page_copyright'),
'page_author' => post('page_author'),
'ifastnet_aff' => post('ifastnet_aff'),
);
$where = array(
'site_key' => 'UIISC',
);
$result = $DB->update('config', $data, $where);
if ($result) {
setMessage('Clientarea updated <b>successfully!</b>');
} else {
setMessage("Something went's <b>wrong!</b>", 'danger');
}
redirect('admin/settings');
}

View file

@ -0,0 +1,8 @@
<?php
$Statuses = array(
array('name' => 'Live', 'value' => '1'),
array('name' => 'Maintaince', 'value' => '0'),
);
$PageInfo['title'] = 'System Settings';

View file

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

View file

@ -0,0 +1,9 @@
<?php
$PageInfo['title'] = 'SitePro Settings';
$where = array(
'builder_id' => 'SITEPRO',
);
$SitePro = $DB->find('builder_api', '*', $where, null, 1);

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