Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

User-Contact-Form per Views auf Seite einbinden. Geht das?

Eingetragen von t2k (258)
am 08.05.2014 - 01:32 Uhr in
  • Allgemeines zu Drupal

Guten Abend!

ich würde gern in einer View alle User ausgeben und zusätzlich für jeden User sein Kontakt-Formular (user/xyz/contact) einblenden.
Geht das irgendwie?

Oder gibt es einen anderen Weg für jeden User ein Formular zu erstellen, in dem dieser automatisch als Empfänger eingetragen ist?

Vielen Dank und Grüße!

‹ [gelöst]Single Checkbox für Datenschutzrichtlinien Benutzer Konten verknüpfen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Formular wird (in PHP)

Eingetragen von kle (38)
am 10.05.2014 - 14:12 Uhr

Das Formular wird (in PHP) mit contact_personal_form() erzeugt, wobei vorher noch die Rechte überprüft werden (siehe Funktion contact_menu() ).
Mit einem eigenen Block (und evtl. einer Hilfsview um die gewünschten User zu ermitteln) gehts -> ca 40 Zeilen PHP.
Deinen Alternativwunsch hab ich nicht verstanden. Wenn im System 20 User sind, willst du dann 20 Contaktformulare auf der Seite haben? Was willst Du tatsächlich ? Evtl. nur ein Formular, wo du den Empfänger wählen kannst ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank für deine

Eingetragen von t2k (258)
am 11.05.2014 - 22:38 Uhr

Vielen Dank für deine Antwort, Kle.

Ich möchte eine Möglichkeit schaffen, die User per E-Mail kontaktierbar zu machen.
Alle User werden dabei als Views-Liste ausgegeben. Statt eines Mailto-Links oder eines Links auf das User-Kontakt-Formular, soll aber direkt in der View für jeden User ein Mailformular eingeblendet werden.

Wo sollte bei deiner Lösung denn der PHP-Code auftauchen? Direkt in der Views-Template-Datei oder im View selbst?
Was sollte da stehen?

Vielen Dank und Grüße!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich fürchte,

Eingetragen von ronald (3857)
am 12.05.2014 - 07:52 Uhr

du schmeist ein bisschen etwas durchaeinander.

Views ist KEIN Modul zur Darstellung, sondern zur Datenbankabfrage.

Vielleicht bist du mit Panels eher auf dem richtigen Dampfer.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok. Ich geh mal davon aus,

Eingetragen von kle (38)
am 12.05.2014 - 08:41 Uhr

Ok. Ich geh mal davon aus, dass es sich um sehr wenige User handelt, sonst wäre eine Lösung mit einem Formular und der Wahl des Rezipienten evtl. praktischer.
So gehts (grad gecoded und getestet):

  1. Modul views_php installieren
  2. In deiner User-View ein PHP-Feld zufügen
  3. Dort folgenden Code in das Feld "Output Code" kopieren

<?php
$uid
= $data->uid;
 
module_load_include('inc', 'contact', 'contact.pages');
 
$user = user_load($uid);
 
$form = drupal_get_form('contact_personal_form', $user);
  print
render($form);
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

ronald schrieb du schmeist

Eingetragen von kle (38)
am 12.05.2014 - 08:46 Uhr
ronald schrieb

du schmeist ein bisschen etwas durchaeinander.

Views ist KEIN Modul zur Darstellung, sondern zur Datenbankabfrage.

Da möcht ich wiedersprechen: Views ist eine Kombination von Abfrage und Darstellung. Nicht umsonst gibt es Views-Erweiterungen, die Kalender oder Maps ausgeben und die Möglichkeit jedes Datenstück oder die Gesamtstruktur mit eigenen Templates umzuschreiben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ganz herzlichen Dank!!!Werde

Eingetragen von t2k (258)
am 12.05.2014 - 17:51 Uhr

Ganz herzlichen Dank!!!
Werde das gleich mal testen!

Wäre es denn eigentlich ein Problem wenn es mehr als ein paar wenige User sind?
Spricht eigentlich was dagegen ein solches View (mit Kontext und User ID via Entity-Reference) auch als Block einzusetzen?

