Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Webform in Views rendern [gelöst]

Eingetragen von PhilippCar (92)
am 30.09.2016 - 10:58 Uhr in
  • Views
  • Drupal 7.x

Hallo Community,
ich habe folgendes Problem und finde irgendwie nicht eine Lösung:

Ich möchte in einer View 2 Dinge ausgeben:
1. Die Inhalte einer Form (ist kein Problem für mich)
2. In jeder Zeile eines Datensatzes soll eine zweite Form, also ein Formular (keine Dateninhalte!), angezeigt werden. Diese Form ist je Zeile identisch und hat nichts mit der ersten Form zu tun.

Wie geht man hier am besten vor?

Ich habe schon diverses versucht:
1. Einfach eine 2. Form in die View anzeigen geht nicht, da diese nur ein einziges Mal angezeigt werden kann. Ich möchte sie aber je Zeile X mal haben, sooft ein Datensatz existiert.
2. In die erste Form habe ich die 2. Form als Entity-Referenze integriert. Jedoch kann ich in meiner View diese Form nicht anzeigen lassen - wieso, verstehe ich nicht.

Hat jemand einen Tipp?

‹ Views Settings bei Felder nicht wählbar Webform in Views rendern [gelöst] ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Formular haben nicht mit Views zu tun

Eingetragen von ronald (3857)
am 30.09.2016 - 12:09 Uhr

eine View ist eine Datenbankabfrage.

Du möchtest wohl verknüpfte Datensätze erfassen.

Dafür gibt es Entities, Entity_reference, Entity_UI und entity_inline_form

Schau dir die module mal an, ich denke, das ist es, was du suchst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke, die Module habe ich

Eingetragen von PhilippCar (92)
am 30.09.2016 - 13:11 Uhr

Danke, die Module habe ich schon alle installiert. Bei der praktischen Nutzung kommt bei mir jedoch nicht das raus, was ich will. Das ist das Problem.

Kennst du ein gutes Tutorial dazu?

In diesem Fall will ich eigentlich keine verknüpften Datensätze. Ich wollte Entities nur als Hilfmittel nutzen, da ich keine andere Möglichkeit sehe.

Mein Ziel:

Ich möchte in der View einen Datensatz zusammen mit einer einzigen Webform ausgeben, wobei die Webform immer zusammen mit einem Datensatz angezeigt wird. Es besteht also ei 1:n Verhältnis zwischen Webform und Datensätzen(n.)
Vllt ist es auch eine spezielle View-Einstellung, die ich noch nicht gefunden habe?!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Form im View Template rendern

Eingetragen von glycid (921)
am 30.09.2016 - 14:28 Uhr

Moinsen,

du müsstest deine Webform im Template der View, bzw. des Records rendern. Im Template:

<?php
$output
= drupal_get_form('MEINE_WEBFORM_ID');
drupal_render($output);
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

cool, dank dir! ich hab mir

Eingetragen von PhilippCar (92)
am 30.09.2016 - 15:31 Uhr

cool, dank dir! ich hab mir fast gedacht, dass es nirgends über die Einstellungen geht!

Wo finde ich meine datei genau?
sites/all/modules/views/webform/...

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich bin jetzt doch nicht in

Eingetragen von PhilippCar (92)
am 30.09.2016 - 16:07 Uhr

ich bin jetzt doch nicht in die PHP-datei3 gegangen, sondern habe das PHP Modul installiert https://www.drupal.org/project/views_php

In der View habe ich dann bei "Value code"

Zitat:

$output = drupal_get_form('check_box_firmenanschreiben');

eingetragen und bei "Output Code"

Zitat:

<?php
drupal_render
($output);
?>

Laut dieser Seite http://www.webtotum.de/blog/drupals-views-modul-mit-php-erweitern muss man wohl mit den Delimiter aufpassen (je nach Feld).

