[en cours] Construire une URL avec un formulaire

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous.

Il me faut faire un formulaire, je ne trouve pas de tuto, même en anglais, donc je sollicite les "dieux de drupal" pour qu'ils me viennent en aide,
pour me donner des pistes.

BUT du formulaire : Ouvrir une nouvelle fenêtre de navigateur avec une URL construite avec les données du formulaire
exemple d'URL :
http://hotel.reservit.com/reservit/reserhotel.php?lang=FR&hotelid=10410&...

NOTES :

  • lang doit être pris de la langue courante sur mon site.

  • fday, fmonth, fyear valeur du formulaire "Date d'arrivée" avec pop up calendrier pour le choix de date (pas de saisi texte pour eviter validation), (par defaut aujourd'hui).

  • nbnights valeur du formaulaire "nb nuits" : liste de selection valeur de 1 a 10 (par defaut 1)

  • nbadt valeur du formaulaire "adultes" : liste de selection valeur de 1 a 4 (par defaut 1)

ASPECT final : cela devrais ressembler a ca :
http://www.lodge-kerisper.com/fr/index.php#index.php
(la ligne "reservation" sous le slideshow)

Je ne sais pas du tout comment faire: le formulaire (et le pop up calendrier), la construction de l'URL, et la soumission (l'ouverture d'une nouvelle fenetre avec l'URL construite)

Est qu'il faut que je créé un module ?
ou puis-je le faire sans coder (ou peu coder) ?
Merci de me donner des pistes, voire si vous avez des liens sur des tutos, même en anglais.

Merci beaucoup de votre aide

Forum : 

A ma connaissance, sans code ce n'est pas jouable. Il va te falloir créer un module, y ajouter un hook_menu, une fonction de construction du formulaire et une fonction de validation de ce formulaire qui termine sa course sur un appel à drupal_goto vers ton URL. C'est plutôt simple à réaliser mais tu en as pour un cinquantaine de lignes de code où il faut un peu connaitre les API drupal.

Merci

Bon, je me doutais bien qu'il allais falloir "pisser du code". :)
Je devrais m'en sortir puisqu'il fut une époque ou j'étais développeur logiciel.
Drupal n'est pas magique, il y a un moment ou il faut taper dans la tôle.
Je n'ai jamais fais du PHP, mais bon je connais C, C++, SQL donc ca devrais aller.

Par contre, je serais preneur de liens, doc et tutos pour m'aider :

  • Créer un module de block basique

  • référence API Drupal, notamment pour pouvoir retrouver la langue courante

  • Utilisation de JQuery (ou autre), pour faire le pop up calendrier

Si vous connaissez un ou plusieurs tutorial pour faire un petit module,
ca m'aiderais bien a démarrer.

Sinon, le principe (arrêtez moi si je me trompe) c'est de :

  • faire un module qui crée un block

  • dans ce module, créé les différents éléments du formulaire et leurs comportements,

  • mettre le block en place dans une region du theme via l'interface,

  • faire la mise en forme en CSS.

C'est ca ?

Oui ça va, PHP c'est gentillet comme langage, rien à voir avec du C/C++, tu devrais t'en sortir :)

Pour ton approche, c'est bien cela. Pour les tutos :

  • Pour ton formulaire, j'ai un premier jet de tuto, fait moi un PM et je te l'enverrais.

  • Pour ton calendrier, pas besoin de jquery, tu utilises le module date, qui va te fournir un champ "date" avec un calendrier en popup. Y'a tout de même quelques aspects magiques ;-) Un exemple est dans le précédent tuto.

  • Pour créer un bloc : http://arnumeral.fr/node/41 . Désolé le serveur rame bien mais il y a tout de même 10 drupaux qui y tourne sur un pov' via C7...

Bonjour,

J'ai quasiment le même problème à résoudre.

Contexte : un utilisateur (d'un site de mairie) saisit des données dans un formulaire pour payer sa facture d'eau. A la validation du formulaire, il doit être redirigé sur un site du gouvernement pour payer en ligne.

J'ai créé un module contenant le formulaire qui va bien, sa fonction de validation et sa fonction de submit.
Dans la fonction de validation, je teste le bon formattage des données.
Dans la fonction de submit, je récupère la valeur de chaque champ du formulaire et je m'en sers dans la fonction drupal_goto().

Problème : il faut (c'est imposé par le serveur du gouvernement) que cette redirection se fasse dans une nouvelle fenetre.

Questions :
- Est-ce possible avec drupal_goto() ?
- Sinon, faut-il utiliser $form_state['redirect'], $form['#attributes'] = array('target' => 'blank') ou des trucs dans ce style ?