Formulaire tout simple, question de base

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,

Je vous contacte car je ne comprends rien de rien a Dupal malgrès pas mal d’heure de labeur. Désolé d'avance pour la simplicité de ma question :

Je cherche à créer un lien sur mon site qui affichera à l’utilisateur une page dans laquelle il disposera d’un formulaire avec deux champs textes à remplir. Une fois validées les infos sont envoyées en bases. (Il devra également pouvoir les consulter sur une autre page. Mais ca c’est une autre histoire)

C’est simple, mais je n’y arrive pas du tout et pense être totalement à côté de la plaque.

Question :

  • Faut'il créer un nouveau type de contenu avec l’aide de cck pour ajouter deux champs ? (si oui comment faire pour que l’utilisateur ne puisse pas saisir de texte, choisir le menu dans lequel il doit s’afficher, le format, .. bref ne laisser que les deux champs)

  • Faute il créer un nouveau node de type page et y ajouter des champs en codant du php ?

Merci d’avance pour vos réponses (désolé si ca vous paraît trop trivial)

Vinch

Forum : 
Version de Drupal : 

Salut,

Le plus simple pour faire ce que tu veux est en effet de créer un type de contenu avec CCK. Le truc, c'est qu'un type de contenu CCK possède obligatoirement un titre (c'est inhérent à Drupal, on ne peut pas le retirer... sans une petite bidouille). L'idée, c'est donc de renommer le champ Titre par défaut pour qu'il corresponde à l'un de tes champs texte, et le 2e champ tu le crées avec CCK.

Ton utilisateur verra alors un formulaire avec 2 champs texte. Le contenu créé via ce formulaire sera ensuite accessible à une adresse du style tonsite.com/node/56 (où 56 est l'id du noeud créé). Tu peux alors ajouter l'url node/56 manuellement dans le menu de ton choix (via l'admin), mais le plus simple est peut-être de faire une vue (module Views) qui liste automatiquement tous les contenus de type "formulaire 2 champs".

En fait cela dépend tout à fait de ce que tu veux faire. Les utilisateurs "devront également pouvoir les consulter sur une autre page", et ce n'est pas du tout une autre histoire, c'est même le noeud du problème.

Quelles sont ces données? Est-ce qu'elles sont individualisables? Est-ce qu'elles sont liées à autre chose? Qui a le droit de les saisir? Sont-elles modérées? etc.

Selon les réponses à ces questions, il y a deux approches radicalement différentes.

  1. Le premier choix est de s'appuyer sur la gestion de contenu fournie par Drupal (c'est le module "node"). Pour cela, on peut créer les champs CCK qui conviennent et donner à certains rôles le droit de poster du contenu de ce type. Dans ce cas, les utilisateurs "non administrateurs" ne verront que très peu de champs dans la fenêtre de saisie (s'ils n'en ont pas le droit, ils ne verront pas les élements liés au choix du menu, du format, etc.). Pour l'affichage, le module Views permet ensuite de faire des requêtes complexes sur les contenus publiés, de permettre aux utilisateurs de trier, de filtrer, etc.

  2. La deuxième approche consiste à programmer soit-même son formulaire. Drupal offre pour cela un API très pratique, baptisé Form 2. A la validation du formulaire, tu peux faire ce que tu veux avec les données.

J'espère que cela vous aidera dans vos premiers pas sous Drupal.

Bonsoir,

Merci beaucoup pour vos réponses. Elles m'ont permis d'avancer dans ma réflexion et mieux comprendrela notion de contenu.
En fait je pense résoudre le problème par la création d'un module implémentant les api form pour un node particulier, appelé par tous et n'ayant comme contenu que le formulaire. Les données seront ensuite stockées en base. Il n'y aura donc pas de création de 'page' ou autre dans ce cas.

En fait il me semble qu'il faut donc distinguer les form créés avec cck qui permettent aux utilisateurs de formater le contenu à publier, et les form qui répondent à la saisie et aux stockage de 'données pures' qui sont appelé au travers d'un contenu commun à tous.
...oula y se fait tard !

merci encore !

vinch

Maintenant c'est parti pour les ap