Nochmals 1000-Dank und Grüße!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Najaaa..... Ich stell mir

Eingetragen von kle (38)
am 12.05.2014 - 18:28 Uhr

Najaaa.....
Ich stell mir eine Seite mit einem Dutzend Kontakt-Formularen vor und find das sehr unübersichtlich.
Man kann ja auch nur eines ausfüllen, denn bei "senden" wird ja auch nur dieses eine gesendet.
Meine Anregung wäre EIN Formular, wo du den Empfänger per Dropdown wählen kannst.
Alternativ: Meine gepostete Lösung mit dem Views-PHP, aber das Kontaktformular ausgeblendet und per Javascript-Button ("Sende Mail") einblenden.
Egal, was du möchtest - von der Stange gibts das wahrscheinlich nicht...

lg - Kle

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, das mit der

Eingetragen von t2k (258)
am 12.05.2014 - 19:08 Uhr

Ja, das mit der Übersichtlichkeit ist klar!
Ich hatte es als Accordion angedacht ...

Nochmal nachgefragt: Also Block wäre das auch möglich, oder?

Die Lösung mit EINEM Formular und den Empfängern als Dropdown find ich auch interessant. Wie würde man das am cleversten umsetzen?

Danke und Grüße!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Am cleversten ist, du findest

Eingetragen von kle (38)
am 12.05.2014 - 19:47 Uhr

Am cleversten ist, du findest einen freundlichen Drupal-Coder, der Dir das fix macht :-)
Denn ohne PHP und Ahnung vom Drupal-Core wirds schwer.
(Nicht böse sein - ich scheide aus Zeitmangel aus)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ach, hätte mich nur mal

Eingetragen von t2k (258)
am 12.05.2014 - 19:54 Uhr

Ach, hätte mich nur mal interessiert, wie du das mit dem Dropdown lösen würdest ...
Gebaut bekomm ich das dann schon :-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok. Meine Idee wäre: Dropdown

Eingetragen von kle (38)
am 12.05.2014 - 22:15 Uhr

Ok. Meine Idee wäre:
Dropdown (wenn es nicht so viele User sind) oder Autocomplete (da gibt es eine Core-funktion: such mal nach '#autocomplete_path' => 'user/autocomplete').
Evtl. ist es praktisch per form_alter das Contact-form etwas umzubiegen und den $recipient als extrafeld mit Dropdown oder autocomplete zu bauen.
Dieses Feld braucht dann auch ein submit-callback, damit der sonst im form-Aufruf übergebene $recipient korrekt gesetzt ist. Dieser callback muss aufgerufen werden, bevor der normale callback läuft.

Viel Erfolg !

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok. Ist in der Tat etwas

Eingetragen von t2k (258)
am 12.05.2014 - 23:12 Uhr

Ok.
Ist in der Tat etwas kompliziert für mich ...

Vielen Dank und Grüße!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: ich würde gern in

Eingetragen von Jenna (1883)
am 13.05.2014 - 14:39 Uhr
Zitat:

ich würde gern in einer View alle User ausgeben und zusätzlich für jeden User sein Kontakt-Formular (user/xyz/contact) einblenden.

Wäre denn nicht eine Views Liste mit z.B. Userbild und Kurzinfo möglich, dazu einen Button auf die Detailseite des Users mit seinem Kontaktform?

Also ähnlich wie bei Immobilien Listen mit Link auf die Detailseite und Anfrageformular?

Ich bin nicht sicher ob ich dich richtig verstehe, aber in einer Übersicht bereits zig Kontaktformulare auszugeben sieht vermutlich optisch sehr eigenartig aus.

Sonst beschreibe bitte noch mal genauer was du vorhast, vielleicht gibt es ja eine viel simplere Lösung.

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schau mal

Eingetragen von ronald (3857)
am 13.05.2014 - 14:51 Uhr

https://drupal.org/project/privatemsg

Ist das kein passender Ansatz?

  • Anmelden oder Registrieren um Kommentare zu schreiben

In meinem speziellen Fall

Eingetragen von t2k (258)
am 13.05.2014 - 16:45 Uhr

