Jump to content

Ajout d'un nouveau formulaire


jQuery

Recommended Posts

Bonjour,

 

Alors j'ai un petit souhait qui est d'ajouter un nouveau formulaire crée en PHP ou HTML (peu importe) avec plusieurs champs. Par exemple, si mon client clique sur l'onglet Livraison du bloc Information (je précise si j'ai choisi Livraison, c'est à titre d'exemple), celui ci le redirige vers le nouveau formulaire créé.

 

De plus, le plus important serait de récupérer les données du formulaire dans une Base de Données.

 

Il y a rien d'extraordinaire mais je ne sais pas vraiment dans quel fichier tapé pour la redirection et pour la récupération dans la base de donnée.

 

Merci de tout l'aide que vous pourriez m'apporter.

Link to comment
Share on other sites

Bonjour,

 

Pour effectuer toutes les actions dont vous avez besoin cela passe forcément par la création d'un module.

 

J'avais fait un module de base de demande de devis qui affichait un formulaire et se contentait de l'envoyer par mail (donc pas de solicitation de la base de données). Je peux vous le fournir.

 

Cordialement

Link to comment
Share on other sites

Bonjour math_php,

 

Tout d'abord merci pour votre réponse.

 

Alors oui ça m'arrangerai vivement de voir à quoi ressemble votre formulaire.

 

Mais en faite je voulais que ça passe par une Base de Donnée pour qu'une fois le premier formulaire rempli et validé par un administrateur. Il remplit automatiquement les champs d'un autre formulaire.

 

Cordialement,

 

ps: pour votre module je vous communique mon adresse e-mail -> [email protected]

 

Merci

Link to comment
Share on other sites

  • 3 months later...

Bonjour Corky,

 

Le module était donné à titre d'exemple de code, pas comme quelque chose d'exploitable. (Pas terrible le code d'ailleurs, aujourd'hui je le referai pas comme ça)

Pour voir le formulaire de devis il faut aller sur wwwtonsitepresta/modules/ffauto/devis.php

D'ou la nécessité d'ajouter un lien sur la page d'accueil de ton site.

Link to comment
Share on other sites

Bonjour, pourrais-tu alors m'aider a creer un formulaire "mieux" que celui-ci, mais je voudrai en fait récupérer par mail les données saisies par les visiteurs ?

 

J'ai cherché sur plusieurs topics et ça ne fonctionne pas et je ne vois pas comment faire.

 

Merci

Link to comment
Share on other sites

Celui là, même pas terrible, envoi un mail a l'admin de ton prestashop. (en 1.4, en 1.5 ça doit planter)

 

Avant de commencer :

- quel est la version de Prestashop 1.4.x ou 1.5.x ?

