|
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
}