source: sandbox/2.5.1-evolucao/expressoAdmin1_2/inc/class.somessages_size.inc.php @ 8237

Revision 8237, 11.2 KB checked in by angelo, 11 years ago (diff)

Ticket #3491 - Compatibilizar Expresso com novas versoes do PHP

Line 
1<?php
2        /***********************************************************************************\
3        * Expresso Administração                                                                                                                        *
4        * by Prognus Software Livre (prognus@prognus.com.br, airton@prognus.com.br)             *
5        * ----------------------------------------------------------------------------------*
6        *  This program is free software; you can redistribute it and/or modify it                      *
7        *  under the terms of the GNU General Public License as published by the                        *
8        *  Free Software Foundation; either version 2 of the License, or (at your                       *
9        *  option) any later version.                                                                                                           *
10        \***********************************************************************************/
11
12if (!defined('PHPGW_INCLUDE_ROOT')) define('PHPGW_INCLUDE_ROOT','../');
13if (!defined('PHPGW_API_INC')) define('PHPGW_API_INC','../phpgwapi/inc');
14include_once(PHPGW_API_INC.'/class.db.inc.php');
15
16
17    class somessages_size
18    {
19        var $db;
20
21                /**
22         * Construtor
23         */
24        function somessages_size()
25        {
26                    /*
27                         * Faz a conexão com o banco de dados
28                     */
29            if (is_array($_SESSION['phpgw_info']['expresso']['server']))
30                    $GLOBALS['phpgw_info']['server'] = $_SESSION['phpgw_info']['expresso']['server'];
31            else
32                    $_SESSION['phpgw_info']['expresso']['server'] = $GLOBALS['phpgw_info']['server'];
33
34            $this->db = new db();
35            $this->db->Halt_On_Error = 'no';
36
37            $this->db->connect(
38                            $_SESSION['phpgw_info']['expresso']['server']['db_name'],
39                            $_SESSION['phpgw_info']['expresso']['server']['db_host'],
40                            $_SESSION['phpgw_info']['expresso']['server']['db_port'],
41                            $_SESSION['phpgw_info']['expresso']['server']['db_user'],
42                            $_SESSION['phpgw_info']['expresso']['server']['db_pass'],
43                            $_SESSION['phpgw_info']['expresso']['server']['db_type']
44            );
45                       
46        }
47
48               
49            /**
50                 * @abstract Insere a regra no banco de dados.
51                 * @param array $params - índice do array contém o nome do campo da tabela e o valor nesse índice é o valor do campo.
52                 * @return bool - true se inseriu a regra com sucesso, caso contrário false.
53         */
54                function insert_rule_db($params)
55                {
56            $fields = '';
57            $fieldsValues = '';
58           
59            foreach($params as $key=>$value)
60            {
61                if($value)
62                {
63                    $fields .= $key.', ';
64                    $fieldsValues .= '\''.$value.'\', ';
65                }
66            }
67
68            $fields = substr($fields,0,-2);
69            $fieldsValues = substr($fieldsValues,0,-2);
70
71            $query = 'INSERT INTO phpgw_expressoadmin_configuration('.$fields.') VALUES ('.$fieldsValues.')';
72
73             if($this->db->query($query))
74                return  true;
75             else
76                return false;
77        }
78
79               
80        /**
81         * @param <int> $pId Pid da regra a qual quer alterar
82         * @param array $pFields array index do array = ('Campo da tabela'), vaçpr do array = ('Valor do campo')
83         * @return bool True or False
84         */
85        function updatetRuleInDb($pId, $pFields)
86        {
87
88            $fieldsSet = '';
89
90            foreach($pFields as $key=>$value)
91                    $fieldsSet .= $key.' = \''.$value.'\', ';
92
93           
94
95            $fieldsSet = substr($fieldsSet,0,-2);
96
97            $query = 'UPDATE phpgw_expressoadmin_configuration' . ' SET '.$fieldsSet.' WHERE id = \''.$pId.'\'';
98
99            if($this->db->query($query))
100                return  true;
101            else
102                return false;
103
104
105        }
106
107               
108            /**
109         * @abstract Remove uma regra do banco de dados
110         * @param $rule_name - O nome da regra que deseja remover do banco
111         * @return array Retorna A busca em um array
112         */
113        function remove_rule($rule_name)
114        {
115            $query = "DELETE FROM phpgw_expressoadmin_configuration WHERE email_recipient = '$rule_name'";
116
117            if($this->db->query($query))
118                return  true;
119            else
120                return false;   
121        }
122
123               
124        /**
125         * @abstract Busca regras no banco de dados
126         * @param string $pFilter Filtro em linguagem sql
127         * @param array $pFields array com os campos que você queira retornar
128         * @return array Retorna A busca em um array
129         */
130        function getRuleInDb($pFilter = '',$pFields = '')
131        {
132
133            $fields = '';
134
135            if($pFields)
136            {
137                foreach($pFields as $value)
138                        $fields .= $value.', ';
139
140                $fields = substr($fields,0,-2);
141            }
142            else
143                 $fields = '*';
144
145            $query = 'SELECT '.$fields.' FROM phpgw_expressoadmin_configuration' . ' ' .$pFilter;
146
147            if(!$this->db->query($query))
148                return false;
149
150            $return = array();
151
152            while($this->db->next_record())
153                array_push($return, $this->db->row());
154
155            return $return;
156        }
157               
158               
159                /**
160         * @abstract Insere a regra padrão no banco.
161         * @param max_size - o tamanho da regra padrão e default_rule_name o nome que foi configurado para a regra padrão.
162         * @return retorna um valor booleano informando se a operação foi concluída com sucesso.
163         */
164                function insert_default_rule($max_size)
165                {
166                        $fields = array(
167                'email_user' => 'default',
168                'configuration_type' => 'MessageMaxSize',
169                'email_max_recipient' => $max_size,
170                'email_user_type' => 'B',
171                                'email_recipient' => 'default'
172            );
173               
174                        $query = "SELECT email_user FROM phpgw_expressoadmin_configuration WHERE email_user = 'default'";
175                        $result = $this->db->query($query);
176                        if(count($result) < 1)
177                        {
178                                if(!$this->insert_rule_db($fields))
179                                        return false;
180                        }
181                        else
182                        {               
183                                $query = "UPDATE phpgw_expressoadmin_configuration SET email_max_recipient=" . $max_size ." WHERE email_user='default'";                       
184                                if(!$this->db->query($query))
185                                        return false;
186                        }
187                        return true;
188                }
189               
190               
191                /**
192         * @abstract Insere a regra padrão no banco (Vou inserir em outra tabela, agora na tabela config.
193         * @param max_size - o tamanho da regra padrão e default_rule_name o nome que foi configurado para a regra padrão.
194         * @return retorna um valor booleano informando se a operação foi concluída com sucesso.
195         */
196                function insert_default_rule_2($max_size)
197                {
198                        /* Estou inserindo na tabela que guarda as configurações que vão pra sessão. */
199                        $query = "SELECT config_value FROM phpgw_config WHERE config_name='expressoAdmin_default_max_size'";
200                        $result = $this->db->query($query);
201                                       
202                        $i=0;
203                       
204                        while($this->db->next_record())
205                ++$i;
206
207                        if($i==0)
208                        {                       
209                                /* Se não existem nenhum valor cadastrado ainda, é inserido esse valor na tabela de configuração. */
210                                $query = "INSERT INTO phpgw_config (config_app, config_name, config_value) VALUES ('expressoMail1_2', 'expressoAdmin_default_max_size', '$max_size')";
211                                if(!$this->db->query($query))
212                                        return false;
213                        }
214                        else
215                        {
216
217                                /* Se já existe um valor padrão, só atualizo. */
218                                $query = "UPDATE phpgw_config SET config_value=$max_size WHERE config_name='expressoAdmin_default_max_size'";
219                                if(!$this->db->query($query))
220                                        return false;
221                        }
222                        return true;
223                }
224               
225               
226                /**
227         * @abstract Retorna a regra padrão.
228         * @return retorna um array com a regra padrão e caso a busca não for realizada com sucesso retorna false.
229         */
230                function get_default_rule()
231                {
232                        $query = "SELECT config_value FROM phpgw_config WHERE config_name = 'expressoAdmin_default_max_size'";
233                        if(!$this->db->query($query))
234                return false;
235
236            $return = array();
237                       
238                        while($this->db->next_record())
239                array_push($return, $this->db->row());
240                       
241                        return $return;
242                }
243               
244               
245                /**
246         * @abstract Retorna usuários de uma determinada regra.
247         * @param name_rule - O nome da regra da qual deseja os participantes.
248         * @return retorna um array com os participantes dessa regra e caso a busca não for realizada com sucesso retorna false.
249         */
250                function get_users_by_rule($name_rule)
251                {
252                        $query = "SELECT email_user, email_max_recipient, email_recipient, email_user_type FROM phpgw_expressoadmin_configuration WHERE email_recipient='" . $name_rule . "'";
253                       
254                        if(!$this->db->query($query))
255                return false;
256
257            $return = array();
258
259            while($this->db->next_record())
260                array_push($return, $this->db->row());
261           
262                        return $return;
263                }               
264               
265               
266                /**
267         * @abstract Retorna as regras de acordo com um parâmetro de busca. Se $user for true, busca as regras de acordo com usuários.
268         * @param input - parâmetro de busca passado pelo usuário e user controla se a busca será feita por nome de usuário ou por nome de regra.
269         * @return retorna um array com os participantes dessa regra e caso a busca não for realizada com sucesso retorna false.
270         */
271                function get_rules($input, $user=false)
272                {
273                        $rules = array();
274                        if($user)
275                                $query = "SELECT DISTINCT email_recipient, email_max_recipient FROM phpgw_expressoadmin_configuration WHERE email_user LIKE '%" . $input . "%'";
276                        else   
277                                $query = "SELECT DISTINCT email_recipient, email_max_recipient FROM phpgw_expressoadmin_configuration WHERE email_recipient LIKE '%" . $input . "%'";
278               
279                        if(!$this->db->query($query))
280                return false;
281
282            $return = array();
283
284            while($this->db->next_record())
285                array_push($return, $this->db->row());
286           
287                        return $return;
288                }
289               
290               
291                /**
292         * @abstract Retorna todas as regras cadastradas.
293         * @return retorna um array com todas as regras e caso a busca não for realizada com sucesso retorna false.
294         */
295                function get_all_rules()
296                {
297                        $rules = array();
298                        $query = "SELECT DISTINCT email_recipient, email_max_recipient FROM phpgw_expressoadmin_configuration WHERE configuration_type='MessageMaxSize' ORDER BY email_recipient";  //Seleciona todas as regras já cadastradas.
299                       
300            if(!$this->db->query($query))
301                return false;
302
303            $return = array();
304
305            while($this->db->next_record())
306                array_push($return, $this->db->row());
307           
308                        return $return;
309                }
310         
311               
312                /**
313         * @abstract Retorna a regra de acordo com o parâmetro - Adaptação do método que retornava true caso a regra existisse e false caso contrário.
314         * @param rule_name - Nome da regra.
315         * @return retorna um array com os participantes dessa regra e caso a busca não for realizada com sucesso retorna false.
316         */
317                function get_rule($rule_name)
318                {
319                        $query = 'SELECT email_recipient FROM phpgw_expressoadmin_configuration WHERE email_recipient = \'' . $rule_name . '\'';
320                       
321            $result = $this->db->query($query);
322                       
323                        if(!$this->db->query($query))
324                return false;
325
326            $return = array();
327
328            while($this->db->next_record())
329                array_push($return, $this->db->row());
330           
331                        return $return;
332                } 
333    } //end class somessages_size
334?>
Note: See TracBrowser for help on using the repository browser.