source: sandbox/webservice/rest/inc/class.uiconfig.inc.php @ 7466

Revision 7466, 6.4 KB checked in by alexandrecorreia, 11 years ago (diff)

Ticket #3171 - Módulo REST para configuração dos servidores.

Line 
1<?php
2
3class uiconfig
4{
5        public $public_functions = array(
6                'config'                => true,
7                'deleteServer'  => true,
8                'editServer'    => true
9        );
10
11        public function config( $params = false )
12        {
13                $GLOBALS['phpgw']->common->phpgw_header();
14
15                echo parse_navbar();
16
17                if( !$GLOBALS['phpgw']->acl->check('run',1,'admin') )
18                {
19                        $GLOBALS['phpgw']->redirect_link('/admin/index.php');
20                }
21
22                $table_servers = "";
23               
24                if( $_POST['back'] )
25                {
26                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/admin/index.php'));
27                }
28                else
29                {
30                        if( $_POST && $params == false )
31                        {
32                                $this->save($_POST);
33                        }
34                       
35                        $servers = $this->readFile();
36                       
37                        if( count($servers) > 0 )
38                        {
39                                $serversTable = "";
40                               
41                                foreach( $servers as $key => $value )
42                                {
43                                        if( substr($key, 0, 11) == "ServersRest")
44                                        {
45                                                $table_servers .= "<tr>";
46                                                $table_servers .= "     <td>".$value['serverName']."</td>";
47                                                $table_servers .= "     <td>".$value['serverDescription']."</td>";
48                                                $table_servers .= "     <td>".$value['serverUrl']."</td>";
49                                                $table_servers .= "     <td>".$value['serverContext']."</td>";
50                                                $table_servers .= "     <td>".( ($value['serverStatus'] == 1 ) ? "Habilitado" : "Desabilitado" )."</td>";
51                                                $table_servers .= " <td><a href='".$GLOBALS['phpgw']->link('/index.php','menuaction=rest.uiconfig.editServer&serverID='.$value['serverID'].'')."'>Editar</a></td>";
52                                                $table_servers .= " <td><a href='".$GLOBALS['phpgw']->link('/index.php','menuaction=rest.uiconfig.deleteServer&serverID='.$value['serverID'].'')."'>Excluir</a></td>";
53                                                $table_servers .= "</tr>";
54                                        }
55                                }       
56                        }
57       
58                        $GLOBALS['phpgw']->template->set_file(array('rest'=>'config.tpl'));
59                        $GLOBALS['phpgw']->template->set_block('rest','pagina');       
60                        $GLOBALS['phpgw']->template->set_var( array(
61                                                                                                                        'lang_Server_Name' => lang('Server Name'),
62                                                                                                                        'lang_Description' => lang('Description'),
63                                                                                                                        'lang_URL' => lang('URL'),
64                                                                                                                        'lang_API_Rest' => lang('API REST'),
65                                                                                                                        'lang_Server_Status' => lang('Server Status'),
66                                                                                                                        'lang_Enabled' => lang('Enabled'),
67                                                                                                                        'lang_Disabled' => lang('Disabled'),
68                                                                                                                        'lang_Save'     => lang('Save'),
69                                                                                                                        'lang_Back' => lang('Back'),
70                                                                                                                        'lang_Configuring_the_REST_API' => lang('Configuring the REST API'),
71                                                                                                                        'lang_Edit' => lang('Edit'),
72                                                                                                                        'lang_Delete'   => lang('Delete'),
73                                                                                                                        'table_servers' => $table_servers,
74                                                                                                                        'server_id'             => (($params && is_array($params) ) ? $params['serverID'] : ""),
75                                                                                                                        'server_name'   => (($params && is_array($params) ) ? $params['serverName'] : ""),
76                                                                                                                        'server_description'    => (($params && is_array($params) ) ? $params['serverDescription'] : ""),
77                                                                                                                        'server_url'    => (($params && is_array($params) ) ? $params['serverUrl'] : ""),
78                                                                                                                        'server_rest'   => (($params && is_array($params) ) ? $params['serverContext'] : ""),
79                                                                                                                        'selected_statusServer_true' => (($params && is_array($params) ) ? (($params['serverStatus'] == "0" ) ? "selected=true" : "") : ""),
80                                                                                                                        'selected_statusServer_false' => (($params && is_array($params) ) ? (($params['serverStatus'] == "0" ) ? "selected=true" : "") : "")
81                                                                                                                ));
82               
83                        $GLOBALS['phpgw']->template->pparse('out','pagina');
84                }
85        }
86
87        public function deleteServer()
88        {
89                if( $_GET['serverID'] )
90                {
91                        $serverID = $_GET['serverID'];
92                       
93                        $servers = $this->readFile();
94                       
95                        foreach( $servers as $key => $value )
96                        {
97                                if( substr($key, 0, 11) == "ServersRest")
98                                {
99                                        if( $value['serverID'] == $serverID )
100                                        {
101                                                unset( $servers[$key] );
102                                        }
103                                }
104                        }
105                       
106                        if( !$this->writeFile($servers) )
107                                echo "Error : Permission failure when trying to write in the file ";
108                        else
109                                $this->config();
110                }
111        }
112       
113        public function editServer()
114        {
115                if($_GET['serverID'] )
116                {
117                        $serverID = $_GET['serverID'];
118                       
119                        $servers = $this->readFile();
120                       
121                        foreach( $servers as $key => $value )
122                        {
123                                if( substr($key, 0, 11) == "ServersRest")
124                                {
125                                        if( $value['serverID'] == $serverID )
126                                        {
127                                                $server = $servers[$key];
128                                        }
129                                }
130                        }
131                       
132                }
133               
134                $this->config($server);
135        }
136
137        private function save($params)
138        {
139                $fileConfig = parse_ini_file( __DIR__ . '/../../api/config/REST.ini', true );
140
141                if( $params['server_id'] )
142                {
143                        $serverID = $params['server_id'];
144                       
145                        $fileConfig['ServersRest-'.$serverID]['serverID'] = $serverID;
146                        $fileConfig['ServersRest-'.$serverID]['serverName'] = $params['server_name'];
147                        $fileConfig['ServersRest-'.$serverID]['serverDescription'] = $params['server_description'];
148                        $fileConfig['ServersRest-'.$serverID]['serverUrl'] = $params['server_url'];
149                        $fileConfig['ServersRest-'.$serverID]['serverContext'] = $params['server_rest'];
150                        $fileConfig['ServersRest-'.$serverID]['serverStatus'] = ( $params['server_status'] == 'true' ) ? "1" : "0";
151                }
152                else
153                {
154                        $keys = array_keys($fileConfig);
155                       
156                        foreach($keys as $k => $v)
157                        {
158                                if( substr($v, 0, 11) == "ServersRest")
159                                        $ID = $fileConfig[$v]['serverID'];
160                        }                               
161                       
162                        $serverID = ((int)$ID + 1);
163                        if( strlen($serverID) <= 2 )
164                                $serverID = ( strlen($serverID) > 1 ) ? "0".$serverID : "00".$serverID;
165                        $fileConfig['ServersRest-'.$serverID]['serverID'] = $serverID;
166                        $fileConfig['ServersRest-'.$serverID]['serverName'] = $params['server_name'];
167                        $fileConfig['ServersRest-'.$serverID]['serverDescription'] = $params['server_description'];
168                        $fileConfig['ServersRest-'.$serverID]['serverUrl'] = $params['server_url'];
169                        $fileConfig['ServersRest-'.$serverID]['serverContext'] = $params['server_rest'];
170                        $fileConfig['ServersRest-'.$serverID]['serverStatus'] = ( $params['server_status'] == 'true' ) ? "1" : "0";
171                }
172               
173                $this->writeFile($fileConfig);
174        }
175
176        private function readFile()
177        {
178                $fileConfig = array();
179               
180                if( file_exists(__DIR__ . '/../../api/config/REST.ini') )
181                {
182                        $fileConfig = parse_ini_file( __DIR__ . '/../../api/config/REST.ini', true );
183                }
184
185                return $fileConfig;
186        }
187       
188        private function writeFile($config)
189        {
190                $path = __DIR__ . '/../../api/config/REST.ini';
191
192                $content = "";
193
194                foreach( $config as $key => $value )
195                {
196                        if(is_array($value))
197                        {
198                                $content .= "[".$key."]\n";
199                               
200                                foreach( $value as $ikey => $ivalue )
201                                        $content .= $ikey ."=". $ivalue . "\n";
202                        }
203                        else
204                        {
205                                $content .= $key . "=" . $value . "\n";                         
206                        }
207                }
208
209                if( file_put_contents($path, $content) === false)
210                {
211                        return false;
212                }
213               
214                return true;
215        }
216}
217
218?>
Note: See TracBrowser for help on using the repository browser.