. */ /** * plugin_form classe pour generer des elements de formulaire * @author Mika * @link http://mkf.mkdevs.com/ */ class plugin_form{ protected $oObject; protected $tMessage; protected $isPost; const NOVALUE='pluginFormNoValue'; /** * constructeur * @access public * @param object $oObject objet en edition */ public function __construct($oObject=null){ $this->oObject=$oObject; $this->isPost=false; if(_root::getRequest()->isPost()){ $this->isPost=true; } } /** * 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='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='getOption($tOption).'/>'; $sHtml.=$this->getMessage($sName); return $sHtml; } private function getValue($sName){ if($this->isPost and _root::getParam($sName,self::NOVALUE)!=self::NOVALUE){ return _root::getParam($sName); }else if($this->oObject and isset($this->oObject->$sName)){ return $this->oObject->$sName; } return null; } private function getMessage($sName){ if(isset($this->tMessage[$sName])){ if(is_array($this->tMessage[$sName])){ return '

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

'; }else{ return '

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

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