Jump to content

[Résolu] Ajout De Champ Dans Le Formulaire D'inscription, Niveau Back Office


Recommended Posts

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 by [email protected] (see edit history)
Link to comment
Share on other sites

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 by dimb (see edit history)
Link to comment
Share on other sites

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 by dimb (see edit history)
Link to comment
Share on other sites

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

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

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