DIESES PAKET WIRD NICHT MEHR AKTIV ENTWICKELT UND VON MIR UNTERSTÜTZT.
Formular-Entwicklung im Woltlab Community Framework gestaltet sich grundsätzlich als aufwändig und wiederholend. Dieses Paket ermöglicht es, Formulare um einiges einfacher zu entwickeln.
Dieses Paket ist an Entwickler gerichtet, nicht an Forenbesitzer/-administratoren. Es fügt keine eigene Funktionalität hinzu, sondern definiert Tools, die die Entwicklung vereinfachen. Ihr müsst dieses Paket nicht installieren, wenn ihr keine anderen Pakete nutzt, die auf den Form Builder zugreifen.
Ein Code-Beispiel und eine ausführliche Dokumentation finden sich im GitHub Repository des Projektes. Falls ihr irgendwelche Fragen habt, oder neue Features hinzugefügt haben möchtet, meldet euch entweder hier im Forum oder über das Issues System auf GitHub.
Ohne den Form Builder
<?php
namespace wcf\acp\form;
use wcf\form\AbstractForm;
use wcf\util\StringUtil;
class MyExampleAddForm extends AbstractForm {
public $exampleID = 0;
public $title = '';
public $description = '';
public function readFormParameters() {
parent::readFormParameters();
if (isset($_POST['exampleID'])) $this->exampleID = intval($_POST['exampleID']);
if (isset($_POST['title'])) $this->title = StringUtil::trim($_POST['title']);
if (isset($_POST['description'])) $this->description = StringUtil::trim($_POST['description']);
}
public function validate() {
parent::validate();
if (empty($this->title)) {
throw new UserInputException('name');
}
if (empty($this->description)) {
throw new UserInputException('description');
}
}
public function save() {
parent::save();
$this->objectAction = new wcf\data\example\ExampleAction(array(), 'create', array(
'data' => array(
'exampleID' => $this->exampleID,
'title' => $this->title,
'description' => $this->description,
),
));
$this->objectAction->executeAction();
$this->saved();
WCF::getTPL()->assign(array(
'success' => true,
));
}
public function assignVariables() {
parent::assignVariables();
WCF::getTPL()->assign(array(
'action' => 'add',
'exampleID' => $this->exampleID,
'title' => $this->title,
'description' => $this->description,
));
}
}
Display More
Mit dem Form Builder:
<?php
namespace wcf\acp\form;
use wcf\form\FormBuilder;
class MyExampleAddForm extends FormBuilder {
protected function getAttributes() {
return array(
'title' => 'string',
'description' => 'string',
);
}
protected function getObjectActionType() {
return 'wcf\data\example\ExampleAction';
}
}
Display More
-
Version 0.9.3
- 6.32 kB
- 73 Downloads
Ändern der Sichtbarkeit des Attributs $templateName auf public und auskommentieren der Zeile, da dies erst ab Version 1.0 von Relevanz sein wird.
-
Version 0.9.2
- 6.3 kB
- 5 Downloads
Beheben eines Fehlers bei dem die Formular-Validierung nicht ohne Fehler abgeschlossen wurde, wenn die Methode methodFormBuilder::getObjectTypeName() nicht manuell überschrieben wurde.
-
Version 0.9.1
- 26.11 kB
- 3 Downloads
Ausschluss der nächsten WCF Version
Caribe_Soy
Great idea!