tField=array(
'classModelUser',
'classModelGroup',
'classModelGroupUser',
'classModelPermission',
'classModelAction',
'classModelItem',
'moduleToGenerate',
'modelToGenerate',
);
$tFields=array(
'classModelUser' => array('columnUser',array()),
'classModelGroupUser' => array('columnUser',array('users_id','groups_id')),
'classModelGroup' => array('columnGroup',array('id','name')),
'classModelPermission' => array('columnPermission',array('groups_id','items_id','actions_id','id')),
'classModelAction' => array('columnAction',array('id','name')),
'classModelItem' => array('columnItem',array('id','name')),
);
foreach($tFields as $sKey => $tDetail){
foreach($tDetail[1] as $sField){
$this->tField[]=$sKey.'_'.$sField;
}
}
}
public function _index(){
$this->init();
$tMessage=$this->process();
module_builder::getTools()->rootAddConf('conf/connexion.ini.php');
$oDir=new _dir(_root::getConfigVar('path.generation')._root::getParam('id').'/model/');
$tFile=array(null);
$tColumn=array();
$tRowMethodes=array();
foreach($oDir->getListFile() as $oFile){
if(preg_match('/.sample.php/',$oFile->getName()) or !preg_match('/.php$/',$oFile->getName())) continue;
require_once( $oFile->getAdresse() );
$sClass=substr($oFile->getName(),0,-4);
$oModelFoo=new $sClass;
$tFile[$sClass]=$oFile->getName();
$tColumnFoo=module_builder::getTools()->getListColumnFromClass($sClass);
$tColumnClass=array(null);
foreach($tColumnFoo as $sField){
$tColumnClass[ $sField ]=$sField;
}
$tColumn[$sClass]=$tColumnClass;
}
//formu
$oForm=new stdclass;
foreach($this->tField as $sField){
$oForm->$sField=null;
}
$oForm->moduleToGenerate='rightsManagerMulti';
$oForm->modelToGenerate='rightsManagerMulti';
$oTpl= $this->getView('index');
$oTpl->tModel=$tFile;
$oTpl->tColumn=$tColumn;
$oTpl->oForm=$oForm;
$oTpl->tMessage=$tMessage;
$oTpl->msg=$this->msg;
$oTpl->detail=$this->detail;
$oTpl->tError=$this->tError;
return $oTpl;
}
private function process(){
if(_root::getRequest()->isPost()==false or _root::getParam('actioncode')!='generate'){
return null;
}
$tField=$this->tField;
$oValid=new plugin_valid(_root::getRequest()->getParams());
foreach($tField as $sField){
$oValid->isLongerOrEqualThan($sField,2,'obligatoire');
}
if(!$oValid->isValid()){
return $oValid->getListError();
}
//ok
$sClassModelRightsManager='model_'._root::getParam('modelToGenerate');
$sClassRowRightsManager='row_'._root::getParam('modelToGenerate');
$sObjectRightManger='o'.ucfirst(_root::getParam('modelToGenerate'));
$sModuleRightsManager=_root::getParam('moduleToGenerate');
//permissions
$classModelPermission=_root::getParam('classModelPermission');
include_once(_root::getConfigVar('path.generation')._root::getParam('id').'/model/'.$classModelPermission.'.php');
$oPermission=new $classModelPermission;
//actions
$classModelAction=_root::getParam('classModelAction');
include_once(_root::getConfigVar('path.generation')._root::getParam('id').'/model/'.$classModelAction.'.php');
$oAction=new $classModelAction;
//items
$classModelItem=_root::getParam('classModelItem');
include_once(_root::getConfigVar('path.generation')._root::getParam('id').'/model/'.$classModelItem.'.php');
$oItem=new $classModelItem;
//groups
$classModelGroup=_root::getParam('classModelGroup');
include_once(_root::getConfigVar('path.generation')._root::getParam('id').'/model/'.$classModelGroup.'.php');
$oGroup=new $classModelGroup;
//groupsUser
$classModelGroupUser=_root::getParam('classModelGroupUser');
include_once(_root::getConfigVar('path.generation')._root::getParam('id').'/model/'.$classModelGroupUser.'.php');
$oGroupUser=new $classModelGroupUser;
//users
$classModelUser=_root::getParam('classModelUser');
include_once(_root::getConfigVar('path.generation')._root::getParam('id').'/model/'.$classModelUser.'.php');
$oUser=new $classModelUser;
$exampleConfig=$oPermission->getConfig();
$exampleTable=$oPermission->getTable();
$exampleUserGroups_id=_root::getParam('classModelUser_groups_id');
$exampleAction_name=_root::getParam('classModelAction_name');
$exampleItem_name=_root::getParam('classModelItem_name');
//exampleGroups_id
//exampleAction_name
//exampleItem_name
$sPermissionTable=$oPermission->getTable();
$sPermissionActionId=_root::getParam('classModelPermission_actions_id');
$sPermissionItemId=_root::getParam('classModelPermission_items_id');
$sPermissionGroupId=_root::getParam('classModelPermission_groups_id');
$sPermissionId=_root::getParam('classModelPermission_id');
$sActionTable=$oAction->getTable();
$sActionId=_root::getParam('classModelAction_id');
$sActionName=_root::getParam('classModelAction_name');
$sItemTable=$oItem->getTable();
$sItemId=_root::getParam('classModelItem_id');
$sItemName=_root::getParam('classModelItem_name');
$sGroupTable=$oGroup->getTable();
$sGroupId=_root::getParam('classModelGroup_id');
$sGroupName=_root::getParam('classModelGroup_name');
$sGroupUserTable=$oGroupUser->getTable();
$sGroupUserUserId=_root::getParam('classModelGroupUser_users_id');
$sGroupUserGroupId=_root::getParam('classModelGroupUser_groups_id');
$sUserTable=$oUser->getTable();
$sUserId=_root::getParam('classModelUser_id');
$sUserGroupId=_root::getParam('classModelUser_groups_id');
$sUserLogin=_root::getParam('classModelUser_login');
$r="\n";
$t="\t";
//requete requeteFindListByUser
/*SOURCE*/$oSourceModel=$this->getObjectSource('model_rightsManagerMulti.php');
$exampleRequeteFindListByUser=$oSourceModel->getSnippet('requeteFindListByUser',array(
'#sActionTable#'=>$sActionTable,
'#sActionId#'=>$sActionId,
'#sActionName#'=>$sActionName,
'#sItemTable#'=>$sItemTable,
'#sItemId#'=>$sItemId,
'#sItemName#'=>$sItemName,
'#sGroupUserTable#'=>$sGroupUserTable,
'#sGroupUserGroupId#'=>$sGroupUserGroupId,
'#sGroupUserUserId#'=>$sGroupUserUserId,
'#sPermissionTable#'=>$sPermissionTable,
'#sPermissionItemId#'=>$sPermissionItemId,
'#sPermissionActionId#'=>$sPermissionActionId,
'#sPermissionGroupId#'=>$sPermissionGroupId,
));
//requete findAll
$exampleRequeteFindAll=$oSourceModel->getSnippet('exampleRequeteFindAll',array(
'#sActionTable#'=>$sActionTable,
'#sActionId#'=>$sActionId,
'#sActionName#'=>$sActionName,
'#sItemTable#'=>$sItemTable,
'#sItemId#'=>$sItemId,
'#sItemName#'=>$sItemName,
'#sGroupTable#'=>$sGroupTable,
'#sGroupId#'=>$sGroupId,
'#sGroupName#'=>$sGroupName,
'#sPermissionId#'=>$sPermissionId,
'#sPermissionTable#'=>$sPermissionTable,
'#sPermissionItemId#'=>$sPermissionItemId,
'#sPermissionActionId#'=>$sPermissionActionId,
'#sPermissionGroupId#'=>$sPermissionGroupId,
));
/*SOURCE*/$oSourceModel->setPattern('#model_examplemodel#',$sClassModelRightsManager);
/*SOURCE*/$oSourceModel->setPattern('#row_examplemodel#',$sClassRowRightsManager);
/*SOURCE*/$oSourceModel->setPattern('#exampleTable#',$exampleTable);
/*SOURCE*/$oSourceModel->setPattern('#exampleConfig#',$exampleConfig);
/*SOURCE*/$oSourceModel->setPattern('#requeteFindListByUser#',$exampleRequeteFindListByUser);
/*SOURCE*/$oSourceModel->setPattern('#exampleRequeteFindAll#',$exampleRequeteFindAll);
/*SOURCE*/$oSourceModel->setPattern('#examplePermission_id#',$sPermissionId);
/*SOURCE*/$oSourceModel->setPattern('#exampleUserGroups_id#',$sUserGroupId);
/*SOURCE*/$oSourceModel->setPattern('#exampleAction_name#',$sActionName);
/*SOURCE*/$oSourceModel->setPattern('#exampleItem_name#',$sItemName);
/*SOURCE*/$oSourceModel->setPattern('#exampleGroupTable#',$sGroupTable);
/*SOURCE*/$oSourceModel->setPattern('#exampleGroup_id#',$sGroupId);
/*SOURCE*/$oSourceModel->setPattern('#exampleGroup_name#',$sGroupName);
/*SOURCE*/$oSourceModel->setPattern('#exampleActionTable#',$sActionTable);
/*SOURCE*/$oSourceModel->setPattern('#exampleAction_id#',$sActionId);
/*SOURCE*/$oSourceModel->setPattern('#exampleAction_name#',$sActionName);
/*SOURCE*/$oSourceModel->setPattern('#exampleItemTable#',$sItemTable);
/*SOURCE*/$oSourceModel->setPattern('#exampleItem_id#',$sItemId);
/*SOURCE*/$oSourceModel->setPattern('#exampleItem_name#',$sItemName);
/*SOURCE*/$oSourceModel->setPattern('#exampleUserTable#',$sUserTable);
/*SOURCE*/$oSourceModel->setPattern('#exampleUser_id#',$sUserId);
/*SOURCE*/$oSourceModel->setPattern('#exampleUser_login#',$sUserLogin);
/*SOURCE*/$oSourceModel->setPattern('#exampleUser_groupsId#',$sUserGroupId);
/*SOURCE*/$oSourceModel->setPattern('#exampleGroupUserTable#',$sGroupUserTable);
/*SOURCE*/$oSourceModel->setPattern('#exampleGroupUserGroupId#',$sGroupUserGroupId);
/*SOURCE*/$oSourceModel->setPattern('#exampleGroupUserUserId#',$sGroupUserUserId);
/*SOURCE*/$oSourceModel->setPattern('#sClassModelRightsManager#',$sClassModelRightsManager);
/*SOURCE*/$bSave=$oSourceModel->save();
if($bSave==false){
return array('error' => trR('fichierExisteDeja',array('#FICHIER#'=>'model/'.$sClassModelRightsManager.'.php')));
}
//--module main
/*SOURCE*/$oSourceMain=$this->getObjectSource('example/main.php');
/*SOURCE*/$oSourceMain->setPattern('#MODULE#',$sModuleRightsManager);
$tReplace=array(
'#examplemodule#' => $sModuleRightsManager,
'#model_examplemodel#'=>$sClassModelRightsManager,
'#row_examplemodel#'=>$sClassRowRightsManager,
'#oExamplemodel#'=>$sObjectRightManger,
'#examplePermissionId#' =>$sPermissionId,
'#exampleGroupId#'=>$sPermissionGroupId,
'#exampleActionId#'=>$sPermissionActionId,
'#exampleItemId#'=>$sPermissionItemId,
'#exampleUserTable#'=>$sUserTable,
'#exampleUser_id#'=>$sUserId,
'#exampleUser_login#'=>$sUserLogin,
'#exampleUser_groupsId#'=>$sUserGroupId,
'#exampleUserTable#'=>$sUserTable,
'#exampleUser_id#'=>$sUserId,
'#exampleUser_login#'=>$sUserLogin,
'#exampleUser_groupsId#'=>$sUserGroupId,
);
/*SOURCE*/$oSourceMain->setListPattern($tReplace);
/*SOURCE*/$bSave=$oSourceMain->save();
if($bSave==false){
return array('error' => trR('fichierExisteDeja',array('#FICHIER#'=>'module/'.$sModuleRightsManager.'/main.php')));
}
$tView=array('index','new','edit','delete','userEdit');
foreach($tView as $sView){
//--view
/*SOURCE*/$oSourceView=$this->getObjectSource('example/view/'.$sView.'.php');
/*SOURCE*/$oSourceView->setPattern('#MODULE#',$sModuleRightsManager);
/*SOURCE*/$oSourceView->setListPattern($tReplace);
/*SOURCE*/$bSave=$oSourceView->save();
if($bSave==false){
return array('error' => trR('fichierExisteDeja',array('#FICHIER#'=>'module/'.$sModuleRightsManager.'/view/'.$sView.'.php')));
}
}
//-----------
$sMsg=null;
$sDetail=null;
$sMsg='Model '.$sClassModelRightsManager.' et Module '.$sModuleRightsManager.' générés avec succès';
$sDetail.=trR('CreationDuFichierVAR',array('#FICHIER#'=>'model/'.$sClassModelRightsManager.'.php')).'
';
$sDetail.=trR('creationRepertoire',array('#REPERTOIRE#'=>'module/'.$sModuleRightsManager.'/')).'
';
$sDetail.=trR('creationRepertoire',array('#REPERTOIRE#'=>'Création du repertoire module/'.$sModuleRightsManager.'/view/')).'
';
$sDetail.=trR('CreationDuFichierVAR',array('#FICHIER#'=>'module/'.$sModuleRightsManager.'/main.php')).'
';
$sDetail.=trR('CreationDuFichierVAR',array('#FICHIER#'=>'module/'.$sModuleRightsManager.'/view/index.php')).'
';
$sDetail.=trR('CreationDuFichierVAR',array('#FICHIER#'=>'module/'.$sModuleRightsManager.'/view/new.php')).'
';
$sDetail.=trR('CreationDuFichierVAR',array('#FICHIER#'=>'module/'.$sModuleRightsManager.'/view/edit.php')).'
';
$sDetail.=trR('CreationDuFichierVAR',array('#FICHIER#'=>'module/'.$sModuleRightsManager.'/view/delete.php')).'
';
$sDetail.='
'.tr('accessibleVia').' index.php?:nav='.$sModuleRightsManager.'::index';
$sModuleAuth='auth';
$tConfig=module_builder::getTools()->rootAddConf('conf/site.ini.php');
if(isset($tConfig['auth']) and isset($tConfig['auth']['module'])){
$sModuleAuthAndAction=$tConfig['auth']['module'];
if(preg_match('/:/',$sModuleAuthAndAction)){
list($sModuleAuth,$foo)=explode(':',$sModuleAuthAndAction);
}
}
$r="\n";
$t="\t";
$sCode=null;
$sCode='getAccount();'.$r;
$sCode.=$t.$sClassModelRightsManager.'::getInstance()->loadForUser($oUser);'.$r;
$sCode.=$r;
$sCode.=$t.'_root::redirect(\'privatemodule_action\');'.$r;
$sCode.='}'.$r;
$sCodeHighli=highlight_string($sCode,1);
return array('msg' => $sMsg,'detail'=>$sDetail,'code'=>$sCodeHighli,'auth'=>$sModuleAuth);
}
}