Explorar el Código

Archivos base para el servicio de creación de ftp y base de datos.

master
root hace 8 años
padre
commit
f42b6c5571
Se han modificado 7 ficheros con 1521 adiciones y 29 borrados
  1. +230
    -0
      form/ftp_bd_service.tform.php
  2. +618
    -0
      ftp_bd_service.php
  3. +188
    -0
      lib/lang/en_ftp_bd_service.lng
  4. +34
    -29
      lib/lang/en_template.lng
  5. +188
    -0
      lib/lang/es_ftp_bd_service.lng
  6. +5
    -0
      lib/module.conf.php
  7. +258
    -0
      templates/ftp_bd_service.htm

+ 230
- 0
form/ftp_bd_service.tform.php Ver fichero

@@ -0,0 +1,230 @@
<?php
/*
Copyright (c) 2016, Kristián Feldsam, FELDSAM s.r.o. <info@feldsam.cz>
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 ISPConfig 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 OWNER 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.

Form Definition

Tabledefinition

Datatypes:
- INTEGER (Forces the input to Int)
- DOUBLE
- CURRENCY (Formats the values to currency notation)
- VARCHAR (no format check, maxlength: 255)
- TEXT (no format check)
- DATE (Dateformat, automatic conversion to timestamps)

Formtype:
- TEXT (Textfield)
- TEXTAREA (Textarea)
- PASSWORD (Password textfield, input is not shown when edited)
- SELECT (Select option field)
- RADIO
- CHECKBOX
- CHECKBOXARRAY
- FILE

VALUE:
- Wert oder Array

Hint:
The ID field of the database table is not part of the datafield definition.
The ID field must be always auto incement (int or bigint).

Search:
- searchable = 1 or searchable = 2 include the field in the search
- searchable = 1: this field will be the title of the search result
- searchable = 2: this field will be included in the description of the search result


*/

$form["title"] = "Baicon, queso y Ftp con BBDD";
$form["description"] = "";
$form["name"] = "ftp_bd_service";
$form["action"] = "ftp_bd_service.php";
$form["db_table"] = "server";
$form["db_table_idx"] = "server_id";
$form["db_history"] = "no";
$form["tab_default"] = "client";
$form["auth"] = 'yes'; // yes / no

$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user
$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete

$form["tabs"]['client'] = array(
'title' => "Ftp vs BBDD",
'description' => 'Create domain, mail domain, site, database and ftp/ssh',
'width' => 100,
'template' => "templates/ftp_bd_service.htm",
'fields' => array (
'domain' => array (
'datatype' => 'VARCHAR',
'formtype' => 'TEXT',
'filters' => array(
0 => array( 'event' => 'SAVE',
'type' => 'IDNTOASCII'),
1 => array( 'event' => 'SHOW',
'type' => 'IDNTOUTF8'),
2 => array( 'event' => 'SAVE',
'type' => 'TOLOWER')
),
'validators' => array (
0 => array ( 'type' => 'NOTEMPTY',
'errmsg'=> 'domain_error_empty'),
2 => array ( 'type' => 'REGEX',
'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/',
'errmsg'=> 'domain_error_regex'),
),
'default' => '',
'value' => '',
'width' => '30',
'maxlength' => '255'
),
'client_id' => array (
'datatype' => 'INTEGER',
'formtype' => 'SELECT',
'default' => '',
'datasource' => array ( 'type' => 'SQL',
'querystring' => "SELECT sys_group.groupid, sys_group.client_id, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY client.company_name, client.contact_name, sys_group.name",
'keyfield'=> 'client_id',
'valuefield'=> 'contactname'
),
'value' => ''
),
'template_id' => array(
'datatype' => 'INTEGER',
'formtype' => 'SELECT',
'default' => '',
'datasource' => array ( 'type' => 'SQL',
'querystring' => 'SELECT template_id, template_name FROM wizard_template WHERE {AUTHSQL} ORDER BY template_name',
'keyfield'=> 'template_id',
'valuefield'=> 'template_name'
),
'value' => '',
),
'db' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
'default' => 'y',
'value' => array(0 => 'n', 1 => 'y')
),
'db_type' => array (
'datatype' => 'VARCHAR',
'formtype' => 'SELECT',
'default' => 'mysql',
'value' => array(
//'mongo' => 'MongoDB',
'mysql' => 'MySQL'
)
),
'ftp' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
'default' => 'y',
'value' => array(0 => 'n', 1 => 'y')
),
'ssh' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
'default' => 'y',
'value' => array(0 => 'n', 1 => 'y')
),
'mail' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
'default' => 'y',
'value' => array(0 => 'n', 1 => 'y')
),
'mailboxes' => array (
'datatype' => 'TEXT',
'formtype' => 'TEXTAREA',
'default' => '',
'value' => '',
'width' => '30',
),
'dkim' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
'default' => 'n',
'value' => array(0 => 'n', 1 => 'y')
),
'dkim_private' => array (
'datatype' => 'TEXT',
'formtype' => 'TEXTAREA',
'default' => '',
'value' => '',
'cols' => '30',
'rows' => '10',
'validators' => array ( 0 => array ('type' => 'CUSTOM',
'class' => 'validate_dkim',
'function' => 'check_private_key',
'errmsg'=> 'dkim_private_key_error'),
),
),
'dkim_public' => array (
'datatype' => 'TEXT',
'formtype' => 'TEXTAREA',
'default' => '',
'value' => '',
'cols' => '30',
'rows' => '10'
),
'dkim_selector' => array (
'datatype' => 'VARCHAR',
'formtype' => 'TEXT',
'default' => 'default',
'value' => 'default',
'width' => '20',
'maxlength' => '63',
'validators' => array ( 0 => array ( 'type' => 'REGEX',
'regex' => '/^[a-z0-9]{0,63}$/',
'errmsg'=> 'dkim_selector_error'),
),
),
'dns' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
'default' => 'y',
'value' => array(0 => 'n', 1 => 'y')
),
'dns_template_id' => array(
'datatype' => 'INTEGER',
'formtype' => 'SELECT',
'default' => '',
'datasource' => array ( 'type' => 'SQL',
'querystring' => "SELECT template_id, name FROM dns_template WHERE visible = 'Y' ORDER BY name ASC",
'keyfield'=> 'template_id',
'valuefield'=> 'name'
),
'value' => '',
),
)
);

+ 618
- 0
ftp_bd_service.php Ver fichero

@@ -0,0 +1,618 @@
<?php
/*
Copyright (c) 2016, Kristián Feldsam, FELDSAM s.r.o. <info@feldsam.cz>
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 ISPConfig 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 OWNER 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.
*/


/******************************************
* Begin Form configuration
******************************************/

$tform_def_file = "form/ftp_bd_service.tform.php";

/******************************************
* End Form configuration
******************************************/

require_once '../../lib/config.inc.php';
require_once '../../lib/app.inc.php';

//* Check permissions for module
$app->auth->check_module_permissions('webdns');

// Loading classes
$app->uses('tpl,tform,remoting');
$app->load('tform_actions');

class page_action extends tform_actions {

function onShowEnd() {
global $app, $conf;

$fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);

// select first template as default
if($fields['dns_template_id'] == 0)
{
$first_template = $app->db->queryOneRecord("SELECT template_id FROM dns_template WHERE visible = 'Y' ORDER BY name ASC");
$fields['dns_template_id'] = $first_template['template_id'];
}

$template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE template_id = ?", $fields['dns_template_id']);
$fields = explode(',', $template_record['fields']);
if(is_array($fields)) {
foreach($fields as $field) {
$app->tpl->setVar($field."_VISIBLE", 1);
$field = strtolower($field);
$app->tpl->setVar($field, $_POST['dns_'.$field]);
}
}

parent::onShowEnd();
}

function onSubmit() {
global $app, $conf;

$fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);

// check for domain unique name
if($app->db->queryOneRecord('SELECT domain_id FROM domain WHERE domain = "'.$fields['domain'].'"')) {
$app->tform->errorMessage = $app->tform->wordbook['domain_error_unique'];
}
if($app->tform->errorMessage)
{
$this->onError();
return;
}

