Comment personnaliser registre et les formulaires de contact dans PrestaShop?
J'ai besoin de savoir comment personnaliser mon contact et d'enregistrer des formulaires. Comment ajouter de nouveaux champs ( et ) et de prendre les informations de ces champs requis ou non requis.
J'ai besoin de savoir quels fichiers je dois modifier pour ces formes...
J'utilise prestashop 1.4.7.0
Vous devez vous connecter pour publier un commentaire.
C'est vraiment deux questions distinctes qu'il y a de grandes différences dans la façon dont vous gérer chaque cas.
Réponse 1
Pour le formulaire d'inscription, vous pouvez écrire un module qui contient deux crochet des fonctions de gestionnaire. Ces derniers seront:
La première fonction vous permet d'ajouter des champs supplémentaires dans le formulaire d'inscription (par défaut, ce sont insérés à la fin de la forme
authentication.tpl
, bien que vous pouvez les déplacer comme un seul groupe d'ailleurs). Il faut simplement retourner le formulaire supplémentaire html dont vous avez besoin.La deuxième fonction que vous offre deux paramètres pour gérer le processus de création de compte. C'est exécutée après la norme champs ont été validés et le nouveau client a été créé. Malheureusement, vous ne pouvez pas faire de la validation de votre champs supplémentaires à l'aide de cette (vous devez soit utiliser du javascript ou de remplacer
AuthController
pour effectuer votre propre authentification dans lepreProcess()
fonction de membre). Dans un de mes propres modules personnalisés pour un site, j'ai suivantes, par exemple:$params['newCustomer']
est un standard de Prestashop élément dans le tableau et contient le nouveau client de l'objet. Votre champs seront dans le$params['_POST']
tableau - dans mon cas, c'était un champ de saisiemembership_number
.Réponse 2
Pour le formulaire de contact c'est beaucoup plus compliqué, j'ai peur. La méthode la plus simple pour le html c'est juste dur de votre champs supplémentaires dans le fichier de modèle
contact-form.tpl
.À réellement traiter le formulaire, vous devez créer un remplacement pour le contrôleur par ceating un fichier appelé
ContactController.php
dans/<web-root>/<your-optional-ps-folder>/override/controller
contenant quelque chose comme:Une autre méthode serait de simplement copier l'intégralité du prétraitement de la fonction de
controllers\ContactController
et juste bidouiller jusqu'à ce qu'il fait ce que vous voulez....