- var $formName = "";
- var $mAction = "";
- var $mMethod = "post";
- var $mEnctype = "";
- var $mId = "";
- var $error;
- var $debugFunction;
- var $mElements = array();
- var $mRequest;
-// var $mFormBean;
-
- function Form($formid) {
- $this->formName = $formid;
- }
-
- function setRequest(&$request) {
- $this->mRequest = &$request;
- }
-
-/* function setFormBean(&$bean) {
- $this->mFormBean = &$bean;
- }
-*/
- function &getElement($name) {
- return $this->mElements[$name];
- }
-
- function &getElements() {
- return $this->mElements;
- }
-
- //// FORM element
- // action
- // method - GET, POST
- // enctype - enctype="multipart/form-data"
- // name
- // onsubmit
- // onreset
- function setName($value) { $this->formName = $value; }
- function getName() { return $this->formName; }
-
- function setId($value) { $this->mId = $value; }
- function getId() { return $this->mId; }
-
- function setAction($value) { $this->mAction = $value; }
- function getAction() { return $this->mAction; }
-
- function setMethod($value) { $this->mMethod = $value; }
- function getMethod() { return $this->mMethod; }
-
- function setEnctype($value) { $this->mEnctype = $value; }
- function getEnctype() { return $this->mEnctype; }
-
- function isSubmit() {
- if (!isset($this->mRequest)) return false;
- $result = false;
- foreach ($this->mElements as $el) {
- if (strtolower(get_class($el))=="submit") {
- $name = $el->getName();
- $value = $this->mRequest->getAttribute($name);
- if($value) {
- $result = true;
- }
- }
- }
- return $result;
- }
-
- function OutputError($error,$scope="")
- {
- $this->error=(strcmp($scope,"") ? $scope.": ".$error : $error);
- if(strcmp($function=$this->debugFunction,"")
- && strcmp($this->error,""))
- $function($this->error);
- return($this->error);
- }
-
- //// 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) {
- if(strcmp(gettype($arguments),"array"))
- $this->OutputError("arguments must be array","AddInput");
-
- if(!isset($arguments["type"]) || !strcmp($arguments["type"],""))
- return($this->OutputError("Type not defined","AddInput"));
-
- if(!isset($arguments["name"]) || !strcmp($arguments["name"],""))
- return($this->OutputError("Name of element not defined","AddInput"));
-
- if (isset($this->mElements[$arguments["name"]]))
- return($this->OutputError("it was specified '".$arguments["name"]."' name of an already defined input","AddInput"));
-
- 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;
-
+
+ var $name = '';
+ var $elements = array();
+
+ function __construct($formName) {
+ $this->name = $formName;
+ }
+
+ function getElement($name) {
+ return $this->elements[$name];
+ }
+
+ function getElements() {
+ return $this->elements;
+ }
+
+ function getName() { return $this->name; }
+
+ // addInput - adds an input object to the form.
+ function addInput($arguments) {
+ switch($arguments['type']) {
+ case 'text':
+ import('form.TextField');
+ $el = new TextField($arguments['name']);
+ $el->setMaxLength(@$arguments['maxlength']);
+ if (isset($arguments['aspassword'])) $el->setAsPassword($arguments['aspassword']);
+ break;
+
+// TODO: refactoring ongoing down from here.
+// aspassword - change this name to something better? Perhaps.
+// Change $arguments to something better too (maybe). $args or $params?