processSimple(); module_builder::getTools()->rootAddConf('conf/connexion.ini.php'); $oDir=new _dir(_root::getConfigVar('path.generation')._root::getParam('id').'/model/'); $tFile=array(); $tRowMethodes=array(); $tModule=module_builder::getTools()->getListModule(); foreach($oDir->getListFile() as $oFile){ if(preg_match('/.sample.php/',$oFile->getName()) or !preg_match('/.php$/',$oFile->getName())) continue; $tFile[]=$oFile->getName(); require_once( $oFile->getAdresse() ); $sClassFoo=substr($oFile->getName(),0,-4); $oModelFoo=new $sClassFoo; if( method_exists( $oModelFoo, 'getSelect')){ $tRowMethodes[substr($oFile->getName(),0,-4)]=substr($oFile->getName(),0,-4).'::getSelect()'; } } $oTpl= $this->getView('index'); if(_root::getParam('class') !='' ){ $sClass=substr(_root::getParam('class'),0,-4); require_once(_root::getConfigVar('path.generation')._root::getParam('id').'/model/'.$sClass.'.php'); $tColumn=module_builder::getTools()->getListColumnFromClass($sClass); $oTpl->sClass=$sClass; $sId=null; $tId=module_builder::getTools()->getIdTabFromClass($sClass); foreach($tColumn as $i => $sColumn){ if(in_array($sColumn, $tId) ){ unset($tColumn[$i]); $sId=$sColumn; } } $oTpl->tColumn=$tColumn; $oTpl->sId=$sId; $oTpl->tRowMethodes=$tRowMethodes; $oModel=new $sClass; } $oTpl->msg=$msg; $oTpl->detail=$detail; $oTpl->tFile=$tFile; $oTpl->tModule=$tModule; return $oTpl; } private function processSimple(){ if(!_root::getRequest()->isPost()){ return array(null,null); } $ret="\n"; $t="\t"; $sModule=_root::getParam('module'); $sView=_root::getParam('view'); $tEnable=_root::getParam('tEnable'); $tColumn=_root::getParam('tColumn'); $tLabel=_root::getParam('tLabel'); $tType=_root::getParam('tType'); $sModel=_root::getParam('class'); $sModel=str_replace('.php','',$sModel); $sId=_root::getParam('sId'); /*SOURCE*/$oSourceView=$this->getObjectSource('example/view/example.php'); $colonnestr=null; foreach($tColumn as $i => $sColumn){ if(!in_array($sColumn,$tEnable)){ continue; } $tVar=array(); if($tType[$i]=='text'){ $sFormInput=$oSourceView->getSnippet('getInputText',array('#column#'=>$sColumn)); }else if($tType[$i]=='textarea'){ $sFormInput=$oSourceView->getSnippet('getInputTextarea',array('#column#'=>$sColumn)); }else if(substr($tType[$i],0,6)=='select'){ $tVar[]=$t.'$oView->tJoin'.$sColumn.'='.substr($tType[$i],7).'::getInstance()->getSelect();'; $sFormInput=$oSourceView->getSnippet('getSelect',array('#column#'=>$sColumn)); }else if($tType[$i]=='upload'){ $sFormInput=$oSourceView->getSnippet('upload',array('#column#'=>$sColumn)); }else{ $sFormInput=$oSourceView->getSnippet('getInputText',array('#column#'=>$sColumn)); } $colonnestr.=$oSourceView->getSnippet('ligneTrTd',array('#th#'=>$tLabel[$i],'#td#'=>$sFormInput)); } /*SOURCE*/$oSourceView->setPattern('#colonnestr#',$colonnestr); /*SOURCE*/$oSourceView->setPattern('#examplemodule#',$sModule); /*SOURCE*/$oSourceView->setPattern('#exampleview#',$sView); if($oSourceView->exist()){ return array('Vue deja existante',null); } /*SOURCE*/$oSourceView->save(); $sModel=str_replace('.php','',$sModel); $msg='Vue '.$sView.'.php'.' généré avec succès'; $detail=''; $detail.='Création fichier module/'.$sModule.'/view/'.$sView.'.php '; $sCode='processSave();'.$ret; $sCode.=$t.'//recupere l\'enregistrement'."\n"; $sCode.=$t.'$oData='.$sModel.'::getInstance()->findById(_root::getParam(\'id\'));'.$ret.$ret; $sColumn=''; if($tEnable){ foreach($tEnable as $sEnable){ $sColumn.=','."'".$sEnable."'"; } $sColumn=substr($sColumn,1); } $sCode.=$t.'//recupere la vue du module'."\n"; $sCode.=$t.'$oView=new _view(\''.$sModule.'::'.$sView.'\');'."\n"; $sCode.=$t.'$oView->oData=$oData;'.$ret; $sCode.=$t.'$oView->tMessage=$tMessage;'.$ret; $sCode.=$ret; $sCode.=$t.'$oPluginXsrf=new plugin_xsrf();'.$ret; $sCode.=$t.'$oView->token=$oPluginXsrf->getToken();'.$ret; if($tVar){ foreach($tVar as $sVar){ $sCode.=$sVar.$ret; } } $sCode.="\n"; $sCode.=$t.'//assigner la vue retournee a votre layout'."\n"; $sCode.=$t.'$this->oLayout->add(\'main\',$oView);'."\n"; $sCode.='}'.$ret; $sCode.='private function processSave(){'.$ret; //post $sCode.=$t.'if(!_root::getRequest()->isPost()){'.$ret; $sCode.=$t.$t.'return null;'.$ret; $sCode.=$t.'}'.$ret; $sCode.=$ret; $sCode.=$t.'$oPluginXsrf=new plugin_xsrf();'.$ret; $sCode.=$t.'if(!$oPluginXsrf->checkToken( _root::getParam(\'token\') ) ){ //on verifie que le token est valide'.$ret; $sCode.=$t.$t.'return array(\'token\'=>$oPluginXsrf->getMessage() );'.$ret; $sCode.=$t.'}'.$ret; $sCode.=$t.'$oData='.$sModel.'::getInstance()->findById(_root::getParam(\'id\'));'.$ret.$ret; $sCode.=$t.'$tColumn=array('.$sColumn.');'.$ret; $sCode.=$t.'foreach($tColumn as $sColumn){'.$ret; $sCode.=$t.$t.'$oData->$sColumn=_root::getParam($sColumn);'.$ret; $sCode.=$t.'}'.$ret; $sCode.=$t.'if($oData->save() ){'.$ret; $sCode.=$t.$t.'//redirection vers la page d\'apres'.$ret; $sCode.=$t.'}else{'.$ret; $sCode.=$t.$t.'$tMessage=$oData->getListError();'.$ret; $sCode.=$t.'}'.$ret; $sCode.='}'.$ret.$ret; $detail.='

Pour l\'utiliser, indiquez dans votre module:
'.highlight_string($sCode,1); return array($msg,$detail); } }