cn=$p_cn; parent::__construct($p_cn, $p_id); } /** * Display the content of a profile menu for printing * @param type $resource * @param type $p_id */ function sub_menu($resource, $p_id) { if (Database::num_row($resource)!=0) { //// // If there are submenus $gDossier=dossier::id(); echo ''; for ($e=0; $eDéfaut':''; ?>
  • cn->exec_sql(" SELECT pm_id, pm.me_code, me_code_dep, p_id, p_order, p_type_display, pm_default, pm_desc, me_menu, me_description FROM profile_menu as pm join profile_menu_type on (p_type_display=pm_type) join menu_ref as mr on (mr.me_code=pm.me_code) where p_id=$1 and me_code_dep=$2 order by p_order asc ", array($p_id, $me_code)); ?> "; } //end loop e echo ''; } // end if } /** * Show a table with all the menu and the type * @param type $p_id profile.p_id */ function display_profile_menu_detail() { $a_module=$this->cn->get_array(" SELECT pm_id, pm.me_code, me_code_dep, p_id, p_order, p_type_display, pm_default, pm_desc, me_menu, me_description, me_url, me_file, me_javascript FROM profile_menu as pm join profile_menu_type on (p_type_display=pm_type) join menu_ref as mr on (mr.me_code=pm.me_code) where p_id=$1 and p_type_display='M' order by p_order asc ", array($this->p_id)); //////////////////////////////////////////////////////////// // With a module //////////////////////////////////////////////////////////// $this->display_module($a_module); //******************************************* // show also menu without a module //******************************************* $ret=$this->cn->exec_sql(" SELECT pm_id, pm.me_code, me_code_dep, p_id, p_order, p_type_display, pm_default, pm_desc, me_menu, me_description FROM profile_menu as pm join profile_menu_type on (p_type_display=pm_type) join menu_ref as mr on (mr.me_code=pm.me_code) where p_id=$1 and p_type_display not in ('M','P') and me_code_dep is null order by p_order asc ", array($this->p_id)); } /** * @brief Display the module, with a javascript inside to show the menu * contained in the module * Used for setting the configuration * @param $ap_module $array of module received from display_profile_menu_detail * @see Profile_menu::display_profile_menu_detail */ function display_module($ap_module) { include NOALYSS_INCLUDE.'/template/profile_menu_display_module.php'; } /** * @brief Display all menu and submenu of a module. * @see display_profile_module * */ function display_module_menu($p_module_id, $p_level) { // Get the submenu $a_module=$this->cn->get_array(' SELECT pm_id, me_code, me_code_dep, p_id, p_order, p_type_display, pm_default, me_menu, me_file, me_url, me_javascript, me_parameter, me_description FROM profile_menu join menu_ref using (me_code) where p_id = $1 and pm_id_dep = $2 order by p_order', array($this->p_id, $p_module_id)); require NOALYSS_INCLUDE.'/template/profile_menu_display_submenu.php'; } /** * display all the accessible export of a profile $p_id * @param type $p_id profile.p_id */ function printing() { $ret=$this->cn->exec_sql(" SELECT pm_id, pm.me_code, me_code_dep, p_id, p_order, p_type_display, pm_default, pm_desc, me_menu, me_description FROM profile_menu as pm join profile_menu_type on (p_type_display=pm_type) join menu_ref as mr on (mr.me_code=pm.me_code) where p_id=$1 and me_type='PR' order by p_order asc ", array($this->p_id)); // Menu by module $gDossier=Dossier::id(); $this->sub_menu($ret, $this->p_id); } /** * Show the available profile for the profile $p_id, it concerns only the action of management (action-gestion) * @param $p_id is the profile p_id */ function available_profile() { $array=$this->cn->get_array(" select p.p_id,p.p_name,s.p_granted,s.ua_id,s.ua_right from profile as p join user_sec_action_profile as s on (s.p_granted=p.p_id) where s.p_id=$1 union select p2.p_id, p2.p_name,null,null,'X' from profile as p2 where p2.p_id not in (select p_granted from user_sec_action_profile where p_id = $1) order by p_name; ", array($this->p_id)); $aright_value=array( array('value'=>'R', 'label'=>_('Lecture')), array('value'=>'W', 'label'=>_('Ecriture')), array('value'=>'X', 'label'=>_('Aucun accès')) ); require_once NOALYSS_INCLUDE.'/template/user_sec_profile.php'; } /** * Show the available repository for the profile $p_id * @param $p_id is the profile p_id */ function available_repository() { $array=$this->cn->get_array(" select p.r_id,p.r_name,s.ur_id,s.ur_right from stock_repository as p join profile_sec_repository as s on (s.r_id=p.r_id) where s.p_id=$1 union select p2.r_id, p2.r_name,null,'X' from stock_repository as p2 where p2.r_id not in (select r_id from profile_sec_repository where p_id = $1) order by r_name; ", array($this->p_id)); $aright_value=array( array('value'=>'R', 'label'=>_('Lecture')), array('value'=>'W', 'label'=>_('Ecriture')), array('value'=>'X', 'label'=>_('Aucun accès')) ); require_once NOALYSS_INCLUDE.'/template/profile_sec_repository.php'; } } //end class ?>