From aa4254ad47a3600c32bbf17d20beda4c559e4e91 Mon Sep 17 00:00:00 2001 From: "Andreas Burchert (scarya)" Date: Thu, 12 May 2011 18:58:01 +0200 Subject: [PATCH] Added gender selection to add/edit customer, fixes #280 --- admin_customers.php | 23 ++++++++++++++++++- .../updates/froxlor/0.9/update_0.9.inc.php | 13 +++++++++++ .../admin/customer/formfield.customer_add.php | 5 ++++ .../customer/formfield.customer_edit.php | 5 ++++ 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/admin_customers.php b/admin_customers.php index 79c11111..4e5984c6 100644 --- a/admin_customers.php +++ b/admin_customers.php @@ -384,6 +384,7 @@ if($page == 'customers' $customernumber = validate($_POST['customernumber'], 'customer number', '/^[A-Za-z0-9 \-]*$/Di'); $def_language = validate($_POST['def_language'], 'default language'); $diskspace = intval_ressource($_POST['diskspace']); + $gender = intval_ressource($_POST['gender']); if(isset($_POST['diskspace_ul'])) { @@ -519,6 +520,11 @@ if($page == 'customers' $backup_allowed = 1; } + // gender out of range? [0,2] + if ($gender < 0 || $gender > 2) { + $gender = 0; + } + $sendpassword = 0; if(isset($_POST['sendpassword'])) $sendpassword = intval($_POST['sendpassword']); @@ -658,6 +664,7 @@ if($page == 'customers' `password` = '" . md5($password) . "', `name` = '" . $db->escape($name) . "', `firstname` = '" . $db->escape($firstname) . "', + `gender` = '" . (int)$gender . "', `company` = '" . $db->escape($company) . "', `street` = '" . $db->escape($street) . "', `zipcode` = '" . $db->escape($zipcode) . "', @@ -898,6 +905,10 @@ if($page == 'customers' #$store_defaultindex = makeyesno('store_defaultindex', '1', '0', '1'); $backup_allowed = makeyesno('backup_allowed', '1', '0', '0'); + $gender_options = makeoption($lng['gender']['undef'], 0, true, true, true); + $gender_options .= makeoption($lng['gender']['male'], 1, null, true, true); + $gender_options .= makeoption($lng['gender']['female'], 2, null, true, true); + $customer_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_add.php'; $customer_add_form = htmlform::genHTMLForm($customer_add_data); @@ -931,6 +942,7 @@ if($page == 'customers' $def_language = validate($_POST['def_language'], 'default language'); $password = validate($_POST['new_customer_password'], 'new password'); $diskspace = intval_ressource($_POST['diskspace']); + $gender = intval_resource($_POST['gender']); if(isset($_POST['diskspace_ul'])) { @@ -1033,6 +1045,11 @@ if($page == 'customers' $backup_allowed = 1; } + // gender out of range? [0,2] + if ($gender < 0 || $gender > 2) { + $gender = 0; + } + $mysqls = 0; if(isset($_POST['mysqls'])) $mysqls = intval_ressource($_POST['mysqls']); @@ -1253,7 +1270,7 @@ if($page == 'customers' } // $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `name`='" . $db->escape($name) . "', `firstname`='" . $db->escape($firstname) . "', `company`='" . $db->escape($company) . "', `street`='" . $db->escape($street) . "', `zipcode`='" . $db->escape($zipcode) . "', `city`='" . $db->escape($city) . "', `phone`='" . $db->escape($phone) . "', `fax`='" . $db->escape($fax) . "', `email`='" . $db->escape($email) . "', `customernumber`='" . $db->escape($customernumber) . "', `def_language`='" . $db->escape($def_language) . "', `password` = '" . $password . "', `diskspace`='" . $db->escape($diskspace) . "', `traffic`='" . $db->escape($traffic) . "', `subdomains`='" . $db->escape($subdomains) . "', `emails`='" . $db->escape($emails) . "', `email_accounts` = '" . $db->escape($email_accounts) . "', `email_forwarders`='" . $db->escape($email_forwarders) . "', `ftps`='" . $db->escape($ftps) . "', `tickets`='" . $db->escape($tickets) . "', `mysqls`='" . $db->escape($mysqls) . "', `deactivated`='" . $db->escape($deactivated) . "', `phpenabled`='" . $db->escape($phpenabled) . "', `email_quota`='" . $db->escape($email_quota) . "', `imap`='" . $db->escape($email_imap) . "', `pop3`='" . $db->escape($email_pop3) . "', `aps_packages`='" . (int)$number_of_aps_packages . "', `perlenabled`='" . $db->escape($perlenabled) . "', `email_autoresponder`='" . $db->escape($email_autoresponder) . "' WHERE `customerid`='" . (int)$id . "'"); - $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `name`='" . $db->escape($name) . "', `firstname`='" . $db->escape($firstname) . "', `company`='" . $db->escape($company) . "', `street`='" . $db->escape($street) . "', `zipcode`='" . $db->escape($zipcode) . "', `city`='" . $db->escape($city) . "', `phone`='" . $db->escape($phone) . "', `fax`='" . $db->escape($fax) . "', `email`='" . $db->escape($email) . "', `customernumber`='" . $db->escape($customernumber) . "', `def_language`='" . $db->escape($def_language) . "', `password` = '" . $password . "', `diskspace`='" . $db->escape($diskspace) . "', `traffic`='" . $db->escape($traffic) . "', `subdomains`='" . $db->escape($subdomains) . "', `emails`='" . $db->escape($emails) . "', `email_accounts` = '" . $db->escape($email_accounts) . "', `email_forwarders`='" . $db->escape($email_forwarders) . "', `ftps`='" . $db->escape($ftps) . "', `tickets`='" . $db->escape($tickets) . "', `mysqls`='" . $db->escape($mysqls) . "', `deactivated`='" . $db->escape($deactivated) . "', `phpenabled`='" . $db->escape($phpenabled) . "', `email_quota`='" . $db->escape($email_quota) . "', `imap`='" . $db->escape($email_imap) . "', `pop3`='" . $db->escape($email_pop3) . "', `aps_packages`='" . (int)$number_of_aps_packages . "', `perlenabled`='" . $db->escape($perlenabled) . "', `email_autoresponder`='" . $db->escape($email_autoresponder) . "', `backup_allowed`='" . $db->escape($backup_allowed) . "' WHERE `customerid`='" . (int)$id . "'"); + $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `name`='" . $db->escape($name) . "', `firstname`='" . $db->escape($firstname) . "', `gender`='" . $db->escape($gender) . "', `company`='" . $db->escape($company) . "', `street`='" . $db->escape($street) . "', `zipcode`='" . $db->escape($zipcode) . "', `city`='" . $db->escape($city) . "', `phone`='" . $db->escape($phone) . "', `fax`='" . $db->escape($fax) . "', `email`='" . $db->escape($email) . "', `customernumber`='" . $db->escape($customernumber) . "', `def_language`='" . $db->escape($def_language) . "', `password` = '" . $password . "', `diskspace`='" . $db->escape($diskspace) . "', `traffic`='" . $db->escape($traffic) . "', `subdomains`='" . $db->escape($subdomains) . "', `emails`='" . $db->escape($emails) . "', `email_accounts` = '" . $db->escape($email_accounts) . "', `email_forwarders`='" . $db->escape($email_forwarders) . "', `ftps`='" . $db->escape($ftps) . "', `tickets`='" . $db->escape($tickets) . "', `mysqls`='" . $db->escape($mysqls) . "', `deactivated`='" . $db->escape($deactivated) . "', `phpenabled`='" . $db->escape($phpenabled) . "', `email_quota`='" . $db->escape($email_quota) . "', `imap`='" . $db->escape($email_imap) . "', `pop3`='" . $db->escape($email_pop3) . "', `aps_packages`='" . (int)$number_of_aps_packages . "', `perlenabled`='" . $db->escape($perlenabled) . "', `email_autoresponder`='" . $db->escape($email_autoresponder) . "', `backup_allowed`='" . $db->escape($backup_allowed) . "' WHERE `customerid`='" . (int)$id . "'"); $admin_update_query = "UPDATE `" . TABLE_PANEL_ADMINS . "` SET `customers_used` = `customers_used` "; if($mysqls != '-1' @@ -1548,6 +1565,10 @@ if($page == 'customers' $backup_allowed = makeyesno('backup_allowed', '1', '0', $result['backup_allowed']); $result = htmlentities_array($result); + $gender_options = makeoption($lng['gender']['undef'], 0, ($result['gender'] == '0' ? true : false), true, true); + $gender_options .= makeoption($lng['gender']['male'], 1, ($result['gender'] == '1' ? true : false), true, true); + $gender_options .= makeoption($lng['gender']['female'], 2, ($result['gender'] == '2' ? true : false), true, true); + $customer_edit_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_edit.php'; $customer_edit_form = htmlform::genHTMLForm($customer_edit_data); diff --git a/install/updates/froxlor/0.9/update_0.9.inc.php b/install/updates/froxlor/0.9/update_0.9.inc.php index 6b3e5765..a3fd58e4 100644 --- a/install/updates/froxlor/0.9/update_0.9.inc.php +++ b/install/updates/froxlor/0.9/update_0.9.inc.php @@ -1585,3 +1585,16 @@ if(isFroxlorVersion('0.9.20.1')) updateToVersion('0.9.20.2-svn1'); } + +if(isFroxlorVersion('0.9.20.2-svn1')) +{ + showUpdateStep("Updating from 0.9.20.2-svn1 to 0.9.21-svn1"); + lastStepStatus(0); + + // add table column for gender + $db->query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `gender` INT( 1 ) NOT NULL DEFAULT '0' AFTER `firstname`"); + + lastStepStatus(0); + + updateToVersion('0.9.21-svn1'); +} diff --git a/lib/formfields/admin/customer/formfield.customer_add.php b/lib/formfields/admin/customer/formfield.customer_add.php index 20cf837a..b56698db 100644 --- a/lib/formfields/admin/customer/formfield.customer_add.php +++ b/lib/formfields/admin/customer/formfield.customer_add.php @@ -82,6 +82,11 @@ return array( 'type' => 'text', 'mandatory_ex' => true ), + 'gender' => array( + 'label' => $lng['gender']['title'], + 'type' => 'select', + 'select_var' => $gender_options + ), 'company' => array( 'label' => $lng['customer']['company'], 'type' => 'text', diff --git a/lib/formfields/admin/customer/formfield.customer_edit.php b/lib/formfields/admin/customer/formfield.customer_edit.php index 418516a4..13758e37 100644 --- a/lib/formfields/admin/customer/formfield.customer_edit.php +++ b/lib/formfields/admin/customer/formfield.customer_edit.php @@ -82,6 +82,11 @@ return array( 'mandatory_ex' => true, 'value' => $result['firstname'] ), + 'gender' => array( + 'label' => $lng['gender']['title'], + 'type' => 'select', + 'select_var' => $gender_options + ), 'company' => array( 'label' => $lng['customer']['company'], 'type' => 'text',