-
Notifications
You must be signed in to change notification settings - Fork 0
/
formforge.php
66 lines (56 loc) · 1.62 KB
/
formforge.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
namespace FormForge;
interface FormForge_Interface{
const DEFAULT_FORM_NAME = 'form';
public function __construct();
public function textBox();
}
interface FF_Text_Interface{
const DEFAULT_TEXT_NAME = 'text';
}
class FormForge implements FormForge_Interface{
private $name = self::FF_DEFAULT_FORM_NAME;
private $elements = array();
private $text = array();
private $check = array();
private $radio = array();
private $select = array();
private $textbox = array();
private $current_element = NULL;
public function __construct($name = '', $attributes = array()){
if(is_scalar($name) && !empty($name)) $this->name = $name;
}
public static function init($name = '', $attributes = array()){
$self = get_called_class();
return new $self($name, $attributes);
}
private function new_element(){
return ($this->current_element = &$this->elements[]);
}
public function textBox($name = '', $attributes = array(), $ispw = false){
$this->text[] = $this->new_element();
$this->current_element = new FF_Text($name, $attributes);
return $this->current_element;
}
public function __toString(){
$out = '';
}
}
class FF_Text implements FF_Text_Interface{
private $name = self::DEFAULT_TEXT_NAME;
private $attrs;
private $html;
public function __construct($name, $attributes = array()){
$this->name = $name;
$this->attrs = $attributes;
if(!empty($name)){
$this->html = "<input type=\"text\" name=\"$name\"";
if(!empty($attributes)){
$this->html .= ' ';
foreach($attributes as $attr => $value) $this->html .= "$attr=\"$value\"";
}
$this->html = " />";
}else $this->html = '';
}
}
?>