Blöderweise geht es immernoch nicht :(

ich habe den Machine name: "check_box_firmenanschreiben" des Content Typs verwendet, da ich davon ausging, dass dies die WEBFORM_ID ist. Oder irre ich mich?
Wo findet man sonst die WebformID?

  • Anmelden oder Registrieren um Kommentare zu schreiben

PhilippCar schrieb Oder irre

Eingetragen von glycid (921)
am 30.09.2016 - 18:25 Uhr
PhilippCar schrieb

Oder irre ich mich?

ja, der maschinenname des Content types hat nix mit der form ID zu tun. Um an die Form ID zu kommen, gibt es verschiedene Wege. Ein sehr einfacher steht hier (Antwort 2) --> nicht vergessen, die minuszeichen durch Unterstriche zu ersetzen....

Mit dem Views php Quark- Dingens weiss ich auch nicht. Machs doch im Template: Anleitung

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dankee!!!! 1. habe ich

Eingetragen von PhilippCar (92)
am 04.10.2016 - 14:22 Uhr

Dankee!!!!

1. habe ich hinbekommen und die ID aus der HTML geholt.
2. habe ich dank deiner Anleitung versucht. Verstehe ich es richtig, dass man sich einen Dateinamen aussuchen muss, der nicht fett ist? Den habe ich nämlich gewählt und im View Verzeichnis gespeichert. Komischerweise erscheint dieser dann nicht fett und der befehl daraus funktioniert auch nicht ... Hast du da noch einen Tipp?

Die von dir genannten Befehle
$output = drupal_get_form('webform_client_form_17');
drupal_render('$output');
habe ich in der Doku nachgelesen und sollten auch mit Drupal 7 funktionieren - tun sie aber nicht.

Muss ich da noch irgend ein Modul oder ähnliches installieren? Ich finde es sehr merkwürdig..... An der Stelle, wo der "Value code" eingetragen werden muss stehen noch "avaliable variables" - im Detail steht dort nur:

Zitat:

$view: The view object.
$handler: The handler object.
$static: A variable that can be used to store reusable data per row.
$row: Contains the retrieved record from the database (e.g. $data->nid).
$row->entityform_id: Entityform Submission: Entityform submission ID
$row->field_text: Field: Test Field
$row->label: Entityform Type: Label
$row->module: Entityform Type: Module
$row->submit_entityform_type: Entityform Type: Submit Link
$row->php: Global: PHP
$data: Contains the retrieved record from the database (e.g. $data->nid).
$value: Value of this field.

Aber dort steht nichts von deinen 2 Befehlen oder irgend einer API. Kann es daher sein, dass bei mir etwas fehlt?

DAAAAANKE schonmal für deinen hilfreichen Tipps!

  • Anmelden oder Registrieren um Kommentare zu schreiben

1. Die views Template Datei

Eingetragen von glycid (921)
am 05.10.2016 - 13:18 Uhr

1. Die views Template Datei kommt nach: /sites/all/themes/DEINTHEME/templates
2. Danach Theme Registry neu aufbauen, bzw. alle caches leeren.

Jetzt sollte das Template verfügbar sein. Dann an geeigneter Stelle:

$output = drupal_get_form('webform_client_form_17');

Dann guckst du dir am besten mal mit dem Devel Modul an, was in $output drin ist ;) Wenn das Devel Module installiert ist, kannste auch einfach mal im Template ein dpm('hallo welt'); einbauen und gucken ob auch wirklich was rauskommt, wenn die View aufgerufen wird.

Wenn dein Form Array in $output enthalten ist, dann mit drupal_render() oder auch print() ausgeben....

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke, es lag an dem falschen

Eingetragen von PhilippCar (92)
am 05.10.2016 - 14:50 Uhr

Danke, es lag an dem falschen ordner!!!
der Tipps mit dem deveolpermodul ist auch prima! das kannte ich noch nicht.

Da ich Drupal 7 nutze, muss es drupal_render() heissen, da es ein Array ist. Komischerweise funktioniert der befehl drupal_render() nicht. Immerhin lässt sich über die PHP Datei der View aber etwas anzeigen :). Ich muss mal schauen, wieso drupal_render fehler verursacht ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

PhilippCar

Eingetragen von glycid (921)
am 06.10.2016 - 07:08 Uhr
PhilippCar schrieb

Komischerweise funktioniert der befehl drupal_render() nicht. Immerhin lässt sich über die PHP Datei der View aber etwas anzeigen :). Ich muss mal schauen, wieso drupal_render fehler verursacht ;)

Es kann sein, dass du in einer Template Datei print nutzten musst. Versuch mal:

<?php print drupal_render($output); ?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke, das klappt leider auch

Eingetragen von PhilippCar (92)
am 06.10.2016 - 10:33 Uhr

Danke, das klappt leider auch nicht.

