Jump to content
Rhapsody

1.7.6.1 Edit Extra Customer Fields in Back Office

Recommended Posts

Need help modifying back office customer edit form to accommodate custom fields

I'm moving a 1.5.6.2 shop to 1.7.6.1 due to required server PHP upgrades. The existing 1.5.6.2 shop has additional text fields that were added to the customer table.  The database has been imported to a clean 1.7.6.1 install with the extra fields.  I have accomplished the following on the 1.7.6.1 install:

  • Successfully modified the classic theme to add the extra fields and saving them on New User registration
  • Successfully modified the Edit your personal information page so the fields may be updated and saved.
  • Successfully modified back office to display the extra fields when viewing a customer.

I am having problems trying to figure out how to modify the form to edit the new fields in the back office.  The approach I've taken is not optimal because  I did it with overrides and template mods.  What I would like to know if anyone can help with how this may be done using hooks.  I am not familiar with this approach but see that is the recommended approach. 

Can anyone provide tips on how to accomplish this?

 

The code below provides the field definitions in the override file. 

 

<?php
/**
* THC created from 1.7.6.1 of customer.php
* Adds custom field definitions
* spouse, yachtclub, boat, model, sailnum, phrfspin, phrfnonspin, officer 
*
**/
class Customer extends CustomerCore
{

	/** @var string spouse - THC add for spouse name */
	public 		$spouse;

	/** @var string yachtclub - THC add for YC name*/
	public 		$yachtclub;

	/** @var string boat - THC add for boat name*/
	public 		$boat;

	/** @var string model - THC add for boat model*/
	public 		$model;

	/** @var string sailnum - THC add for sail number*/
	public 		$sailnum;

	/** @var integer phrfspin - THC add for PHRF spinnaker*/
	public 		$phrfspin;

	/** @var integer phrfnonspin - THC add for PHRF non-spinnaker*/
	public 		$phrfnonspin;

	/** @var integer officer - THC add for Officer Position*/
	public 		$officer;

// this was from core with custom fields added to array
    public static $definition = array(
        'table' => 'customer',
        'primary' => 'id_customer',
        'fields' => array(
            'secure_key' => array('type' => self::TYPE_STRING, 'validate' => 'isMd5', 'copy_post' => false),
            'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 255),
            'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 255),
            'email' => array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'required' => true, 'size' => 255),
            'passwd' => array('type' => self::TYPE_STRING, 'validate' => 'isPasswd', 'required' => true, 'size' => 255),
            'last_passwd_gen' => array('type' => self::TYPE_STRING, 'copy_post' => false),
            'id_gender' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
            'birthday' => array('type' => self::TYPE_DATE, 'validate' => 'isBirthDate'),
            'newsletter' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
            'newsletter_date_add' => array('type' => self::TYPE_DATE, 'copy_post' => false),
            'ip_registration_newsletter' => array('type' => self::TYPE_STRING, 'copy_post' => false),
            'optin' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
            'website' => array('type' => self::TYPE_STRING, 'validate' => 'isUrl'),
            'company' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
            'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
            'ape' => array('type' => self::TYPE_STRING, 'validate' => 'isApe'),
            'outstanding_allow_amount' => array('type' => self::TYPE_FLOAT, 'validate' => 'isFloat', 'copy_post' => false),
            'show_public_prices' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'id_risk' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false),
            'max_payment_days' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false),
            'active' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'deleted' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'note' => array('type' => self::TYPE_HTML, 'validate' => 'isCleanHtml', 'size' => 65000, 'copy_post' => false),
            'is_guest' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'id_shop' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
            'id_shop_group' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
            'id_default_group' => array('type' => self::TYPE_INT, 'copy_post' => false),
            'id_lang' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
            'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
            'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
            'reset_password_token' => array('type' => self::TYPE_STRING, 'validate' => 'isSha1', 'size' => 40, 'copy_post' => false),
            'reset_password_validity' => array('type' => self::TYPE_DATE, 'validate' => 'isDateOrNull', 'copy_post' => false),
			'spouse' =>					array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
			'yachtclub' =>					array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
			'boat' =>						array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
			'model' =>						array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
			'sailnum' =>					array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
			'phrfspin' => 					array('type' => self::TYPE_INT, 'validate' => 'isInt'),
			'phrfnonspin' => 				array('type' => self::TYPE_INT, 'validate' => 'isInt'),
			'officer' =>    				array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
        ),
    );


  
}

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More