label = $label;
$this->name = $name;
$this->value = $value;
}
function render($indent = "")
{
$str = $indent . "
\n";
return $str;
}
}
class FileUpload {
public $label, $name, $accept;
public function FileUpload($label, $name, $accept = "*")
{
$this->label = $label;
$this->name = $name;
$this->accept = $accept;
}
public function render($indent = "")
{
$str = $indent . "\n";
return $str;
}
}
class Button {
public $label;
public function Button($label)
{
$this->label = $label;
}
public function render($indent = "")
{
$str = $indent . "\n";
return $str;
}
}
class CheckBox {
public $label, $name, $value;
public function CheckBox($label, $name, $value = "")
{
$this->label = $label;
$this->name = $name;
$this->value = $value;
}
public function render($indent = "")
{
$str = $indent . "\n";
return $str;
}
}
class ComboBox {
public $label, $name, $value, $values;
public function ComboBox($label, $name, $value, $values)
{
$this->label = $label;
$this->name = $name;
$this->value = $value;
$this->values = $values;
}
public function render($indent = "")
{
$str = $indent . "\n";
return $str;
}
}
class Hidden {
public $values;
public function Hidden($values)
{
$this->values = $values;
}
public function render($indent = "")
{
$str = "";
foreach($this->values as $key => $value) {
$str .= $indent . " \n";
}
return $str;
}
}
class TextEdit {
public $label, $name, $value;
function TextEdit($label, $name, $value = "")
{
$this->label = $label;
$this->name = $name;
$this->value = $value;
}
function render($indent = "")
{
$str = $indent . "\n";
return $str;
}
}
class DateTimeEdit {
public $label, $name, $timestamp;
function DateTimeEdit($label, $name, $timestamp = 0)
{
$this->label = $label;
$this->name = $name;
$this->timestamp = $timestamp;
}
function render($indent = "")
{
if($this->timestamp == 0) $t = time();
else $t = $this->timestamp;
$second = date('s',$t);
$minute = date('i',$t);
$hour = date('G',$t);
$day = date('d',$t);
$month = date('m',$t);
$year = date('Y',$t);
$str = $indent . "\n";
return $str;
}
public function toTimestamp($t, $name)
{
$timestring = sprintf("%d", $t[$name."_year"]) ."/".
sprintf("%d", $t[$name."_month"]) ."/".
sprintf("%d", $t[$name."_day"]) ." ".
sprintf("%d", $t[$name."_hour"]) .":".
sprintf("%02d", $t[$name."_minute"]).":".
sprintf("%02d", $t[$name."_second"]);
return strtotime($timestring);
}
}
class ImageComboBox {
public $label, $name, $value, $values;
public function ImageComboBox($label, $name, $value, $values)
{
$this->label = $label;
$this->name = $name;
$this->value = $value;
$this->values = $values;
}
public function render($indent = "")
{
$width = 100;
$str = $indent . "\n"; // input
return $str;
}
}
class ListEditor {
public $label, $name, $namewidget, $valuewidget, $values;
public function ListEditor($label, $name, $namewidget, $valuewidget, $values = array())
{
$this->label = $label;
$this->name = $name;
$this->namewidget = $namewidget;
$this->valuewidget = $valuewidget;
$this->values = $values;
}
public function render($indent = "")
{
$str = $indent . "\n";
$str .= $indent . "name."[]\">\n";
foreach($this->values as $key => $val) {
$str .= $indent . " ".$key.":".$val." \n";
}
$str .= $indent . " \n";
$str .= $indent . " \n";
$str .= $indent . " \n";
$str .= $this->namewidget->render($indent);
$str .= $this->valuewidget->render($indent);
$str .= " \n";
$str .= $indent . " \n";
return $str;
}
public function splitValues($values)
{
$out = array();
foreach($values as $value) {
$vals = explode(":", $value);
$out[$vals[0]]=$vals[1];
}
return $out;
}
}
class Form {
public $widgets = array();
public $action;
public $hasFileUpload = false;
public $hasListEditor = false;
public function addWidget($widget)
{
if(get_class($widget) == "FileUpload") $this->hasFileUpload = true;
if(get_class($widget) == "ListEditor") $this->hasListEditor = true;
array_push($this->widgets, $widget);
}
public function render($indent = "")
{
global $m, $s;
$str = $indent . "\n";
echo $str;
}
public function Form($action)
{
$this->action = $action;
}
}
?>