tiennou7 Posted April 10, 2015 Share Posted April 10, 2015 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 More sharing options...
J. Danse Posted April 10, 2015 Share Posted April 10, 2015 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); } 1 Link to comment Share on other sites More sharing options...
tiennou7 Posted April 14, 2015 Author Share Posted April 14, 2015 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now