Hi,
ich hab sowas ähnliches schon mal gebaut.
Benötigte Plugins: inputvar und efg.
Ich habe im Katalog ein Select-Feld angelegt, mit dem der Katalogeintrag mit einem Registrierten Mitglied verknüpft wird.
So steht in meinem Katalogeintrag die Member ID des Verkäufers drin. Diese ID hängst du (im Template) z.b. als GET Parameter an den Link zu dem Kontaktformular.
Im Kontaktformular erstellst du ein "Verstecktes Feld" und trägst als Standardwert {{get::variableName}} ein. Als Name vergibst du z.b. recipientID.
Somit kannst du in dem Formular als Empfänger folgendes eintragen: {{form::recipientID}}.
Jetzt brauchen wir einen HOOK:
d.h. in system/modules/ einen Ordner anlegen: z.b. recipient (system/modules/recipient). Darin einen Ordner config mit der config.php
PHP-Code:
<?php if (!defined('TL_ROOT')) die('You cannot access this file directly!');
$GLOBALS['TL_HOOKS']['processEfgFormData'][] = array('recipient', 'getMemberData');
?>
in system/modules/recipient muss dann dementsprechend einen recipient.php erstellt werden. Darin fragen wir anhand der übermittelnden ID die E-Mail Adresse des Mitglied ab und ersetzen diese im $arrForm
PHP-Code:
<?php
class recipient extends Backend {
public function getMemberData($arrSubmitted, $arrFiles, $intOldId, &$arrForm) {
$id = intval($arrSubmitted['recipientID']);
$objMember = $this->Database->prepare('SELECT * FROM tl_member WHERE id=?')
->execute($id);
$arrForm['recipient'] = (string)$objMember->email;
$arrForm['formattedMailRecipient'] = (string)$objMember->email;
}
}
?>
Jetzt erhält das Mitglied, dass mit dem Katalogeintrag verknüpft wurde, die E-Mail.
Ich hoffe, das hilft.
Gruß
dhe
Lesezeichen