Ich habe auch schon dpm('hallo welt'); in der View-Datei verwendet, um sicherzustellen, dass überhaupt etwas an der richtigen Stelle ausgegeben wird. Ich gebe es in einer zuvor definierten Spalte aus, wo ein anderer Wert ausgegeben wird

Muss ich denn in den View-Einstellungen etwas bestimmtes beachten? Unter "Fields" habe ich bisher nur die Felder eingegeben, die in den Spalten automatisch ausgegeben werden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

PhilippCar schrieb Muss ich

Eingetragen von glycid (921)
am 06.10.2016 - 14:01 Uhr
PhilippCar schrieb

Muss ich denn in den View-Einstellungen etwas bestimmtes beachten? Unter "Fields" habe ich bisher nur die Felder eingegeben, die in den Spalten automatisch ausgegeben werden.

Nein, eigentlich nicht. Was du im Tpl. renderst, ist davon unabhängig. Führe mal bitte:

<?php
$output
= drupal_get_form('webform_client_form_17');
dpm($output); ?>

aus und poste mal das Ergebnis.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Inhalt gibt er nicht aus,

Eingetragen von PhilippCar (92)
am 06.10.2016 - 15:48 Uhr

Inhalt gibt er nicht aus, aber das (je zeile einmal).
Aus Sicherheitsgründen habe ich einiges mit *** ersetzt.

Zitat:

... (Array, 32 elements)
#attached (Array, 2 elements)
#node (NULL)
#submission (Boolean) FALSE
#is_draft (Boolean) FALSE
#filter (Boolean) TRUE
#theme (Array, 2 elements)
#attributes (Array, 1 element)
#submit (Array, 2 elements)
#validate (Array, 3 elements)
#process (Array, 1 element)
#form_id (String, 22 characters ) webform_client_form_17
#type (String, 4 characters ) form
#build_id (String, 48 characters ) form-W5B***
form_build_id (Array, 21 elements)
#token (String, 22 characters ) webform_client_form_17
form_token (Array, 21 elements)
form_id (Array, 21 elements)
#id (String, 25 characters ) webform-client-form-17--3
#method (String, 4 characters ) post
#action (String, 33 characters ) ***/?q=check-webform3
#theme_wrappers (Array, 1 element)
#icon (NULL)
#icon_position (String, 6 characters ) before
#pre_render (Array, 1 element)
#tree (Boolean) FALSE
#parents (Array, 0 elements)
#processed (Boolean) TRUE
#defaults_loaded (Boolean) TRUE
#required (Boolean) FALSE
#title_display (String, 6 characters ) before
#array_parents (Array, 0 elements)
#sorted (Boolean) TRUE

Wenn ich print drupal_render('') verwende, dann gibt es übrigens eine Fehlermeldung vom Browser: Ajax PHP Error occored - HTTP result Code 500

  • Anmelden oder Registrieren um Kommentare zu schreiben

Webform Problem

Eingetragen von glycid (921)
am 07.10.2016 - 08:31 Uhr

hm, ok. Das Problem ist, dass Webform sich wieder mal nicht Drupal- standardmäßig verhält. Es lässt sich so nicht rendern. Ich hab mal getestet, die verkünpfte Node mit der Form im View Template zu rendern. Das funktioniert!

<?php
      $node
= node_load('17');
     
webform_node_view($node,'full');
     
$form_node = theme_webform_view($node->content);
      print
$form_node;
?>

Cache löschen wenn du was sehen willst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Prima!!!! Jetzt geht es!!!

Eingetragen von PhilippCar (92)
am 07.10.2016 - 11:46 Uhr

Prima!!!! Jetzt geht es!!! kaum zu glauben!!! :))

DAAAAAAAAAAAAAAANKESCHÖN!!!!

Jetzt bin ich gespannt, ob ich es schaffe an jedes FORM die NID bzw. andere Daten des Datensatzes jeweils an das FORM zu übergeben :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Prima, setz den Thread doch

Eingetragen von glycid (921)
am 07.10.2016 - 13:02 Uhr

Prima, setz den Thread doch bitte auf [gelöst] (im Title des ersten Posts). Vllt kannst du bei der Gelegenheit den Titel in "Webform in Views rendern" ändern. WEnn da nochmal jemand nach sucht, wird's leichter gefunden. Danke!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Woche 2 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Woche 3 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 14 Stunden
  • Hey danke
    vor 9 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 9 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 9 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 9 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 10 Wochen 3 Tagen
  • In der entsprechenden View
    vor 10 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 10 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 14 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association