source: sandbox/filemanager/inc/class.user.inc.php @ 1809

Revision 1809, 3.5 KB checked in by amuller, 14 years ago (diff)

Ticket #597 - Tratamento de erros no salvamento de preferencias no filmanager

  • Property svn:executable set to *
Line 
1<?php
2
3        class user
4        {
5                var $public_functions = array(
6                        'save_preferences' => True,
7                        'get_preferences' => True
8                );
9
10                var $bo;
11                var $user_id;
12
13                var $target;
14
15                var $prefs;//array
16
17                var $current_config;
18                // this ones must be checked thorougly;
19                var $fileman = Array();
20                var $path;
21                var $file;
22                var $debug = false;
23                var $now;
24
25                function user()
26                {
27                        $this->now = date('Y-m-d');
28
29                        $this->bo = CreateObject('filemanager.bofilemanager');
30
31                        $c = CreateObject('phpgwapi.config','filemanager');
32                        $c->read_repository();
33                        $this->current_config = $c->config_data;
34                        $this->user_id = $GLOBALS['phpgw_info']['user']['account_id'];
35
36                        // here local vars are created from the HTTP vars
37                        @reset($GLOBALS['HTTP_POST_VARS']);
38                        while(list($name,) = @each($GLOBALS['HTTP_POST_VARS']))
39                        {
40                                $this->$name = $GLOBALS['HTTP_POST_VARS'][$name];
41                        }
42
43                        @reset($GLOBALS['HTTP_GET_VARS']);
44                        while(list($name,) = @each($GLOBALS['HTTP_GET_VARS']))
45                        {
46                                $$name = $GLOBALS['HTTP_GET_VARS'][$name];
47                                $this->$name = $GLOBALS['HTTP_GET_VARS'][$name];
48
49                        }
50
51                        $to_decode = array
52                        (
53                                'preferences'   => array('preferences' => '')
54                        );
55
56                        reset($to_decode);
57                        while(list($var, $conditions) = each($to_decode))
58                        {
59                                while(list($condvar, $condvalue) = each($conditions))
60                                {
61                                        if(isset($$condvar) && ($condvar == $var || $$condvar == $condvalue))
62                                        {
63                                                if(is_array($$var))
64                                                {
65                                                        $temp = array();
66                                                        while(list($varkey, $varvalue) = each($$var))
67                                                        {
68                                                                if(is_int($varkey))
69                                                                {
70                                                                        $temp[$varkey] = stripslashes(base64_decode(urldecode(($varvalue))));
71                                                                }
72                                                                else
73                                                                {
74                                                                        $temp[stripslashes(base64_decode(urldecode(($varkey))))] = $varvalue;
75                                                                }
76                                                        }
77                                                        $this->$var = $temp;
78                                                }
79                                                elseif(isset($$var))
80                                                {
81                                                        $this->$var = stripslashes(base64_decode(urldecode($$var)));
82                                                }
83                                        }
84                                }
85                        }
86
87                        // get appl. and user prefs
88                        $pref = CreateObject('phpgwapi.preferences', $this->bo->userinfo['username']);
89                        $pref->read_repository();
90                        $pref->save_repository(True);
91                        $pref_array = $pref->read_repository();
92                        $this->prefs = $pref_array[$this->bo->appname];
93
94                        //always show name
95
96                        $this->prefs[name] =1;         
97                       
98                }
99
100                function get_preferences(){
101                         echo(serialize($_SESSION['phpgw_info']['user']['preferences']['filemanager']));
102                }
103                function save_preferences(){
104                        /* See if preferences exists or not */
105                        $query = "SELECT count(preference_owner) FROm phpgw_preferences WHERE preference_app = 'filemanager' AND preference_owner = 1009 LIMIT 1";
106                        if ($GLOBALS['phpgw']->db->query($query) && $GLOBALS['phpgw']->db->next_record())
107                                $val = $GLOBALS['phpgw']->db->row();
108                        else
109                        {
110                                echo $GLOBALS['phpgw']->db->error;
111                                return false;
112                        }
113
114                        $string_serial = addslashes($this->preferences);
115                        if ($val['count'] == '1')
116                        {
117                                $query = "UPDATE phpgw_preferences set preference_value = '".$string_serial.
118                                        "' where preference_app = 'filemanager'".
119                                        " and preference_owner = '".$this->user_id."'";
120                                if (!$GLOBALS['phpgw']->db->query($query)){
121                                        echo $GLOBALS['phpgw']->db->error;
122                                        return false;
123                                }
124                                else{
125                                        echo "True";
126                                        return;
127                                }
128                        }
129                        else
130                        {
131                                /*preferences does not exist*/
132                                $query = "INSERT INTO phpgw_preferences values (".$this->user_id.",'filemanager','".$string_serial."')";
133                                if (!$GLOBALS['phpgw']->db->query($query)){
134                                        echo $GLOBALS['phpgw']->db->error;
135                                        return false;
136                                }
137                                else{
138                                        echo "True";
139                                        return;
140                                }
141
142                        }
143                }
144
145        }
146?>
Note: See TracBrowser for help on using the repository browser.