Jump to content

Override de la définition d'un client


Recommended Posts

Dans le cadre de ma gestion des adhérents, j'ai eu besoin de rajouter quelques champs à la classe Customer de base. J'ai donc un bel override fonctionnel de cette classe.

 

 

Ensuite j'ai réussi à rajouter mes nouvelles données à la page d'édition des clients dans l'admin et à les préremplir via le hook "ActionAdminCustomersFormModifier", qui n'a pas l'air vraiment prévu pour ça — et donc légèrement modifié — mais je n'ai pas vu d'autre solution à première vue.

 

Par contre, au niveau de l'envoi du formulaire, je ne sais pas où m'incruster, il n'y a pas de hook ActionAdminCustomerFormSave (par exemple), et le code courant utilise la variable statique $definition de mon modèle, que je n'ai pas modifiée (par refus de dupliquer tout le code de la classe de base).

 

Quelle est la méthode recommandée à utiliser dans ce cas ? Pour ma part je pensais rajouter un hook ou une méthode dans ObjectModel pour récupérer une liste des définitions ajoutées par une override.

 

Link to comment
Share on other sites

Bonsoir,

 

Vous n'êtes pas forcé de recopier l'ensemble de la définition d'un ObjectModel.

 

Dans votre surcharge, vous pouvez tout à fait avoir ce genre de choses, par exemple:

class Customer extends CustomerCore
{
	public $an_extra_field;

	public function __construct($id_customer = null)
	{
		self::$definition['fields']['an_extra_field'] = array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId');

		parent::__construct($id_customer);
	}
  • Like 1
Link to comment
Share on other sites

Je suis perplexe — changer self::$definition (une statique) dans le constructeur ne garantit pas que mes overrides de définitions seront vus *avant* qu'une instance n'ait été créée. De plus, cet ajout sera fait à chaque nouvelle création d'objet (à moins d'utiliser une autre statique comme "verrou"). N'y a t'il pas d'autre solution ?

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...