Optionale Einstellungen von MPForm << ^ MPForm Hilfeseiten ^
Häufig gestellte Fragen zu MPForm
- Frage: Nun wird Website Baker ja bereits mit dem Form-Modul geliefert, wozu sollte man dann eigentlich das MPForm installieren?
- Antwort: Sie sollten das Modul nur installieren, wenn Sie an die Grenzen
der Möglichkeiten des Form-Moduls gestoßen sind. MPForm bietet mehr Möglichkeiten,
erfordert daher aber auch einen höheren Einarbeitungsaufwand.
- Frage: Mein Formular enthält ein Datumsfeld. Wenn ich aber das Kalender-Symbol anklicke, wird kein Kalender angezeigt?
- Antwort: Der verwendete Javascript-Kalender enthält in manchen Versionen
eine Macke:
Falls im Mainbody-Style absolute Positionierung und Z-Index verwendet werden, wird der Kalender
hinter statt vor dem Hauptfenster angezeigt. Sie müssen also die Datei screen.css Ihres
Templates entsprechend anpassen und alles wird gut.
- Frage: Wie kann ich eine Einverständniserklärung mit längerem Text (oder mit einem Link auf meine AGB) in das Formular integrieren?
- Antwort: Für beliebigen HTML-Text können Sie ein HTML-Feld verwenden.
Wenn Sie darunter ein einzelnes Kontrollkästchen als Pflichtfeld setzen, kann der Benutzer
sein Formular nur abschicken, nachdem er Ihren Bedingungen zugestimmt hat.
- Frage: Ist es möglich, ein Feld dynamisch in Abhängigkeit von irgendwelchen Bedingungen vorzubelegen?
- Antwort: Ja, Sie müssen dazu vor der Generierung der Seite die richtige
SESSION-Variable setzen:
- Bekommen Sie heraus, wie die ID des Feldes und wie die section_id des Formulars lauten (das steht z.B. im Backend in den Feldeigenschaften)
- Ihren Code schreiben Sie in der Datei private.php in die Funktion
private_function_before_new_form.
Um das Feld mit der ID 42 im Formular im Abschnitt 24 mit "Standardwert" vorzubelegen also z.B.
if ($section_id == 24) { $_SESSION['field42'] = "Standardwert"; return true; }
Handelt es sich um ein Multi-Auswahlfeld, so schreiben Sie z.B.:
$_SESSION['field42']=array('eins','zwei'); - Frage: Ich bekomme folgende Fehlermeldung: Fatal error: Call to a member function numRows() on a non-object in \modules\mpform\evalform.php on line 533 - woran kann das liegen?
- Antwort: Wahrscheinlich haben Sie Namenserweiterung für die
Ergebnistabelle geändert, nachdem Sie bereits ein Formularfeld angelegt hatten.
Ab Version 1.2.x sollte dieses Problem nicht mehr auftreten, aber wenn Sie die Namenserweiterung
unter einer früheren Version von mpform geändert haben, nachdem bereits Felder
angelegt wurden, kann es helfen, einfach im Backend die allgemeinen Optionen aufzurufen
und erneut zu speichern. Das sollte mpform dazu veranlassen über die vorhandenen Felder
zu iterieren und die Ergebnistabelle entsprechend anzupassen.
- Frage: Beim Anlegen neuer Abschnitte wird immer ein div-basiertes Layout erzeugt und ich muss die Einstellungen jedes Mal anpassen. Kann ich dauerhaft auf das in früheren Versionen eingesetzte tabellenbasierte Layout umstellen?
- Antwort: Ja, Sie können das Layout für neu angelegte Abschnitte permanent umstellen, indem Sie eine Datei constants.user.php anlegen, in der SIe das Standardlayout festlegen. Wegen den zu verwendenden Konstanten siehe in der constants.php und definieren Sie entsprechend ihre eigenen Werte für diese Konstanten in constants.user.php.
- Frage: Wenn ich Eintragungen als csv-Datei exportiere tauchen dort die gelöschten Eintragungen immer noch auf. Was mache ich falsch?
- Antowrt:
Das kann zwei verschiedene Ursachen haben: MPForm Versionen vor 1.3.1 haben die submission_id
nicht in der Ergebnistabelle abgescpiechert. Wenn Sie die allgemeinen Einstellungen öffnen
und diese neu abspeichern, wird die entsprechende Spalte zur Ergebnistabelle hinzugefügt.
Von nun an vorgenommene Eintragungen werden die submission_id nicht nur in den Eintragungen
sondern auch in der Ergebnistabelle berücksichtigen. Wenn Sie die Eintragung dann
l&ouuml;schen, wird die entsprechende Zeile auch aus der Ergebnistabelle entfernt.
Ein weiterer Fall sind mehrseitige Formulare: Selbst in aktuellen Versionen wird die Zeile aus der Ergebnistabelle nicht gelöscht, wenn eine nachfolgende Formularseite abgeschickt wurde (die dann die submission_id in der Ergebnistabelle aktualisiert und weitere Daten hinzugefügt hat). - Frage: Aber wie kann ich dann all die alten Eintragungen loswerden?
- Antwort: Die beste Methode ist es den Abschnitt zu exportieren (wobei die Felder und Einstellungen enthalten sind, aber nicht die Eintragungen). Als nächstes müssen Sie den mpform-Abschnitt komplett löschen. Dann erstellen Sie wieder einen neuen MPForm Abschnitt, in den Sie die zuvor exportierten Einstellungen wieder importieren. Durch diese Schritte sind die alten Eintragungen verschwunden.
- Frage: Ich brauche gar keine Ergebnistabelle. Kann ich sie deaktivieren?
- Antwort: Ja, indem Sie die Erweiterung einfach auf den String "DISABLED" stellen, aber ein CSV-Export funktioniert dann natürlich nicht mehr.
- Frage: Wie kann ich das Erscheinungsbild meines Formulars anpassen?
- Antwort: Wie unter Tabelle oder div diskutiert, kann die Feldschleife, die bei der Ausgabe des Formulars durchlaufen wird, recht flexibel angepasst werden. Innerhalb der Schleife kann der Platzhalter {CLASSES} verwendet werden, der CSS-Klassen enthält, mit denen die Darstellung aus dem frontend.css style files heraus angepasst werden kann. Seit Version 1.3.2 ist außerdem der Platzhalter {TEMPLATE} erlaubt, und sobald dieser in der Feldschleife enthalten ist, erscheint beim Anlegen und Bearbeiten eines Feldes zusätzlich die Möglichkeit, einen Text einzugeben, der speziell für dieses Feld an der Stelle in der Feldschleife auftaucht. In diesem Text sind wiederum die gleichen Platzhalter erlaubt, wie in der Feldschleife selbst. Auch ohne diesen Template-Mechanismus können Felder vom Typ HTML dazwischen geschoben werden, um beispielsweise Zeilen-Umbrüche bei einem Floating Layout zu erzwingen. Darüber hinaus enthalten die Felder selbst nun zusätzliche Klassen, die eine flexiblere Formatierung mittels CSS erlauben. Seit Version 1.3.3 stehen auch die Platzhalter {TEMPLATE1} ... {TEMPLATE9} zur Verfügung, um die erste bis neunte Zeile des Feldtemplates abzurufen. Für Felder, bei denen das lokale Template weniger Zeilen enthält, enthalten die übrigen Platzhalter den Leerstring. Wird in der Feldschleife oder im Template der Platzhalter {FORMATTED_FIELD} anstatt {FIELD} verwendet, so erscheint ein weiteres Eingabefeld im Backend, in dem vom Nutzer eigene CSS-Klassen speziell für das aktuelle Feld angegeben werden können.
- Frage: Ich habe Benachrichtigungsmails konfiguriert. Kann ich mpform so einstellen, dass keine Eintragungen in der Datenbank gespeichert werden?
- Antwort: In den Einstellungen zum SPAM Schutz kann mit
- Max. gespeicherte Eintragungen festgelegt werden, wie viele Eintragungen in der Datenbank gespeichert werden sollen. Wenn dieser Wert auf 0 gestellt wird, werden keine Daten in der Submissions Tabelle abgelegt, ebenso wenig in den Results-Tabellen.
- Frage: Kann ich bei Auswahllisten, Kontrollkästchen oder Optionsfeldern eine Auswahl vom Benutzer erzwingen?
- Antwort: Ja, das jeweilige Feld muss als Pflichtfeld konfiguriert sein. Der Default-Wert sollte etwas sein wie "Bitte etwas auswählen...". Um zu verhindern, dass genau dieser String letztlich als eine gültige Auswahl angenommen wird, stellen Sie dem Wert den
- Value-Option Trenn-String voran, wie er in den Speziellen Einstellungen hinterlegt ist. Dieser Trenn-String muss für diesen Anwendungsfall am Anfang stehen, so dass ihm ein Leerstring vorausgeht. Dadurch würde dieser Leerstring entgegengenommen, und das wiederum sorgt seit Version 1.3.15 dafür dass diese Auswahl nicht angenommen wird.
- Frage: Wie kann ich sicherstellen, dass ein Kontaktformular lediglich die Benachrichtigungs-Emails verschickt, aber serverseitig keinerlei Daten abspreichert?
- Antwort:
Das geht seit Version 1.3.19:
Dazu muss man in den "allgemeinen Optionen" unter " Workflow Einstellungen" den gesamten Inhalt des Templates in der Box "Datenübergabe an mpform_submissions-Tabelle löschen und die Einstellugnen speichern. Außerdem muss man die Namensendung für die Ergebnistabelle auf "DISABLED" stellen.
Alternativ kann man in den "Erweiterten Einstellungen" im Abschnitt "SPAM-Schutz" den Wert für "Max. gespeicherte Eintragungen" auf 0 setzen.
Der erste Ansatz verhindert dass künftig Daten in die Submissions- und die Ergebnis-Tabelle des aktuellen Formulars gespeichert werden. Die zweite Methode hat gravierendere Auswirkungen, nämlich dass die nächste Eintragung dafür sorgt, dass alle Daten aus der Submissions-Tabelle und der Ergebnis-Tabelle gelöscht werden.