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

Webform - E-Mail-Empfänger über form_alter ändern

Eingetragen von SteffenR@drupal.org (2262)
am 23.06.2009 - 10:34 Uhr in
  • Module
  • Drupal 6.x

Ich habe auf einer Seite eine Webform, die wie folgt aufgerufen wird http://www.seite.de/kontakt?id=43 - über die GET-Variable id wird eine NodeId übergeben, die dann über ein kleines Modul ausgewertet wird.

http://pastebin.com/m6a78f94

<?php
function wfalter_form_alter(&$form, $form_state, $form_id)  {
    if (
$form_id == 'webform_client_form_31') {
        if(
is_numeric($_GET['id'])  ) {
           
//drupal_set_message(print_r($form));
            // Kontakt-Adresse auslesen
               
$emailadr = getContactMail($_GET['id']);
                if(
$emailadr!="") {
                   
$form['#parameters'][2]->webform['email'] = $emailadr;
                   
watchdog("info","mail sending to ".$emailadr);
                }
            }

  }
    return
$form;

}

/*
* E-Mail-Adresse auslesen vom Inhaltstyp Mitarbeiter
*/
function getContactMail($nid) {
   
$email_result = db_query('SELECT field_email_value FROM {content_type_mitarbeiter} WHERE nid = %d', $nid);
   
$ar_mail = db_fetch_array($email_result);
    return
$ar_mail['field_email_value'];
}
?>

Wie am Code zu erkennen ist, wird einfach die der der hook form_alter verwendet um die Mailadresse des Mitarbeiters auszulesen.
Die Ausgabe im WatchDog liefert auch die korrekten Ergebnisse. Nur funktioniert das Überschreiben der WebForm Paramater über
$form['#parameters'][2]->webform['email'] = $emailadr; nicht - hier die Variable $emailadr enthält die korrekten Werte..

Was mach ich hier falsch ?
Oder ist mein Ansatz über den Hook form_alter falsch gewählt ?

Gruß,
SteffenR

‹ Taxonomie-Mehrfachauswahl begrenzen Forum: "Anmelden, um in dem Forum einen neuen Beitrag zu schreiben." ausblenden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

hook_nodeapi

Eingetragen von stBorchert (6003)
am 23.06.2009 - 11:18 Uhr

Moin.
Wie bereits gerade im IRC erwähnt, kannst Du die Empfängeradresse(n) nicht über hook_form_alter verändern. Diese werden nämlich direkt aus der Webform-Node geladen (in webform_client_form_submit).
Dementsprechend dürfte hook_nodeapi in Verbindung mit $op == 'load' weiterhelfen (in einem eigenen Modul).

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank noch mal für

Eingetragen von SteffenR@drupal.org (2262)
am 25.06.2009 - 07:55 Uhr

Vielen Dank noch mal für deine Hilfe..
Da ich direkt die Mailadresse überschreiben wollte, an die das Formular gehen sollte, habe ich den Empfänger wie folgt überschrieben:

<?php
 
function modulename_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
    switch (
$op) {
        case
"load":
            if(
$node->nid==31 && $node->type=="webform") {
               
$node->webform['email']  = "mail@domain.de";
            }
        break;
    }
}
?>

Für feste Werte passt diese Lösung - wenn man nun aber die Werte dynamisch ausliest, werden diese durch die Verarbeitung in der Webform wieder durch den Standardwerte überschrieben..
Hab das gerad mit derhasi im #drupal.de diskutiert. Scheint wohl ein Webform Bug zu sein.

Eine mögliche Lösung
Um das Problem nun doch zu lösen, werd ich mir ein kleines Modul basteln, mit dem ich das ja doch recht einfache Formular nachbilde - hier kann ich dann auf einfache Art die $_GET Variablen im hook_submit bearbeiten..

<?php
function modulename_kontakt_form_submit($form, &$form_state) {
   
$params = $form_state['values']; // Übergabewerte auslesen
   
$from = $mailfrom;
   
$emailadr =  _modulename_getMailAdress($get_id);
   
   
// call mail function and send email
      
drupal_mail('callback_block', 'notice',$emailadr , "de", $params,$from);
      
drupal_set_message(t('Vielen Dank f&uuml;r Ihre Nachricht. Wir werden uns in K&uuml;rze bei Ihnen melden.'));
   
$form_state['redirect'] = '';
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Vivencias unicas en hospedajes y refugios pod en este destino y mas
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
Weiter

Neue Kommentare

  • Gefunden
    vor 5 Wochen 5 Tagen
  • Vielen Dank für die ausführlichen Hinweise...
    vor 6 Wochen 2 Tagen
  • Mögliche Ursachen und nächste Schritte
    vor 6 Wochen 3 Tagen
  • Was für einen Server benutzt
    vor 8 Wochen 6 Tagen
  • Wenn die Subdomain auf
    vor 9 Wochen 22 Stunden
  • ordnerstruktur
    vor 9 Wochen 1 Tag
  • Die Subdomain muß auf den
    vor 9 Wochen 3 Tagen
  • Verwende doch das Tag dafür,
    vor 12 Wochen 5 Tagen
  • Guckst du hier: step by step
    vor 12 Wochen 5 Tagen
  • Guckst du hier: step by step
    vor 12 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250295
Registrierte User: 20534

Neue User:

  • Thomaslef
  • DanielAltek
  • HilipPet

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 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