Select Git revision
check_opencpu
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].'"';
}
}