it-swarm.com.de

Wie binde ich ein Knotenerstellungsformular in eine Ansicht ein?

Ich habe eine Ansicht mit einigen Feldern und ein paar Linkelementen.

Wenn ich auf die Linkelemente klicke, sollte in der Ansicht ein mit dem Link verknüpftes Formular zur Knotenerstellung angezeigt werden (AJAX)).

Die Lösung, die ich mir vorstellen kann, besteht darin, die Formulare in die Ansicht einzubetten, aber keine Ahnung, wie das geht?

Was ist der beste Weg, um dies umzusetzen?

7
kmdhrm

Hoffe das wird dir helfen,

In Drupal 7) können Sie durch die folgenden Schritte erreichen

  • Sie können ein Knotenerstellungsformular in eine ANSICHT einbetten

    • Entweder in VIEW Header oder Sie können eine neue VIEW erstellen und an Ihre VIEW anhängen
  • In diesem Beispiel binde ich in Views Header ein. Das Einbetten in Views Header ist die bessere Option. Klicken Sie, um Views Header hinzuzufügen

    enter image description here

  • Wählen Sie Global: Textbereich

    enter image description here

  • Fügen Sie den Code PHP) hinzu und vergessen Sie nicht, das Textformat in PHP zu ändern.

    enter image description here

  • PHP-Code

    
    <?php 
        module_load_include('inc', 'node', 'node.pages');
        $node_form = node_add('node_type');
        print drupal_render($node_form);
    ?>
    

Hinweis :

  • Vergessen Sie nicht, node_type im PHP Code) zu ersetzen.

  • Verwenden Sie hook_form_alter für die Knotenformularumleitung, da das Formular nach der Knotenerstellung zur Knotendetailseite umleitet. Wenn Sie zu Ihrer Seite umleiten möchten, verwenden Sie $form_state['redirect'] = 'mycustompage';Referenz

  • Aktivieren Sie das Modul PHP Filter mit admin/modules

enter image description here

  • Legen Sie die Berechtigungen für dieses Modul fest, indem Sie "Administrator" für Execute PHP) aktivieren Code wie folgt:

enter image description here

Wenn jemand eine bessere Lösung hat, teilen Sie diese bitte mit.

5
inizio

Schauen Sie sich dazu Inline Entity Form an. Der Commerce Kickstart verwendet dies als Teil des Rezepts für die Verwaltung von Produkten und Produktvarianten. Ich bin mir sicher, dass mehr dahinter steckt, als ich mich im Moment erinnern kann, aber wenn dies vielversprechend aussieht, werde ich zurückkehren und diese Antwort verbessern (oder vielleicht helfen andere, diese Antwort zu verbessern).

Ein mögliches alternatives (oder kostenloses?) Modul könnte Entity Views Attach sein, das meiner Meinung nach auch im Commerce-Kickstart eingesetzt wird.

1
emjayess

Wenn Sie gerne mit benutzerdefiniertem Code spielen, wurde bei StackOverflow eine ähnliche Frage gestellt, und es gab einige ziemlich umfangreiche Lösungen zum Einbetten von Formularen in eine Ansicht. Alles, was Sie tun müssten, ist, die form_id des für Ihren Typ spezifischen Knotenerstellungsformulars zu verwenden und es in eine der veröffentlichten Lösungen zu platzieren hier auf Ihrer Site.

1
KyleM

Ich kann die von inizio veröffentlichte Views Headers-Lösung nicht kommentieren. Ich habe nicht genug Ruf.

Nun, ich möchte posten, dass Sie die Formularumleitung nach dem Absenden mit Rules lösen können und kein benutzerdefiniertes Modul erstellen müssen, den hook_form_alter.

  • Erstellen Sie eine Regel, die unter "Nach dem Speichern neuer Inhalte" für Ihren Knotentyp ausgelöst wird
  • Fügen Sie eine Bedingung hinzu, vergleichen Sie Daten und vergleichen Sie den Selektor [site: current-page: path], der Ihrem Ansichtspfad entspricht
  • Hinzufügen einer Aktionsseitenumleitung zum Ansichtspfad

Kann auch nützlich sein Form Block und Advanced Form Block-Module, aber wenn Sie PHP-Code in Ansichtskopfzeilen einfügen, verhindern Sie, dass Sie ein zusätzliches Modul installieren

Und fertig!

0
ferriol