Kleinanzeigen mit Katalog
Hallo zusammen,
ich spiele gerade mit dem Katalog um eine Art Kleinanzeigenmarkt zu bauen. Bisher alles super. Frontend Editing funktioniert, alles wird gelistet auf Wunsch auch gefiltert, usw. Anzeigen dürfen nur von registrierten Mitgliedern eingestellt werden.
Jetzt geht es darum, wie ich Käufer und Verkäufer in Kontakt bringe...
Meine Idee ist die Folgende:
Ich möchte nicht die Kontaktdaten des Verkäufers veröffentlichen. Der Kontakt soll über ein Formular stattfinden. Ein angemeldetes Mitglied bekommt auf der Detailseite eines Artikels einen Link zu diesem Formular angezeigt. Das Formular besteht aus einem Texfeld über das der Kaufinteressent dem Verkäufer eine Nachricht hinterlassen kann. Wäre vielleicht auch schön, wenn neben dem Textfeld vielleicht noch zwei Felder für Mailadresse und Telefonummer vorausgefüllt vorhanden wären. Beim Absenden soll das Formular an die E-Mail Adresse des Verkäufers geschickt werden. Im Catalog Datensatz steht ja die UserID des Mitgliedes drin. Darüber komme ich dann an die E-Mail Adresse.
Ich bräuchte jetzt ein paar Tipps zur Umsetzung. Wie würdet ihr Profis das realisieren? Vielleicht noch den EFG einbauen oder komplett neu machen?
Freue mich schon auf eure Antworten.
Grüße
Klaus
Liste der Anhänge anzeigen (Anzahl: 3)
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