[résolu] Publier les résultats d'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,

Je suis un tout récent utilisateur de Drupal et pour ne pas arranger les choses, je ne connais pas le langage PHP donc je ne pourrais pas me lancer dans du Déve pointu.
J'ai l'impression que ma demande est relativement particulière parce que je ne trouve aucune réponse à mon problème que ce soit sur le forum drupal FR ou EN.
Je vais essayer de vous décrire mon besoin ci-dessous.

J'ai besoin de créer des formulaires qui seront renseignés par les utilisateurs authentifiés. Jusque là aucun soucis en utilisant le module Webform.
Par contre là où je bloque c'est que avec le module Webform, quand l'utilisateur clique sur le bouton Submit, les résultats sont enregistrés dans un fichier 'Résultat' qui n'est visualisable qu'en Back-Office par l'administrateur.
Mon besoin est que, quand l'utilisateur clique sur le bouton 'Submit', le résultat soit publié sur le site sous forme d'Article ou équivalent.

Je ne trouve pas de paramétrage dans Webform qui permette cela.
Connaissez-vous un module ou un bout de code associé à un module qui réponde à ce besoin car ça fait 3 jours que je tourne en rond?
Ou alors Drupal ne peux pas répondre à ce besoin?

Pour ceux qui connaissent, avant j'utilisais le CMS Joomla avec le module Seblod qui permettait de répondre à ce besoin.

Merci d'avancesigfried321

Version de Drupal : 

Webform 3 n'est pas adapté pour ce type de besoin car il utilise son propre système de stockage des données saisies dans des champs propres à webform. Par contre la nouvelle version de Webform 4 utilise, je crois, les fields de Drupal et il doit être possible alors de les afficher comme bon te semble.

Sinon tu peux regarder du côté de Entity form

Ou encore te poser la question, si au final il ne serait pas plus opportun de créer un type de contenu que les utilisateurs pourraient créer. Tout dépend du besoin, mais si tu souhaites publier le résultat du formulaire sur le site, il semblerait que l'utilisation des noeuds classiques semble plus approprié.

Bonjour sigfried321,

Je vois bien quel est le soucis et tu peux désormais te réjouir ;) webform fait déjà très bien cela. En effet comme tu l'a remarquer il met les résultats pour les admins et enfaîte c'est déjà bien une création de node ce qu'il fait mais un node spécial qui n'est visible pour un admin avec une administration des permissions de base. Tu peut tout a fait paramétrer les permissions de sorte que tout le monde puisse voir les résultats de submission ! Pour ce faire voici la marche a suivre : rubrique admin/people/permissions faire une recherche sur "webform" et la première ligne ==> "Accéder à tous les résultats de formulaires" et a cocher pour les rôles que tu désire. ensuite je t'invite a faire le test et prendre l'url d'un webform submission et l'afficher en anonyme / connecter ou role que tu a définis (le rendu de cette page de submission est aussi surchargeable a terme si tu a envie de custom tout ca).

De plus sinon ce qui aurait été possible mais moins facile si tu n'est pas encore très a l'aise avec la form API de drupal. Ce serais donc de créer ton propre formulaire avec hook_form et tout ceux qui l’accompagne ( submit / validate etc..) ensuite dans ton module custom récupérer les données du formulaire dans le form_state et créer un node in code avec les infos du form state. Mais pour ton cas qui est simple webform suffira.