Willkommen im neuen Forum von concrete5.de.
Die Anmeldung ist ab dem 15.10.2020 nur noch mit E-Mail Adresse und Passwort möglich. Eine Anmeldung mit Benutzername ist nicht mehr möglich.

Diese Nachricht löschen.
Anhang entfernen?
Zurück zur Themenliste
S
scharfe 0.png 19.01.2011 19:11

Eigenes Formular einbinden (external_form)

Concrete5 bietet die Möglichkeit mit dem Block "Form" ein einfaches Formular z.B. zum Versenden einer Kontaktanfrage einzubinden. Nun sind aber die Möglichkeiten in diesem Formular begrenzt. Wer mit PHP induviduelle Kontrollabfragen in ein Formular einarbeiten möchte, stößt an Grenzen. Dafür gibt es den in concrete5 standardmäßig enthaltenen Blocktyp "Externes Formular" (external_form) - nicht zu verwechseln mit dem kostenpflichtigen Addon "Extended Form".

Hier die Schritte zum Erstellen und Einbinden eines eigenen Form-Scripts
In diesem Besipiel ein Ferienwohnung-Buchungsformular

1. Im Verzeichnis /concrete/blocks/external_form/ befindet sich die Musterdatei test_form.php, diese für das eigene Script z.B. mit dem Namen fewo_buchung.php in den gleichen Ordner dublizieren.
Beachte: Es wird empfohlen, die Datei nicht mit einem Bindestrich zu benennen, also entweder in einem Wort (fewobuchung.php) oder wie in meinem Beispiel hier mit Unterstrich (fewo_buchung.php)

2. die neue Datei kann nun nach belieben als normales html Formular oder mit PHP gestaltet werden. Wichtig nur: der enthaltene PHP Kopf in der Datei (bis einschließlich <?php } ?> ) muss enthalten bleiben.
Tipp: Wenn das Formular in gleicher Seite geladen werden soll, um z.B. Fehlermeldungen anzeigen zu lassen, dann müsste das Formular wie folgt beginnen:
<form name="formular" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">

3. In dem Unterordner /concrete/blocks/external_form/controllers befindet sich ebenfalls eine Datei namens test_form.php. Auch diese in diesem Ordner dublizieren und mit exakt dem gleichen Namen benennen wie unter Nr.1 beschrieben. In unserem Beispiel also fewo_buchung.php

4. Diese Datei im Ordner controllers nun zum Bearbeiten öffen. Dort befindet sich eine Zeile, die nun angepasst werden muss:
class TestFormExternalFormBlockController extends BlockController

Dort wo "TestForm" steht, muss nun für unsere Datei fewo_buchung.php, exakt der Name wie folgt geschrieben werden, beachte die Großbuchstaben:
class FewoBuchungExternalFormBlockController extends BlockController

WICHTIG: Wenn der Dateiname fewobuchung.php heißt, also in einem Wort, muss es wie folgt geschrieben werden (klein geschriebenes "b"):
class FewobuchungExternalFormBlockController extends BlockController

Bei mir hat der Dateiname fewo-buchung.php (Bindestrich) Probleme bereitet.

5. Speichern und hochladen

6. In deiner gewählten Seite, den Blocktyp "Externes Formular" wählen und im folgenden Fenster dein Formular auswählen (in unserem Beispiel "Fewo Buchung")

Achtung: Beim Update von concrete5 die neu erstellten Dateien sichern, da diese sich im Ordner domain.de/concrete/blocks/external_form/ befinden, also dem Ordner der beim Update überschrieben wird. Das Einbinden der Dateien unter domain.de/blocks/external_form/ funtionierte bei mir nicht !?

Nachricht hinzufügen