source: sandbox/2.4.3-expresso-rest/negrinha/inc/class.uiconfig.inc.php @ 7368

Revision 7368, 5.9 KB checked in by alexandrecorreia, 12 years ago (diff)

Ticket #3093 - Configuração dos servidores com API REST.

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