From be9816ee7cd57321d4097c8bc890ce37b87a7ead Mon Sep 17 00:00:00 2001 From: redray Date: Fri, 3 Oct 2008 13:25:48 +0000 Subject: [PATCH] --- install/sql/ispconfig3.sql | 1 + interface/web/sites/database_edit.php | 5 ++++- interface/web/sites/form/database.tform.php | 6 ++++++ interface/web/sites/lib/lang/de_database.lng | 2 ++ interface/web/sites/lib/lang/en_database.lng | 2 ++ interface/web/sites/lib/lang/nl_database.lng | 2 ++ interface/web/sites/lib/lang/ru_database.lng | 2 ++ interface/web/sites/templates/database_edit.htm | 8 ++++++++ .../plugins-available/mysql_clientdb_plugin.inc.php | 11 +++++++++-- 9 files changed, 36 insertions(+), 3 deletions(-) diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index dcf65d9442..dca5ba21fb 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 3dbaff8db7..d9b01811fa 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 d28971c435..8e50ca9145 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 856abcbfdc..a7f7a5a474 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 fa9d1f835c..69926fbe53 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 6effa08ac7..68a52d2877 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 bef29f9b53..a9f09e339e 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 b68b47d9ab..82129f619d 100644 --- a/interface/web/sites/templates/database_edit.htm +++ b/interface/web/sites/templates/database_edit.htm @@ -47,6 +47,14 @@ {tmpl_var name='database_password_txt'}: + + {tmpl_var name='database_charset_txt'}: + + + + {tmpl_var name='remote_access_txt'}: {tmpl_var name='remote_access'} diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php index e9c3400868..24e4ba2b1f 100644 --- a/server/plugins-available/mysql_clientdb_plugin.inc.php +++ b/server/plugins-available/mysql_clientdb_plugin.inc.php @@ -69,9 +69,16 @@ class mysql_clientdb_plugin { $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); return; } - + + // Charset for the new table + if($data["new"]["database_charset"] != '') { + $query_charset_table = ' DEFAULT CHARACTER SET '.$data["new"]["database_charset"]; + } else { + $query_charset_table = ''; + } + //* Create the new database - if (mysql_query('CREATE DATABASE '.mysql_real_escape_string($data["new"]["database_name"]),$link)) { + if (mysql_query('CREATE DATABASE '.mysql_real_escape_string($data["new"]["database_name"]).$query_charset_table,$link)) { $app->log('Created MySQL database: '.$data["new"]["database_name"],LOGLEVEL_DEBUG); } else { $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); -- GitLab