80 Nachrichten unter 29 Themen von 35 Mitgliedern
[SilverStripe Roadmap][Changelog]

Kontaktformular im Footer auf jeder Seite

Seite: 1 815 mal gelesen
  • McKinne
    Community Member
    78 Beiträge

    Kontaktformular im Footer auf jeder Seite

    Hallo

    versuche mal wieder ein Problem zu lösen. Aber irgendwie stehe ich auf dem Schlauch :(

    Ich möchte auf jeder Seite im Footer mir das Kontaktformular anzeigen lassen und für den User nutzbar machen.

    Hier stehe ich bereits vor meinem ersten Problem. Baue ich es von Hand (das ist easy) oder kann das auch von Silverstripe übernommen werden(diese Variante würde ich bevorzugen).
    Meine Vermutung ist, ich muß in der Klasse Page_Controller etwas schreiben.

    Die Auswertung der Daten vom Formular wird bestimmt auch über Page_Controller erfolgen, so ähnlich wie beim Suchformular.

    Habt ihr vielleicht ein Denkanstoß für mich beim realisieren dieses Problems?

    cu Micha

  • McKinne
    Community Member
    78 Beiträge

    Re: Kontaktformular im Footer auf jeder Seite

    Nach intensiven Ausprobieren und lesen habe ich nun die Formular erstellt.
    Folgenden Code habe ich in Page_Controller geschrieben.
    function FooterForm () {
    $fields = new FieldSet(
    new TextField('Name', 'Name'),
    new EmailField('Email', 'E-Mail'),
    new TextareaField('Message', 'Nachricht')
    );
    $actions = new FieldSet(
    new FormAction('doSubmitFormFooter', 'Senden')
    );
    $validator = new RequiredFields(
    'Name',
    'Email',
    'Message'
    );
    $FooterForm = new Form(
    $this,
    'FooterForm',
    $fields,
    $actions,
    $validator
    );
    return $FooterForm;
    }


    ImTemplate lasse ich mir es mit $FooterForm anzeigen.

    Jetzt habe ich nur noch ein Problem beim versenden.
    Nutze dafür folgende Funktion.
    protected function doSubmitFormFooter($data, $form) {
    $sMailbetreff = "Nachricht über Footerkontaktformular";
    $sMailbody = "Anfrage von \n";
    $sMailbody.= $data ['Name'] . "\n";
    $sMailbody.= $data ['Email'] . "\n";
    $sMailbody.= $data ['Message'] . "\n";
    $email = new Email(
    $data ['Email'],
    Email::getAdminEmail(),
    $sMailbetreff,
    $sMailbody
    );
    $email -> send();
    }

    Sehe aber dann als Fehler folgendes, wenn ich es versenden will
    Website Error
    There has been an error
    The website server has not been able to respond to your request.

    cu Micha
  • McKinne
    Community Member
    78 Beiträge

    [GELÖST] Kontaktformular im Footer auf jeder Seite

    Ich muß das protected vor der function entfernen.
    Sieht jetzt folgendermaßen aus, und es funktioniert jetzt ohne Fehler.

    function doSubmitForm($data, $form) {
    $sMailbetreff = "Nachricht vom Footerkontaktformular";
    $sMailbody = "Anfrage von <br />";
    $sMailbody.= $data ['Name'] . "<br />";
    $sMailbody.= $data ['Email'] . "<br />";
    $sMailbody.= $data ['Message'] . "<br />";
    $email = new Email(
    $data ['Email'],
    'mk@tegknet.de',
    $sMailbetreff,
    $sMailbody
    );
    $email -> send();
    Director::redirectBack();
    return;
    }

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: saerdna