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.
Il faut en effet creer un
Permalien Soumis par tostinni le 17 Avril, 2007 - 21:29
Il faut en effet creer un module...
Merci tostinni pour la
Permalien Soumis par awan le 17 Avril, 2007 - 22:02
Merci tostinni pour la réponse,
En fait la doc. pour la création de module est assez grande et est en anglais. Est-ce que je suis obligé de lire tous ce doc. pour pouvoir créer un formulaire ??
Sinon qqun pourrait m'expliquer comment créer un module (quel code à mettre dans quel fichier)??
En fait le Forms API
Permalien Soumis par tostinni le 17 Avril, 2007 - 23:53
En fait le Forms API Quickstart Guide te montre toutes les etapes de la creation d'un formulaire, mais ne te dis pas qu'il faut mettre tout ca dans un module.
Donc si tu as tout bien suivi, tu dois avoir:
- tonModule_form qui affiche tous les champs du formulaire en utilisant le hook_form
- tonModule_page qui utilise drupal_get_form pour afficher ton formulaire.
- tonModule_menu qui permet de definir les callbacks et menus en utilisant le hook_menu
Du coup pour tester ca il faut que tu crees un module qui s'appelle tonModule le mettre ds un repertoir a lui accompagne d'un fichier .info, l'activer, aller sur l'url "?q=tonModule" et le tour est joue tu vois ton formulaire.
Apres tu peux raffiner tout ca avec hook_validate, hook_submit et d'autres afin de gerer les donnees entrees dans ton formulaire.
A part ca je te conseille de jeter un coup d'oeil sur des petits modules comme tracker ou watchdog qui mettent en situation reele ces differents hooks.
Merci tostinni, J'ai réussi
Permalien Soumis par awan le 18 Avril, 2007 - 17:35
Merci tostinni,
J'ai réussi à créer un formulair avec les Forms APIs.
J'ai une autre question maintenant. Je doit utiliser du dhtml dans mon formulaire. Je m'explique :
J'ai une liste déroulante qui a les valeurs suivantes :
Langues :
Français
Anglais
Allemand
Espagnol
Autre (spécifier)
Et j'ai un textfield caché.
Si mon utilisateur sélectionne Autre(spécifier), ce textfield doit apparaitre.
Alors ma question
1)Est-ce que c'est possible de faire ??
2)Si oui, est-ce qqun à un idée comment fair??(une indice, un lien etc...)
Je vous remercie les amis.
Aidez-moi s'il vous
Permalien Soumis par awan le 19 Avril, 2007 - 08:31
Aidez-moi s'il vous plait.
J'ai vraiment besoin de faire cela. Et je trouve nulle part ces infos.
Merci les gars.
Salut, Sincerement je suis
Permalien Soumis par tostinni le 19 Avril, 2007 - 18:40
Salut,
Sincerement je suis desole mais j'ai vraiment aucune idee de comment faire ca... Enfin si en utilisant du JS dans un formulaire HTML ca se fait facilement.
Cependant a ma connaissance, form API ne permet pas ce genre d'interaction entre les champs...
A l'heure actuelle, ce que tu pourrais faire est jeter un oeil sur Dynamic and Multipage forms with Forms API qui est a mon avis le seul moyen de parvenir a cela avec Drupal.
Et puis si jamais t'es motive, fait une proposition pour le form API 3.0 avec plein de AJAX dedans ;)
Bon courage
Hello, Comme évoqué dans
Permalien Soumis par drupalfrance le 23 Avril, 2007 - 22:34
Hello,
Comme évoqué dans un autre post (soumis par awan également) :
- Oui, c'est possible
- C'est du JavaScript, pas du Drupal. Ca serait un peu compliqué de tout t'expliquer ici mais il y a plein de ressources en ligne gratuites et bien faites sur JavaScript.
La seule chose spécifique à Drupal, c'est comment lier un fichier JavaScript à une page de ton site Drupal (je l'ai expliqué dans l'autre post).
Note à tostinni : la page "Dynamic and Multipage forms with Forms API" explique comment "découper" un formulaire en plusieurs écrans, mais sans JavaScript ni AJAX.
Yep yep j'ai bien vu que ca
Permalien Soumis par tostinni le 24 Avril, 2007 - 19:20
Yep yep j'ai bien vu que ca permettait juste de decouper le formulaire, le truc c'est que vu que awan demandait de faire un formulaire drupal en Ajax (pour avoir de l'interaction entre differents champs), a mon humble connaissance c'est pas possible donc je lui proposais l'alternative "multi pages"...
Car sinon tu perds la simplicite de creation d'un formulaire drupal si tu inseres ton code comme etant une simple page HTML (je pense meme que c'est pas super recommandable nan ? )
Bonjour, Je rebondit sur ce
Permalien Soumis par vinch77 le 11 Juillet, 2007 - 00:52
Bonjour,
Je rebondit sur ce poste toujours à propos de la création de formulaires.
Après avoir compris les api et créé un module, comment afficher le formulaire dans une page précise ?
Merci d'avance pour vos réponses !
Salut, Il faut utiliser le
Permalien Soumis par drupalfrance le 11 Juillet, 2007 - 09:25
Salut,
Il faut utiliser le hook_menu() (voir la doc dans l'API) qui te permet de relier une URL à une fonction (qui affiche le form).
Bonsoir, Merci pour ta
Permalien Soumis par vinch77 le 11 Juillet, 2007 - 22:30
Bonsoir,
Merci pour ta réponse, mais décidement ca ne marche pas. Au bout d'un moment j'ai finalement reprise l'intégralité du code présent dans Drupal.org à l'adresse suivante : http://drupal.org/node/68159#comment-129394
que j'ai placé dans un module myform.
Ensuite deux nodes ont été créés (sinon je rencontre une erreurs) :
- myform/sample
- myform/multiple
Une fois le module activé le lien dans le menu apparaît bien mais quand je clique dessus je tombe sur une page sans formulaire !
J'ai dû rater un truc dans la doc mais je ne comprends pas quoi ...
Si vous avez une idée you're welcome !
Salut, Tu as vu les
Permalien Soumis par drupalfrance le 12 Juillet, 2007 - 08:28
Salut,
Tu as vu les explications de tostinni plus haut sur cette page ? Elles sont hyper claires, difficile de faire mieux. Je te conseille vivement le lire le Forms API Quickstart Guide, tout est là !!
Au final, tu dois te retrouver avec un module contenant les fonctions suivantes :
re re merci pour ta réponse
Permalien Soumis par vinch77 le 12 Juillet, 2007 - 23:41
re re merci pour ta réponse mais décidément ca ne marche pas. Effectivement j'ai tout lu (le quick start guide, des exemples, le post de totsinni....) mais aucun formulaire ne s'affiche dans la page qui reste définitivement vide (et aucune trace dans le code source généré). y'a un truc qui cloche, je vais tout réinstaller, on verra bien.... a moins qu'il faille ajouter un truc dans la page elle même (mais ayant lu pas mal de choses ces jours-ci je ne pense pas)
argh, ca marche en local
Permalien Soumis par vinch77 le 12 Juillet, 2007 - 23:45
argh, ca marche en local .... je comprends pas ce qui déconne sur le serveur ???? quelqu'un aurai une idée sur une éventuelle incompatibilité ou autre ?
Je déterre un peu le sujet
Permalien Soumis par ReKoNE le 22 Octobre, 2010 - 16:34
Je déterre un peu le sujet car j'ai un soucis similaire...
J'essaye de créer une page contenant un formulaire directement depuis mon module mais lorsque j'accède à la page, celle-ci est entièrement vide.
Voici le contenu de mon module :
<?php
// $Id$ function calendrier_noel_init() {
// The following function needs to be disabled in a Prod environment
// This is usefull in a Dev environment as it will rebuild the menu without having to reload the modules page everytime you make a change to the hook_menu
menu_rebuild();
}
function
calendrier_noel_form() {$form['champ1'] = array('#type' => 'textfield', '#title' => 'Champ 1');
$form['submit'] = array('#type' => 'submit', '#value' => 'Envoyer');
return $form;
}
function
calendrier_noel_menu() {$items['calendrier-noel'] = array (
'title' => "Titre de la page",
'page callback' => 'calendrier_noel_callback',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function
calendrier_noel_callback() {$output = 'Texte avant le formulaire';
$output .= drupal_get_form('calendrier_noel_form');
$output .= 'Texte après le formulaire';
return $ouput;
} ?>
A noter que je suis sous Drupal 6.
Quelqu'un aurait-il une idée de ce qui ne va pas ??
Merci d'avance ! :)