noalyss
Version-6.7.2
|
Manage the menu of a profile. More...
Public Member Functions | |
__construct ($p_cn) | |
available_profile ($p_id) | |
Show the available profile for the profile $p_id, it concerns only the action of management (action-gestion) | |
available_repository ($p_id) | |
Show the available repository for the profile $p_id. | |
listing_profile ($p_id) | |
Show a table with all the menu and the type. | |
printing ($p_id) | |
sub_menu ($resource, $p_id) | |
Display the content of a profile. |
Manage the menu of a profile.
Definition at line 28 of file class_profile_menu.php.
Profile_Menu::__construct | ( | $ | p_cn | ) |
Profile_Menu::available_profile | ( | $ | p_id | ) |
Show the available profile for the profile $p_id, it concerns only the action of management (action-gestion)
$p_id | is the profile p_id |
Definition at line 237 of file class_profile_menu.php.
{ $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($p_id)); $aright_value=array( array('value'=>'R','label'=>_('Lecture')), array('value'=>'W','label'=>_('Ecriture')), array('value'=>'X','label'=>_('Aucun accès')) ); require_once 'template/user_sec_profile.php'; }
Profile_Menu::available_repository | ( | $ | p_id | ) |
Show the available repository for the profile $p_id.
$p_id | is the profile p_id |
Definition at line 261 of file class_profile_menu.php.
{ $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($p_id)); $aright_value=array( array('value'=>'R','label'=>_('Lecture')), array('value'=>'W','label'=>_('Ecriture')), array('value'=>'X','label'=>_('Aucun accès')) ); require_once 'template/profile_sec_repository.php'; }
Profile_Menu::listing_profile | ( | $ | p_id | ) |
Show a table with all the menu and the type.
type | $p_id | profile.p_id |
Definition at line 96 of file class_profile_menu.php.
References $array, $gDossier, $js, $ret, cn, echo, id, Database\num_row(), and sub_menu().
{ $array = $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 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($p_id)); if (count($array) == 0) { // if not module show only menu $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='E' order by p_order asc ", array($p_id)); echo '<ul style="list-style-type:none">'; $this->sub_menu($ret, $p_id); // $this->listing_profile($p_id,$ret, $array[$i]['me_code']); echo "</li>"; echo '</ul>'; } else { $this->cn->prepare("menu", " 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 and p_type_display in ('E','S') order by p_order asc "); echo '<ul style="list-style-type:none">'; // Menu by module $gDossier = Dossier::id(); for ($i = 0; $i < count($array); $i++) { $me_def=($array[$i]['pm_default']=='1')?'<span class="notice" style="display:inline">Défaut</span>':''; $js = sprintf('<a class="line" style="display:inline;text-decoration:underline" href="javascript:void(0)" onclick="mod_menu(\'%s\',\'%s\')">%s</A>', $gDossier, $array[$i]['pm_id'], $array[$i]['me_code']); echo "<li>" . $array[$i]['me_menu'] . " (" . $js . ")" . $array[$i]['me_description']." ".$me_def; $ret = $this->cn->execute("menu", array($p_id, $array[$i]['me_code'])); $this->sub_menu($ret, $p_id); echo "</li>"; }// end loop i echo '</ul>'; //******************************************* // 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($p_id)); if (Database::num_row($ret)) { echo "<h2>Menu sans module</h2>"; $this->sub_menu($ret, $p_id); } } }
Profile_Menu::printing | ( | $ | p_id | ) |
Definition at line 209 of file class_profile_menu.php.
References $gDossier, $ret, cn, id, and sub_menu().
{ $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($p_id)); // Menu by module $gDossier = Dossier::id(); $this->sub_menu($ret, $p_id); }
Profile_Menu::sub_menu | ( | $ | resource, |
$ | p_id | ||
) |
Display the content of a profile.
type | $resource | |
type | $p_id |
Definition at line 40 of file class_profile_menu.php.
References $e, $gDossier, $js, $me_code, $me_code_dep, $menu, cn, echo, Database\fetch_array(), id, and Database\num_row().
Referenced by listing_profile(), and printing().
{ if (Database::num_row($resource) != 0) { $gDossier = dossier::id(); echo '<ul style="list-style-type:none">'; for ($e = 0; $e < Database::num_row($resource); $e++) { $menu = Database::fetch_array($resource, $e); $me_code = $menu['me_code']; $me_code_dep = $menu['me_code_dep']; $mp_type = $menu['p_type_display']; $me_menu = $menu['me_menu']; $me_desc = $menu['me_description']; $me_def=($menu['pm_default']=='1')?'<span class="notice" style="display:inline">Défaut</span>':''; $js = sprintf( '<a class="line" href="javascript:void(0)" onclick="mod_menu(\'%s\',\'%s\')">%s</A>', $gDossier, $menu['pm_id'], $me_code); ?> <li> <?php echo $me_menu?> ( <?php echo $js?> ) <?php echo $me_desc?> <?php echo $me_def?> <?php $ret2 = $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_code_dep=$2 order by p_order asc ", array($p_id, $me_code)); $this->sub_menu($ret2, $p_id); echo "</li>"; } //end loop e echo '</ul>'; } // end if }