]> wagnertech.de Git - timetracker.git/blobdiff - WEB-INF/lib/form/Form.class.php
Soem refactoring to keep things a bit more consistent.
[timetracker.git] / WEB-INF / lib / form / Form.class.php
index 14680db48710f866e35d00fe0690e8d6b3c59786..50804dd83135cd10720a055deabf265922031e81 100644 (file)
 class Form {
 
   var $name = '';
+  var $elements = array();
   // TODO: refactoring ongoing down from here.
 
-       var $mMethod       = "post";
-       var $mEnctype      = "";
-       var $mId           = "";
-    var $error;
-       var $debugFunction;
-       var $mElements     = array();
        var $mRequest;
-//     var $mFormBean;
     
-    function __construct($formid) {
-        $this->name = $formid;
+    function __construct($formName) {
+        $this->name = $formName;
     }
     
     function setRequest(&$request) {
         $this->mRequest = &$request;
     }
-    
-/*    function setFormBean(&$bean) {
-        $this->mFormBean = &$bean;
-    }
-*/    
+
     function &getElement($name) {
-       return $this->mElements[$name];
+        return $this->elements[$name];
     }
     
     function &getElements() {
-       return $this->mElements;
+        return $this->elements;
     }
     
        //// FORM element
@@ -74,19 +64,12 @@ class Form {
        // name
        // onsubmit
        // onreset
-       function setName($value) { $this->name = $value; }
     function getName() { return $this->name; }
     
-    function setId($value) { $this->mId = $value; }
-    function getId() { return $this->mId; }
-    
-    function setMethod($value) { $this->mMethod = $value; }
-    function getMethod() { return $this->mMethod; }
-    
     function isSubmit()        {
        if (!isset($this->mRequest)) return false;
         $result = false;
-           foreach ($this->mElements as $el) {
+           foreach ($this->elements as $el) {
                if (strtolower(get_class($el))=="submit") {
                    $name = $el->getName();
                    $value = $this->mRequest->getAttribute($name);
@@ -98,15 +81,6 @@ class Form {
         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
@@ -122,18 +96,6 @@ class Form {
        // 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":
@@ -216,9 +178,6 @@ class Form {
                            $el = new UploadFile($arguments["name"]);
                            if (isset($arguments["maxsize"])) $el->setMaxSize($arguments["maxsize"]);
                            break;
-                             
-                       default:
-                               return($this->OutputError("Type not found for input element","AddInput"));
                }
                if ($el!=null) {
                        $el->setFormName($this->name);
@@ -236,19 +195,16 @@ class Form {
                        if (isset($arguments["onchange"])) $el->setOnChange($arguments["onchange"]);
                        if (isset($arguments["onclick"])) $el->setOnClick($arguments["onclick"]);
                        
-                       $this->mElements[$arguments["name"]] = &$el;
+                       $this->elements[$arguments["name"]] = &$el;
                }
        }
        
        function addInputElement(&$el) {
                if ($el && is_object($el)) {
-                       if (!$el->getName())
-                           return($this->OutputError("no name in element","addInputElement"));
-                           
-                       if (isset($GLOBALS["I18N"])) $el->setLocalization($GLOBALS["I18N"]);
-               
+                        if (isset($GLOBALS["I18N"])) $el->setLocalization($GLOBALS["I18N"]);
+
                        $el->setFormName($this->name);
-                       $this->mElements[$el->getName()] = &$el;
+                       $this->elements[$el->getName()] = &$el;
                }
        }
        
@@ -256,31 +212,25 @@ class Form {
        function toStringOpenTag() {
         $html = "<form name=\"$this->name\"";
         
-        if ($this->mId!="") 
-            $html .= " id=\"$this->mId\"";
-            
-        if ($this->mMethod!="") 
-            $html .= " method=\"$this->mMethod\"";
+        $html .= ' method="post"';
         
-        // for upload forms
-        foreach ($this->mElements as $elname=>$el) {
-            if (strtolower(get_class($this->mElements[$elname]))=="uploadfile") {
-               $this->mEnctype = "multipart/form-data";
+        // Add enctype for file upload forms.
+        foreach ($this->elements as $elname=>$el) {
+            if (strtolower(get_class($this->elements[$elname])) == 'uploadfile') {
+                $html .= ' enctype="multipart/form-data"';
+                break;
             }
         }
-        
-        if ($this->mEnctype!="")
-               $html .= " enctype=\"$this->mEnctype\"";
-        
+
         $html .= ">";
         return $html;
     }
     
     function toStringCloseTag() {
        $html = "\n";
-       foreach ($this->mElements as $elname=>$el) {
-            if (strtolower(get_class($this->mElements[$elname]))=="hidden") {
-               $html .= $this->mElements[$elname]->toStringControl()."\n";
+        foreach ($this->elements as $elname=>$el) {
+            if (strtolower(get_class($this->elements[$elname]))=="hidden") {
+                $html .= $this->elements[$elname]->toStringControl()."\n";
             }
         }
         $html .= "</form>";
@@ -292,21 +242,21 @@ class Form {
         $vars['open'] = $this->toStringOpenTag();
         $vars['close'] = $this->toStringCloseTag();
         
-        foreach ($this->mElements as $elname=>$el) {
-            if (is_object($this->mElements[$elname])) 
-                $vars[$elname] = $this->mElements[$elname]->toArray();
+        foreach ($this->elements as $elname=>$el) {
+            if (is_object($this->elements[$elname]))
+                $vars[$elname] = $this->elements[$elname]->toArray();
         }
 //print_r($vars);
         return $vars;
     }
     
     function getValueByElement($elname) {
-       return $this->mElements[$elname]->getValue();
+        return $this->elements[$elname]->getValue();
     }
     
     function setValueByElement($elname, $value) {
-       if (isset($this->mElements[$elname])) {
-               $this->mElements[$elname]->setValue($value);
+        if (isset($this->elements[$elname])) {
+            $this->elements[$elname]->setValue($value);
        }
     }
 }