Hello, i would like write a module with a simple textfield (for learning).
I had this actually, but all my input in the textfield dont be stored in db or is displayed in my textfield after safe. What ist wrong or is missed? Thx.
<?php
class FieldtypeTest extends FieldtypeMulti {
/**
* - Zwingend notwendig
* Angaben zum Modul in PW
*/
public static function getModuleInfo() {
return array(
'title' => 'Beispielmodul für Eigenentwicklungen',
'version' => 1,
'summary' => 'Einfache Texteingabe als Beispiel für eigene Module.',
'requires' => '',
);
}
/**
* - Zwingend notwendig
* alles hierin wird garantiert jedesmal ausgeführt
*/
public function init() {
parent::init();
}
/**
* Gibt das Datenbankschema für diesen Feldtyp an
* bei vollkommen PW untypischen Tabellenstrukturen wäre die Tabellenerstellung in der Methode ___install() möglich
*/
public function getDatabaseSchema(Field $field) {
$schema = parent::getDatabaseSchema($field);
// 'data' is a required field for any Fieldtype, and we're using it to represent our 'date' field
$schema['data'] = 'INT NOT NULL DEFAULT 0';
// our text fields
$schema['info1'] = 'TINYTEXT NOT NULL';
$schema['info2'] = 'TEXT NOT NULL';
return $schema;
}
/**
* Gibt das zugehörige Eingabefeld
* $page und $field kommen von PW (noch nicht genau erörtert woher genau)
* $field ist in der Basisversion die ID in der DB-Tabelle "fields"
*
*/
public function getInputfield(Page $page, Field $field) {
$inputField = $this->modules->get('InputfieldTest');
return $inputField;
}
}
and this:
<?php
class InputfieldTest extends Inputfield {
public static function getModuleInfo() {
return array(
'title' => 'Inputfeld für das FieldtypeTest',
'version' => 1,
'summary' => 'siehe FieldtypeTest',
'requires' => 'FieldtypeTest',
);
}
/**
* - Zwingend notwendig für ein Inputfeld
* Erzeugt/Liefert die Ausgabe des Inputfeldes
*/
public function ___render() {
$out = "Irgendwelcher Output";
// Erzeugt ein Textfeld
$input1 = $this->modules->get('InputfieldText');
$input1->attr('id', $this->attr('name') . "_info1");
$input1->attr('name', "_info1");
$input1->class .= " InputfieldInfo1";
$input1->value = $this->value;
$out .= $input1->render();
return $out;
}
public function init() {
parent::init();
}
}