Jump to content
tom56

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)

Share this post


Link to post
Share on other sites

Bonjour,

 

Question bête: as tu rajouté ces deux champs dans la structure de la table correspondante dans ta bdd ?

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
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...

Important Information

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