Multiftp support

This commit is contained in:
Serghey Rodin 2014-07-30 15:54:18 +03:00
commit f42face68d
5 changed files with 1094 additions and 670 deletions

View file

@ -4,277 +4,350 @@ error_reporting(NULL);
ob_start();
session_start();
$TAB = 'WEB';
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
// Check POST request
if (!empty($_POST['ok'])) {
// Check for empty fields
if (empty($_POST['v_domain'])) $errors[] = __('domain');
if (empty($_POST['v_ip'])) $errors[] = __('ip');
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_crt']))) $errors[] = __('ssl certificate');
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_key']))) $errors[] = __('ssl key');
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
}
}
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
}
// Check stats password length
if ((!empty($v_stats)) && (empty($_SESSION['error_msg']))) {
if (!empty($_POST['v_stats_user'])) {
$pw_len = strlen($_POST['v_stats_password']);
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
}
}
// Default proxy extention list
$v_proxy_ext = 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf, ';
$v_proxy_ext .= 'otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, ';
$v_proxy_ext .= 'odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, ';
$v_proxy_ext .= 'bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, ';
$v_proxy_ext .= 'mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf';
// Set advanced option checkmark
if (empty($_POST['v_proxy'])) $v_adv = 'yes';
if (!empty($_POST['v_ftp'])) $v_adv = 'yes';
if ($_POST['v_proxy_ext'] != $v_proxy_ext) $v_adv = 'yes';
// Set domain name to lowercase and remove www prefix
$v_domain = preg_replace("/^www\./i", "", $_POST['v_domain']);
$v_domain = escapeshellarg($v_domain);
$v_domain = strtolower($v_domain);
// Prepare domain values
$v_ip = escapeshellarg($_POST['v_ip']);
if ((!empty($_POST['v_aliases'])) && ($_POST['v_aliases'] != 'www.'.$_POST['v_domain'])) $v_adv = 'yes';
if ((!empty($_POST['v_ssl'])) || (!empty($_POST['v_elog']))) $v_adv = 'yes';
if ((!empty($_POST['v_ssl_crt'])) || (!empty($_POST['v_ssl_key']))) $v_adv = 'yes';
if ((!empty($_POST['v_ssl_ca'])) || ($_POST['v_stats'] != 'none')) $v_adv = 'yes';
if (!empty($v_domain)) $v_ftp_user_prepath .= $v_domain;
if (empty($_POST['v_dns'])) $v_dns = 'off';
if (empty($_POST['v_mail'])) $v_mail = 'off';
if (empty($_POST['v_proxy'])) $v_proxy = 'off';
$v_aliases = $_POST['v_aliases'];
$v_elog = $_POST['v_elog'];
$v_ssl = $_POST['v_ssl'];
$v_ssl_crt = $_POST['v_ssl_crt'];
$v_ssl_key = $_POST['v_ssl_key'];
$v_ssl_ca = $_POST['v_ssl_ca'];
$v_ssl_home = $data[$v_domain]['SSL_HOME'];
$v_stats = escapeshellarg($_POST['v_stats']);
$v_stats_user = $data[$v_domain]['STATS_USER'];
$v_stats_password = $data[$v_domain]['STATS_PASSWORD'];
$v_proxy_ext = preg_replace("/\n/", " ", $_POST['v_proxy_ext']);
$v_proxy_ext = preg_replace("/,/", " ", $v_proxy_ext);
$v_proxy_ext = preg_replace('/\s+/', ' ',$v_proxy_ext);
$v_proxy_ext = trim($v_proxy_ext);
$v_proxy_ext = str_replace(' ', ", ", $v_proxy_ext);
$v_ftp = $_POST['v_ftp'];
$v_ftp_user = $_POST['v_ftp_user'];
$v_ftp_password = $_POST['v_ftp_password'];
$v_ftp_email = $_POST['v_ftp_email'];
// Add web domain
if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-add-web-domain ".$user." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
$domain_added = empty($_SESSION['error_msg']);
}
// Add DNS domain
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-add-dns-domain ".$user." ".$v_domain." ".$v_ip, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add mail domain
if (($_POST['v_mail'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-add-mail-domain ".$user." ".$v_domain, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add domain aliases
if ((!empty($_POST['v_aliases'])) && (empty($_SESSION['error_msg']))) {
$valiases = preg_replace("/\n/", " ", $_POST['v_aliases']);
$valiases = preg_replace("/,/", " ", $valiases);
$valiases = preg_replace('/\s+/', ' ',$valiases);
$valiases = trim($valiases);
$aliases = explode(" ", $valiases);
foreach ($aliases as $alias) {
if ($alias == 'www.'.$_POST['v_domain']) {
$www_alias = 'yes';
} else {
$alias = escapeshellarg($alias);
if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-add-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-add-dns-on-web-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
}
}
}
// Delete www. alias if it wasn't found
if ((empty($www_alias)) && (empty($_SESSION['error_msg']))) {
$alias = preg_replace("/^www./i", "", $_POST['v_domain']);
$alias = 'www.'.$alias;
$alias = escapeshellarg($alias);
exec (VESTA_CMD."v-delete-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add proxy support
if (($_POST['v_proxy'] == 'on') && (empty($_SESSION['error_msg']))) {
$ext = str_replace(' ', '', $v_proxy_ext);
$ext = escapeshellarg($ext);
exec (VESTA_CMD."v-add-web-domain-proxy ".$user." ".$v_domain." '' ".$ext." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add SSL certificates
if ((!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
exec ('mktemp -d', $output, $return_var);
$tmpdir = $output[0];
unset($output);
// Save certificate
if (!empty($_POST['v_ssl_crt'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".crt", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt']));
fwrite($fp, "\n");
fclose($fp);
}
// Save private key
if (!empty($_POST['v_ssl_key'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".key", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key']));
fwrite($fp, "\n");
fclose($fp);
}
// Save CA bundle
if (!empty($_POST['v_ssl_ca'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".ca", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_ca']));
fwrite($fp, "\n");
fclose($fp);
}
$v_ssl_home = escapeshellarg($_POST['v_ssl_home']);
exec (VESTA_CMD."v-add-web-domain-ssl ".$user." ".$v_domain." ".$tmpdir." ".$v_ssl_home." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add web stats
if ((!empty($_POST['v_stats'])) && ($_POST['v_stats'] != 'none' ) && (empty($_SESSION['error_msg']))) {
$v_stats = escapeshellarg($_POST['v_stats']);
exec (VESTA_CMD."v-add-web-domain-stats ".$user." ".$v_domain." ".$v_stats, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add web stats password
if ((!empty($_POST['v_stats_user'])) && (empty($_SESSION['error_msg']))) {
$v_stats_user = escapeshellarg($_POST['v_stats_user']);
$v_stats_password = escapeshellarg($_POST['v_stats_password']);
exec (VESTA_CMD."v-add-web-domain-stats-user ".$user." ".$v_domain." ".$v_stats_user." ".$v_stats_password, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Restart DNS server
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-dns", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Restart web server
if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-restart-web", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Restart proxy server
if (($_POST['v_proxy'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-proxy", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add FTP
if ((!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
$v_ftp_users_updated = array();
foreach ($_POST['v_ftp_user'] as $i => $v_ftp_user_data) {
if ($v_ftp_user_data['is_new'] == 1) {
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (!filter_var($v_ftp_user_data['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = __('Please enter valid email address.');
if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = 'ftp user';
if (empty($v_ftp_user_data['v_ftp_password'])) $errors[] = 'ftp user password';
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
}
}
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
}
// Validate email
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (!filter_var($v_ftp_user_data['v_ftp_email'], FILTER_VALIDATE_EMAIL))) {
$_SESSION['error_msg'] = __('Please enter valid email address.');
}
// Check ftp password length
if ((!empty($v_ftp_user_data['v_ftp']))) {
if (!empty($v_ftp_user_data['v_ftp_user'])) {
$pw_len = strlen($v_ftp_user_data['v_ftp_password']);
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
}
}
$v_ftp_user_data['v_ftp_user'] = preg_replace("/^".$user."_/i", "", $v_ftp_user_data['v_ftp_user']);
$v_ftp_username = $v_ftp_user_data['v_ftp_user'];
$v_ftp_username_full = $user . '_' . $v_ftp_user_data['v_ftp_user'];
$v_ftp_user = escapeshellarg($v_ftp_user_data['v_ftp_user']);
$v_ftp_password = escapeshellarg($v_ftp_user_data['v_ftp_password']);
if ($domain_added) {
exec (VESTA_CMD."v-add-web-domain-ftp ".$user." ".$v_domain." ".$v_ftp_username." ".$v_ftp_password . " " . $v_ftp_user_data['v_ftp_path'], $output, $return_var);
check_return_code($return_var,$output);
unset($output);
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (empty($_SESSION['error_msg']))) {
$to = $v_ftp_user_data['v_ftp_email'];
$subject = __("FTP login credentials");
$from = __('MAIL_FROM',$_POST['v_domain']);
$mailtext = __('FTP_ACCOUNT_READY',$_POST['v_domain'],$user,$v_ftp_user_data['v_ftp_user'],$v_ftp_user_data['v_ftp_password']);
send_email($to, $subject, $mailtext, $from);
unset($v_ftp_email);
}
} else {
$return_var = -1;
}
if ($return_var == 0) {
$v_ftp_password = "••••••••";
$v_ftp_user_data['is_new'] = 0;
} else {
$v_ftp_user_data['is_new'] = 1;
}
$v_ftp_username = preg_replace("/^".$user."_/", "", $v_ftp_user_data['v_ftp_user']);
$v_ftp_users_updated[] = array(
'is_new' => $v_ftp_user_data['is_new'],
'v_ftp_user' => $return_var == 0 ? $v_ftp_username_full : $v_ftp_username,
'v_ftp_password' => $v_ftp_password,
'v_ftp_path' => $v_ftp_user_data['v_ftp_path'],
'v_ftp_email' => $v_ftp_user_data['v_ftp_email'],
'v_ftp_pre_path' => $v_ftp_user_prepath
);
continue;
}
}
if (!empty($_SESSION['error_msg']) && $domain_added) {
$_SESSION['ok_msg'] = __('WEB_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]);
$_SESSION['flash_error_msg'] = $_SESSION['error_msg'];
$url = '/edit/web/?domain='.strtolower(preg_replace("/^www\./i", "", $_POST['v_domain']));
header('Location: ' . $url);
exit;
}
}
// Flush field values on success
if (empty($_SESSION['error_msg'])) {
$_SESSION['ok_msg'] = __('WEB_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]);
unset($v_domain);
unset($v_aliases);
unset($v_ssl);
unset($v_ssl_crt);
unset($v_ssl_key);
unset($v_ssl_ca);
unset($v_stats_user);
unset($v_stats_password);
unset($v_ftp);
}
}
// Header
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
// Panel
top_panel($user,$TAB);
// Define user variables
$v_ftp_user_prepath = $panel[$user]['HOME'] . "/web";
$v_ftp_email = $panel[$user]['CONTACT'];
if (!empty($_POST['ok'])) {
// Check input
if (empty($_POST['v_domain'])) $errors[] = __('domain');
if (empty($_POST['v_ip'])) $errors[] = __('ip');
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_crt']))) $errors[] = __('ssl certificate');
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_key']))) $errors[] = __('ssl key');
if ((!empty($_POST['v_aliases'])) && ($_POST['v_aliases'] != 'www.'.$_POST['v_domain'])) $v_adv = 'yes';
if ((!empty($_POST['v_ssl'])) || (!empty($_POST['v_elog']))) $v_adv = 'yes';
if ((!empty($_POST['v_ssl_crt'])) || (!empty($_POST['v_ssl_key']))) $v_adv = 'yes';
if ((!empty($_POST['v_ssl_ca'])) || ($_POST['v_stats'] != 'none')) $v_adv = 'yes';
if (empty($_POST['v_proxy'])) $v_adv = 'yes';
if (!empty($_POST['v_ftp'])) $v_adv = 'yes';
$v_proxy_ext = 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf,';
$v_proxy_ext .= 'otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, ';
$v_proxy_ext .= 'odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, ';
$v_proxy_ext .= 'bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, ';
$v_proxy_ext .= 'mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf';
if ($_POST['v_proxy_ext'] != $v_proxy_ext) $v_adv = 'yes';
// List IP addresses
exec (VESTA_CMD."v-list-user-ips ".$user." json", $output, $return_var);
$ips = json_decode(implode('', $output), true);
unset($output);
// Protect input
$v_domain = preg_replace("/^www\./i", "", $_POST['v_domain']);
$v_domain = escapeshellarg($v_domain);
$v_domain = strtolower($v_domain);
$v_ip = escapeshellarg($_POST['v_ip']);
if (empty($_POST['v_dns'])) $v_dns = 'off';
if (empty($_POST['v_mail'])) $v_mail = 'off';
if (empty($_POST['v_proxy'])) $v_proxy = 'off';
$v_aliases = $_POST['v_aliases'];
$v_elog = $_POST['v_elog'];
$v_ssl = $_POST['v_ssl'];
$v_ssl_crt = $_POST['v_ssl_crt'];
$v_ssl_key = $_POST['v_ssl_key'];
$v_ssl_ca = $_POST['v_ssl_ca'];
$v_ssl_home = $data[$v_domain]['SSL_HOME'];
$v_stats = escapeshellarg($_POST['v_stats']);
$v_stats_user = $data[$v_domain]['STATS_USER'];
$v_stats_password = $data[$v_domain]['STATS_PASSWORD'];
$v_proxy_ext = preg_replace("/\n/", " ", $_POST['v_proxy_ext']);
$v_proxy_ext = preg_replace("/,/", " ", $v_proxy_ext);
$v_proxy_ext = preg_replace('/\s+/', ' ',$v_proxy_ext);
$v_proxy_ext = trim($v_proxy_ext);
$v_proxy_ext = str_replace(' ', ", ", $v_proxy_ext);
$v_ftp = $_POST['v_ftp'];
$v_ftp_user = $_POST['v_ftp_user'];
$v_ftp_password = $_POST['v_ftp_password'];
$v_ftp_email = $_POST['v_ftp_email'];
// List web stat engines
exec (VESTA_CMD."v-list-web-stats json", $output, $return_var);
$stats = json_decode(implode('', $output), true);
unset($output);
// Validate email
if ((!empty($_POST['v_ftp_email'])) && (!filter_var($_POST['v_ftp_email'], FILTER_VALIDATE_EMAIL))) {
$_SESSION['error_msg'] = __('Please enter valid email address.');
}
// Display body
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_web.html');
// Check ftp password length
if ((!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
if (!empty($_POST['v_ftp_user'])) {
$pw_len = strlen($_POST['v_ftp_password']);
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
}
}
// Check stats password length
if ((!empty($v_stats)) && (empty($_SESSION['error_msg']))) {
if (!empty($_POST['v_stats_user'])) {
$pw_len = strlen($_POST['v_stats_password']);
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
}
}
// Check for errors
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
}
}
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
}
if (empty($_SESSION['error_msg'])) {
// Add WEB
exec (VESTA_CMD."v-add-web-domain ".$user." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
// Add DNS
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-add-dns-domain ".$user." ".$v_domain." ".$v_ip, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add Mail
if (($_POST['v_mail'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-add-mail-domain ".$user." ".$v_domain, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add Aliases
if ((!empty($_POST['v_aliases'])) && (empty($_SESSION['error_msg']))) {
$valiases = preg_replace("/\n/", " ", $_POST['v_aliases']);
$valiases = preg_replace("/,/", " ", $valiases);
$valiases = preg_replace('/\s+/', ' ',$valiases);
$valiases = trim($valiases);
$aliases = explode(" ", $valiases);
foreach ($aliases as $alias) {
if ($alias == 'www.'.$_POST['v_domain']) {
$www_alias = 'yes';
} else {
$alias = escapeshellarg($alias);
if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-add-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
check_return_code($return_var,$output);
}
unset($output);
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-add-dns-on-web-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
}
}
}
if ((empty($www_alias)) && (empty($_SESSION['error_msg']))) {
$alias = preg_replace("/^www./i", "", $_POST['v_domain']);
$alias = 'www.'.$alias;
$alias = escapeshellarg($alias);
exec (VESTA_CMD."v-delete-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
check_return_code($return_var,$output);
}
// Add proxy
if (($_POST['v_proxy'] == 'on') && (empty($_SESSION['error_msg']))) {
$ext = str_replace(' ', '', $v_proxy_ext);
$ext = escapeshellarg($ext);
exec (VESTA_CMD."v-add-web-domain-proxy ".$user." ".$v_domain." '' ".$ext." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add SSL
if (!empty($_POST['v_ssl'])) {
exec ('mktemp -d', $output, $return_var);
$tmpdir = $output[0];
// Certificate
if (!empty($_POST['v_ssl_crt'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".crt", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt']));
fwrite($fp, "\n");
fclose($fp);
}
// Key
if (!empty($_POST['v_ssl_key'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".key", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key']));
fwrite($fp, "\n");
fclose($fp);
}
// CA
if (!empty($_POST['v_ssl_ca'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".ca", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_ca']));
fwrite($fp, "\n");
fclose($fp);
}
$v_ssl_home = escapeshellarg($_POST['v_ssl_home']);
exec (VESTA_CMD."v-add-web-domain-ssl ".$user." ".$v_domain." ".$tmpdir." ".$v_ssl_home." 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add WebStats
if ((!empty($_POST['v_stats'])) && ($_POST['v_stats'] != 'none' ) && (empty($_SESSION['error_msg']))) {
$v_stats = escapeshellarg($_POST['v_stats']);
exec (VESTA_CMD."v-add-web-domain-stats ".$user." ".$v_domain." ".$v_stats, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
if ((!empty($_POST['v_stats_user'])) && (empty($_SESSION['error_msg']))) {
$v_stats_user = escapeshellarg($_POST['v_stats_user']);
$v_stats_password = escapeshellarg($_POST['v_stats_password']);
exec (VESTA_CMD."v-add-web-domain-stats-user ".$user." ".$v_domain." ".$v_stats_user." ".$v_stats_password, $output, $return_var);
check_return_code($return_var,$output);
unset($v_stats_user);
unset($v_stats_password);
unset($output);
}
}
// Add FTP
if ((!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
$v_ftp_user = escapeshellarg($_POST['v_ftp_user']);
$v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
exec (VESTA_CMD."v-add-web-domain-ftp ".$user." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
check_return_code($return_var,$output);
if (empty($_SESSION['error_msg'])) {
if (!empty($v_ftp_email)) {
$to = $_POST['v_ftp_email'];
$subject = __("FTP login credentials");
$hostname = exec('hostname');
$from = __('MAIL_FROM',$hostname);
$mailtext .= __('FTP_ACCOUNT_READY',$_POST['v_domain'],$user,$_POST['v_ftp_user'],$_POST['v_ftp_password']);
send_email($to, $subject, $mailtext, $from);
}
}
unset($v_ftp);
unset($v_ftp_user);
unset($v_ftp_password);
unset($output);
}
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-dns", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-restart-web", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-restart-proxy", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
if (empty($_SESSION['error_msg'])) {
unset($output);
$_SESSION['ok_msg'] = __('WEB_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]);
unset($v_domain);
unset($v_aliases);
unset($v_ssl);
unset($v_ssl_crt);
unset($v_ssl_key);
unset($v_ssl_ca);
}
}
}
exec (VESTA_CMD."v-list-user-ips ".$user." json", $output, $return_var);
$ips = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v-list-web-stats json", $output, $return_var);
$stats = json_decode(implode('', $output), true);
unset($output);
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_web.html');
unset($_SESSION['error_msg']);
unset($_SESSION['ok_msg']);
//}
// Flush session messages
unset($_SESSION['error_msg']);
unset($_SESSION['ok_msg']);
// Footer
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');

View file

@ -4,17 +4,11 @@ error_reporting(NULL);
ob_start();
session_start();
unset($_SESSION['error_msg']);
$TAB = 'WEB';
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
// Header
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
// Panel
top_panel($user,$TAB);
// Check user argument?
// Check domain argument
if (empty($_GET['domain'])) {
header("Location: /list/web/");
exit;
@ -25,73 +19,77 @@ if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
$user=escapeshellarg($_GET['user']);
}
// Check domain
// List domain
$v_domain = escapeshellarg($_GET['domain']);
exec (VESTA_CMD."v-list-web-domain ".$user." ".$v_domain." json", $output, $return_var);
check_return_code($return_var,$output);
if (empty($_SESSION['error_msg'])) {
$data = json_decode(implode('', $output), true);
unset($output);
$v_username = $user;
$v_domain = $_GET['domain'];
$v_ip = $data[$v_domain]['IP'];
$v_template = $data[$v_domain]['TPL'];
$v_aliases = str_replace(',', "\n", $data[$v_domain]['ALIAS']);
$valiases = explode(",", $data[$v_domain]['ALIAS']);
$v_tpl = $data[$v_domain]['IP'];
$v_cgi = $data[$v_domain]['CGI'];
$v_elog = $data[$v_domain]['ELOG'];
$v_ssl = $data[$v_domain]['SSL'];
if ( $v_ssl == 'yes' ) {
exec (VESTA_CMD."v-list-web-domain-ssl ".$user." '".$v_domain."' json", $output, $return_var);
$ssl_str = json_decode(implode('', $output), true);
unset($output);
$v_ssl_crt = $ssl_str[$v_domain]['CRT'];
$v_ssl_key = $ssl_str[$v_domain]['KEY'];
$v_ssl_ca = $ssl_str[$v_domain]['CA'];
}
$v_ssl_home = $data[$v_domain]['SSL_HOME'];
$v_proxy = $data[$v_domain]['PROXY'];
$v_proxy_template = $data[$v_domain]['PROXY'];
$v_proxy_ext = str_replace(',', ', ', $data[$v_domain]['PROXY_EXT']);
$v_stats = $data[$v_domain]['STATS'];
$v_stats_user = $data[$v_domain]['STATS_USER'];
if (!empty($v_stats_user)) $v_stats_password = "••••••••";
$v_ftp_user = $data[$v_domain]['FTP_USER'];
if (!empty($v_ftp_user)) $v_ftp_password = "••••••••";
$v_suspended = $data[$v_domain]['SUSPENDED'];
if ( $v_suspended == 'yes' ) {
$v_status = 'suspended';
} else {
$v_status = 'active';
}
$v_time = $data[$v_domain]['TIME'];
$v_date = $data[$v_domain]['DATE'];
$data = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v-list-user-ips ".$user." json", $output, $return_var);
$ips = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v-list-web-templates json", $output, $return_var);
$templates = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
$proxy_templates = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v-list-web-stats json", $output, $return_var);
$stats = json_decode(implode('', $output), true);
// Parse domain
$v_username = $user;
$v_domain = $_GET['domain'];
$v_ip = $data[$v_domain]['IP'];
$v_template = $data[$v_domain]['TPL'];
$v_aliases = str_replace(',', "\n", $data[$v_domain]['ALIAS']);
$valiases = explode(",", $data[$v_domain]['ALIAS']);
$v_tpl = $data[$v_domain]['IP'];
$v_cgi = $data[$v_domain]['CGI'];
$v_elog = $data[$v_domain]['ELOG'];
$v_ssl = $data[$v_domain]['SSL'];
if ( $v_ssl == 'yes' ) {
exec (VESTA_CMD."v-list-web-domain-ssl ".$user." '".$v_domain."' json", $output, $return_var);
$ssl_str = json_decode(implode('', $output), true);
unset($output);
$v_ssl_crt = $ssl_str[$v_domain]['CRT'];
$v_ssl_key = $ssl_str[$v_domain]['KEY'];
$v_ssl_ca = $ssl_str[$v_domain]['CA'];
}
// Action
$v_ssl_home = $data[$v_domain]['SSL_HOME'];
$v_proxy = $data[$v_domain]['PROXY'];
$v_proxy_template = $data[$v_domain]['PROXY'];
$v_proxy_ext = str_replace(',', ', ', $data[$v_domain]['PROXY_EXT']);
$v_stats = $data[$v_domain]['STATS'];
$v_stats_user = $data[$v_domain]['STATS_USER'];
if (!empty($v_stats_user)) $v_stats_password = "••••••••";
$v_ftp_user = $data[$v_domain]['FTP_USER'];
if (!empty($v_ftp_user)) $v_ftp_password = "••••••••";
$v_ftp_user_prepath = $data[$v_domain]['DOCUMENT_ROOT'];
$v_ftp_user_prepath = str_replace('/public_html', '', $v_ftp_user_prepath, $occurance = 1);
$v_ftp_email = $panel[$user]['CONTACT'];
$v_suspended = $data[$v_domain]['SUSPENDED'];
if ( $v_suspended == 'yes' ) {
$v_status = 'suspended';
} else {
$v_status = 'active';
}
$v_time = $data[$v_domain]['TIME'];
$v_date = $data[$v_domain]['DATE'];
// List ip addresses
exec (VESTA_CMD."v-list-user-ips ".$user." json", $output, $return_var);
$ips = json_decode(implode('', $output), true);
unset($output);
// List web templates
exec (VESTA_CMD."v-list-web-templates json", $output, $return_var);
$templates = json_decode(implode('', $output), true);
unset($output);
// List proxy templates
exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
$proxy_templates = json_decode(implode('', $output), true);
unset($output);
// List web stat engines
exec (VESTA_CMD."v-list-web-stats json", $output, $return_var);
$stats = json_decode(implode('', $output), true);
unset($output);
// Check POST request
if (!empty($_POST['save'])) {
$v_domain = escapeshellarg($_POST['v_domain']);
// IP
// Change web domain IP
if (($v_ip != $_POST['v_ip']) && (empty($_SESSION['error_msg']))) {
$v_ip = escapeshellarg($_POST['v_ip']);
exec (VESTA_CMD."v-change-web-domain-ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
@ -99,27 +97,36 @@ if (!empty($_POST['save'])) {
$restart_web = 'yes';
$restart_proxy = 'yes';
unset($output);
}
// Chane dns domain IP
if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-list-dns-domain ".$v_username." ".$v_domain." json", $output, $return_var);
if ((empty($_SESSION['error_msg'])) && ($return_var == 0 )) {
unset($output);
unset($output);
if ($return_var == 0 ) {
exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
check_return_code($return_var,$output);
$restart_dns = 'yes';
}
unset($output);
foreach($valiases as $v_alias ){
exec (VESTA_CMD."v-list-dns-domain ".$v_username." '".$v_alias."' json", $output, $return_var);
if ((empty($_SESSION['error_msg'])) && ($return_var == 0 )) {
exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." '".$v_alias."' ".$v_ip, $output, $return_var);
check_return_code($return_var,$output);
$restart_dns = 'yes';
}
unset($output);
$restart_dns = 'yes';
}
}
// Template
if (( $_SESSION['user'] == 'admin') && ($v_template != $_POST['v_template']) && (empty($_SESSION['error_msg']))) {
// Change dns ip for each alias
if (empty($_SESSION['error_msg'])) {
foreach($valiases as $v_alias ){
exec (VESTA_CMD."v-list-dns-domain ".$v_username." '".$v_alias."' json", $output, $return_var);
unset($output);
if ($return_var == 0 ) {
exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." '".$v_alias."' ".$v_ip, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
$restart_dns = 'yes';
}
}
}
// Change template (admin only)
if (($v_template != $_POST['v_template']) && ( $_SESSION['user'] == 'admin') && (empty($_SESSION['error_msg']))) {
$v_template = escapeshellarg($_POST['v_template']);
exec (VESTA_CMD."v-change-web-domain-tpl ".$v_username." ".$v_domain." ".$v_template." 'no'", $output, $return_var);
check_return_code($return_var,$output);
@ -127,7 +134,7 @@ if (!empty($_POST['save'])) {
$restart_web = 'yes';
}
// Aliases
// Change aliases
if (empty($_SESSION['error_msg'])) {
$waliases = preg_replace("/\n/", " ", $_POST['v_aliases']);
$waliases = preg_replace("/,/", " ", $waliases);
@ -151,9 +158,9 @@ if (!empty($_POST['save'])) {
if ($return_var == 0) {
exec (VESTA_CMD."v-delete-dns-on-web-alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
$restart_dns = 'yes';
}
unset($output);
}
}
}
@ -173,15 +180,15 @@ if (!empty($_POST['save'])) {
if ($return_var == 0) {
exec (VESTA_CMD."v-add-dns-on-web-alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
$restart_dns = 'yes';
}
}
unset($output);
}
}
}
// Proxy
// Delete proxy support
if ((!empty($v_proxy)) && (empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-delete-web-domain-proxy ".$v_username." ".$v_domain." 'no'", $output, $return_var);
check_return_code($return_var,$output);
@ -189,6 +196,8 @@ if (!empty($_POST['save'])) {
unset($v_proxy);
$restart_proxy = 'yes';
}
// Change proxy template / Update extention list
if ((!empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
$ext = preg_replace("/\n/", " ", $_POST['v_proxy_ext']);
$ext = preg_replace("/,/", " ", $ext);
@ -205,6 +214,8 @@ if (!empty($_POST['save'])) {
$restart_proxy = 'yes';
}
}
// Add proxy support
if ((empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
$v_proxy_template = $_POST['v_proxy_template'];
if (!empty($_POST['v_proxy_ext'])) {
@ -221,7 +232,7 @@ if (!empty($_POST['save'])) {
$restart_proxy = 'yes';
}
// SSL
// Delete SSL certificate
if (( $v_ssl == 'yes' ) && (empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-delete-web-domain-ssl ".$v_username." ".$v_domain." 'no'", $output, $return_var);
check_return_code($return_var,$output);
@ -230,6 +241,8 @@ if (!empty($_POST['save'])) {
$restart_web = 'yes';
$restart_proxy = 'yes';
}
// Change SSL certificate
if (($v_ssl == 'yes') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
if (( $v_ssl_crt != str_replace("\r\n", "\n", $_POST['v_ssl_crt'])) || ( $v_ssl_key != str_replace("\r\n", "\n", $_POST['v_ssl_key'])) || ( $v_ssl_ca != str_replace("\r\n", "\n", $_POST['v_ssl_ca']))) {
exec ('mktemp -d', $mktemp_output, $return_var);
@ -269,15 +282,8 @@ if (!empty($_POST['save'])) {
$v_ssl_ca = $_POST['v_ssl_ca'];
}
}
if (( $v_ssl == 'yes') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
if ( $v_ssl_home != $_POST['v_ssl_home'] ) {
$v_ssl_home = escapeshellarg($_POST['v_ssl_home']);
exec (VESTA_CMD."v-change-web-domain-sslhome ".$user." ".$v_domain." ".$v_ssl_home." 'no'", $output, $return_var);
check_return_code($return_var,$output);
$v_ssl_home = $_POST['v_ssl_home'];
unset($output);
}
}
// Add SSL certificate
if (( $v_ssl == 'no') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_crt']))) $errors[] = 'ssl certificate';
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_key']))) $errors[] = 'ssl key';
@ -329,19 +335,34 @@ if (!empty($_POST['save'])) {
}
}
// Web Stats
// Change document root for ssl domain
if (( $v_ssl == 'yes') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
if ( $v_ssl_home != $_POST['v_ssl_home'] ) {
$v_ssl_home = escapeshellarg($_POST['v_ssl_home']);
exec (VESTA_CMD."v-change-web-domain-sslhome ".$user." ".$v_domain." ".$v_ssl_home." 'no'", $output, $return_var);
check_return_code($return_var,$output);
$v_ssl_home = $_POST['v_ssl_home'];
unset($output);
}
}
// Delete web stats
if ((!empty($v_stats)) && ($_POST['v_stats'] == 'none') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-delete-web-domain-stats ".$v_username." ".$v_domain, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
$v_stats = '';
}
// Change web stats engine
if ((!empty($v_stats)) && ($_POST['v_stats'] != $v_stats) && (empty($_SESSION['error_msg']))) {
$v_stats = escapeshellarg($_POST['v_stats']);
exec (VESTA_CMD."v-change-web-domain-stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Add web stats
if ((empty($v_stats)) && ($_POST['v_stats'] != 'none') && (empty($_SESSION['error_msg']))) {
$v_stats = escapeshellarg($_POST['v_stats']);
exec (VESTA_CMD."v-add-web-domain-stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var);
@ -349,7 +370,7 @@ if (!empty($_POST['save'])) {
unset($output);
}
// Web Stats Auth
// Delete web stats authorization
if ((!empty($v_stats_user)) && (empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-delete-web-domain-stats-user ".$v_username." ".$v_domain, $output, $return_var);
check_return_code($return_var,$output);
@ -357,6 +378,8 @@ if (!empty($_POST['save'])) {
$v_stats_user = '';
$v_stats_password = '';
}
// Change web stats user or password
if ((empty($v_stats_user)) && (!empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
if (empty($_POST['v_stats_user'])) $errors[] = __('stats username');
if (empty($_POST['v_stats_password'])) $errors[] = __('stats password');
@ -378,6 +401,8 @@ if (!empty($_POST['save'])) {
$v_stats_password = "••••••••";
}
}
// Add web stats authorization
if ((!empty($v_stats_user)) && (!empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
if (empty($_POST['v_stats_user'])) $errors[] = __('stats user');
if (empty($_POST['v_stats_password'])) $errors[] = __('stats password');
@ -401,112 +426,203 @@ if (!empty($_POST['save'])) {
}
}
// Delete FTP Account
if ((!empty($v_ftp_user)) && (empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-delete-web-domain-ftp ".$v_username." ".$v_domain, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
$v_ftp= '';
$v_ftp_user = '';
$v_ftp_password = '';
}
// Change FTP Account
if ((!empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
if (empty($_POST['v_ftp_user'])) $errors[] = __('ftp user');
if (empty($_POST['v_ftp_password'])) $errors[] = __('ftp user password');
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
// Change ftp accounts
if (!empty($_POST['v_ftp_user'])) {
$v_ftp_users_updated = array();
foreach ($_POST['v_ftp_user'] as $i => $v_ftp_user_data) {
$v_ftp_user_data['v_ftp_user'] = preg_replace("/^".$user."_/i", "", $v_ftp_user_data['v_ftp_user']);
if ($v_ftp_user_data['is_new'] == 1) {
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (!filter_var($v_ftp_user_data['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = __('Please enter valid email address.');
if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = 'ftp user';
if (empty($v_ftp_user_data['v_ftp_password'])) $errors[] = 'ftp user password';
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
}
}
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
}
}
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
}
if (($v_ftp_user != $_POST['v_ftp_user']) || ($_POST['v_ftp_password'] != "••••••••" ) && (empty($_SESSION['error_msg']))) {
$v_ftp_user = preg_replace("/^".$user."_/", "", $_POST['v_ftp_user']);
$v_ftp_user = escapeshellarg($v_ftp_user);
$v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
$v_ftp= '';
$v_ftp_user = $user."_".preg_replace("/^".$user."_/", "", $_POST['v_ftp_user']);
$v_ftp_password = "••••••••";
}
}
// Add FTP Account
if ((empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
if ((!empty($_POST['v_ftp_email'])) && (!filter_var($_POST['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = __('Please enter valid email address.');
if (empty($_POST['v_ftp_user'])) $errors[] = 'ftp user';
if (empty($_POST['v_ftp_password'])) $errors[] = 'ftp user password';
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
$v_ftp_username = $v_ftp_user_data['v_ftp_user'];
$v_ftp_username_full = $user . '_' . $v_ftp_user_data['v_ftp_user'];
$v_ftp_user = escapeshellarg($v_ftp_username);
$v_ftp_password = escapeshellarg($v_ftp_user_data['v_ftp_password']);
if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_password . " " . $v_ftp_user_data['v_ftp_path'], $output, $return_var);
check_return_code($return_var,$output);
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (empty($_SESSION['error_msg']))) {
$to = $v_ftp_user_data['v_ftp_email'];
$subject = __("FTP login credentials");
$hostname = exec('hostname');
$from = __('MAIL_FROM',$hostname);
$mailtext = __('FTP_ACCOUNT_READY',$_GET['domain'],$user,$v_ftp_username,$v_ftp_user_data['v_ftp_password']);
send_email($to, $subject, $mailtext, $from);
unset($v_ftp_email);
}
unset($output);
}
if ($return_var == 0) {
$v_ftp_password = "••••••••";
$v_ftp_user_data['is_new'] = 0;
}
else {
$v_ftp_user_data['is_new'] = 1;
}
$v_ftp_users_updated[] = array(
'is_new' => empty($_SESSION['error_msg']) ? 0 : 1,
'v_ftp_user' => $v_ftp_username_full,
'v_ftp_password' => $v_ftp_password,
'v_ftp_path' => $v_ftp_user_data['v_ftp_path'],
'v_ftp_email' => $v_ftp_user_data['v_ftp_email'],
'v_ftp_pre_path' => $v_ftp_user_prepath
);
continue;
}
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
}
if (empty($_SESSION['error_msg'])) {
$v_ftp_user = escapeshellarg($_POST['v_ftp_user']);
$v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
check_return_code($return_var,$output);
if ((!empty($_POST['v_ftp_email'])) && (empty($_SESSION['error_msg']))) {
$to = $_POST['v_ftp_email'];
$subject = __("FTP login credentials");
$hostname = exec('hostname');
$from = __('MAIL_FROM',$hostname);
$mailtext .= __('FTP_ACCOUNT_READY',$_GET['domain'],$user,$_POST['v_ftp_user'],$_POST['v_ftp_password']);
send_email($to, $subject, $mailtext, $from);
unset($v_ftp_email);
if ($v_ftp_user_data['delete'] == 1) {
$v_ftp_username = $user . '_' . $v_ftp_user_data['v_ftp_user'];
exec (VESTA_CMD."v-delete-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_username, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
continue;
}
// Change FTP Account
if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = __('ftp user');
if (empty($v_ftp_user_data['v_ftp_password'])) $errors[] = __('ftp user password');
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
}
}
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
}
$v_ftp_username = $user . '_' . $v_ftp_user_data['v_ftp_user']; //preg_replace("/^".$user."_/", "", $v_ftp_user_data['v_ftp_user']);
$v_ftp_username = escapeshellarg($v_ftp_username);
$v_ftp_user_data['v_ftp_password'] = escapeshellarg(trim($v_ftp_user_data['v_ftp_password']));
exec (VESTA_CMD."v-change-web-domain-ftp-path ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_user_data['v_ftp_path'], $output, $return_var);
if ($v_ftp_user_data['v_ftp_password'] != "••••••••" && !empty($v_ftp_user_data['v_ftp_password'])) {
exec (VESTA_CMD."v-change-web-domain-ftp-password ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_user_data['v_ftp_password'], $output, $return_var);
}
check_return_code($return_var, $output);
unset($output);
$v_ftp_user = $user."_".$_POST['v_ftp_user'];
$v_ftp_password = "••••••••";
$v_ftp_users_updated[] = array(
'is_new' => 0,
'v_ftp_user' => $v_ftp_username,
'v_ftp_password' => $v_ftp_password,
'v_ftp_path' => $v_ftp_user_data['v_ftp_path'],
'v_ftp_email' => $v_ftp_user_data['v_ftp_email'],
'v_ftp_pre_path' => $v_ftp_user_prepath
);
}
}
// Restart web
// Restart web server
if (!empty($restart_web) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-web", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Restart proxy
// Restart proxy server
if (!empty($restart_proxy) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-proxy", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Restart dns
// Restart dns server
if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-dns", $output, $return_var);
check_return_code($return_var,$output);
unset($output);
}
// Set success message
if (empty($_SESSION['error_msg'])) {
$_SESSION['ok_msg'] = __('Changes has been saved.');
}
}
$v_ftp_users_raw = explode(':', $v_ftp_user);
$v_ftp_users_paths_raw = explode(':', $data[$v_domain]['FTP_PATH']);
$v_ftp_users = array();
foreach ($v_ftp_users_raw as $v_ftp_user_index => $v_ftp_user_val) {
if (empty($v_ftp_user_val)) {
continue;
}
$v_ftp_users[] = array(
'is_new' => 0,
'v_ftp_user' => $v_ftp_user_val,
'v_ftp_password' => $v_ftp_password,
'v_ftp_path' => (isset($v_ftp_users_paths_raw[$v_ftp_user_index]) ? $v_ftp_users_paths_raw[$v_ftp_user_index] : ''),
'v_ftp_email' => $v_ftp_email,
'v_ftp_pre_path' => $v_ftp_user_prepath
);
}
if (empty($v_ftp_users)) {
$v_ftp_user = null;
$v_ftp_users[] = array(
'is_new' => 1,
'v_ftp_user' => '',
'v_ftp_password' => '',
'v_ftp_path' => (isset($v_ftp_users_paths_raw[$v_ftp_user_index]) ? $v_ftp_users_paths_raw[$v_ftp_user_index] : ''),
'v_ftp_email' => '',
'v_ftp_pre_path' => $v_ftp_user_prepath
);
}
// set default pre path for newly created users
$v_ftp_pre_path_new_user = $v_ftp_user_prepath;
if (isset($v_ftp_users_updated)) {
$v_ftp_users = $v_ftp_users_updated;
if (empty($v_ftp_users_updated)) {
$v_ftp_user = null;
$v_ftp_users[] = array(
'is_new' => 1,
'v_ftp_user' => '',
'v_ftp_password' => '',
'v_ftp_path' => (isset($v_ftp_users_paths_raw[$v_ftp_user_index]) ? $v_ftp_users_paths_raw[$v_ftp_user_index] : ''),
'v_ftp_email' => '',
'v_ftp_pre_path' => $v_ftp_user_prepath
);
}
}
// Header
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
// Panel
top_panel($user,$TAB);
// Display body
if ($_SESSION['user'] == 'admin') {
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_web.html');
} else {
include($_SERVER['DOCUMENT_ROOT'].'/templates/user/edit_web.html');
}
// Flush session messages
unset($_SESSION['error_msg']);
unset($_SESSION['ok_msg']);
// Footer
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');

View file

@ -42,7 +42,7 @@
document.v_add_web.v_stats_password.value = webrandom;
}
function FTPrandom() {
function FTPrandom(elm) {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var ftprandomstring = '';
@ -50,7 +50,7 @@
var rnum = Math.floor(Math.random() * chars.length);
ftprandomstring += chars.substring(rnum,rnum+1);
}
document.v_add_web.v_ftp_password.value = ftprandomstring;
$(elm).parents('.ftptable').find('.v-ftp-user-psw').val(ftprandomstring);
}
function elementHideShow(elementToHideOrShow){
@ -75,7 +75,7 @@
<td class="data-dotted">
<table class="data-col2">
<tr>
<td class="vst-text" style="padding: 24px 0 0 0;">
<td class="vst-text step-top">
<?php print __('Domain');?>
</td>
</tr>
@ -85,7 +85,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('IP address');?>
</td>
</tr>
@ -107,34 +107,24 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('DNS Support');?>
<td class="vst-text input-label">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_dns" <?php if (empty($v_dns)) echo "checked=yes"; ?>> <?php print __('DNS Support');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_dns" <?php if (empty($v_dns)) echo "checked=yes"; ?>>
<td class="vst-text input-label">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_mail" <?php if (empty($v_mail)) echo "checked=yes"; ?>> <?php print __('Mail Support');?></label>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Mail Support');?>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_mail" <?php if (empty($v_mail)) echo "checked=yes"; ?>>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="step-top vst-text" style="/*padding: 32px 0 20px 0;*/">
<a href="javascript:elementHideShow('advtable');" class="vst-advanced"><?php print __('Advanced options');?></a>
</td>
</tr>
</table>
<table class="data-col2" width="600px" style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Aliases');?>
</td>
</tr>
@ -144,25 +134,20 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Proxy Support');?>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if ($v_proxy !== 'off') echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');">
<td class="vst-text step-top" >
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if ($v_proxy !== 'off') echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');"> <?php print __('Proxy Support');?></label>
</td>
</tr>
<tr>
<td>
<table style="display:<?php if ($v_proxy == 'off') { echo 'none';} else {echo 'block';}?>;" id="proxytable" >
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label step-left">
<?php print __('Proxy Extentions');?>
</td>
</tr>
<tr>
<td>
<td class="step-left">
<textarea size="20" class="vst-textinput" name="v_proxy_ext"><?php if (!empty($v_proxy_ext)) { echo $v_proxy_ext;} else { echo 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf, otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf'; } ?></textarea>
</td>
</tr>
@ -170,26 +155,21 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('SSL Support');?> /
<td class="step-top vst-text">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if($v_ssl == 'yes' || $v_ssl == 'on') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');"> <?php print __('SSL Support');?></label> /
<a class="generate" target="_blank" href="/generate/ssl/"><?php print __('Generate CSR') ?></a>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_ssl)) { echo 'none';} else {echo 'block';}?>;" id="ssltable">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label step-left">
<?php print __('SSL Home Directory');?>
</td>
</tr>
<tr>
<td>
<td class="step-left">
<select class="vst-list" name="v_ssl_home">
<option value='same' <?php if ($v_ssl_home == 'same') echo "selected";?>>
public_html
@ -201,32 +181,32 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label step-left">
<?php print __('SSL Certificate');?>
</td>
</tr>
<tr>
<td>
<td class="step-left">
<textarea size="20" class="vst-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt; ?></textarea>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label step-left">
<?php print __('SSL Key');?>
</td>
</tr>
<tr>
<td>
<td class="step-left">
<textarea size="20" class="vst-textinput" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key; ?></textarea>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label step-left">
<?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span>
</td>
</tr>
<tr>
<td>
<td class="step-left">
<textarea size="20" class="vst-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea>
</td>
</tr>
@ -234,7 +214,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text step-top">
<?php print __('Web Statistics');?>
</td>
</tr>
@ -256,20 +236,15 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Statistics Authorization');?>
<td class="vst-text input-label">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');"> <?php print __('Statistics Authorization');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');">
</td>
</tr>
<tr>
<td>
<td class="step-left">
<table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Username');?>
</td>
</tr>
@ -279,73 +254,104 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="vst-input" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password">
<input type="text" size="20" class="vst-input password" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Additional FTP Account');?>
<td class="vst-text step-top">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp)) echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_additional_ftp_accounts(this)"> <?php print __('Additional FTP Account');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp)) echo "checked=yes" ?> onclick="javascript:elementHideShow('ftptable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" id="ftptable" name="v_add_domain_ftp">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="vst-input" name="v_ftp_user" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Password');?> / <a href="javascript:FTPrandom();" class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td>
<input type="text" class="vst-input" name="v_ftp_password" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td>
<input type="text" class="vst-input" name="v_ftp_email" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td>
</tr>
<?php foreach ($v_ftp_users as $i => $ftp_user): ?>
<?php
$v_ftp_user = $ftp_user['v_ftp_user'];
$v_ftp_password = $ftp_user['v_ftp_password'];
$v_ftp_path = $ftp_user['v_ftp_path'];
$v_ftp_email = $ftp_user['v_ftp_email'];
$v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
?>
<table <?php echo (!empty($v_ftp)) ? "style='display: block'" : "style='display:none;'" ?> class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"><?php print $i + 1; ?></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[<?php print $i ?>][is_new]" value="<?php print $ftp_user['is_new'] ?>" />
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?> name="v_ftp_user[<?php print $i ?>][v_ftp_user]" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[<?php print $i ?>][v_ftp_password]" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="<?php print !empty($v_ftp_pre_path) ? $v_ftp_pre_path : '/'; ?>">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[<?php print $i ?>][v_ftp_path]" <?php if (!empty($v_ftp_path)) echo "value=".$v_ftp_path; ?>>
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input" name="v_ftp_user[<?php print $i ?>][v_ftp_email]" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td>
</tr>
</table>
</td>
</tr>
</table>
<?php endforeach; ?>
</td>
</tr>
<tr>
<td class="vst-text step-top v-add-new-user step-bottom" style="display: none;">
<a class="additional-control" onClick="App.Actions.WEB.add_ftp_user_form()"><?php print __('Add one more FTP Account');?></a>
</td>
</tr>
</table>
<table class="data-col2">
<tr>
<td style="padding: 33px 0 0 0;" width="116px">
<td class="step-top" width="116px">
<input type="submit" name="ok" value="<?php print __('Add');?>" class="button">
</td>
<td style="padding: 33px 0 0 0;">
<td class="step-top">
<input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>">
</td>
</tr>
@ -354,7 +360,71 @@
</tr>
</table>
</form>
<div id="templates" class="hidden">
<table class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1" />
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" size="20" class="vst-input v-ftp-user" name="v_ftp_user[%INDEX%][v_ftp_user]" value="">
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[%INDEX%][v_ftp_password]" value="">
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[%INDEX%][v_ftp_path]" value="">
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path_new_user ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input" name="v_ftp_user[%INDEX%][v_ftp_email]" value="">
</td>
</tr>
</table>
</div>
<script type="text/javascript">
GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_';
GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_';
GLOBAL.FTP_USER_PREPATH = '<?php echo $v_ftp_user_prepath; ?>';
$('#vstobjects').bind('submit', function(evt) {
$('input[disabled]').each(function(i, elm) {
$(elm).removeAttr('disabled');
});
});
</script>
<script type="text/javascript" src="/js/pages/add.web.js"></script>

View file

@ -10,12 +10,15 @@
<tr>
<td style="padding: 20px 10px;" ><a class="name"><b><?php print __('Editing Domain');?></b></a>
<?php
if (!empty($_SESSION['ok_msg'])) {
echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>";
}
if (!empty($_SESSION['error_msg'])) {
echo "<span class=\"vst-error\"> → ".$_SESSION['error_msg']."</span>";
} else {
if (!empty($_SESSION['ok_msg'])) {
echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>";
}
}
if (!empty($_SESSION['flash_error_msg'])) {
echo " / <span class=\"vst-error\"> FTP USER ".$_SESSION['flash_error_msg']."</span>";
unset($_SESSION['flash_error_msg']);
}
?>
</td>
@ -36,7 +39,7 @@
document.v_edit_web.v_stats_password.value = webrandom;
}
function FTPrandom() {
function FTPrandom(elm) {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var ftprandomstring = '';
@ -44,7 +47,8 @@
var rnum = Math.floor(Math.random() * chars.length);
ftprandomstring += chars.substring(rnum,rnum+1);
}
document.v_edit_web.v_ftp_password.value = ftprandomstring;
$(elm).parents('.ftptable').find('.v-ftp-user-psw').val(ftprandomstring);
}
function elementHideShow(elementToHideOrShow){
@ -72,7 +76,7 @@
<td class="data-dotted">
<table class="data-col2">
<tr>
<td class="vst-text" style="padding: 24px 0 0 0;">
<td class="vst-text step-top">
<?php print __('Domain');?>
</td>
</tr>
@ -82,7 +86,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('IP Address');?>
</td>
</tr>
@ -105,7 +109,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Aliases');?>
</td>
</tr>
@ -115,7 +119,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Web Template');?>
</td>
</tr>
@ -136,20 +140,15 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Proxy Support');?>
<td class="vst-text step-top">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if (!empty($v_proxy)) echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');"> <?php print __('Proxy Support');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if (!empty($v_proxy)) echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');">
</td>
</tr>
<tr>
<td>
<td class="step-left">
<table style="display:<?php if (empty($v_proxy)) { echo 'none';} else {echo 'block';}?> ;" id="proxytable">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Proxy Template');?>
</td>
</tr>
@ -173,7 +172,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Proxy Extensions');?>
</td>
</tr>
@ -186,21 +185,16 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('SSL Support');?> /
<td class="vst-text step-top">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');"> <?php print __('SSL Support');?></label> /
<a class="generate" target="_blank" href="/generate/ssl/?domain=<?php echo $v_domain ?>"><?php print __('Generate CSR') ?></a>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');">
</td>
</tr>
<tr>
<td>
<td class="step-left">
<table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('SSL Home Directory');?>
</td>
</tr>
@ -218,7 +212,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('SSL Certificate');?>
</td>
</tr>
@ -228,7 +222,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('SSL Key');?>
</td>
</tr>
@ -238,7 +232,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span>
</td>
</tr>
@ -251,7 +245,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text step-top">
<?php print __('Web Statistics');?>
</td>
</tr>
@ -273,20 +267,15 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Statistics Authorization');?>
<td class="vst-text input-label">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');"><?php print __('Statistics Authorization');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');">
</td>
</tr>
<tr>
<td>
<td class="step-left">
<table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Username');?>
</td>
</tr>
@ -296,80 +285,106 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="vst-input" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password">
<input type="text" size="20" class="vst-input password" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Additional FTP Account');?>
<td class="vst-text step-top">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_additional_ftp_accounts(this)"> <?php print __('Additional FTP Account');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('ftptable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" id="ftptable" name="v_add_domain_ftp">
<?php foreach ($v_ftp_users as $i => $ftp_user): ?>
<?php
$v_ftp_user = $ftp_user['v_ftp_user'];
$v_ftp_password = $ftp_user['v_ftp_password'];
$v_ftp_path = $ftp_user['v_ftp_path'];
$v_ftp_email = $ftp_user['v_ftp_email'];
$v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
?>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Username');?>
<?php if (empty($v_ftp_user)) echo '<br><span style="font-size: 10pt; color:#777;">' . __('Prefix will be automaticaly added to username',$user."_") . '</span>' ?>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"><?php print $i + 1; ?></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[<?php print $i ?>][is_new]" value="<?php print $ftp_user['is_new'] ?>" />
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="vst-input" name="v_ftp_user" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user;?>>
<td class="vst-text step-left input-label">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?> name="v_ftp_user[<?php print $i ?>][v_ftp_user]" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Password');?> / <a href="javascript:FTPrandom();" class="generate"><?php print __('generate');?></a>
<td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td>
<input type="text" class="vst-input" name="v_ftp_password" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password;?>>
<td class="step-left">
<input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[<?php print $i ?>][v_ftp_password]" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td>
</tr>
<?php
if (empty($v_ftp_user)) {
echo '';
?>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Send FTP credentials to email');?>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td>
<input type="text" class="vst-input" name="v_ftp_email" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="<?php print !empty($v_ftp_pre_path) ? $v_ftp_pre_path : '/'; ?>">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[<?php print $i ?>][v_ftp_path]" <?php if (!empty($v_ftp_path)) echo "value=".($v_ftp_path[0] != '/' ? '/' : '').$v_ftp_path; ?>>
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<?php
}
?>
</table>
<?php if ($ftp_user['is_new'] == 1): ?>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input" name="v_ftp_user[<?php print $i ?>][v_ftp_email]" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td>
</tr>
<?php endif; ?>
</table>
<?php endforeach; ?>
</td>
</tr>
<tr class="add-new-ftp-user-button" style="<?php print !empty($v_ftp_user) ? '' : 'display:none;' ?>">
<td class="vst-text step-top v-add-new-user step-bottom">
<a class="additional-control" onClick="App.Actions.WEB.add_ftp_user_form()"><?php print __('Add one more FTP Account');?></a>
</td>
</tr>
</table>
<table class="data-col2">
<tr>
<td style="padding: 24px 0 0 0;" width="116px">
<td class="step-top" width="116px">
<input type="submit" class="button" name="save" value="<?php print __('Save');?>">
</td>
<td style="padding: 24px 0 0 0;">
<td class="step-top">
<input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>">
</td>
</tr>
@ -378,7 +393,74 @@
</tr>
</table>
</form>
<div id="templates" class="hidden">
<table class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1" />
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" size="20" class="vst-input v-ftp-user" name="v_ftp_user[%INDEX%][v_ftp_user]" value="">
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[%INDEX%][v_ftp_password]" value="">
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[%INDEX%][v_ftp_path]" value="">
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path_new_user ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input" name="v_ftp_user[%INDEX%][v_ftp_email]" value="">
</td>
</tr>
</table>
</div>
<script type="text/javascript">
GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_';
$('#vstobjects').bind('submit', function(evt) {
$('input[disabled]').each(function(i, elm) {
var copy_elm = $(elm).clone(true);
$(copy_elm).attr('type', 'hidden');
$(copy_elm).removeAttr('disabled');
$(elm).after(copy_elm);
});
});
</script>
<script type="text/javascript" src="/js/pages/edit.web.js"></script>

View file

@ -10,12 +10,15 @@
<tr>
<td style="padding: 20px 10px;" ><a class="name"><b><?php print __('Editing Domain');?></b></a>
<?php
if (!empty($_SESSION['ok_msg'])) {
echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>";
}
if (!empty($_SESSION['error_msg'])) {
echo "<span class=\"vst-error\"> → ".$_SESSION['error_msg']."</span>";
} else {
if (!empty($_SESSION['ok_msg'])) {
echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>";
}
}
if (!empty($_SESSION['flash_error_msg'])) {
echo "<br /><span class=\"vst-error\"> → ".$_SESSION['flash_error_msg']."</span>";
unset($_SESSION['flash_error_msg']);
}
?>
</td>
@ -36,7 +39,7 @@
document.v_edit_web.v_stats_password.value = webrandom;
}
function FTPrandom() {
function FTPrandom(elm) {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var ftprandomstring = '';
@ -44,7 +47,8 @@
var rnum = Math.floor(Math.random() * chars.length);
ftprandomstring += chars.substring(rnum,rnum+1);
}
document.v_edit_web.v_ftp_password.value = ftprandomstring;
$(elm).parents('.ftptable').find('.v-ftp-user-psw').val(ftprandomstring);
}
function elementHideShow(elementToHideOrShow){
@ -72,7 +76,7 @@
<td class="data-dotted">
<table class="data-col2">
<tr>
<td class="vst-text" style="padding: 24px 0 0 0;">
<td class="vst-text step-top">
<?php print __('Domain');?>
</td>
</tr>
@ -82,7 +86,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('IP Address');?>
</td>
</tr>
@ -105,7 +109,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Aliases');?>
</td>
</tr>
@ -115,17 +119,12 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Proxy Support');?>
<td class="vst-text step-top">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if (!empty($v_proxy)) echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');"> <?php print __('Proxy Support');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if (!empty($v_proxy)) echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');">
</td>
</tr>
<tr>
<td>
<td class="step-left">
<table style="display:<?php if (empty($v_proxy)) { echo 'none';} else {echo 'block';}?> ;" id="proxytable">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
@ -141,21 +140,16 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('SSL Support');?> /
<td class="vst-text step-top">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes' || $v_ssl == 'on') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');"> <?php print __('SSL Support');?></label> /
<a class="generate" target="_blank" href="/generate/ssl/?domain=<?php echo $v_domain ?>"><?php print __('Generate CSR') ?></a>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');">
</td>
</tr>
<tr>
<td>
<td class="step-left">
<table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('SSL Home Directory');?>
</td>
</tr>
@ -164,7 +158,7 @@
<select class="vst-list" name="v_ssl_home">
<option value='same' <?php if ($v_ssl_home == 'same') echo "selected";?>>
public_html
public_html
</option>
<option value='single' <?php if ($v_ssl_home == 'single') echo "selected";?>>
public_shtml
@ -173,7 +167,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('SSL Certificate');?>
</td>
</tr>
@ -183,7 +177,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('SSL Key');?>
</td>
</tr>
@ -193,7 +187,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span>
</td>
</tr>
@ -206,7 +200,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text step-top">
<?php print __('Web Statistics');?>
</td>
</tr>
@ -228,20 +222,15 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Statistics Authorization');?>
<td class="vst-text input-label">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');"> <?php print __('Statistics Authorization');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');">
</td>
</tr>
<tr>
<td>
<td class="step-left">
<table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Username');?>
</td>
</tr>
@ -251,7 +240,7 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<td class="vst-text input-label">
<?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a>
</td>
</tr>
@ -264,67 +253,95 @@
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Additional FTP Account');?>
<td class="vst-text step-top">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_additional_ftp_accounts(this)"> <?php print __('Additional FTP Account');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('ftptable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" id="ftptable" name="v_add_domain_ftp">
<?php foreach ($v_ftp_users as $i => $ftp_user): ?>
<?php
$v_ftp_user = $ftp_user['v_ftp_user'];
$v_ftp_password = $ftp_user['v_ftp_password'];
$v_ftp_path = $ftp_user['v_ftp_path'];
$v_ftp_email = $ftp_user['v_ftp_email'];
$v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
?>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Username');?>
<?php if (empty($v_ftp_user)) echo '<br><span style="font-size: 10pt; color:#777;">' . __('Prefix will be automaticaly added to username',$user."_") . '</span>' ?>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"><?php print $i + 1; ?></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[<?php print $i ?>][is_new]" value="<?php print $ftp_user['is_new'] ?>" />
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="vst-input" name="v_ftp_user" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user;?>>
<td class="vst-text step-left input-label">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?> name="v_ftp_user[<?php print $i ?>][v_ftp_user]" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Password');?> / <a href="javascript:FTPrandom();" class="generate"><?php print __('generate');?></a>
<td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td>
<input type="text" class="vst-input" name="v_ftp_password" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password;?>>
<td class="step-left">
<input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[<?php print $i ?>][v_ftp_password]" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td>
</tr>
<?php
if (empty($v_ftp_user)) {
echo '';
?>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Send FTP credentials to email');?>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td>
<input type="text" class="vst-input" name="v_ftp_email" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="<?php print !empty($v_ftp_pre_path) ? $v_ftp_pre_path : '/'; ?>">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[<?php print $i ?>][v_ftp_path]" <?php if (!empty($v_ftp_path)) echo "value=".($v_ftp_path[0] != '/' ? '/' : '').$v_ftp_path; ?>>
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<?php
}
?>
</table>
<?php if ($ftp_user['is_new'] == 1): ?>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input" name="v_ftp_user[<?php print $i ?>][v_ftp_email]" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td>
</tr>
<?php endif; ?>
</table>
<?php endforeach; ?>
</td>
</tr>
<tr class="add-new-ftp-user-button" style="<?php print !empty($v_ftp_user) ? '' : 'display:none;' ?>">
<td class="vst-text step-top v-add-new-user step-bottom">
<a class="additional-control" onClick="App.Actions.WEB.add_ftp_user_form()"><?php print __('Add one more FTP Account');?></a>
</td>
</tr>
</table>
<table class="data-col2">
<tr>
<td style="padding: 24px 0 0 0;" width="116px">
<td class="step-top" width="116px">
<input type="submit" class="button" name="save" value="<?php print __('Save');?>">
</td>
<td style="padding: 24px 0 0 0;">
<td class="step-top">
<input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>">
</td>
</tr>
@ -333,7 +350,73 @@
</tr>
</table>
</form>
<div id="templates" class="hidden">
<table class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1" />
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" size="20" class="vst-input v-ftp-user" name="v_ftp_user[%INDEX%][v_ftp_user]" value="">
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[%INDEX%][v_ftp_password]" value="">
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[%INDEX%][v_ftp_path]" value="">
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path_new_user ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input" name="v_ftp_user[%INDEX%][v_ftp_email]" value="">
</td>
</tr>
</table>
</div>
<script type="text/javascript">
GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_';
$('#vstobjects').bind('submit', function(evt) {
$('input[disabled]').each(function(i, elm) {
var copy_elm = $(elm).clone(true);
$(copy_elm).attr('type', 'hidden');
$(copy_elm).removeAttr('disabled');
$(elm).after(copy_elm);
});
});
</script>
<script type="text/javascript" src="/js/pages/edit.web.js"></script>