In meinem speziellen Fall geht es um eine Liste von Ansprechpartnern.
Diese sollen mit Anschrift, Kontakt-Daten, Bild und eben (wegen Spam-Gefahr ein) mit Kontakt-Formular ausgegeben werden.
Die User-Seiten selbst wollte ich eigentlich garnicht zugänglich machen.

Da die Ansprechpartner auch auf verschiedenen Nodes/Seiten auftauchen, würde ich auch hier die User mitsamt Kontakt-Formular einblenden wollen...

Grüße,
t2k

  • Anmelden oder Registrieren um Kommentare zu schreiben

Moinsen, wenn dir, wie von

Eingetragen von glycid (921)
am 13.05.2014 - 18:10 Uhr

Moinsen,

wenn dir, wie von ronald vorgeschlagen, privatemsg nicht zusagt, kannst du dir ungefähr eine von kle's Lösungen auch ohne coden selber bauen:

Du nimmst entity form und fügst jedem User ein Kontakt Formular hinzu. Die entity Form felder werden wie normale Drupal Felder behandelt und dementsprechend von views unterstützt, so dass du die mit dem Bild, Namen etc. in der View ausgeben kannst. Dann installierst du dir das Modul Colorbox. In den Einstellungen aktivierst du die Option "Enable Colorbox load". Daraufhin findest du in der View zusätzlich ein Colorbox Feld. In den Feldeinstellungen gibst du an, dass das Kontakt Form geladen werden soll. Das Form Feld selber schließt du von der Anzeige aus. Jetzt legst du in der View noch einen Link "Ansprechpartner kontaktieren" an, der auf das Colorbox Feld zeigt. Wenn dann auf den entsprechenden Seiten jemand auf den Link klickt, öffnet sich das Formular in der Colorbox.

Ich denke, dass ist neben Privatemsg die eleganteste Lösung.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Coole Lösung, glycid !

Eingetragen von kle (38)
am 13.05.2014 - 19:05 Uhr

Coole Lösung, glycid !

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank Glycid! Das hört

Eingetragen von t2k (258)
am 14.05.2014 - 16:23 Uhr

Vielen Dank Glycid!
Das hört sich wirklich gut an!

Gibt es da irgendwelche Nachteile gegenüber einer Lösung die direkt über das User-Kontaktformular geht?

Du schriebst:

Zitat:

Du nimmst entity form und fügst jedem User ein Kontakt Formular hinzu.

Das heißt man fürgt im User-"Inhaltstypen" ein entity-form-Feld hinzu?
Nicht für jeden User eine eigenes Formular, oder?

Vielen Dank nochmals und beste Grüße!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

t2k schrieb Das heißt man

Eingetragen von glycid (921)
am 14.05.2014 - 17:36 Uhr
t2k schrieb

Das heißt man fürgt im User-"Inhaltstypen" ein entity-form-Feld hinzu?
Nicht für jeden User eine eigenes Formular, oder?

Ja genau. Kannste dir auch hier mal angucken: http://www.youtube.com/watch?v=CjVKZSjQElE
Ist für Nodes, funktioniert aber für den User genauso. Das Modul Entity Reference brauchst du auch noch.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Super! Vielen Dank noch

Eingetragen von t2k (258)
am 15.05.2014 - 15:25 Uhr

Super! Vielen Dank noch mal!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Glycid, es hat sich

Eingetragen von t2k (258)
am 29.08.2014 - 00:11 Uhr

Hallo Glycid,

es hat sich etwas gezogen, aber ich bin nun soweit, dass ich jeder User sein entityform hat und diese auch auf der Views-page angezeigt werden.
Mein Problem nun: Woher weiß die entityform jetzt, an wen die Mail gesendet werden soll? Kann ich dies irgendwie im View übergeben?

Vielleicht hast du ja noch einen Tipp dazu?
Vielen Dank und Grüße.
t2k

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 2 Tagen
  • Hey danke
    vor 2 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 3 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 3 Wochen 5 Tagen
  • In der entsprechenden View
    vor 3 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 5 Tagen
  • gelöst
    vor 6 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20454

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» 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 26 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