if($_POST['create'] != 1)
{
$app->tform->errorMessage = 'DUMMY';
$app->tpl->setVar($this->dataRecord);
$this->onShow();
return;
}
// Domain OK, continue
$remote = new remote_actions;
// load template
$template = $app->db->queryOneRecord("SELECT * FROM wizard_template WHERE template_id = ? LIMIT 0,1", $fields['template_id']);
// client prefix and group id
$res = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_id']));
$client_group_id = $res['groupid'];
$client_prefix = 'c'.$fields['client_id'];
// add domain
$domain_id = $remote->insert_query('../client/form/domain.tform.php', $fields['client_id'], array('domain' => $fields['domain']));
// DNS Zone
if($fields['dns'])
{
if(isset($_POST['dns_ns1']) && $_POST['dns_ns1'] != ''){
$_POST['dns_ns1'] = $app->functions->idn_encode($_POST['dns_ns1']);
$_POST['dns_ns1'] = strtolower($_POST['dns_ns1']);
}
if(isset($_POST['dns_ns2']) && $_POST['dns_ns2'] != ''){
$_POST['dns_ns2'] = $app->functions->idn_encode($_POST['dns_ns2']);
$_POST['dns_ns2'] = strtolower($_POST['dns_ns2']);
}
if(isset($_POST['dns_email']) && $_POST['dns_email'] != ''){
$_POST['dns_email'] = $app->functions->idn_encode($_POST['dns_email']);
$_POST['dns_email'] = strtolower($_POST['dns_email']);
}
$dns_error = '';
if(isset($_POST['dns_ip']) && $_POST['dns_ip'] == '') $dns_error .= $app->lng('error_ip_empty').'<br />';
if(isset($_POST['dns_ipv6']) && $_POST['dns_ipv6'] == '') $dns_error .= $app->lng('error_ipv6_empty').'<br />';
if(isset($_POST['dns_ns1']) && $_POST['dns_ns1'] == '') $dns_error .= $app->lng('error_ns1_empty').'<br />';
elseif(isset($_POST['ns1']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,30}$/', $_POST['ns1'])) $dns_error .= $app->lng('error_ns1_regex').'<br />';
if(isset($_POST['dns_ns2']) && $_POST['dns_ns2'] == '') $dns_error .= $app->lng('error_ns2_empty').'<br />';
elseif(isset($_POST['ns2']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,30}$/', $_POST['ns2'])) $dns_error .= $app->lng('error_ns2_regex').'<br />';
if(isset($_POST['dns_email']) && $_POST['dns_email'] == '') $dns_error .= $app->lng('error_email_empty').'<br />';
elseif(isset($_POST['dns_email']) && filter_var($_POST['dns_email'], FILTER_VALIDATE_EMAIL) === false) $dns_error .= $app->lng('error_email_regex').'<br />';
// check for dns errors
if($dns_error)
{
$app->tform->errorMessage = $dns_error;
$this->onError();
return;
}

$tform_def_file = "../dns/form/dns_soa.tform.php";
$app->tform->loadFormDef($tform_def_file);
// replace template placeholders
$template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE template_id = ?", $fields['dns_template_id']);
$tpl_content = $template_record['template'];
$tpl_content = str_replace('{DOMAIN}', $fields['domain'], $tpl_content);
if($_POST['dns_ip'] != '') $tpl_content = str_replace('{IP}', $_POST['dns_ip'], $tpl_content);
if($_POST['dns_ipv6'] != '') $tpl_content = str_replace('{IPV6}',$_POST['dns_ipv6'],$tpl_content);
if($_POST['dns_ns1'] != '') $tpl_content = str_replace('{NS1}', $_POST['dns_ns1'], $tpl_content);
if($_POST['dns_ns2'] != '') $tpl_content = str_replace('{NS2}', $_POST['dns_ns2'], $tpl_content);
if($_POST['dns_email'] != '') $tpl_content = str_replace('{EMAIL}', $_POST['dns_email'], $tpl_content);
$enable_dnssec = (($_POST['dns_dnssec'] == 'Y') ? 'Y' : 'N');
// Parse the template
$tpl_rows = explode("\n", $tpl_content);
$section = '';
$vars = array();
$vars['xfer']='';
$dns_rr = array();
foreach($tpl_rows as $row) {
$row = trim($row);
if(substr($row, 0, 1) == '[') {
if($row == '[ZONE]') {
$section = 'zone';
} elseif($row == '[DNS_RECORDS]') {
$section = 'dns_records';
} else {
die('Unknown section type');
}
} else {
if($row != '') {
// Handle zone section
if($section == 'zone') {
$parts = explode('=', $row);
$key = trim($parts[0]);
$val = trim($parts[1]);
if($key != '') $vars[$key] = $val;
}
// Handle DNS Record rows
if($section == 'dns_records') {
$parts = explode('|', $row);
$dns_rr[] = array(
'name' => $parts[1],
'type' => $parts[0],
'data' => $parts[2],
'aux' => $parts[3],
'ttl' => $parts[4]
);
}
}
}
} // end foreach
$dns_error = '';
if($vars['origin'] == '') $dns_error .= $app->lng('error_origin_empty').'<br />';
if($vars['ns'] == '') $dns_error .= $app->lng('error_ns_empty').'<br />';
if($vars['mbox'] == '') $dns_error .= $app->lng('error_mbox_empty').'<br />';
if($vars['refresh'] == '') $dns_error .= $app->lng('error_refresh_empty').'<br />';
if($vars['retry'] == '') $dns_error .= $app->lng('error_retry_empty').'<br />';
if($vars['expire'] == '') $dns_error .= $app->lng('error_expire_empty').'<br />';
if($vars['minimum'] == '') $dns_error .= $app->lng('error_minimum_empty').'<br />';
if($vars['ttl'] == '') $dns_error .= $app->lng('error_ttl_empty').'<br />';
// check for dns errors
if($dns_error)
{
$app->tform->errorMessage = $dns_error;
$this->onError();
return;
}
// Insert the soa record
$sys_userid = $_SESSION['s']['user']['userid'];
$origin = $vars['origin'];
$ns = $vars['ns'];
$mbox = str_replace('@', '.', $vars['mbox']);
$refresh = $vars['refresh'];
$retry = $vars['retry'];
$expire = $vars['expire'];
$minimum = $vars['minimum'];
$ttl = $vars['ttl'];
$xfer = $vars['xfer'];
$also_notify = $vars['also_notify'];
$update_acl = $vars['update_acl'];
$serial = $app->validate_dns->increase_serial(0);
$insert_data = array(
"sys_userid" => $sys_userid,
"sys_groupid" => $client_group_id,
"sys_perm_user" => 'riud',
"sys_perm_group" => 'riud',
"sys_perm_other" => '',
"server_id" => $template['dns_server_id'],
"origin" => $origin,
"ns" => $ns,
"mbox" => $mbox,
"serial" => $serial,
"refresh" => $refresh,
"retry" => $retry,
"expire" => $expire,
"minimum" => $minimum,
"ttl" => $ttl,
"active" => 'Y',
"xfer" => $xfer,
"also_notify" => $also_notify,
"update_acl" => $update_acl,
"dnssec_wanted" => $enable_dnssec
);
$dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id');
// Insert the dns_rr records
if(is_array($dns_rr) && $dns_soa_id > 0) {
foreach($dns_rr as $rr) {
$insert_data = array(
"sys_userid" => $sys_userid,
"sys_groupid" => $client_group_id,
"sys_perm_user" => 'riud',
"sys_perm_group" => 'riud',
"sys_perm_other" => '',
"server_id" => $template['dns_server_id'],
"zone" => $dns_soa_id,
"name" => $rr['name'],
"type" => $rr['type'],
"data" => $rr['data'],
"aux" => $rr['aux'],
"ttl" => $rr['ttl'],
"active" => 'Y'
);
$dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id');
}
if($fields['dkim'])
{
$insert_data = array(
"sys_userid" => $sys_userid,
"sys_groupid" => $client_group_id,
"sys_perm_user" => 'riud',
"sys_perm_group" => 'riud',
"sys_perm_other" => '',
"server_id" => $template['dns_server_id'],
"zone" => $dns_soa_id,
"name" => $fields['dkim_selector'].'._domainkey.'.$fields['domain'].'.',
"type" => 'TXT',
"data" => 'v=DKIM1; t=s; p='.str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"), '', $_POST['dkim_public']),
"aux" => 0,
"ttl" => 86400,
"active" => 'Y'
);
$dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id');
}
}
$tform_def_file = "form/ftp_bd_service.tform.php";
$app->tform->loadFormDef($tform_def_file);
}
if($fields['mail'])
{
// add mail domain
$params = array(
'server_id' => $template['mail_server_id'],
'domain' => $fields['domain'],
'dkim' => $fields['dkim'],
'dkim_private' => $_POST['dkim_private'],
'dkim_public' => $_POST['dkim_public'],
'dkim_selector' => $fields['dkim_selector'],
'active' => 'y'
);

$mail_domain_id = $remote->insert_query('../mail/form/mail_domain.tform.php', $fields['client_id'], $params);
if($template['policy'])
{
$params = array(
'server_id' => $template['mail_server_id'],
'policy_id' => $template['policy'],
'priority' => 5,
'email' => '@'.$fields['domain'],
'fullname' => '@'.$fields['domain'],
'local' => 'Y',
);
$remote->insert_query('../mail/form/spamfilter_users.tform.php', $fields['client_id'], $params);
}
if($fields['mailboxes'])
{
$mailboxes = explode(',', $fields['mailboxes']);
$mailbox_passwords = array();
foreach($mailboxes as $alias)
{
$alias = strtolower($app->functions->idn_encode($alias));
$mailbox = $alias.'@'.$fields['domain'];

// validate, on error skip
if( ! preg_match('/^[_a-z0-9][\w\.\-_\+@]{1,63}$/', $mailbox)) continue;
$mailbox_passwords[$mailbox] = substr(sha1(rand()), 0, 10);
$params = array(
'server_id' => $template['mail_server_id'],
'uid' => -1,
'gid' => -1,
'email' => $mailbox,
'login' => $mailbox,
'password' => $mailbox_passwords[$mailbox],
'quota' => $template['mailbox_quota']*1024*1024,
'postfix' => 'y',
'disableimap' => ($template['enableimap'] == 'y' ? 'n' : 'y'),
'disablepop3' => ($template['enablepop3'] == 'y' ? 'n' : 'y'),
'disablesmtp' => ($template['enablesmtp'] == 'y' ? 'n' : 'y'),
'maildir' => '/var/vmail/'.$fields['domain'].'/'.$alias,
'homedir' => '/var/vmail',
);
$remote->insert_query('../mail/form/mail_user.tform.php', $fields['client_id'], $params);
}
}
}
// add site
$params = array(
'type' => 'vhost',
'domain' => $fields['domain'],
'server_id' => $template['web_server_id'],
'ip_address' => $template['ip_address'],
'ipv6_address' => $template['ipv6_address'],
'traffic_quota' => $template['traffic_quota'],
'hd_quota' => $template['hd_quota'],
'cgi' => $template['cgi'],
'ssi' => $template['ssi'],
'suexec' => $template['suexec'],
'ruby' => $template['ruby'],
'python' => $template['python'],
'perl' => $template['perl'],
'errordocs' => $template['errordocs'],
'subdomain' => $template['subdomain'],
'php' => $template['php'],
'fastcgi_php_version' => $template['fastcgi_php_version'],
'seo_redirect' => $template['seo_redirect'],
'rewrite_to_https' => $template['rewrite_to_https'],
'allow_override' => $template['allow_override'],
'http_port' => $template['http_port'],
'https_port' => $template['https_port'],
'apache_directives' => $template['apache_directives'],
'nginx_directives' => $template['nginx_directives'],
'php_fpm_use_socket' => $template['php_fpm_use_socket'],
'pm' => $template['pm'],
'pm_max_children' => $template['pm_max_children'],
'pm_start_servers' => $template['pm_start_servers'],
'pm_min_spare_servers' => $template['pm_min_spare_servers'],
'pm_max_spare_servers' => $template['pm_max_spare_servers'],
'pm_process_idle_timeout' => $template['pm_process_idle_timeout'],
'pm_max_requests' => $template['pm_max_requests'],
'custom_php_ini' => $template['custom_php_ini'],
'active' => 'y',
'document_root' => '-',
'system_user' => '-',
'system_group' => '-',
'client_group_id' => $client_group_id,
);
$site_id = $remote->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $params, 'sites:web_vhost_domain:on_after_insert');
// get site data
$app->uses('remoting_lib');
$app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php');
$site_data = $app->remoting_lib->getDataRecord($site_id);
// generate username
$generated_username = $client_prefix.substr(sha1(rand()), 0, 8);
if($fields['db'])
{
// add database user
$db_user_params = array(
'server_id' => $template['database_server_id'],
'database_user' => $generated_username,
'database_password' => substr(sha1(rand()), 0, 10)
);
$db_user_id = $remote->insert_query('../sites/form/database_user.tform.php', $fields['client_id'], $db_user_params, 'sites:web_database_user:on_after_insert');
// add database
$params = array(
'server_id' => $template['database_server_id'],
'parent_domain_id' => $site_id,
'type' => $fields['db_type'],
'database_quota' => $template['database_quota'],
'database_name' => $db_user_params['database_user'],
'database_user_id' => $db_user_id,
'database_charset' => $template['database_charset'],
'remote_access' => $template['database_remote_access'],
'remote_ips' => $template['database_remote_ips'],
'active' => 'y'
);
$remote->sites_database_add($fields['client_id'], $params);
}
if($fields['ftp']) {
// add ftp user
$ftp_params = array(
'server_id' => $template['web_server_id'],
'parent_domain_id' => $site_id,
'username' => $generated_username,
'password' => substr(sha1(rand()), 0, 10),
'quota_size' => $template['hd_quota'],
'dir' => $site_data['document_root'],
'uid' => $site_data['system_user'],
'gid' => $site_data['system_group'],
'sys_groupid' => $site_data['sys_groupid'],
'quota_files' => $template['quota_files'],
'ul_ratio' => $template['ul_ratio'],
'dl_ratio' => $template['dl_ratio'],
'ul_bandwidth' => $template['ul_bandwidth'],
'dl_bandwidth' => $template['dl_bandwidth'],
'active' => 'y',
);
$remote->insert_query('../sites/form/ftp_user.tform.php', $fields['client_id'], $ftp_params);
}
if($fields['ssh']) {
// add ssh user
$ssh_params = array(
'server_id' => $template['web_server_id'],
'parent_domain_id' => $site_id,
'quota_size' => $template['hd_quota'],
'dir' => $site_data['document_root'],
'puser' => $site_data['system_user'],
'pgroup' => $site_data['system_group'],
'sys_groupid' => $site_data['sys_groupid'],
'chroot' => $template['shell_chroot'],
'shell' => $template['shell'],
'active' => 'y',
'username' => $generated_username,
);
// username, password
if(isset($ftp_params)) {
$ssh_params['password'] = $ftp_params['password'];
} else {
$ssh_params['password'] = substr(sha1(rand()), 0, 10);
}
$remote->insert_query('../sites/form/shell_user.tform.php', $fields['client_id'], $ssh_params);
}
// results
echo '
<div class="page-header">
<h1>New service</h1>
</div>
<div class="table-wrapper marginTop15">
<table class="table">
<thead class="dark">
<tr>
<th colspan="2">'.$fields['domain'].'</th>
</tr>
</thead>
<tbody>';
if(isset($db_user_params)) {
echo
'<tr class="info">
<th>DB name/user</th>
<th>DB password</th>
</tr>
<tr>
<td>'.$db_user_params['database_user'].'</td>
<td>'.$db_user_params['database_password'].'</td>
</tr>';
}
if(isset($ftp_params)) {
echo'
<tr class="info">
<th>FTP user</th>
<th>FTP password</th>
</tr>
<tr>
<td>'.$ftp_params['username'].'</td>
<td>'.$ftp_params['password'].'</td>
</tr>';
}
if(isset($ssh_params)) {
echo'
<tr class="info">
<th>SSH user</th>
<th>SSH password</th>
</tr>
<tr>
<td>'.$ssh_params['username'].'</td>
<td>'.$ssh_params['password'].'</td>
</tr>';
}
if(isset($mailbox_passwords) and (bool)count($mailbox_passwords))
{
echo '
<tr class="info">
<th>Mailbox</th>
<th>Password</th>
</tr>';
foreach($mailbox_passwords as $mail => $pass)
{
echo'
<tr>
<td>'.$mail.'</td>
<td>'.$pass.'</td>
</tr>';
}
}
echo'
</tbody>
</table>
</div>
';
}

