Jump to content

Ajout de 2 champs dans la classe Customer


Recommended Posts

Bonjour,

 

Je suis en train d'essayer de rajouter 2 champs à la classe Customer.

 

J'ai overridé la classe avec 

<?php

class Customer extends CustomerCore
{
	public $compte_client;

	public $intitule;

	public function __construct($id = null)
	{
		Product::$definition['fields']['compte_client'] = array('type' => self::TYPE_STRING, 'validate' => 'isString');
		Product::$definition['fields']['intitule'] = array('type' => self::TYPE_STRING, 'validate' => 'isString');
		parent::__construct($id);
	}
	
}

J'ai ensuite overridé le controller avec

<?php

class AdminCustomersController extends AdminCustomersControllerCore
{

	public function __construct()
	{
		parent::__construct();

		$this->fields_list['compte_client'] = array('title' => $this->l('Customer account'));
		$this->fields_list['intitule'] = array('title' => $this->l('Intitulé'));
	}

	public function renderForm()
	{

		$this->fields_form_override = array(
			array(
				'type' => 'text',
				'label' => $this->l('Customer account'),
				'name' => 'compte_client',
				'col' => '4'
			),
			array(
				'type' => 'text',
				'label' => $this->l('Intitulé'),
				'name' => 'intitule',
				'col' => '4'
			)
		);

		return parent::renderForm();
	}
}

J'ai également ajouté les 2 champs en base.

 

J'ai bien mes 2 nouveaux champs dans la fiche d'un client mais les champs ne s'enregistrent pas en base.

 

Auriez-vous une idée ?

 

Merci

Edited by tom56 (see edit history)
Link to comment
Share on other sites

Oui j'ai bien rajouté les 2 champs en base.

 

Si je remplis directement en base, les données s'affichent dans la fiche client.

 

J'ai remarqué que dans ObjectModel.php, la fonction getFields() ne renvoie pas mes 2 nouveaux champs.

Link to comment
Share on other sites

Je viens de trouver mon erreur, un mauvais copié collé.

 

C'était pas

Product::$definition['fields']['compte_client']

mais

Customer::$definition['fields']['compte_client']

Désolé du dérangement.

Link to comment
Share on other sites

  • 5 months later...

Bonjour chers tous,

J'ai besoin d'aide. J'ai essayé d'ajouter un champ à la classe Customer mais malheureusement cela m'a conduit à une page blanche.

L'activation des erreur PHP affiche:

"Fatal error: Class ‘Customer’ not found in /home/Identifiant/www/config/config.inc.php on line 217"

A cette ligne et suivantes se trouve ce code:  

 

if (!isset($customer) || !Validate::isLoadedObject($customer)) {
        $customer = new Customer();
 
        /* Change the default group */
        if (Group::isFeatureActive()) {
            $customer->id_default_group = (int)Configuration::get('PS_UNIDENTIFIED_GROUP');
        }
    }
    $customer->id_guest = $cookie->id_guest;
    $context->customer = $customer;
 

Que signifie cette erreur? 

Quelle est son origine?

Comment la corriger?

Merci.

 

Ps: j'ai déjà retiré toutes les modifications pour revenir au code d'avant manipulation.

 

KIKOUN

Edited by KIKOUN1 (see edit history)
Link to comment
Share on other sites

  • 5 weeks later...

Bonjour,

 

J'ai creer un nouveau champs sur la meme methode que la votre, mais impossible d'inscrire la valeur entré en DB...

 

 

<?php


class Customer extends CustomerCore
{
 


public $id_employee;


public function __construct($id = null)
{
Customer::$definition['fields']['id_employee'] = array('type' => self::TYPE_STRING, 'validate' => 'isString');
parent::__construct($id);
}


}
 
 
<?php
class AdminCustomersController extends AdminCustomersControllerCore
{


public function __construct()
{
parent::__construct();


$this->fields_list['id_employee'] = array('title' => $this->l('id_employee'));
}


public function renderForm()
{ 


$this->fields_form_override =  array( 
                         array(
                   'type' => 'text',
'label' => $this->l('Commercial'),'name' => 'id_employee',
'col' => '4'
               ) ); 
return parent::renderForm(); }

Auriez vous une idee du probleme?

 

Merci pour votre aide.

Edited by Toinou_74 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...