. */ /** * plugin_form classe pour generer des elements de formulaire * @author Mika * @link http://mkf.mkdevs.com/ */ class plugin_formMultiRow{ protected $tObject; protected $ttMessage; protected $isPost; protected $i=-1; const NOVALUE='pluginFormNoValue'; /** * constructeur * @access public * @param object $oObject objet en edition */ public function __construct(){ $this->isPost=false; if(_root::getRequest()->isPost()){ $this->isPost=true; } } public function add($oObject){ $this->i++; $this->tObject[$this->i]=$oObject; } /** * initialise le tableau de message d'erreur * @access public * @param array $tMessage tableau de message d'erreur */ public function setMessage($tMessage){ $this->tMessage=$tMessage; } /** * retourne un champ input cache * @access public * @param string $sName nom du champ * @param array $tOption options du champ texte */ public function getInputHidden($sName,$tOption=null){ $sHtml=null; $sHtml.='getOption($tOption).'/>'; return $sHtml; } /** * retourne un champ input de jeton (xsrf) * @access public * @param string $sName nom du champ * @param string $sValue valeur du jeton * @param array $tOption options du champ texte */ public function getToken($sName,$sValue,$tOption=null){ $sHtml=null; $sHtml.='getOption($tOption).'/>'; $sHtml.=$this->getMessage($sName); return $sHtml; } /** * retourne un champ input texte * @access public * @param string $sName nom du champ * @param array $tOption options du champ texte */ public function getInputText($sName,$tOption=null){ $sHtml=null; $sHtml.='getOption($tOption).'/>'; $sHtml.=$this->getMessage($sName); return $sHtml; } /** * retourne un champ input textarea * @access public * @param string $sName nom du champ * @param array $tOption options du champ texte */ public function getInputTextarea($sName,$tOption=null){ $sHtml=null; $sHtml.=''; $sHtml.=$this->getMessage($sName); return $sHtml; } /** * retourne un champ upload * @access public * @param string $sName nom du champ * @param array $tOption options du champ upload */ public function getInputUpload($sName,$tOption=null){ $sHtml=null; $sHtml.='getOption($tOption).'/>'; $sHtml.=$this->getMessage($sName); return $sHtml; } /** * retourne un champ menu deroulant * @access public * @param string $sName nom du champ * @param array @tValue tableau des valeurs du menu deroulant * @param array $tOption options du champ */ public function getSelect($sName,$tValue,$tOption=null){ $sCurrentValue=$this->getValue($sName); $sHtml=null; $sHtml.=''; $sHtml.=$this->getMessage($sName); return $sHtml; } /** * retourne une liste de champs radio * @access public * @param string $sName nom du champ * @param array @tValue tableau des valeurs de champ radio * @param array $tOption options des champs */ public function getListRadio($sName,$tValue,$tOption=null){ $sCurrentValue=$this->getValue($sName); $sHtml=null; foreach($tValue as $sValue => $sLabel){ $sHtml.='getOption($tOption).'/>'.$sLabel.' '; } $sHtml.=$this->getMessage($sName); return $sHtml; } /** * retourne un champ input checkbox * @access public * @param string $sName nom du champ * @param string $sValue valeur du champ checkbox * @param array $tOption options du champ */ public function getInputCheckbox($sName,$sValue,$tOption=null){ $sCurrentValue=$this->getValue($sName); $sHtml='i.']" value="'.$sValue.'" '.$this->getOption($tOption).'/>'; $sHtml.=$this->getMessage($sName); return $sHtml; } /** * retourne un champ input radio * @access public * @param string $sName nom du champ * @param string $sValue valeur du champ radio * @param array $tOption options du champ */ public function getInputRadio($sName,$sValue,$tOption=null){ $sCurrentValue=$this->getValue($sName); $sHtml='i.']" value="'.$sValue.'" '.$this->getOption($tOption).'/>'; $sHtml.=$this->getMessage($sName); return $sHtml; } private function getValue($sName){ $tPost=_root::getParam($sName); if($this->isPost and isset($tPost[$this->id]) ){ return $tPost[$this->id]; }else if($this->tObject and isset($this->tObject[$this->i]->$sName)){ return $this->tObject[$this->i]->$sName; } return null; } private function getMessage($sName){ if(isset($this->tMessage[$this->i]) and isset($this->tMessage[$this->i][$sName])){ if(is_array($this->tMessage[$this->i][$sName])){ return '

'.implode(',',$this->tMessage[$this->i][$sName]).'

'; }else{ return '

'.$this->tMessage[$this->i][$sName].'

'; } } return null; } private function getOption($tOption=null){ if(!$tOption){ return null; } $sHtml=null; foreach($tOption as $sKey => $sValue){ $sHtml.=$sKey.'="'.$sValue.'" '; } return $sHtml; } }