From be9816ee7cd57321d4097c8bc890ce37b87a7ead Mon Sep 17 00:00:00 2001
From: redray <redray@ispconfig3>
Date: Fri, 03 Oct 2008 09:25:48 -0400
Subject: [PATCH]
---
interface/web/sites/lib/lang/de_database.lng | 2 ++
interface/web/sites/lib/lang/en_database.lng | 2 ++
server/plugins-available/mysql_clientdb_plugin.inc.php | 11 +++++++++--
interface/web/sites/lib/lang/ru_database.lng | 2 ++
install/sql/ispconfig3.sql | 1 +
interface/web/sites/templates/database_edit.htm | 8 ++++++++
interface/web/sites/form/database.tform.php | 6 ++++++
interface/web/sites/database_edit.php | 5 ++++-
interface/web/sites/lib/lang/nl_database.lng | 2 ++
9 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index dcf65d9..dca5ba2 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1041,6 +1041,7 @@
`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 3dbaff8..d9b0181 100644
--- a/interface/web/sites/database_edit.php
+++ b/interface/web/sites/database_edit.php
@@ -192,11 +192,14 @@
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"].'<br />';
}
+ if($old_record["database_charset"] != $this->dataRecord["database_charset"]) {
+ $app->tform->errorMessage .= $app->tform->wordbook["database_charset_change_txt"].'<br />';
+ }
unset($old_record);
parent::onUpdate();
diff --git a/interface/web/sites/form/database.tform.php b/interface/web/sites/form/database.tform.php
index d28971c..8e50ca9 100644
--- a/interface/web/sites/form/database.tform.php
+++ b/interface/web/sites/form/database.tform.php
@@ -115,6 +115,12 @@
'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 856abcb..a7f7a5a 100644
--- a/interface/web/sites/lib/lang/de_database.lng
+++ b/interface/web/sites/lib/lang/de_database.lng
@@ -4,6 +4,7 @@
$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_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 fa9d1f8..69926fb 100644
--- a/interface/web/sites/lib/lang/en_database.lng
+++ b/interface/web/sites/lib/lang/en_database.lng
@@ -4,6 +4,7 @@
$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_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 6effa08..68a52d2 100644
--- a/interface/web/sites/lib/lang/nl_database.lng
+++ b/interface/web/sites/lib/lang/nl_database.lng
@@ -4,6 +4,7 @@
$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_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 bef29f9..a9f09e3 100644
--- a/interface/web/sites/lib/lang/ru_database.lng
+++ b/interface/web/sites/lib/lang/ru_database.lng
@@ -4,6 +4,7 @@
$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_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 b68b47d..82129f6 100644
--- a/interface/web/sites/templates/database_edit.htm
+++ b/interface/web/sites/templates/database_edit.htm
@@ -48,6 +48,14 @@
<td class="frmText11"><input name="database_password" type="password" class="text" value="{tmpl_var name='database_password'}" size="30" maxlength="255"></td>
</tr>
<tr>
+ <td class="frmText11">{tmpl_var name='database_charset_txt'}:</td>
+ <td class="frmText11">
+ <select name="database_charset" class="text">
+ {tmpl_var name='database_charset'}
+ </select>
+ </td>
+ </tr>
+ <tr>
<td class="frmText11">{tmpl_var name='remote_access_txt'}:</td>
<td class="frmText11">{tmpl_var name='remote_access'}</td>
</tr>
diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php
index e9c3400..24e4ba2 100644
--- a/server/plugins-available/mysql_clientdb_plugin.inc.php
+++ b/server/plugins-available/mysql_clientdb_plugin.inc.php
@@ -69,9 +69,16 @@
$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);
--
Gitblit v1.9.1