Skip to content
Snippets Groups Projects
Select Git revision
  • 517dcc6e26f69f4ac7a8912845f05cde4af763b7
  • master default protected
  • simple-task/7248-eol-check-add-node-22
  • 6877_check_iml_deployment
4 results

check_opencpu

Blame
  • formgen.class.php 12.06 KiB
    <?php
    
    
    class formgen {
        var $aForm=array();
        var $sRequired=' <span title="Eingabe ist erforderlich"><span style="color:#c00;">*</span></span>';
        
        /**
         * constructor
         * @param array $aNewFormData
         * @return boolean
         */
        public function __construct($aNewFormData=array()) {
            if (count($aNewFormData)) return $this->setFormarray($aNewFormData);
            return true;
        }
        
        /**
         * set a new array
         * @param array $aNewFormData
         * @return boolean
         */
        public function setFormarray($aNewFormData=array()){
            if (!is_array($aNewFormData) || !count($aNewFormData)){
                return false;
            }        
            return $this->aForm=$aNewFormData;
        }
        
        /**
         * render a complete form
         * @param string $sFormId
         * @return string html output
         */
        public function renderHtml($sFormId){
            $sReturn=false;
            if (!array_key_exists($sFormId, $this->aForm)) {
                die("ERROR: " . __CLASS__ . ":".__FUNCTION__ . " - form id " . $sFormId . " does not exist.");
            }
            $sReturn.='<form ';
            if (array_key_exists("meta", $this->aForm[$sFormId])){
                foreach (array("method","action","target","accept-charset") as $sAttr){
                    if (array_key_exists($sAttr, $this->aForm[$sFormId]["meta"])){
                        $sReturn.=$sAttr.'="'.$this->aForm[$sFormId]["meta"][$sAttr].'" ';
                    }
                }
            }
            $sReturn.='>';
            foreach ($this->aForm[$sFormId]["form"] as $elementKey=>$elementData){
                $sReturn.=$this->renderHtmlElement($elementKey, $elementData);
            }
            $sReturn.='</form>';
            
            return $sReturn;
        }
    
        /**
         * add html attributes if they exist
         * @param array $aAttributes  list of attributes to search for
         * @param array $elementData  array of form element
         * @return string
         */
        private function _addHtmlAtrributes($aAttributes,$elementData){
            $sReturn=false;
            foreach($aAttributes as $sAtrr){
                if (array_key_exists($sAtrr, $elementData) && $elementData[$sAtrr]){
                    if ($sReturn) $sReturn.=' ';
                    $sReturn.=$sAtrr.'="'.$elementData[$sAtrr].'"';
                }
            }