it-swarm.com.de

Wie erstelle ich einen Knoten mit Übermittlungen eines Webformulars?

Ich verwende Drupal 7 und habe einen Inhaltstyp 'NewArticle' mit den Feldern 'Title', 'Text' und 'Image' erstellt. Benutzer haben die Berechtigung, ein 'NewArticle' zu erstellen, aber Ich mag es nicht, die Administrationsleiste anzuzeigen, damit sie einen 'NewArticle' erstellen können.

Stattdessen möchte ich mit Webforms arbeiten. Mein Ziel ist es, ein Webformular mit genau den gleichen Feldern wie der Inhaltstyp 'NewArticle' zu erstellen. Ich möchte also Folgendes: Wenn Benutzer das Formular ausfüllen und senden, wird ein neuer Knoten 'NewArticle' mit den übermittelten Informationen erstellt.

Wie kann ich das machen? Gibt es Module, die dies ermöglichen? Ich kann keine finden ...

6
Jeroen

Anstatt das Webforms-Modul zum Erstellen neuer Knoten zu verwenden, sollten die Benutzer diese direkt unter MY-SITE/node/add/CONTENT-TYPE Erstellen. Der Versuch, Daten aus einem Webformular zu hacken, macht die Sache nur unnötig komplizierter. Blenden Sie die Symbolleiste für andere Benutzer aus und erteilen Sie ihnen die Berechtigung, neuen Inhalt hinzuzufügen. Zuletzt passen Sie das Knotenformular mit einer Vorlagendatei an Ihre Bedürfnisse an und formatieren es mit CSS.

7
Jeroen

Webform-Standardfelder Mit diesem Modul können Sie problemlos viele Knoten mit denselben Webformfeldern erstellen. Dies kann bei offenen Stellen mit Antwortformular, Art der Qualitätsrückmeldung oder was auch immer Ihr Verstand Ihnen vorschlägt, angewendet werden.

Da Sie mehr als einen Webform-fähigen Inhaltstyp erstellen können, können Sie jeweils unterschiedliche Standardfelder anhängen.

(oder)

Webform-Bericht Modul erstellt bei jeder Webform-Übermittlung einen neuen Knoten. Sie können die Daten mithilfe von Ansichten abrufen und an Ihre Anforderungen anpassen.

Mit diesem Modul können Benutzer einfache, dynamische Berichte erstellen, die auf den vom Webform-Modul gesammelten Daten basieren. Es wird ein neuer Knotentyp hinzugefügt, der die Berichtskriterien enthält, und die angezeigten Daten werden automatisch aktualisiert, wenn Webformulare gesendet werden. Die Daten können nach den Vorlieben des Betrachters sortiert werden, ohne die Berichtskriterien zu ändern.

3
Bala

Gibt es Module, die dies ermöglichen?

Ja, das gibt es: Sie können hierfür das Modul Regeln verwenden. Betrachten Sie als Beispiel diese Regel (im Exportformat "Regeln"), die genau das tut, wonach Sie fragen:

