Jump to content

Ajout d'un champs de type "Checkbox" dans la fiche client


Recommended Posts

Bonjour à toutes et à tous.

 

Je viens vers vous au sujet d'un problème que je rencontre actuellement pour créer des "cases à cocher" dans le formulaire de modification de la fiche client.

 

Je souhaite ajouter un champs "participation aux expos" avec deux choix possibles. Ceux-ci devront être stocké sur mysql. J'ai créé deux

 

Pour reprendre l'historique de mes modifications :

 

- J'ai overridé le fichier Customer.php pour y ajouter ce code :

	/** @var string Expo 1 */
	public $expo1;

	/** @var string Expo 2 */
	public $expo2;

ainsi que ce code dans "public static $definition" :

'expo1' =>	array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
'expo2' =>	array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),

Ensuite, j'override AdminCustomersController.php et j'y ajoute :

			$this->fields_form['input'][] = array(
				'type' => 'checkbox',
				'name' => 'expo1',
				'values' => array(
	            			'query' => array(
						array(
						'id_option' => 'NOM EXPO 1',
						'name' => 'NOM EXPO 1'
						)
					),
	           			'id' => 'id_option',
	                		'name' => 'name'
				)
			);
			$this->fields_form['input'][] = array(
				'type' => 'checkbox',
				'name' => 'expo2',
				'values' => array(
	            			'query' => array(
						array(
						'id_option' => 'NOM EXPO 2',
						'name' => 'NOM EXPO 2'
						)
					),
	           			'id' => 'id_option',
	                		'name' => 'name'
				)
			);

J'ai aussi ajouté dans $this->tpl_view_vars

'expo1' => $customer->expo1,
'expo2' => $customer->expo2,

Pour la partie mysql, j'ai créé mes deux champs via la commande :

ALTER TABLE `ps_customer`
ADD `expo1` VARCHAR(64)
ADD `expo2` VARCHAR(64)

Pour faire apparaître les champs à la page d'inscription, j'ai aussi modifié les fichiers AuthController.php et authentification.tpl mais je ne pense pas qu'ils soient liés à ce problème. Lors de l'inscription, les cases cochés sont bien mises à jour dans mysql.

 

Je ne rencontre pas de message d'erreur lors du chargement de la page mais lorsque je coche l'une des cases, ou les deux, il n'y a pas de mise à jour sur mysql. Et lorsque je reviens sur la modification de la fiche, logiquement les cases sont décochées.

 

Les infos de mon serveur/install :

Version de PrestaShop 1.6.0.9

Version de MySQL 5.6.24-2+deb.sury.org~vivid+2

Version de PHP 5.6.4-4ubuntu6.2

 

Merci d'avance pour vos réponses.

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
  • 9 months later...

Bon au final je n'ai pas fait comme ça.

 

En fait je voulais mettre une case à cocher obligatoire du type "j'accepte les condition d'utilisation et les CGV....".

Pour faire cela, j'ai juste rajouté un champ dans le formulaire si la case n'est pas cochée alors une erreur.

Si c'est coché alors pas de message d'erreur et donc presta enregistre les infos normalement.

 

Pas besoin de le rajouter en base ni quoi que se soit. Juste une modif dans le tpl et dans AuthController pour tester la valeur.

Edited by Regaton (see edit history)
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...