noalyss  Version-6.7.2
Public Member Functions
Profile_Menu Class Reference

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.

Detailed Description

Manage the menu of a profile.

Author:
dany

Definition at line 28 of file class_profile_menu.php.


Constructor & Destructor Documentation

Definition at line 31 of file class_profile_menu.php.

References cn.

        {
                $this->cn = $p_cn;
        }

Member Function Documentation

Show the available profile for the profile $p_id, it concerns only the action of management (action-gestion)

Parameters:
$p_idis the profile p_id

Definition at line 237 of file class_profile_menu.php.

References $array, and cn.

                {
                        $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';
                }

Show the available repository for the profile $p_id.

Parameters:
$p_idis the profile p_id

Definition at line 261 of file class_profile_menu.php.

References $array, and cn.

                {
                        $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';
                }

Show a table with all the menu and the type.

Parameters:
type$p_idprofile.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);
                                }
                        }
                }

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.

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

The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Enumerations