Thanks for reply,
Yes i did it, i can show the custom fields in the form, but now when i click on submit button SS redirect me to the form and not process the data
I modified the DB with my fields,dont know whats is wrong.
My code below
<?php
/**
* @package ecommerce
*/
/**
* EcommerceRole is a DataObjectDecorator for the member class to allow additional
* member fields for the module. It has a base set of contact fields that can be
* statically called anywhere in the system using singleton('Member')->getEcommerceFields();
* The OrderForm and MemberForm class uses this call.
*/
class EcommerceRole extends DataObjectDecorator {
/**
* Edit the given query object to support queries for this extension
*/
function augmentSQL(SQLQuery &$query) {}
/**
* Update the database data, migrating ShopMember into Member, if necessary
*/
function augmentDefaultRecords() {
$exist = DB::query("SHOW TABLES LIKE 'ShopMember'")->numRecords();
if($exist > 0) {
DB::query("UPDATE `Member`, `ShopMember` " .
"SET `Member`.`ClassName` = 'Member'," .
"`Member`.`CompanyName` = `ShopMember`.``," .
"`Member`.`Name` = `ShopMember`.``," .
"`Member`.`Address01` = `ShopMember`.``," .
"`Member`.`Address02` = `ShopMember`.``," .
"`Member`.`City` = `ShopMember`.``," .
"`Member`.`Zip` = `ShopMember`.``," .
"`Member`.`MainPhone` = `ShopMember`.``," .
"`Member`.`Fax` = `ShopMember`.``," .
"`Member`.`Mobile` = `ShopMember`.``," .
"`Member`.`Fax` = `ShopMember`.``," .
"`Member`.`Mobile` = `ShopMember`.``," .
"`Member`.`EmailAddress` = `ShopMember`.``," .
"`Member`.`PrepDate` = `ShopMember`.``," .
"`Member`.`ShipDate` = `ShopMember`.``," .
"`Member`.`StartDate` = `ShopMember`.``," .
"`Member`.`ReturnDate` = `ShopMember`.``," .
"`Member`.`DirectorOfPhotography` = `ShopMember`.``," .
"`Member`.`PhoneNumber` = `ShopMember`.``," .
"`Member`.`AssistantCameraman` = `ShopMember`.``," .
"`Member`.`APhoneNumber` = `ShopMember`.``," .
"WHERE `Member`.`ID` = `ShopMember`.`ID`"
);
echo("<div style=\"padding:5px; color:white; background-color:blue;\">The data transfer has succeeded. However, to complete it, you must delete the ShopMember table. To do this, execute the query \"DROP TABLE 'ShopMember'\".</div>");
}
}
/**
* Define extra database fields for this extension.
*/
function extraDBFields() {
return array(
'db' => array(
'CompanyName' => 'Varchar',
'Name' => 'Varchar',
'Address01' => 'Varchar',
'Address02' => 'Varchar',
'City' => 'Varchar',
'Zip' => 'Varchar',
'MainPhone' => 'Varchar',
'Fax' => 'Varchar',
'Mobile' => 'Varchar',
'EmailAddress' => 'Varchar',
'PrepDate' => 'Varchar',
'ShipDate' => 'Varchar',
'StartDate' => 'Varchar',
'ReturnDate' => 'Varchar',
'DirectorOfPhotography' => 'Varchar',
'PhoneNumber' => 'Varchar',
'AssistantCameraman' => 'Varchar',
'APhoneNumber' => 'Varchar'
)
);
}
/**
* Add fields to the member popup box in the CMS.
*/
function updateCMSFields(FieldSet &$fields) {
$fields->push(new TextField('CompanyName', 'Company Name'));
$fields->push(new TextField('Name', 'Name'));
$fields->push(new TextField('Address01', 'Address01'));
$fields->push(new TextField('Address02', 'Address02'));
$fields->push(new TextField('City', 'City'));
$fields->push(new TextField('State', 'State'));
$fields->push(new TextField('Zip', 'Zip'));
$fields->push(new TextField('MainPhone', 'Main Phone'));
$fields->push(new TextField('Fax', 'Fax'));
$fields->push(new TextField('Mobile', 'Mobile'));
$fields->push(new TextField('EmailAddress', 'Email Address'));
$fields->push(new TextField('PrepDate', 'Prep Date'));
$fields->push(new TextField('ShipDate', 'Ship Date'));
$fields->push(new TextField('StartDate', 'Start Date'));
$fields->push(new TextField('DirectorOfPhotography', 'Director Of Photography'));
$fields->push(new TextField('PhoneNumber', 'PhoneNumber'));
$fields->push(new TextField('AssistantCameraman', 'Assistant Cameraman'));
$fields->push(new TextField('APhoneNumber', 'Assistant Phone Number'));
}
/**
* Return the member fields to be shown on order forms.
* For orders made by existing members, this will be called on that memeber.
* For new orders, this will be called on the singleton object.
*/
function getEcommerceFields() {
$fields = new FieldSet(
new HeaderField('Contact Information', 3),
new TextField('CompanyName', 'CompanyName'),
new TextField('Name', 'First & Last Name'),
new TextField('Address01', 'Address 01'),
new TextField('Address02', 'Address 02'),
new TextField('City', 'City'),
new TextField('State', 'State'),
new TextField('Zip', 'Zip'),
new TextField('MainPhone', 'Main Phone'),
new TextField('Fax', 'Fax'),
new TextField('Mobile', 'Mobile'),
new TextField('EmailAddress', 'Email Address'),
new TextField('PrepDate', 'Prep Date'),
new TextField('ShipDate', 'Ship Date'),
new TextField('StartDate', 'Start Date'),
new TextField('ReturnDate', 'Return Date'),
new TextField('DirectorOfPhotography', 'Director Of Photography'),
new TextField('PhoneNumber', 'Phone Number'),
new TextField('AssistantCameraman', 'Assistant Cameraman'),
new TextField('APhoneNumber', 'Phone Number')
/*new TextField('FirstName', 'First Name'),
new TextField('Surname', 'Surname'),
new TextField('HomePhone', 'Phone'),
new TextField('MobilePhone', 'Mobile'),
new EmailField('Email', 'Email'),
new TextField('Address', 'Address'),
new TextField('AddressLine2', 'Address Line 2'),
new TextField('City', 'City'),
new TextField('fuck', 'fuck'),
new DropdownField('Country', 'Country', Geoip::getCountryDropDown(), self::findCountry())*/
);
$this->owner->extend('augmentEcommerceFields', $fields);
return new CompositeField($fields);
}
/**
* Create a new member from the given data or merge with the built-in fields.
* @param data the array data from a submitted form.
*/
public static function createOrMerge($data) {
// Because we are using a ConfirmedPasswordField, the password will
// be an array of two fields
if(isset($data['Password']) && is_array($data['Password'])) {
$data['Password'] = $data['Password']['_Password'];
}
if($existingMember = Member::currentUser()) {
$existingMember->update($data);
return $existingMember;
} else {
$member = new Member();
$member->update($data);
return $member;
}
}
/**
* Find the member country, if the member doesn't exist then return
* the Geoip visitor country based on their IP address.
*/
static function findCountry(){
$member = Member::currentUser();
if($member && $member->Country) {
$country = $member->Country;
} else {
$country = Geoip::visitor_country();
}
return $country;
}
/**
* Give the two letter code to resolve the title of the country.
* @param $code - the two letter country code you want the full name of.
*/
static function findCountryTitle($code) {
$countries = Geoip::getCountryDropDown();
// check if code was provided, and is found in the country array
if($code && $countries[$code]) {
return $countries[$code];
} else {
return false;
}
}
}
?>
Someone help me please!!!!
Thanks