AbstractForm

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Die AbstractForm-Klasse ist im WCF die Mutterklasse aller Fomulare.

    Erklärung



    Die AbstractForm-Klasse ist die Mutterklasse aller Formulare, die ein Benutzer ausfüllen kann. Sämtliche Seiten, auf denen sich ein Formular befindet, sollten ihr Verhalten von der AbstractForm-Klasse erben. Wie auch eine Page-Datei muss sich die Datei mittels des files-PiP installiert werden. Alle Form-Dateien befinden sich im Ordner Endanwendung/lib/form/. Wichtig ist zu wissen, dass die AbstractForm-Klasse von der AbstractPage-Klasse erbt und somit alle dort vorhandenen Funktionen und Variablen ebenfalls verfügbar sind. Die AbstractForm-Klasse erweitert nur die Funktionalität einer Page-Datei.

    Die AbstractForm auf GitHub


    github.com/WoltLab/WCF/blob/ma…rm/AbstractForm.class.php

    Verfügbare Funktionen


    submit


    Am Anfang der readData()-Funktion wird die Funktion submit() aufgerufen, sofern die Variable $_POST oder $_FILES != empty (nicht leer) ist. Die submit()-Funktion übernimmt die weitere Steuerung der Funktionsaufrufe. Die Funktion submit() wird i.d.R bei einer Vererbung der Datei nicht gesetzt, da i.d.R nur die nachfolgenden Funktionen von Interesse sind.

    readFormParameters


    Die Funktion readFormParameters() ist für das Auslesen der Daten aus dem Formular verantwortlich.

    PHP Source Code

    1. /**
    2. * @see\wcf\form\IForm::readFormParameters()
    3. */
    4. public function readFormParameters() {
    5. parent::readFormParameters();
    6. if (isset($_POST['fieldName'])) $this->fieldName = StringUtil::trim($_POST['fieldName']);
    7. }


    validate


    Die Funktion validate() dient zur Validierung der übernommen Daten aus dem Formular. Denkt immer daran, jede Eingabe ist "böse"!

    PHP Source Code

    1. /**
    2. * @see\wcf\form\IForm::validate()
    3. */
    4. public function validate() {
    5. parent::validate();
    6. if (empty($this->fieldName)) {
    7. throw new UserInputException('fieldName');
    8. }
    9. }
    Display All

    validateSecurityToken


    Seit dem WSC 5.2 ist die Funktion validateSecurityToken() hinzugekommen. Diese wird automatisch am Ende der Funktion validate() aufgerufen und überprüft, sofern der Parameter $_POST['t'] gesendet wurde, ob das Security Token valide ist. Überschreibt man die Funktion validate(), sollte man selber daran denken, die Funktion validateSecurityToken() aufzurufen.

    PHP Source Code

    1. /**
    2. * Own validate function
    3. */
    4. public function validate() {
    5. if (empty($this->fieldName)) {
    6. throw new UserInputException('fieldName');
    7. }
    8. $this->validateSecurityToken();
    9. }
    Display All


    save


    Die Funktion save() dient zur Speicherung der aus dem Formular übernommenen Daten.

    PHP Source Code

    1. /**
    2. * @see\wcf\form\IForm::save()
    3. */
    4. public function save() {
    5. parent::save();
    6. // save object
    7. $data = array(
    8. 'fieldName' => $this->fieldName
    9. );
    10. $data = array(
    11. 'data' => $data
    12. );
    13. $this->objectAction = new ObjectAction(array(), 'create', $data);
    14. $resultValues = $this->objectAction->executeAction();
    15. $this->saved();
    16. }
    Display All

    saved


    Die Funktion saved() stellt eine Besonderheit dar, da sie nicht automatisch ausgeführt wird. Der jeweilige Entwickler muss die Funktion saved() manuell innerhalb der save()-Funktion aufrufen. Die saved()-Funktion wird verwendet, um Drittentwicklern die Möglichkeit zu geben, sich nach der Speicherung in die eigene Datei mittels EventListener einzuklinken.

    11,748 times viewed

Comments 2

  • CCFF -

    Rechtschreibung angepasst und Inhalt ergänzt. Bitte überprüfen.