[email protected] Posted February 18, 2013 Share Posted February 18, 2013 (edited) Bonjour, J'essaie de rajouter des champs pour le formulaire d'inscription et ai réussi au niveau du front office et de la base de données. Cependant, j'essaie maintenant de les faire apparaître dans le back office afin de pouvoir créer un client manuellement. J'ai jusque là réussi à faire apparaître les colonnes mais pas les données contenues dans la base, or je ne sais pas comment gérer cela. Si quelqu'un pouvait me mettre sur la voie, ce serait sympa. Merci. Edited March 1, 2013 by [email protected] (see edit history) Link to comment Share on other sites More sharing options...
dimb Posted February 19, 2013 Share Posted February 19, 2013 (edited) Je ne suis pas un expert, mais s'il faut afficher les données dans le back-office, il faut modifier le constructeur du controlleur tel qu'il est construit en lui ajoutant un array pour la nouvelle donnée. Pour le formulaire d'ajout à la base de donnée ça sera pareil. Sauf que le controlleur se base sur le modele de la classe "Customer". Qu'il faudra également modifier. Mais je pense que c'est déjà fait vu que vous arrivez à l'ajouter dans votre base de donnée. C'est juste un champ que vous avez ajouté à votre table customer? (ce que je dis est à prendre avec des pincettes mais rien ne coute de tenter le test). Edited February 19, 2013 by dimb (see edit history) Link to comment Share on other sites More sharing options...
[email protected] Posted February 19, 2013 Author Share Posted February 19, 2013 Merci, j'ai réussi à rajouter les champs mais il faut maintenant que je récupère les données depuis la base, afin de pouvoir les ajouter lorsque je crée un client en dur depuis le BO. Link to comment Share on other sites More sharing options...
dimb Posted February 19, 2013 Share Posted February 19, 2013 C'est juste un champ que tu as ajouté à ta table customer? un champ de quel type? Si oui, tu as réussit à afficher les infos dans le tableau des clients coté back-office? Link to comment Share on other sites More sharing options...
[email protected] Posted February 20, 2013 Author Share Posted February 20, 2013 J'ai suivi le tutoriel de ce lien : http://tours-tech-web.ikonenn.com/2012/08/07/prestashop-1-5-methode-doverride-exemple-ajout-dun-champ/ . Ce sont des champs de type String que j'ai rajouté dans ma table customer. Link to comment Share on other sites More sharing options...
dimb Posted February 20, 2013 Share Posted February 20, 2013 (edited) Je ne sais pas si c'est la meilleur solution mais à défaut de mieux, (si d'autres reponses sont meilleures que la mienne n'hesitez pas:p). tu peux copier la foncton "renderForm" de admincustomercontrollercore (fichier admincustomercontroller dans controllers/admin), et la coller dans admincustomercontroller (dans override/controllers/admin). Tu ajoute ensuite dans l'input du fields_form la syntaxe pour rajouter un champ. par exemple array( 'type' => 'text', 'label' => $this->l('variabletest:'), 'name' => 'variabletest', 'size' => 15 ), tu le place dans le tableau "input". Puis ensuite tu modifie la dernier ligne "return parent::renderForm();" par "return AdminController::renderForm();". Edited February 20, 2013 by dimb (see edit history) Link to comment Share on other sites More sharing options...
[email protected] Posted February 20, 2013 Author Share Posted February 20, 2013 Merci, j'ai déjà fait ça, j'ai réussi à afficher les champs dans le front et le back office. Mon principal souci à présent, est de récupérer les données des nouveaux champs depuis ma base ou de les mettre à jour (dans la table "ps_customer"). Link to comment Share on other sites More sharing options...
dimb Posted February 20, 2013 Share Posted February 20, 2013 Je comprend pas bien le probleme. Si c'est un champ texte à la création d'un client il est vide. Et quand vous modifiez un client le champ est bien rempli avec l'info de la base vu que vous arrivez à l'afficher... S'il s'agit de donnée precise à rentrer (comme un choix monsieur/madame/mademoiselle), il faudrait mieu faire une liste déroulante ou un radio button. Link to comment Share on other sites More sharing options...
[email protected] Posted February 20, 2013 Author Share Posted February 20, 2013 La plupart des champs à ajouter sont des listes déroulantes, cependant j'ai pu résoudre mon problème en ajoutant le code suivant dans override/classes/AdminCustomerController.php : class AdminCustomersController extends AdminCustomersControllerCore { public function __construct() { parent::__construct(); $this->_select .= ', a.tel, a.model, a.color'; $this->fields_list['tel'] = array( 'title' => $this->l('Téléphone') ); $this->fields_list['model'] = array( 'title' => $this->l('Modèle') ); $this->fields_list['color'] = array( 'title' => $this->l('Couleur') ); } } 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