- function &getElement($name) {
- return $this->elements[$name];
- }
-
- function &getElements() {
- return $this->elements;
- }
-
- //// FORM element
- // action
- // method - GET, POST
- // enctype - enctype="multipart/form-data"
- // name
- // onsubmit
- // onreset
- function getName() { return $this->name; }
-
- function isSubmit() {
- if (!isset($this->mRequest)) return false;
- $result = false;
- foreach ($this->elements as $el) {
- if (strtolower(get_class($el))=="submit") {
- $name = $el->getName();
- $value = $this->mRequest->getAttribute($name);
- if($value) {
- $result = true;
- }
- }
- }
- return $result;
- }
-
- //// INPUT element
- // type = TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON
- // name
- // value
- // checked - for type radio and checkbox
- // size - width pixels or chars
- // maxlength
- // src - for type image
- // tabindex - support A, AREA, BUTTON, INPUT, OBJECT, SELECT, and TEXTAREA
- // accesskey - support A, AREA, BUTTON, INPUT, LABEL, and LEGEND, and TEXTAREA
- // onfocus
- // onblur
- // onselect - INPUT and TEXTAREA
- // onchange
- function addInput($arguments) {
- switch($arguments["type"]) {
-
- case "textfield":
- case "text":
- import('form.TextField');
- $el = new TextField($arguments["name"]);
- $el->setMaxLength(@$arguments["maxlength"]);
- if (isset($arguments["aspassword"])) $el->setAsPassword($arguments["aspassword"]);
- break;
-
- case "datefield":
- import('form.DateField');
- $el = new DateField($arguments["name"]);
- $el->setMaxLength("10");
- break;
-
- case "floatfield":
- import('form.FloatField');
- $el = new FloatField($arguments["name"]);
- if (isset($arguments["format"])) $el->setFormat($arguments["format"]);
- break;
-
- case "textarea":
- import('form.TextArea');
- $el = new TextArea($arguments["name"]);
- $el->setColumns(@$arguments["cols"]);
- $el->setRows(@$arguments["rows"]);
- if (isset($arguments["maxlength"])) $el->setMaxLength($arguments["maxlength"]);
- break;
-
- case "checkbox":
- import('form.Checkbox');
- $el = new Checkbox($arguments["name"]);
- if (@$arguments["checked"]) $el->setChecked(true);
- $el->setData(@$arguments["data"]);
- break;
-
+ function getElements() {
+ return $this->elements;
+ }
+
+ function getName() { return $this->name; }
+
+ // addInput - adds an input object to the form.
+ function addInput($params) {
+ switch($params['type']) {
+ case 'text':
+ import('form.TextField');
+ $el = new TextField($params['name']);
+ if (isset($params['maxlength'])) $el->setMaxLength($params['maxlength']);
+ break;
+
+ case 'password':
+ import('form.PasswordField');
+ $el = new PasswordField($params['name']);
+ if (isset($params['maxlength'])) $el->setMaxLength($params['maxlength']);
+ break;
+
+ case 'datefield':
+ import('form.DateField');
+ $el = new DateField($params['name']);
+ $el->setMaxLength('10');
+ break;
+
+ case 'floatfield':
+ import('form.FloatField');
+ $el = new FloatField($params['name']);
+ if (isset($params['format'])) $el->setFormat($params['format']);
+ break;
+
+ case 'textarea':
+ import('form.TextArea');
+ $el = new TextArea($params['name']);
+ if (isset($params['maxlength'])) $el->setMaxLength($params['maxlength']);
+ break;
+
+ case 'checkbox':
+ import('form.Checkbox');
+ $el = new Checkbox($params['name']);
+ break;
+
+ case 'hidden':
+ import('form.Hidden');
+ $el = new Hidden($params['name']);
+ break;
+
+ case 'submit':
+ import('form.Submit');
+ $el = new Submit($params['name']);
+ break;
+
+// TODO: refactoring ongoing down from here.