private function clean_private_key($key)
{
return str_replace('\r\n', '', $key);
}

}

class remote_actions extends remoting {
public function insert_query($formdef_file, $client_id, $params, $event_identifier = '') {
return $this->insertQuery($formdef_file, $client_id, $params, $event_identifier);
}
public function sites_database_add($client_id, $params)
{
global $app;

$sql = $this->insertQueryPrepare('../sites/form/database.tform.php', $client_id, $params);
if($sql !== false) {
$app->uses('sites_database_plugin');

$this->id = 0;
$this->dataRecord = $params;
$app->sites_database_plugin->processDatabaseInsert($this);

$retval = $this->insertQueryExecute($sql, $params);
// set correct values for backup_interval and backup_copies
if(isset($params['backup_interval']) || isset($params['backup_copies'])){
$sql_set = array();
if(isset($params['backup_interval'])) $sql_set[] = "backup_interval = '".$app->db->quote($params['backup_interval'])."'";
if(isset($params['backup_copies'])) $sql_set[] = "backup_copies = ".$app->functions->intval($params['backup_copies']);
//$app->db->query("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval);
$this->updateQueryExecute("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval, $retval, $params);
}
return $retval;
}

return false;
}
}

$page = new page_action;
$page->onLoad();

+ 188
- 0
lib/lang/en_ftp_bd_service.lng Ver fichero

@@ -0,0 +1,188 @@
<?php
$wb["client_id_txt"] = 'Client';
$wb["domain_txt"] = 'Domain';
$wb["db_txt"] = 'Create DB';
$wb["db_type_txt"] = 'DB type';
$wb["ftp_txt"] = 'Create FTP';
$wb["ssh_txt"] = 'Create SSH';
$wb["domain_error_empty"] = 'The domain-name is empty';
$wb["domain_error_regex"] = 'This domain-name is not allowed';
$wb['domain_error_unique'] = 'The domain already exists';
$wb["template_id_txt"] = 'Template';
$wb["mail_txt"] = 'Create Mail';
$wb["mailboxes_txt"] = 'Mailboxes';
$wb["mailboxes_help_txt"] = 'Separated by comma, just mailbox name without @domain.tld';
$wb["dkim_txt"] = 'Enable DKIM';
$wb["dkim_private_txt"] = 'DKIM Private-key';
$wb["dkim_public_txt"] = 'DKIM Public-key\nfor information only';
$wb["dkim_generate_txt"] = 'Generate DKIM Private-key';
$wb["dkim_dns_txt"] = 'DNS-Record';
$wb["dkim_settings_txt"] = 'DomainKeys Identified Mail (DKIM)';
$wb['dkim_selector_txt'] = 'DKIM-Selector';
$wb["dkim_private_key_error"] = 'Invalid DKIM-Private key';
$wb["dns_txt"] = 'Create DNS Zone';
$wb['email_txt'] = 'Email';
$wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
$wb['ns1_txt'] = 'NS 1';
$wb['ns2_txt'] = 'NS 2';
$wb['ip_txt'] = 'IP Address';
$wb['ipv6_txt'] = 'IPv6 Address';
$wb['error_origin_empty'] = 'Origin empty.';
$wb['error_ns_empty'] = 'NS empty.';
$wb['error_mbox_empty'] = 'Mbox empty.';
$wb['error_refresh_empty'] = 'Refresh empty.';
$wb['error_retry_empty'] = 'Retry empty.';
$wb['error_expire_empty'] = 'Expire empty.';
$wb['error_minimum_empty'] = 'Minimum empty.';
$wb['error_ttl_empty'] = 'TTL empty.';
$wb['error_domain_empty'] = 'Domain empty';
$wb['error_ip_empty'] = 'IP empty.';
$wb['error_ipv6_empty'] = 'IPv6 empty.';
$wb['error_ns1_empty'] = 'NS1 empty.';
$wb['error_ns2_empty'] = 'NS2 empty.';
$wb['error_email_empty'] = 'Email empty.';
$wb['error_domain_regex'] = 'Domain contains invalid characters.';
$wb['error_ns1_regex'] = 'NS1 contains invalid characters.';
$wb['error_ns2_regex'] = 'NS2 contains invalid characters.';
$wb['error_email_regex'] = 'Email does not contain a valid email address.';

$wb["backup_interval_txt"] = 'Backup interval';
$wb["backup_copies_txt"] = 'Number of backup copies';
$wb["ssl_state_txt"] = 'State';
$wb["ssl_locality_txt"] = 'Locality';
$wb["ssl_organisation_txt"] = 'Organisation';
$wb["ssl_organisation_unit_txt"] = 'Organisation Unit';
$wb["ssl_country_txt"] = 'Country';
$wb["ssl_key_txt"] = 'SSL Key';
$wb["ssl_request_txt"] = 'SSL Request';
$wb["ssl_cert_txt"] = 'SSL Certificate';
$wb["ssl_bundle_txt"] = 'SSL Bundle';
$wb["ssl_action_txt"] = 'SSL Action';
$wb["ssl_domain_txt"] = 'SSL Domain';
$wb["server_id_txt"] = 'Server';
$wb["domain_txt"] = 'Domain';
$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
$wb["type_txt"] = 'Type';
$wb["parent_domain_id_txt"] = 'Parent Website';
$wb["redirect_type_txt"] = 'Redirect Type';
$wb["redirect_path_txt"] = 'Redirect Path';
$wb["active_txt"] = 'Active';
$wb["document_root_txt"] = 'Documentroot';
$wb["system_user_txt"] = 'Linux User';
$wb["system_group_txt"] = 'Linux Group';
$wb["ip_address_txt"] = 'IPv4-Address';
$wb["ipv6_address_txt"] = 'IPv6-Address';
$wb["vhost_type_txt"] = 'VHost Type';
$wb["hd_quota_txt"] = 'Harddisk Quota';
$wb["traffic_quota_txt"] = 'Traffic Quota';
$wb["cgi_txt"] = 'CGI';
$wb["ssi_txt"] = 'SSI';
$wb["errordocs_txt"] = 'Own Error-Documents';
$wb["subdomain_txt"] = 'Auto-Subdomain';
$wb["ssl_txt"] = 'SSL';
$wb["suexec_txt"] = 'SuEXEC';
$wb["php_txt"] = 'PHP';
$wb["client_txt"] = 'Client';
$wb["limit_web_domain_txt"] = 'The max. number of web domains for your account is reached.';
$wb["limit_web_aliasdomain_txt"] = 'The max. number of aliasdomains for your account is reached.';
$wb["limit_web_subdomain_txt"] = 'The max. number of web subdomains for your account is reached.';
$wb["apache_directives_txt"] = 'Apache Directives';
$wb["domain_error_empty"] = 'Domain is empty.';
$wb["domain_error_unique"] = 'There is already a website or sub / aliasdomain with this domain name.';
$wb["domain_error_regex"] = 'Domain name invalid.';
$wb["domain_error_autosub"] = 'There is already a subdomain with these settings.';
$wb["hd_quota_error_empty"] = 'Harddisk quota is 0 or empty.';
$wb["traffic_quota_error_empty"] = 'Traffic quota is empty.';
$wb["error_ssl_state_empty"] = 'SSL State is empty.';
$wb["error_ssl_locality_empty"] = 'SSL Locality is empty.';
$wb["error_ssl_organisation_empty"] = 'SSL Organisation is empty.';
$wb["error_ssl_organisation_unit_empty"] = 'SSL Organisation Unit is empty.';
$wb["error_ssl_country_empty"] = 'SSL Country is empty.';
$wb["error_ssl_cert_empty"] = 'SSL Certificate field is empty';
$wb["client_group_id_txt"] = 'Client';
$wb["stats_password_txt"] = 'Set Webstatistics password';
$wb["allow_override_txt"] = 'Apache AllowOverride';
$wb["limit_web_quota_free_txt"] = 'Max. available Harddisk Quota';
$wb["ssl_state_error_regex"] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
$wb["ssl_locality_error_regex"] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
$wb["ssl_organisation_error_regex"] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
$wb["ssl_organistaion_unit_error_regex"] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
$wb["ssl_country_error_regex"] = 'Invalid SSL Country. Valid characters are: A-Z';
$wb["limit_traffic_quota_free_txt"] = 'Max. available Traffic Quota';
$wb["redirect_error_regex"] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/';
$wb["php_open_basedir_txt"] = 'PHP open_basedir';
$wb["traffic_quota_exceeded_txt"] = 'Traffic quota exceeded';
$wb["ruby_txt"] = 'Ruby';
$wb["stats_user_txt"] = 'Webstatistics username';
$wb["stats_type_txt"] = 'Webstatistics program';
$wb["custom_php_ini_txt"] = 'Custom php.ini settings';
$wb['none_txt'] = 'None';
$wb['disabled_txt'] = 'Disabled';
$wb['no_redirect_txt'] = 'No redirect';
$wb['no_flag_txt'] = 'No flag';
$wb['save_certificate_txt'] = 'Save certificate';
$wb['create_certificate_txt'] = 'Create certificate';
$wb['delete_certificate_txt'] = 'Delete certificate';
$wb["nginx_directives_txt"] = 'nginx Directives';
$wb["seo_redirect_txt"] = 'SEO Redirect';
$wb["non_www_to_www_txt"] = 'Non-www -&gt; www';
$wb["www_to_non_www_txt"] = 'www -&gt; non-www';
$wb["php_fpm_use_socket_txt"] = 'Use Socket For PHP-FPM';
$wb["error_no_sni_txt"] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
$wb["python_txt"] = 'Python';
$wb["perl_txt"] = 'Perl';
$wb["pm_max_children_txt"] = 'PHP-FPM pm.max_children';
$wb["pm_start_servers_txt"] = 'PHP-FPM pm.start_servers';
$wb["pm_min_spare_servers_txt"] = 'PHP-FPM pm.min_spare_servers';
$wb["pm_max_spare_servers_txt"] = 'PHP-FPM pm.max_spare_servers';
$wb["error_php_fpm_pm_settings_txt"] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
$wb["pm_max_children_error_regex"] = 'PHP-FPM pm.max_children must be a positive integer value.';
$wb["pm_start_servers_error_regex"] = 'PHP-FPM pm.start_servers must be a positive integer value.';
$wb["pm_min_spare_servers_error_regex"] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
$wb["pm_max_spare_servers_error_regex"] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
$wb["hd_quota_error_regex"] = 'Harddisk quota is invalid.';
$wb["traffic_quota_error_regex"] = 'Traffic quota is invalid.';
$wb["fastcgi_php_version_txt"] = 'PHP Version';
$wb["pm_txt"] = 'PHP-FPM Process Manager';
$wb["pm_process_idle_timeout_txt"] = 'PHP-FPM pm.process_idle_timeout';
$wb["pm_max_requests_txt"] = 'PHP-FPM pm.max_requests';
$wb["pm_process_idle_timeout_error_regex"] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
$wb["pm_max_requests_error_regex"] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
$wb["pm_ondemand_hint_txt"] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
$wb['generate_password_txt'] = 'Generate Password';
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
$wb['configuration_error_txt'] = "CONFIGURATION ERROR";
$wb['variables_txt'] = 'Variables';
$wb['added_by_txt'] = 'Added by';
$wb['added_date_txt'] = 'Added date';
$wb['backup_excludes_txt'] = 'Excluded Directories';
$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
$wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings';
$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group';
$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:';
$wb['http_port_txt'] = 'HTTP Port';
$wb['https_port_txt'] = 'HTTPS Port';
$wb['http_port_error_regex'] = 'HTTP Port invalid.';
$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
$wb['error_dominio_mas_puntos'] = 'El dominio no es correcto, hay 3 puntos o más.';
$wb['error_dominio_www'] = 'El dominio no es correcto. No escriba "www" antes del dominio.';
$wb['error_no_existe_dominio_padre'] = 'El dominio padre para este subdominio, no existe.';
$wb['error_no_ip'] = 'No tiene ip, necesita añadirla en la configuración.';
$wb['error_subdominio_existe'] = 'Este subdominio existe.';
?>

+ 34
- 29
lib/lang/en_template.lng Ver fichero

@@ -1,81 +1,86 @@
<?php
$wb["server_id_txt"] = 'Server';
$wb["ip_address_txt"] = 'IPv4-Address';
$wb["ipv6_address_txt"] = 'IPv6-Address';
$wb["hd_quota_txt"] = 'Harddisk Quota';
$wb["traffic_quota_txt"] = 'Traffic Quota';
$wb['hd_quota_txt'] = 'Harddisk Quota';
$wb["cgi_txt"] = 'CGI';
$wb["ssi_txt"] = 'SSI';
$wb["suexec_txt"] = 'SuEXEC';
$wb["errordocs_txt"] = 'Own Error-Documents';
$wb["subdomain_txt"] = 'Auto-Subdomain';
$wb["ssl_txt"] = 'SSL';
$wb["suexec_txt"] = 'SuEXEC';
$wb["php_txt"] = 'PHP';
$wb["fastcgi_php_version_txt"] = 'PHP Version';
$wb["perl_txt"] = 'Perl';
$wb["ruby_txt"] = 'Ruby';
$wb["python_txt"] = 'Python';
$wb["seo_redirect_txt"] = 'SEO Redirect';
$wb["rewrite_to_https_txt"] = 'Rewrite HTTP to HTTPS';
$wb["allow_override_txt"] = 'Apache AllowOverride';
$wb["fastcgi_php_version_txt"] = 'PHP Version';
$wb["php_fpm_use_socket_txt"] = 'Use Socket For PHP-FPM';
$wb["pm_txt"] = 'PHP-FPM Process Manager';
$wb["pm_max_children_txt"] = 'PHP-FPM pm.max_children';
$wb["pm_start_servers_txt"] = 'PHP-FPM pm.start_servers';
$wb["pm_min_spare_servers_txt"] = 'PHP-FPM pm.min_spare_servers';
$wb["pm_max_spare_servers_txt"] = 'PHP-FPM pm.max_spare_servers';
$wb["pm_process_idle_timeout_txt"] = 'PHP-FPM pm.process_idle_timeout';
$wb["pm_max_requests_txt"] = 'PHP-FPM pm.max_requests';
$wb["custom_php_ini_txt"] = 'Custom php.ini settings';
$wb["apache_directives_txt"] = 'Apache Directives';
$wb["nginx_directives_txt"] = 'Nginx Directives';
$wb["http_port_txt"] = 'HTTP Port';
$wb["https_port_txt"] = 'HTTPS Port';
$wb["log_retention_txt"] = 'log_retention';
$wb["web_server_id_txt"] = 'web_server_id';
$wb["template_name_txt"] = 'Template name';
$wb["_csrf_id_txt"] = '_csrf_id';
$wb["_csrf_key_txt"] = '_csrf_key';
$wb["server_id_txt"] = 'Server';
$wb["ssl_txt"] = 'SSL';
$wb["pm_process_idle_timeout_error_regex"] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
$wb["pm_max_requests_error_regex"] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
$wb["pm_ondemand_hint_txt"] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
$wb["pm_max_children_txt"] = 'PHP-FPM pm.max_children';
$wb["pm_start_servers_txt"] = 'PHP-FPM pm.start_servers';
$wb["pm_min_spare_servers_txt"] = 'PHP-FPM pm.min_spare_servers';
$wb["pm_max_spare_servers_txt"] = 'PHP-FPM pm.max_spare_servers';
$wb["error_php_fpm_pm_settings_txt"] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
$wb["pm_max_children_error_regex"] = 'PHP-FPM pm.max_children must be a positive integer value.';
$wb["pm_start_servers_error_regex"] = 'PHP-FPM pm.start_servers must be a positive integer value.';
$wb["pm_min_spare_servers_error_regex"] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
$wb["pm_max_spare_servers_error_regex"] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
$wb["apache_directives_txt"] = 'Apache Directives';
$wb["nginx_directives_txt"] = 'Nginx Directives';
$wb["proxy_directives_txt"] = 'Proxy Directives';
$wb["custom_php_ini_txt"] = 'Custom php.ini settings';
$wb["seo_redirect_txt"] = 'SEO Redirect';
$wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS';
$wb["no_redirect_txt"] = 'No redirect';
$wb["none_txt"] = 'None';
$wb["php_fpm_use_socket_txt"] = 'Use Socket For PHP-FPM';
$wb["traffic_quota_error_regex"] = 'Traffic quota is invalid.';
$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.';
$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.';
$wb["traffic_quota_error_empty"] = 'Traffic quota is empty.';
$wb["hd_quota_error_regex"] = 'Harddisk quota is invalid.';
$wb["hd_quota_error_empty"] = 'Harddisk quota is 0 or empty.';
$wb["btn_save_txt"] = 'Save';
$wb["btn_cancel_txt"] = 'Cancel';
$wb["variables_txt"] = 'Variables';
$wb["disabled_txt"] = 'Disabled';
$wb["template_name_txt"] = 'Template name';
$wb["template_name_error_empty"] = 'Template name can not be empty!';
$wb["policy_txt"] = 'Spamfilter';
$wb["no_policy"] = '- not enabled -';
$wb["dkim_txt"] = 'Enable DKIM';
$wb['dkim_selector_txt'] = 'DKIM-Selector';
$wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars';
$wb["dkim_selector_txt"] = 'DKIM-Selector';
$wb["dkim_selector_error"] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars';
$wb["remote_access_txt"] = 'Remote Access';
$wb["remote_ips_txt"] = 'Remote Access IPs (separate by , and leave blank for <i>any</i>)';
$wb["database_charset_txt"] = 'Database charset';
$wb["database_remote_error_ips"] = 'At least one of the entered ip addresses is invalid.';
$wb['limit_database_quota_txt'] = 'Database quota';
$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
$wb["limit_database_quota_txt"] = 'Database quota';
$wb["limit_database_quota_error_notint"] = 'The database quota limit must be a number.';
$wb["quota_files_txt"] = 'Filequota';
$wb["quota_files_unity_txt"] = 'Files';
$wb["ul_ratio_txt"] = 'Upload ratio';
$wb["dl_ratio_txt"] = 'Download ratio';
$wb["ul_bandwidth_txt"] = 'Upload bandwidth';
$wb["dl_bandwidth_txt"] = 'Download bandwidth';
$wb['shell_txt'] = "Shell";
$wb['chroot_txt'] = "Chroot Shell";
$wb['shell_error_regex'] = 'Invalid shell';
$wb['shell_error_empty'] = 'Shell is empty!';
$wb["shell_txt"] = 'Shell';
$wb["chroot_txt"] = 'Chroot Shell';
$wb["shell_error_regex"] = 'Invalid shell';
$wb["shell_error_empty"] = 'Shell is empty!';
$wb["enablesmtp_txt"] = 'Enable SMTP (sending)';
$wb["enableimap_txt"] = 'Enable IMAP';
$wb["enablepop3_txt"] = 'Enable POP3';
$wb["mailbox_quota_txt"] = 'Mailbox quota (0 for unlimited)';
$wb["quota_error_isint"] = 'Mailbox size must be a number.';
$wb["quota_error_value"] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1';
$wb['http_port_txt'] = 'HTTP Port';
$wb['https_port_txt'] = 'HTTPS Port';
?>

+ 188
- 0
lib/lang/es_ftp_bd_service.lng Ver fichero

@@ -0,0 +1,188 @@
<?php
$wb["client_id_txt"] = 'Cliente';
$wb["domain_txt"] = 'Dominio';
$wb["db_txt"] = 'Crear DB';
$wb["db_type_txt"] = 'Tipo DB';
$wb["ftp_txt"] = 'Crear FTP';
$wb["ssh_txt"] = 'Crear SSH';
$wb["domain_error_empty"] = 'El nombre del dominio esta vacio';
$wb["domain_error_regex"] = 'No se permite ese nombre de dominio';
$wb['domain_error_unique'] = 'El dominio ya existe';
$wb["template_id_txt"] = 'Plantilla';
$wb["mail_txt"] = 'Crear Correo';
$wb["mailboxes_txt"] = 'Buzones';
$wb["mailboxes_help_txt"] = 'Separados por coma, solo el nombre sin el parte @tudominio.com';
$wb["dkim_txt"] = 'Habilitar DKIM';
$wb["dkim_private_txt"] = 'Clave-privada DKIM';
$wb["dkim_public_txt"] = 'DKIM Clave-privada\npor informacion unicamente';
$wb["dkim_generate_txt"] = 'Generar Clave-privada DKIM';
$wb["dkim_dns_txt"] = 'DNS-Record';
$wb["dkim_settings_txt"] = 'DomainKeys Identified Mail (DKIM)';
$wb['dkim_selector_txt'] = 'Selector-DKIM';
$wb["dkim_private_key_error"] = 'Clave-privada DKIM erronea';
$wb["dns_txt"] = 'Crear Zona DNS';
$wb['email_txt'] = 'Email';
$wb['dnssec_txt'] = 'Firmar zona (DNSSEC)';
$wb['ns1_txt'] = 'NS 1';
$wb['ns2_txt'] = 'NS 2';
$wb['ip_txt'] = 'Direccion IP';
$wb['ipv6_txt'] = 'Direccion IPv6';
$wb['error_origin_empty'] = 'El campo Origin esta vacio.';
$wb['error_ns_empty'] = 'El campo NS esta vacio.';
$wb['error_mbox_empty'] = 'El campo Email esta vacio.';
$wb['error_refresh_empty'] = 'El campo Refresh esta vacio.';
$wb['error_retry_empty'] = 'El campo Retry esta vacio.';
$wb['error_expire_empty'] = 'El campo Expire esta vacio.';
$wb['error_minimum_empty'] = 'El campo Minimum esta vacio.';
$wb['error_ttl_empty'] = 'El campo TTL esta vacio.';
$wb['error_domain_empty'] = 'El campo Domain esta vacio';
$wb['error_ip_empty'] = 'El campo IP esta vacio.';
$wb['error_ipv6_empty'] = 'El campo IPv6 esta vacio.';
$wb['error_ns1_empty'] = 'El campo NS1 esta vacio.';
$wb['error_ns2_empty'] = 'El campo NS2 esta vacio.';
$wb['error_email_empty'] = 'El campo Email esta vacio.';
$wb['error_domain_regex'] = 'El dominio contiene caracteres erroneos.';
$wb['error_ns1_regex'] = 'NS1 contiene caracteres erroneos.';
$wb['error_ns2_regex'] = 'NS2 contiene caracteres erroneos.';
$wb['error_email_regex'] = 'El Email no contiene una direccion valida.';

$wb['backup_interval_txt'] = 'Intervalo de copia de seguridad';
$wb['backup_copies_txt'] = 'Número de copias de seguridad';
$wb['ssl_state_txt'] = 'Estado/Provincia';
$wb['ssl_locality_txt'] = 'Localidad';
$wb['ssl_organisation_txt'] = 'Organización';
$wb['ssl_organisation_unit_txt'] = 'Departamento de la organización';
$wb['ssl_country_txt'] = 'País';
$wb['ssl_request_txt'] = 'SSL Request';
$wb['ssl_cert_txt'] = 'SSL Certificate';
$wb['ssl_bundle_txt'] = 'SSL Bundle';
$wb['ssl_action_txt'] = 'SSL Action';
$wb['ssl_domain_txt'] = 'SSL Dominio';
$wb['server_id_txt'] = 'Servidor';
$wb['domain_txt'] = 'Dominio';
$wb['type_txt'] = 'Tipo';
$wb['parent_domain_id_txt'] = 'Sitio web padre';
$wb['redirect_type_txt'] = 'Tipo redirección';
$wb['redirect_path_txt'] = 'Ruta redirección';
$wb['active_txt'] = 'Activar';
$wb['document_root_txt'] = 'Documentroot';
$wb['system_user_txt'] = 'Usuario Linux';
$wb['system_group_txt'] = 'Grupo Linux';
$wb['ip_address_txt'] = 'IPv4-Address';
$wb['ipv6_address_txt'] = 'IPv6-Address';
$wb['vhost_type_txt'] = 'VHost Tipo';
$wb['hd_quota_txt'] = 'Couta disco duro';
$wb['traffic_quota_txt'] = 'Cuota de tráfico';
$wb['cgi_txt'] = 'CGI';
$wb['ssi_txt'] = 'SSI';
$wb['errordocs_txt'] = 'Documentos propios de error';
$wb['subdomain_txt'] = 'Auto-Subdominio';
$wb['ssl_txt'] = 'SSL';
$wb['suexec_txt'] = 'SuEXEC';
$wb['php_txt'] = 'PHP';
$wb['client_txt'] = 'Cliente';
$wb['limit_web_domain_txt'] = 'Se ha alcanzado el número máximo de dominios web de esta cuenta';
$wb['limit_web_aliasdomain_txt'] = 'Se ha alcanzado el número máximo de alias de dominios de esta cuenta';
$wb['limit_web_subdomain_txt'] = 'Se ha alcanzado el número máximo de subdominios web de esta cuenta';
$wb['apache_directives_txt'] = 'Directivas de Apache';
$wb['domain_error_empty'] = 'El dominio está vacío.';
$wb['domain_error_unique'] = 'Ya existe un sitio web o sub/aliasdominio con este nombre de dominio.';
$wb['domain_error_regex'] = 'El nombre de dominio no es válido';
$wb['hd_quota_error_empty'] = 'Cuota de disco duro es 0 o vacío.';
$wb['traffic_quota_error_empty'] = 'Cuota de tráfico está vacío.';
$wb['error_ssl_state_empty'] = 'Estado SSL está vacío.';
$wb['error_ssl_locality_empty'] = 'Sitio SSL está vacío.';
$wb['error_ssl_organisation_empty'] = 'SSL Organización está vacío.';
$wb['error_ssl_organisation_unit_empty'] = 'SSL Unidad de Organización está vacío.';
$wb['error_ssl_country_empty'] = 'País SSL está vacío.';
$wb['error_ssl_cert_empty'] = 'Campo de certificado SSL está vacío.';
$wb['client_group_id_txt'] = 'Cliente';
$wb['stats_password_txt'] = 'Contraseña de estadísticas Web ';
$wb['allow_override_txt'] = 'Apache AllowOverride';
$wb['limit_web_quota_free_txt'] = 'Max. cuota disco duro disponible';
$wb['ssl_state_error_regex'] = 'Estado no válido de SSL. Los caracteres válidos son: a-z, 0-9 y,-_.';
$wb['ssl_locality_error_regex'] = 'Invalid Sitio válido SSL. Los caracteres válidos son: a-z, 0-9 y,-_.';
$wb['ssl_organisation_error_regex'] = 'Organización no válido SSL. Los caracteres válidos son: a-z, 0-9 y,-_.';
$wb['ssl_organistaion_unit_error_regex'] = 'Unidad de Organización no válido SSL. Los caracteres válidos son: a-z, 0-9 y,-_.';
$wb['ssl_country_error_regex'] = 'País no válido SSL. Los caracteres válidos son: A-Z';
$wb['limit_traffic_quota_free_txt'] = 'Max. Cuota de tráfico disponible';
$wb['redirect_error_regex'] = 'Redirección no válida camino. Redirecciones válidos son, por ejemplo,: /test/ or http://www.domain.tld/test/';
$wb['php_open_basedir_txt'] = 'PHP open_basedir';
$wb['traffic_quota_exceeded_txt'] = 'Cuota de tráfico excedida';
$wb['ruby_txt'] = 'Ruby';
$wb['stats_user_txt'] = 'Estadísticas Web nombre de usuario';
$wb['stats_type_txt'] = 'Estadísticas Web del programa';
$wb['custom_php_ini_txt'] = 'Configuración personalizada de php.ini';
$wb['none_txt'] = 'Ninguno';
$wb['disabled_txt'] = 'Desactivado';
$wb['no_redirect_txt'] = 'No redirigir';
$wb['no_flag_txt'] = 'No flag';
$wb['save_certificate_txt'] = 'Guardar el certificado';
$wb['create_certificate_txt'] = 'Crear el certificado';
$wb['delete_certificate_txt'] = 'Eliminar certificado';
$wb['nginx_directives_txt'] = 'nginx Directives';
$wb['seo_redirect_txt'] = 'SEO Redirect';
$wb['non_www_to_www_txt'] = 'Non-www -> www';
$wb['www_to_non_www_txt'] = 'www -> non-www';
$wb['php_fpm_use_socket_txt'] = 'Usar Socket para PHP-FPM';
$wb['error_no_sni_txt'] = 'SNI para SSL no está activado en este servidor. Sólo es posible activar un certificado SSL en cada dirección IP.';
$wb['python_txt'] = 'Python';
$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
$wb['error_php_fpm_pm_settings_txt'] = 'Los valores de configuración de PHP-FPM pm debe ser como sigue: pm.max_children> = pm.max_spare_servers> = pm.start_servers> = pm.min_spare_servers> 0';
$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children debe ser un valor entero positivo.';
$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers debe ser un valor entero positivo.';
$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers debe ser un valor entero positivo.';
$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers debe ser un valor entero positivo.';
$wb['ssl_key_txt'] = 'SSL Key';
$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
$wb['perl_txt'] = 'Perl';
$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
$wb['fastcgi_php_version_txt'] = 'PHP Version';
$wb['pm_txt'] = 'PHP-FPM Process Manager';
$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
$wb['generate_password_txt'] = 'Generate Password';
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
$wb['variables_txt'] = 'Variables';
$wb['added_by_txt'] = 'Added by';
$wb['added_date_txt'] = 'Added date';
$wb['backup_excludes_txt'] = 'Excluded Directories';
$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
$wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings';
$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group';
$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:';
$wb['http_port_txt'] = 'HTTP Port';
$wb['https_port_txt'] = 'HTTPS Port';
$wb['http_port_error_regex'] = 'HTTP Port invalid.';
$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
$wb['error_dominio_mas_puntos'] = 'El dominio no es correcto, hay 3 puntos o más.';
$wb['error_dominio_www'] = 'El dominio no es correcto. No escriba "www" antes del dominio.';
$wb['error_no_existe_dominio_padre'] = 'El dominio padre para este subdominio, no existe.';
$wb['error_no_ip'] = 'No tiene ip, necesita añadirla en la configuración.';
$wb['error_subdominio_existe'] = 'Este subdominio existe.';
?>

+ 5
- 0
lib/module.conf.php Ver fichero

@@ -32,6 +32,11 @@ $items[] = array( 'title' => 'Nuevo servicio web',
'link' => 'webdns/new_service_webdns.php',
'html_id' => 'new_service_webdns');
$items[] = array( 'title' => 'FTP con BD',
'target' => 'content',
'link' => 'webdns/ftp_bd_service.php',
'html_id' =>'ftp_service'
);
$items[] = array( 'title' => 'Versión',
'target' => 'content',
'link' => 'webdns/version_webdns.php',


+ 258
- 0
templates/ftp_bd_service.htm Ver fichero

@@ -0,0 +1,258 @@
<div class="form-group">
<label class="col-sm-3 control-label" for="domain">{tmpl_var name='domain_txt'}</label>
<div class="col-sm-9">
<input class="form-control" id="domain" maxlength="255" name="domain" size="30" type="text" value="{tmpl_var name='domain'}">
</div>
</div>

<div class="form-group">
<label class="col-sm-3 control-label" for="client_id">{tmpl_var name='client_id_txt'}</label>
<div class="col-sm-9">
<select class="form-control" id="client_id" name="client_id">
{tmpl_var name='client_id'}
</select>
</div>
</div>

<!--div class="form-group">
<label class="col-sm-3 control-label" for="template_id">{tmpl_var name='template_id_txt'}</label>
<div class="col-sm-9">
<select class="form-control" id="template_id" name="template_id">
{tmpl_var name='template_id'}
</select>
</div>
</div--!>

<div class="form-group">
<label class="col-sm-3 control-label">{tmpl_var name='db_txt'}</label>
<div class="col-sm-9">
{tmpl_var name='db'}
</div>
</div>

<div class="form-group db">
<label class="col-sm-3 control-label" for="db_type">{tmpl_var name='db_type_txt'}</label>
<div class="col-sm-9">
<select class="form-control" id="db_type" name="db_type">
{tmpl_var name='db_type'}
</select>
</div>
</div>

<div class="form-group">
<label class="col-sm-3 control-label">{tmpl_var name='ftp_txt'}</label>
<div class="col-sm-9">
{tmpl_var name='ftp'}
</div>
</div>

<!--div class="form-group">
<label class="col-sm-3 control-label">{tmpl_var name='ssh_txt'}</label>
<div class="col-sm-9">
{tmpl_var name='ssh'}
</div>
</div>

<div class="form-group">
<label class="col-sm-3 control-label">{tmpl_var name='mail_txt'}</label>
<div class="col-sm-9">
{tmpl_var name='mail'}
</div>
</div>

<div class="form-group mail">
<label for="mailboxes" class="col-sm-3 control-label">{tmpl_var name='mailboxes_txt'}</label>
<div class="col-sm-6">
<textarea class="form-control" name="mailboxes" id="mailboxes" rows='3' cols='50'>{tmpl_var name='mailboxes'}</textarea>
</div>
<div class="col-sm-3">{tmpl_var name='mailboxes_help_txt'}</div>
</div>

<div class="form-group mail">
<label class="col-sm-3 control-label">{tmpl_var name='dkim_txt'}</label>
<div class="col-sm-9">
{tmpl_var name='dkim'}
</div>
</div>

<div class="form-group dkim">
<label for="dkim_selector" class="col-sm-3 control-label">{tmpl_var name='dkim_selector_txt'}</label>
<div class="col-sm-9">
<input type="text" name="dkim_selector" id="dkim_selector" value="{tmpl_var name='dkim_selector'}" class="form-control" />
</div>
</div>

<div class="form-group dkim">
<label for="dkim_private" class="col-sm-3 control-label">{tmpl_var name='dkim_private_txt'}</label>
<div class="col-sm-9">
<textarea class="form-control" name="dkim_private" id="dkim_private" rows='10' cols='30'>{tmpl_var name='dkim_private'}</textarea>
</div>
</div>

<div class="form-group dkim">
<div class="col-sm-9 col-sm-push-3">
<a class="btn btn-default formbutton-default" href="javascript:setRequest('create')" value="{tmpl_var name='dkim_generate_txt'}">{tmpl_var name='dkim_generate_txt'}</a>
</div>
</div>

<div class="form-group dkim">
<div class="col-sm-9">
<textarea class="form-control" name="dkim_public" style="display:none;" id="dkim_public" rows='5' cols='30' readonly>{tmpl_var name='dkim_public'}</textarea>
</div>
</div>

<div class="form-group dkim">
<label for="dns_record" class="col-sm-3 control-label">{tmpl_var name='dkim_dns_txt'}</label>
<div class="col-sm-9">
<textarea class="form-control" name="dns_record" id="dns_record" rows='10' cols='30' readonly>{tmpl_var name='dns_record'}</textarea>
</div>
</div>

<div class="form-group">
<label class="col-sm-3 control-label">{tmpl_var name='dns_txt'}</label>
<div class="col-sm-9">
{tmpl_var name='dns'}
</div>
</div>

<div class="form-group dns">
<label for="dns_template_id" class="col-sm-3 control-label">DNS {tmpl_var name='template_id_txt'}</label>
<div class="col-sm-9"><select name="dns_template_id" id="dns_template_id" class="form-control" onChange="ISPConfig.submitForm('pageForm','webdns/ftp_bd_service.php')">
{tmpl_var name='dns_template_id'}
</select></div>
</div>

<tmpl_if name="IP_VISIBLE">
<div class="form-group dns">
<label for="dns_ip" class="col-sm-3 control-label">{tmpl_var name='ip_txt'}</label>
<div class="col-sm-9"><input type="text" name="dns_ip" id="dns_ip" value="{tmpl_var name='dns_ip'}" class="form-control" /></div></div>
</tmpl_if>
<tmpl_if name="IPV6_VISIBLE">
<div class="form-group dns">
<label for="dns_ipv6" class="col-sm-3 control-label">{tmpl_var name='ipv6_txt'}</label>
<div class="col-sm-9"><input type="text" name="dns_ipv6" id="dns_ipv6" value="{tmpl_var name='dns_ipv6'}" class="form-control" /></div></div>
</tmpl_if>
<tmpl_if name="NS1_VISIBLE">
<div class="form-group dns">
<label for="dns_ns1" class="col-sm-3 control-label">{tmpl_var name='ns1_txt'}</label>
<div class="col-sm-9"><input type="text" name="dns_ns1" id="dns_ns1" value="{tmpl_var name='dns_ns1'}" class="form-control" /></div></div>
</tmpl_if>
<tmpl_if name="NS2_VISIBLE">
<div class="form-group dns">
<label for="dns_ns2" class="col-sm-3 control-label">{tmpl_var name='ns2_txt'}</label>
<div class="col-sm-9"><input type="text" name="dns_ns2" id="dns_ns2" value="{tmpl_var name='dns_ns2'}" class="form-control" /></div></div>
</tmpl_if>
<tmpl_if name="EMAIL_VISIBLE">
<div class="form-group dns">
<label for="dns_email" class="col-sm-3 control-label">{tmpl_var name='email_txt'}</label>
<div class="col-sm-9"><input type="text" name="dns_email" id="dns_email" value="{tmpl_var name='dns_email'}" class="form-control" /></div></div>
</tmpl_if>
<tmpl_if name="DNSSEC_VISIBLE">
<div class="form-group dns">
<label for="dns_dnssec" class="col-sm-3 control-label">{tmpl_var name='dnssec_txt'}</label>
<div class="col-sm-9"><input type="checkbox" name="dns_dnssec" value="Y"></div></div>
</tmpl_if>
--!>
<input id="create_service" name="create" type="hidden" value="0">

<form>
<input name="id" type="hidden" value="{tmpl_var name='id'}">
</form>

<div class="clear">
<div class="right">
<button class="btn btn-default formbutton-success" id="dom-edit-submit" type="button" value="{tmpl_var name='btn_save_txt'}">{tmpl_var name='btn_save_txt'}</button>
<button class="btn btn-default formbutton-default" data-load-content="webdns/ftp_bd_service.php" type="button" value="{tmpl_var name='btn_cancel_txt'}">{tmpl_var name='btn_cancel_txt'}</button>
</div>
</div>

<script type="text/javascript">
$("input[name=db]").change(function(){
if($(this).is(':checked'))
{
$(".db").show();
}
else
{
$(".db").hide();
}
});
$("input[name=mail]").change(function(){
if($(this).is(':checked'))
{
$(".mail").show();
}
else
{
$(".mail").hide();
$(".dkim").hide();
$("input[name=dkim]").prop('checked', false);
}
});
if( ! $("input[name=dkim]").is(':checked'))
{
$(".dkim").hide();
}
$("input[name=dkim]").change(function(){
if($(this).is(':checked'))
{
$(".dkim").show();
$(".dns").show();
$("input[name=dns]").prop('checked', true);
}
else
{
$(".dkim").hide();
}
});
$("input[name=dns]").change(function(){
if($(this).is(':checked'))
{
$(".dns").show();
}
else
{
$(".dns").hide();
$(".dkim").hide();
$("input[name=dkim]").prop('checked', false);
}
});
jQuery('#dom-edit-submit').click(function() {
$("#create_service").val("1");
ISPConfig.submitForm('pageForm','webdns/ftp_bd_service.php');
});
jQuery('#dns_ip').ispconfigSearch({
dataSrc: '/dns/ajax_get_json.php?type=get_ipv4',
resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
minChars: 0,
cssPrefix: 'df-',
fillSearchField: true,
fillSearchFieldWith: 'fill_text',
searchFieldWatermark: '',
resultBoxPosition: ''
});

jQuery('#dns_ipv6').ispconfigSearch({
dataSrc: '/dns/ajax_get_json.php?type=get_ipv6',
resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
minChars: 0,
cssPrefix: 'df-',
fillSearchField: true,
fillSearchFieldWith: 'fill_text',
searchFieldWatermark: '',
resultBoxPosition: ''
});
</script>
<script language="JavaScript" type="text/javascript" src="js/mail_domain_dkim.js"></script>

Cargando…
Cancelar
Guardar