{ "rules_create_a_node_from_webform_data" : {
    "LABEL" : "Create a node from webform data",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "webform_rules", "rules" ],
    "ON" : { "webform_rules_submit" : [] },
    "IF" : [
      { "webform_has_id" : {
          "form_id" : [ "form_id" ],
          "selected_webform" : { "value" : { "webform-client-form-191" : "webform-client-form-191" } }
        }
      }
    ],
    "DO" : [
      { "drupal_message" : { "message" : "The webform submitted contains these fields:\r\n\u003C\/ul\u003E\r\n\u003Cli\u003Ethe field labeled \u0022[data:demoform_title-title]\u0022 which has value \u0022[data:demoform_title-value-raw]\u0022.\u003C\/li\u003E\r\n\u003Cli\u003E the field labeled \u0022[data:demoform_text-title]\u0022 which has value \u0022[data:demoform_text-value-raw]\u0022.\u003C\/li\u003E\r\n\u003Cli\u003E the field labeled \u0022[data:demoform_number-title]\u0022 which has value \u0022[data:demoform_number-value-raw]\u0022.\u003C\/li\u003E\r\n\u003Cli\u003E the field labeled \u0022[data:demoform_option-title]\u0022 which has value \u0022[data:demoform_option-value-raw]\u0022.\u003C\/li\u003E\r\n\u003C\/ul\u003E" } },
      { "variable_add" : {
          "USING" : { "type" : "text", "value" : "[data:demoform_text-value-raw]" },
          "PROVIDE" : { "variable_added" : { "var_demoform_text" : "Form variable text" } }
        }
      },
      { "variable_add" : {
          "USING" : { "type" : "text", "value" : "[data:demoform_number-value-raw]" },
          "PROVIDE" : { "variable_added" : { "var_demoform_number_text" : "Form variable number text" } }
        }
      },
      { "data_convert" : {
          "USING" : { "type" : "integer", "value" : [ "var-demoform-number-text" ] },
          "PROVIDE" : { "conversion_result" : { "var_demoformvar_number" : "Form variable number" } }
        }
      },
      { "variable_add" : {
          "USING" : { "type" : "text", "value" : "[data:demoform_option-value-raw]" },
          "PROVIDE" : { "variable_added" : { "var_demoform_option" : " Form variable option" } }
        }
      },
      { "entity_create" : {
          "USING" : {
            "type" : "node",
            "param_type" : "article",
            "param_title" : "[data:demoform_title-value-raw]",
            "param_author" : [ "user" ]
          },
          "PROVIDE" : { "entity_created" : { "article_created" : "Created article" } }
        }
      },
      { "data_set" : {
          "data" : [ "article-created:body:value" ],
          "value" : [ "var-demoform-text" ]
        }
      },
      { "data_set" : {
          "data" : [ "article-created:field-free-format-nr" ],
          "value" : [ "var-demoformvar-number" ]
        }
      },
      { "data_set" : {
          "data" : [ "article-created:field-optionlist" ],
          "value" : [ "var-demoform-option" ]
        }
      },
      { "data_set" : { "data" : [ "article-created:comment" ], "value" : "0" } },
      { "entity_save" : { "data" : [ "article-created" ], "immediate" : "1" } },
      { "drupal_message" : { "message" : "A new article got created, with nid=[article-created:nid] and url=[article-created:url]" } }
    ]
  }
}

Jeder, der ein bisschen mit Regeln und Webform vertraut ist, weiß, dass es oft schwierig ist, Zugriff auf die in einem übermittelten Webformular enthaltenen Daten zu erhalten. Meistens, weil sie beim Erstellen von Regelaktionen nicht zur Auswahl stehen.

Durch die Einführung dieser var-demoformvar-... Variablen (wie in der obigen Regel) können Sie die typische Regelmagie verwirklichen. Weitere Informationen hierzu finden Sie unter meine Antwort bis " Wie erstelle ich einen Knoten aus einem Webformular mithilfe von Regeln? ".

0
Pierre.Vriens

Entschuldigung, ich konnte keinen Kommentar abgeben, als ich gerade beigetreten bin.

Aber zusätzlich zu Jeroens Antwort funktioniert dies recht gut, bis Sie die Einreichungen verfolgen und detaillierte Berichte erhalten möchten, was Webforms recht gut kann!

wenn Sie diese Methode verwenden möchten, kann ich auch Advanced Form Block vorschlagen, mit dem Sie auch das Knoten-Formular in einen Block einfügen und dieses einfach auf einer Seite einfügen können. Dies macht dies überflüssig Link direkt zu einem Knoten hinzufügen Formular und es ermöglicht Ihnen auch, alle Ihre Website-Styling beizubehalten :)

Wenn jemand dies herausfinden kann, bitte verstärken Sie sich!

0
Alex Caputo

Sie können Knoten auch mit dem Modul Knoten zu Webform migrieren auf Webform-Übermittlungen migrieren. Hier ist ein Zitat dazu (von der Projektseite des Moduls):

Migriert Knoten (Drupal 6) zu Webformularübermittlungen (Drupal 7). z.B. Ruft alle Knoten vom Typ 'Artikel' ab und füllt ein Webformular aus, indem für jeden Knoten eine Übermittlung erstellt wird.

0
user30654