source: pmb4.2/trunk/fuentes/pmb/classes/request.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 4.2 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2005 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: request.class.php,v 1.5 2015-04-03 11:16:20 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($include_path.'/parser.inc.php');
10require_once($include_path.'/templates/requests.tpl.php');
11
12if(!defined('REQ_TYP_FRE')) define('REQ_TYP_FRE', 1);   //Type requete  1 = Libre
13
14
15class request {
16       
17        var $idproc = 0;                                //id de procedure
18        var $name = '';                                 //nom de procédure
19        var $requete = '';                              //requete SQL
20        var $comment = '';                              //commentaires sur la procedure
21        var $autorisations = array();   //autorisation d'utilisation de la procedure
22        var $parameters = '';                   //parametres d'execution de la procedure
23        var $num_classement = 0;                //Classement de la procedure
24        var $p_mode = REQ_MOD_FRE;              //mode de procedure
25        var $p_form = '';                               //formulaire XML de description de la procedure
26       
27       
28        //Constructeur
29        function request($idproc=0) {
30
31                if ($idproc) {
32                        $this->idproc = $idproc;
33                        $this->load(); 
34                }
35        }
36
37        // charge une procedure a partir de la base.
38        function load(){
39       
40                global $dbh;
41               
42                $q = "select name, requete, comment, autorisations, parameters, num_classement, p_mode, p_form from procs where idproc = '".$this->idproc."' ";
43                $r = pmb_mysql_query($q, $dbh) ;
44                $obj = pmb_mysql_fetch_object($r);
45
46                $this->name = $obj->name;
47                $this->requete = $obj->requete;
48                $this->comment = $obj->comment;
49                $this->autorisations = explode(' ', $obj->autorisations);
50                $this->parameters = $obj->parameters;
51                $this->p_type = $obj->p_type;
52                $this->num_classement = $obj->num_classement; 
53                $this->p_mode = $obj->p_mode;
54                $this->p_form = $obj->p_form;
55               
56               
57        }
58       
59       
60        // enregistre une procedure en base.
61        function save(){
62               
63                global $dbh;
64                       
65                if ($this->idproc) {
66               
67                        $q = "update procs set ";
68                        $q.= "requete = '".addslashes($this->requete)."', ";
69                        $q.= "comment = '".addslashes($this->comment)."', ";
70                        $q.= "autorisation = '".implode(' ', $this->autorisations)."', ";
71                        $q.= "parameters ='".addslashes($this->parameters)."', ";
72                        $q.= "num_classement = '".$this->num_classement."', ";
73                        $q.= "p_mode = '".$this->p_mode."', ";
74                        $q.= "p_form = '".addslashes($this->p_form)."' ";
75                        $q.= "where idproc = '".$this->idproc."' ";
76                        pmb_mysql_query($q, $dbh);
77               
78                } else {
79
80                        $q = "insert into procs set ";
81                        $q.= "requete = '".addslashes($this->requete)."', ";
82                        $q.= "comment = '".addslashes($this->comment)."', ";
83                        $q.= "autorisation = '".implode(' ', $this->autorisations)."', ";
84                        $q.= "parameters ='".addslashes($this->parameters)."', ";
85                        $q.= "num_classement = '".$this->num_classement."', ";
86                        $q.= "p_mode = '".$this->p_mode."', ";
87                        $q.= "p_form = '".addslashes($this->p_form)."' ";
88                        pmb_mysql_query($q, $dbh);
89                        $this->idproc = pmb_mysql_insert_id($dbh);                     
90                }
91        }
92
93
94        //supprime une procedure de la base
95        function delete($idproc = 0) {
96               
97                global $dbh;
98
99                if(!$idproc) $idproc = $this->idproc;   
100                $q = "delete from procs where idproc = '".$idproc."' ";
101                pmb_mysql_query($q, $dbh);
102                               
103        }
104       
105
106        //retourne un form pour les autorisations d'une requete ou les autorisations par defaut si requete non creee
107        static function getAutorisationsForm() {
108               
109                global $dbh, $charset;
110                global $req_auth;
111                $aut = array('1');
112               
113                //recuperation des utilisateurs
114                $q = "SELECT userid, username FROM users ";
115                $r = pmb_mysql_query($q, $dbh);
116                $p_user = array();
117                while (($row=pmb_mysql_fetch_row($r))) {
118                        $p_user[$row[0]]=$row[1];
119                }
120               
121                $form = "";
122                $id_check_list='';
123                foreach($p_user as $userid=>$username) {
124
125                        $form.= $req_auth;
126                        $form = str_replace('!!user_name!!', htmlentities($username,ENT_QUOTES, $charset), $form);
127                        $form = str_replace('!!user_id!!', $userid, $form);
128                        if (in_array($userid, $aut)) { 
129                                $chk = 'checked=\'checked\'';
130                        } else {
131                                $chk = '';
132                        }
133                        $form = str_replace('!!checked!!', $chk, $form);
134                       
135                        $id_check="user_aut[".$userid."]";
136                        if($id_check_list)$id_check_list.='|';
137                        $id_check_list.=$id_check;                     
138                }
139                $form.="<input type='hidden' id='auto_id_list' name='auto_id_list' value='$id_check_list' >";
140                return $form;
141
142        }       
143       
144}
145
146?>
Note: See TracBrowser for help on using the repository browser.