- ou veux tu voir le formulaire (au milieu de la page d'accueil, dans une page à part)?

- juste un envoi par mail ?

- aimes tu les poney (question piège)

Link to comment
Share on other sites

- Oui oui c'est pratique ces CMS, mais c'est un peu compliqué de faire un formulaire avec aussi du js pour corriger les erreurs.

- tu t'en sort bien avec les poneys.

 

Le problème pour être standard, c'est que lors de l'envoi du formulaire il faut avoir un module, un controller ou overrider un controller existant.

 

Ma grippe rampante et mes congés à 17h (dans 25 minutes) ne vont pas me permettre de t'aider beaucoup.

 

Faire un override du CMScontroller pourrait être une solution, mais pour faire les règlages il faudrait quand même un module.

 

Suis de retour dans une semaine, là ou je va pas de web, donc bonne chance.

Link to comment
Share on other sites

  • 2 weeks later...

Ci joint module devis pour Prestashop 1.5.X.

Les devis sont envoyés sur l'email configuré pour la boutique.

 

Donné à titre d'exemple, pour l'utiliser vous devrez ajouter un lien vers le controller où bon vous semblera (sur la page d'accueil, dans un bloc, ...).

 

Lien vers le formulaire index.php?fc=module&module=devisauto&controller=devis

 

Cdlt

devisauto.zip

  • Like 1
Link to comment
Share on other sites

Non ça peut être léger comme des frites.

 

A l'arrivée il faut gérer les champs d'upload, récupérer les images, les stocker de façon unique sur ton hébergement.

 

A partir de là au lieu de les joindre dans le mail, mets juste des liens vers les images dans le code html de ton mail (<img src="ton hebergement"..) comme ça c'est carrément light.

Link to comment
Share on other sites

Ouaih mais non. :P

Il y a juste le controller devis.php et devis.tpl a modifier. C'est vraiment minimaliste et ultra simple comme code.

 

Ton code demandes du travail, et la fierté du faire soi même te rempliras de la joie de la tâche accompli, ou pas.

 

Mettre ton url ?

 

Par contre 3 photos c'est faisable mais les utilisateurs lambda sont rarement compatibles avec 'image de moins de 1 méga' ou 'poids de mon image raisonnable en fonction des capacités d'upload de ma connexion'.

 

Plus technique tu as des upload immédiat (avant envoi du formulaire) avec barre de progression.

 

Pour résumer la modification de mon module peut etre très simple ou très technique.

 

Bonne chance

Edited by math_php (see edit history)
Link to comment
Share on other sites

la très technique me parait bien, mais pas a ma portée. Je voulais savoir aussi, comment faire pour que le formulaire ne soit accessible qu'aux visiteurs connectés (et donc inscrits)?

 

en gros ils cliquent sur une page pour remplir le formulaire, et ça renvoit sur la page "se connecter" si ce n'est pas fait

Link to comment
Share on other sites

Pour filtrer les inscrits

 

if ($this->context->cookie->logged == 1)

ou

if ($customer->logged == 1)

 

Par contre pour inviter le visiteur à se logger on peut afficher un message avec un lien vers AuthController .

Mais suite à authentification avoir un retour automatique au formulaire de devis, ça je connais pas.

 

Apparemment si on ajoute un paramètre back, on peut indiquer l'url sur laquelle il faut revenir.

 

La solution 'très technique' d'upload c'est uploadify (je crois).

Edited by math_php (see edit history)
Link to comment
Share on other sites

  • 1 month later...

@math_php : Ce module est exactement ce que je recherchais ! Merci ! Mais...parce qu'il y a toujours des "mais" quand j'essaie de faire quelque chose...je n'arrive pas à le mettre en place :(

 

Il s'agit bien, arrêtez moi si je me trompe, de l'uploader via FTP dans notre petit dossier "Modules" puis de l'atteindre via l'adresse : www.exempledesite.com/index.php?fc=module&module=devisauto&controller=devis

 

Ou alors j'ai raté une étape ?

Edited by PrestyNews (see edit history)
Link to comment
Share on other sites

@math_php : Ce module est exactement ce que je recherchais ! Merci ! Mais...parce qu'il y a toujours des "mais" quand j'essaie de faire quelque chose...je n'arrive pas à le mettre en place :(

 

Il s'agit bien, arrêtez moi si je me trompe, de l'uploader via FTP dans notre petit dossier "Modules" puis de l'atteindre via l'adresse : www.exempledesite.com/index.php?fc=module&module=devisauto&controller=devis

 

Ou alors j'ai raté une étape ?

 

Tu es allé dans prestashop/module et tu as cliqué sur 'installer' ?

Cdlt

Link to comment
Share on other sites

Je me disais bien que je ne l'avais pas trouvé dans mes modules...Il était en fait sous forme de dossier dans un dossier. Prestashop ne risquait pas de le trouver ! Une bonne chose de faite :D !

 

Si je peux me permettre de solliciter encore une fois ton aide, je n'ai jamais fait de javascript :(.

J'aimerais rajouter les champs "Adresse", "Code postal" et "Ville". Je crois avoir compris le fichier devis.tpl, mais les fichiers devis.php et devis.js sont un peu flous.

Surtout du code comme :

if(!/^0\d(?:\s?\d{2}){4}$/.test(oForm.tel.value)

 

Je pense comprendre qu'il teste les caractères et le nombre de caractères envoyés à la soumission du formulaire, mais..ma compréhension en reste là pour le moment.

Peux-tu m'aider un petit peu s'il-te-plaît ?

 

[EDIT] J'avance ! J'ai réussi à ajouter mes champs dans le .tpl. Seulement, je n'arrive pas à ajouter de messages d'erreur dans mon fichier .js :(

Edited by PrestyNews (see edit history)
Link to comment
Share on other sites

 

J'avance ! J'ai réussi à ajouter mes champs dans le .tpl. Seulement, je n'arrive pas à ajouter de messages d'erreur dans mon fichier .js :(

oForm c'est le nom du formulaire

tel c'est le name du input du champ téléphone

value c'est la valeur

 

Ton javascript pour un champ ajouté dans le tpl :

Like ?<input type="text" name"like" value="">

 

En js :

 if (oForm.like.value != 'beaucoup') {
 valide=false;
    err(oForm.mail,'Vous devez likez  beacoup !');
}

Link to comment
Share on other sites

  • 7 months later...

Je viens d'installer le module formulaire "devisauto" dans prestashop. Mais je n'ai rien qui apparait sur mon site... quand je tape l'adresse :
www.monsite.fr/?fc=module&module=devisauto&controller=devis

Je dois faire une manip particulière?

Je précise que je l'ai installé et activé comme module ;)

 

Link to comment
Share on other sites

  • 3 months later...
  • 5 months later...

Je cherche aussi à faire un formulaire custom avec quelques champs et envoi d'un e-mail mais le module est fait pour la 1.5. Est-ce possible de l'adapter pour une 1.6 ? Vu que cette version est sortie il n'y a pas longtemps, il n'y a pas encore beaucoup de choses pour elles sur le net.

 

EDIT : je viens de tester sur une 1.6, ça fonctionne. Il me semble qu'il y a quand même pas mal de modification dans prestashop entre une 1.5 et une 1.6. Est-ce que tu peux confirmer que le module est compatible avec la nouvelle version ?

 

Merci !

Edited by makinero (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...