diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index dcf65d94424353d7308910118b6941ea63e278a5..dca5ba21fb451790bd213662ec8096c5dafb59e4 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1041,6 +1041,7 @@ CREATE TABLE `web_database` (
`database_name` varchar(255) default NULL,
`database_user` varchar(255) default NULL,
`database_password` varchar(255) default NULL,
+ `database_charset` varchar(64) default NULL,
`remote_access` varchar(255) NOT NULL default 'y',
`active` varchar(255) NOT NULL default 'y',
PRIMARY KEY (`database_id`)
diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php
index 3dbaff8db75332643483ffc412e4de49efb552f3..d9b01811fa149509431176681e516a2e28b25766 100644
--- a/interface/web/sites/database_edit.php
+++ b/interface/web/sites/database_edit.php
@@ -192,11 +192,14 @@ class page_action extends tform_actions {
function onUpdate() {
global $app, $conf;
- //* Prevent that the database name is changed
+ //* Prevent that the database name and charset is changed
$old_record = $app->tform->getDataRecord($this->id);
if($old_record["database_name"] != $this->dataRecord["database_name"]) {
$app->tform->errorMessage .= $app->tform->wordbook["database_name_change_txt"].'
';
}
+ if($old_record["database_charset"] != $this->dataRecord["database_charset"]) {
+ $app->tform->errorMessage .= $app->tform->wordbook["database_charset_change_txt"].'
';
+ }
unset($old_record);
parent::onUpdate();
diff --git a/interface/web/sites/form/database.tform.php b/interface/web/sites/form/database.tform.php
index d28971c435505236529410bf920e42278ea34aaa..8e50ca9145460e00a4a3b693337c01c64221d570 100644
--- a/interface/web/sites/form/database.tform.php
+++ b/interface/web/sites/form/database.tform.php
@@ -115,6 +115,12 @@ $form["tabs"]['database'] = array (
'width' => '30',
'maxlength' => '255'
),
+ 'database_charset' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'SELECT',
+ 'default' => 'y',
+ 'value' => array('' => 'MySQL Default','latin1' => 'Latin 1','utf8' => 'UTF-8')
+ ),
'remote_access' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
diff --git a/interface/web/sites/lib/lang/de_database.lng b/interface/web/sites/lib/lang/de_database.lng
index 856abcbfdc8aaf5e900ed38ee15e3133152a21fd..a7f7a5a474c7c6d49f2086ef8930d838dabf8060 100644
--- a/interface/web/sites/lib/lang/de_database.lng
+++ b/interface/web/sites/lib/lang/de_database.lng
@@ -4,6 +4,7 @@ $wb['type_txt'] = 'Type';
$wb['database_name_txt'] = 'Database name';
$wb['database_user_txt'] = 'Database user';
$wb['database_password_txt'] = 'Database password';
+$wb["database_charset_txt"] = 'Database charset';
$wb['remote_access_txt'] = 'Remote Access';
$wb['client_txt'] = 'Client';
$wb['active_txt'] = 'Active';
@@ -17,4 +18,5 @@ $wb['database_user_error_unique'] = 'There is already a database user with this
$wb['database_user_error_regex'] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.';
$wb['limit_database_txt'] = 'The max. number of databases is reached.';
$wb['database_name_change_txt'] = 'The database name can not be changed';
+$wb["database_charset_change_txt"] = 'The database charset can not be changed';
?>
diff --git a/interface/web/sites/lib/lang/en_database.lng b/interface/web/sites/lib/lang/en_database.lng
index fa9d1f835c63887b1b638a0f760f7926d91f7818..69926fbe5398e808c4f7dd80291b1fb8105ec430 100644
--- a/interface/web/sites/lib/lang/en_database.lng
+++ b/interface/web/sites/lib/lang/en_database.lng
@@ -4,6 +4,7 @@ $wb["type_txt"] = 'Type';
$wb["database_name_txt"] = 'Database name';
$wb["database_user_txt"] = 'Database user';
$wb["database_password_txt"] = 'Database password';
+$wb["database_charset_txt"] = 'Database charset';
$wb["remote_access_txt"] = 'Remote Access';
$wb["client_txt"] = 'Client';
$wb["active_txt"] = 'Active';
@@ -17,4 +18,5 @@ $wb["database_user_error_unique"] = 'There is already a database user with this
$wb["database_user_error_regex"] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.';
$wb["limit_database_txt"] = 'The max. number of databases is reached.';
$wb["database_name_change_txt"] = 'The database name can not be changed';
+$wb["database_charset_change_txt"] = 'The database charset can not be changed';
?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/nl_database.lng b/interface/web/sites/lib/lang/nl_database.lng
index 6effa08ac7ec2c5e1214081237e2df894c2b716d..68a52d287703061086f6f2d06030d166070ea238 100644
--- a/interface/web/sites/lib/lang/nl_database.lng
+++ b/interface/web/sites/lib/lang/nl_database.lng
@@ -4,6 +4,7 @@ $wb["type_txt"] = 'Type';
$wb["database_name_txt"] = 'Databasenaam';
$wb["database_user_txt"] = 'Database gebruiker';
$wb["database_password_txt"] = 'Database wachtwoord';
+$wb["database_charset_txt"] = 'Database charset';
$wb["remote_access_txt"] = 'Remote Access';
$wb["client_txt"] = 'Klant';
$wb["active_txt"] = 'Actief';
@@ -17,4 +18,5 @@ $wb["database_user_error_unique"] = 'Er bestaat al een database gebruiker met de
$wb["database_user_error_regex"] = 'Ongeldige database gebruikersnaam. De gebruikersnaam bevat deze karakters: a-z, A-Z, 0-9 en de underscore. Lengte: 2 - 64 karakters.';
$wb["limit_database_txt"] = 'The max. aantal databases is bereikt.';
$wb["database_name_change_txt"] = 'De databasenaam kan niet worden gewijzigd.';
+$wb["database_charset_change_txt"] = 'The database charset can not be changed';
?>
diff --git a/interface/web/sites/lib/lang/ru_database.lng b/interface/web/sites/lib/lang/ru_database.lng
index bef29f9b5313c60527126482a67440786e9fe467..a9f09e339e73c34d8f552a7eed585134b8da9606 100644
--- a/interface/web/sites/lib/lang/ru_database.lng
+++ b/interface/web/sites/lib/lang/ru_database.lng
@@ -4,6 +4,7 @@ $wb["type_txt"] = 'Тип';
$wb["database_name_txt"] = 'Database name';
$wb["database_user_txt"] = 'Database user';
$wb["database_password_txt"] = 'Database password';
+$wb["database_charset_txt"] = 'Database charset';
$wb["remote_access_txt"] = 'Remote Access';
$wb["client_txt"] = 'Client';
$wb["active_txt"] = 'Активный';
@@ -17,4 +18,5 @@ $wb["database_user_error_unique"] = 'There is already a database user with this
$wb["database_user_error_regex"] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.';
$wb["limit_database_txt"] = 'The max. number of databases is reached.';
$wb["database_name_change_txt"] = 'The database name can not be changed';
+$wb["database_charset_change_txt"] = 'The database charset can not be changed';
?>
diff --git a/interface/web/sites/templates/database_edit.htm b/interface/web/sites/templates/database_edit.htm
index b68b47d9ab702b804631150b25aa1e1c330cb97f..82129f619db01ad9bd134a2a2de9de5bc57b527a 100644
--- a/interface/web/sites/templates/database_edit.htm
+++ b/interface/web/sites/templates/database_edit.htm
@@ -47,6 +47,14 @@