Compare commits
101 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ecc42caf98 | ||
![]() |
28c9ef0a2a | ||
![]() |
2cd4637d26 | ||
![]() |
3df3d25422 | ||
![]() |
663ea7dd4d | ||
![]() |
a3374a79da | ||
![]() |
60169378f7 | ||
![]() |
7fe0145c72 | ||
![]() |
a7f7814e74 | ||
![]() |
9eee69b7fc | ||
![]() |
87929ce135 | ||
![]() |
097726c785 | ||
![]() |
589d349226 | ||
![]() |
2b3178cb4e | ||
![]() |
a3b34f5745 | ||
![]() |
f154e90369 | ||
![]() |
48ae5ead66 | ||
![]() |
242662fd83 | ||
![]() |
63cc6c5fcb | ||
![]() |
78197bce95 | ||
![]() |
50d96ae9f6 | ||
![]() |
0d02973801 | ||
![]() |
12ea496427 | ||
![]() |
9865fd6891 | ||
![]() |
ca2ed7ae4f | ||
![]() |
be8350320b | ||
![]() |
feae9a1482 | ||
![]() |
778babe4b1 | ||
![]() |
7a4beecbbd | ||
![]() |
4803990aa6 | ||
![]() |
cb1457d458 | ||
![]() |
eecaa0d673 | ||
![]() |
0c7990600a | ||
![]() |
21a56df14c | ||
![]() |
671e4e7f68 | ||
![]() |
7260313a1d | ||
![]() |
de54437872 | ||
![]() |
959e423a8d | ||
![]() |
8354190f96 | ||
![]() |
0c8bed50dc | ||
![]() |
c6ba200ff0 | ||
![]() |
dcc2695657 | ||
![]() |
68c2f5a963 | ||
![]() |
bb133f7613 | ||
![]() |
f6fcbd4a70 | ||
![]() |
da7cbcb1c2 | ||
![]() |
73061adf62 | ||
![]() |
421d79cc5c | ||
![]() |
94b07d1336 | ||
![]() |
04ce754737 | ||
![]() |
0e99eb711e | ||
![]() |
c8aa241511 | ||
![]() |
82b5967c57 | ||
![]() |
98e8745cdd | ||
![]() |
cd80052f47 | ||
![]() |
e357608c6a | ||
![]() |
f5b15ec4a3 | ||
![]() |
244429f1c1 | ||
![]() |
5d0f61d77f | ||
![]() |
bcafdd180f | ||
![]() |
3bf955064e | ||
![]() |
4894be8108 | ||
![]() |
7df2f9d986 | ||
![]() |
b266c90090 | ||
![]() |
666063b68f | ||
![]() |
fab80450be | ||
![]() |
9fd3613aee | ||
![]() |
a00ca50ac9 | ||
![]() |
335f234dbb | ||
![]() |
0e256c44a6 | ||
![]() |
91c6c0f57e | ||
![]() |
9a4058e198 | ||
![]() |
137e4a8928 | ||
![]() |
e20652a435 | ||
![]() |
c3d4db905d | ||
![]() |
deab9c38a4 | ||
![]() |
c2c6d74836 | ||
![]() |
5fb81ff50b | ||
![]() |
15d525a9d0 | ||
![]() |
163f113f1b | ||
![]() |
7e6a99f5c7 | ||
![]() |
c5161c8c65 | ||
![]() |
a833a6373d | ||
![]() |
52d0937a2f | ||
![]() |
2d170ee0f9 | ||
![]() |
2a40bed56b | ||
![]() |
038876ebda | ||
![]() |
2cad83c3d5 | ||
![]() |
389f728439 | ||
![]() |
ef1f8c3742 | ||
![]() |
0affcc9a0a | ||
![]() |
20cb4e5379 | ||
![]() |
26876e5678 | ||
![]() |
569dc9cd59 | ||
![]() |
10fe3cc6c9 | ||
![]() |
9d96985d7f | ||
![]() |
e8cbffc9ca | ||
![]() |
b0914fe01a | ||
![]() |
14d7d3663e | ||
![]() |
bf0b804251 | ||
![]() |
57f7973114 |
7
.editorconfig
Normal 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
|
@ -0,0 +1,3 @@
|
|||
.DS_Store
|
||||
Thumbs.db
|
||||
test/
|
|
@ -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
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"eslintIntegration": true,
|
||||
"tabWidth": 4,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "none",
|
||||
"printWidth": 300,
|
||||
"semi": false
|
||||
}
|
29
LICENSE
Normal 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.
|
63
README.md
|
@ -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>
|
||||
|
||||
> 
|
||||
|
||||
##### <u>Login Page</u>
|
||||
|
||||
> 
|
||||
|
||||
##### <u>Register Page</u>
|
||||
|
||||
> 
|
||||
|
|
18
SECURITY.md
Normal 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`.
|
||||
|
50
contact.php
|
@ -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>
|
28
core.php
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
22
footer.php
|
@ -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>© 2017 <a href="./index.php"><?=$title_s?></a> 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>
|
51
index.php
|
@ -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 »</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>
|
|
@ -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!')
|
||||
}
|
||||
})();
|
|
@ -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)
|
||||
}
|
||||
})();
|
|
@ -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.')
|
||||
}
|
|
@ -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);
|
61
js/jquery.i18n.properties.min.js
vendored
|
@ -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)
|
|
@ -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"])
|
||||
}
|
||||
}
|
||||
});
|
|
@ -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 & Refund policy</h2>
|
||||
<p class="text-center">Cancelation & 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 you’re 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 & 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 & Information</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<?php include ("footer.php"); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -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 & 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 & Information</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<?php include ("footer.php"); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -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 & 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 & Information</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<?php include ("footer.php"); ?>
|
||||
</body>
|
||||
</html>
|
875
legal_terms.php
|
@ -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 & 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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<?php include ("footer.php"); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -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}?
|
|
@ -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?
|
|
@ -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?
|
|
@ -1,12 +0,0 @@
|
|||
language = Korean
|
||||
home = 홈 페이지
|
||||
production = 생산
|
||||
contact = 접촉
|
||||
contact_us = 연락
|
||||
login = 로그인
|
||||
signup = 가입과
|
||||
legal_information = 법률 정보
|
||||
privacy_policy = 개인 정보 보호 정책
|
||||
tos = 이용 약관
|
||||
cancellation_refund = 취소 및 환불
|
||||
payment_methods = 지불 방법
|
|
@ -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 = 地址
|
|
@ -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 = 地址
|
|
@ -1 +0,0 @@
|
|||
{"languages":["zh_CN","zh_TW","en_US","en_GB","ko_KR"]}
|
40
login.php
|
@ -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
|
@ -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>
|
71
news.php
|
@ -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
|
@ -0,0 +1,3 @@
|
|||
location /callback {
|
||||
rewrite ^(.*)$ /callback/index.php?s=$1 last; break;
|
||||
}
|
|
@ -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;
|
|
@ -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>
|
Before Width: | Height: | Size: 951 B |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 1 KiB |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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
After Width: | Height: | Size: 42 KiB |
BIN
screenshot/register.png
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
screenshot/solution.png
Normal file
After Width: | Height: | Size: 160 KiB |
|
@ -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);
|
107
signup.php
|
@ -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
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
require __DIR__ . '/core/application.php';
|
||||
require __DIR__ . '/public/controllers/about.php';
|
16
src/admin/accounts.php
Executable 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
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
|
||||
require_once __DIR__ . '/../core/application.php';
|
||||
require_once ROOT . '/core/adminarea.php';
|
16
src/admin/clients.php
Executable 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';
|
92
src/admin/controllers/accounts/deactivate.php
Executable 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));
|
||||
}
|
9
src/admin/controllers/accounts/edit.php
Executable 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;
|
20
src/admin/controllers/accounts/goftp.php
Executable 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);
|
9
src/admin/controllers/accounts/list.php
Executable 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");
|
||||
}
|
17
src/admin/controllers/accounts/login.php
Executable 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);
|
76
src/admin/controllers/accounts/password.php
Executable 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));
|
84
src/admin/controllers/accounts/reactivate.php
Executable 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));
|
||||
}
|
51
src/admin/controllers/accounts/sync.php
Executable 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));
|
23
src/admin/controllers/accounts/view.php
Executable 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));
|
19
src/admin/controllers/clients/activate.php
Executable 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));
|
9
src/admin/controllers/clients/list.php
Executable file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
$PageInfo['title'] = $lang->I18N('Clients List');
|
||||
|
||||
$count = $DB->count('clients');
|
||||
|
||||
if ($count > 0) {
|
||||
$rows = $DB->findAll('clients');
|
||||
}
|
22
src/admin/controllers/clients/login.php
Executable 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');
|
19
src/admin/controllers/clients/suspend.php
Executable 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));
|
26
src/admin/controllers/clients/view.php
Executable 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']));
|
7
src/admin/controllers/dashboard/view.php
Executable 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");
|
37
src/admin/controllers/domain/add.php
Executable 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');
|
38
src/admin/controllers/domain/delete.php
Executable 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');
|
9
src/admin/controllers/domain/list.php
Executable 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');
|
||||
}
|
97
src/admin/controllers/hosting/add.php
Executable 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');
|
||||
}
|
113
src/admin/controllers/hosting/edit.php
Executable 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');
|
||||
}
|
||||
}
|
10
src/admin/controllers/hosting/list.php
Normal 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");
|
||||
}
|
21
src/admin/controllers/hosting/view.php
Executable 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;
|
||||
}
|
22
src/admin/controllers/knowledgebase/add.php
Executable 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;
|
||||
}
|
44
src/admin/controllers/knowledgebase/edit.php
Executable 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;
|
||||
}
|
||||
}
|
9
src/admin/controllers/knowledgebase/list.php
Executable 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");
|
||||
}
|
15
src/admin/controllers/knowledgebase/view.php
Executable 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;
|
||||
}
|
42
src/admin/controllers/login/login.php
Executable 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');
|
||||
}
|
20
src/admin/controllers/login/logout.php
Executable 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">×</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">×</span>
|
||||
</button>
|
||||
Login to <b>continue!</b>
|
||||
</div>';
|
||||
}
|
||||
header('location: login.php');
|
29
src/admin/controllers/news/add.php
Executable 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;
|
||||
}
|
49
src/admin/controllers/news/edit.php
Executable 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');
|
16
src/admin/controllers/news/list.php
Executable 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');
|
24
src/admin/controllers/news/view.php
Executable 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');
|
20
src/admin/controllers/profile/edit.php
Executable 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');
|
||||
}
|
||||
|
43
src/admin/controllers/profile/forgetpassword.php
Executable 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" />';
|
30
src/admin/controllers/profile/password.php
Executable 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');
|
||||
}
|
67
src/admin/controllers/profile/resetpassword.php
Executable 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" />';
|
||||
}
|
3
src/admin/controllers/profile/view.php
Executable file
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
|
||||
$PageInfo['title'] = $lang->I18N('My Profile');
|
33
src/admin/controllers/settings/edit.php
Executable 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');
|
||||
}
|
8
src/admin/controllers/settings/view.php
Executable file
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
$Statuses = array(
|
||||
array('name' => 'Live', 'value' => '1'),
|
||||
array('name' => 'Maintaince', 'value' => '0'),
|
||||
);
|
||||
|
||||
$PageInfo['title'] = 'System Settings';
|
25
src/admin/controllers/sitepro/edit.php
Executable 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');
|
9
src/admin/controllers/sitepro/view.php
Executable file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
$PageInfo['title'] = 'SitePro Settings';
|
||||
|
||||
$where = array(
|
||||
'builder_id' => 'SITEPRO',
|
||||
);
|
||||
|
||||
$SitePro = $DB->find('builder_api', '*', $where, null, 1);
|