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

Revision 7355, 5.5 KB checked in by alexandrecorreia, 11 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                       
65                        $GLOBALS['phpgw']->template->set_file(array('negrinha'=>'config.tpl'));
66                        $GLOBALS['phpgw']->template->set_block('negrinha','pagina');   
67                        $GLOBALS['phpgw']->template->set_var( array(
68                                                                                                                        'table_servers' => $table_servers,
69                                                                                                                        'server_id'             => (($params && is_array($params) ) ? $params['serverID'] : ""),
70                                                                                                                        'server_name'   => (($params && is_array($params) ) ? $params['serverName'] : ""),
71                                                                                                                        'server_description'    => (($params && is_array($params) ) ? $params['serverDescription'] : ""),
72                                                                                                                        'server_url'    => (($params && is_array($params) ) ? $params['serverUrl'] : ""),
73                                                                                                                        'server_rest'   => (($params && is_array($params) ) ? $params['serverContext'] : "")
74                                                                                                                ));
75               
76                        $GLOBALS['phpgw']->template->pparse('out','pagina');
77                }
78        }
79
80        public function deleteServer()
81        {
82                if( $_GET['serverID'] )
83                {
84                        $serverID = $_GET['serverID'];
85                       
86                        $servers = $this->readFile();
87                       
88                        foreach( $servers as $key => $value )
89                        {
90                                if( substr($key, 0, 11) == "ServersRest")
91                                {
92                                        if( $value['serverID'] == $serverID )
93                                        {
94                                                unset( $servers[$key] );
95                                        }
96                                }
97                        }
98                       
99                        if( !$this->writeFile($servers) )
100                                echo "Error : Permission failure when trying to write in the file ";
101                        else
102                                $this->config();
103                }
104        }
105       
106        public function editServer()
107        {
108                if($_GET['serverID'] )
109                {
110                        $serverID = $_GET['serverID'];
111                       
112                        $servers = $this->readFile();
113                       
114                        foreach( $servers as $key => $value )
115                        {
116                                if( substr($key, 0, 11) == "ServersRest")
117                                {
118                                        if( $value['serverID'] == $serverID )
119                                        {
120                                                $server = $servers[$key];
121                                        }
122                                }
123                        }
124                       
125                }
126               
127                $this->config($server);
128        }
129
130        private function save($params)
131        {
132                $fileConfig = parse_ini_file( __DIR__ . '/../../prototype/config/REST.ini', true );
133               
134                if( $params['server_id'] )
135                {
136                        $serverID = $params['server_id'];
137                       
138                        $fileConfig['ServersRest-'.$serverID]['serverID'] = $serverID;
139                        $fileConfig['ServersRest-'.$serverID]['serverName'] = $params['server_name'];
140                        $fileConfig['ServersRest-'.$serverID]['serverDescription'] = $params['server_description'];
141                        $fileConfig['ServersRest-'.$serverID]['serverUrl'] = $params['server_url'];
142                        $fileConfig['ServersRest-'.$serverID]['serverContext'] = $params['server_rest'];
143                        $fileConfig['ServersRest-'.$serverID]['serverStatus'] = 'true';
144                }
145                else
146                {
147                        $keys = array_keys($fileConfig);
148                       
149                        foreach($keys as $k => $v)
150                        {
151                                if( substr($v, 0, 11) == "ServersRest")
152                                        $ID = $fileConfig[$v]['serverID'];
153                        }                               
154                       
155                        $serverID = ((int)$ID + 1);
156                        if( strlen($serverID) <= 2 )
157                                $serverID = ( strlen($serverID) > 1 ) ? "0".$serverID : "00".$serverID;
158                        $fileConfig['ServersRest-'.$serverID]['serverID'] = $serverID;
159                        $fileConfig['ServersRest-'.$serverID]['serverName'] = $params['server_name'];
160                        $fileConfig['ServersRest-'.$serverID]['serverDescription'] = $params['server_description'];
161                        $fileConfig['ServersRest-'.$serverID]['serverUrl'] = $params['server_url'];
162                        $fileConfig['ServersRest-'.$serverID]['serverContext'] = $params['server_rest'];
163                        $fileConfig['ServersRest-'.$serverID]['serverStatus'] = 'true';
164                }
165               
166                $this->writeFile($fileConfig);
167        }
168
169        private function readFile()
170        {
171                $fileConfig = array();
172               
173                if( file_exists(__DIR__ . '/../../prototype/config/REST.ini') )
174                {
175                        $fileConfig = parse_ini_file( __DIR__ . '/../../prototype/config/REST.ini', true );
176                }
177
178                return $fileConfig;
179        }
180       
181        private function writeFile($config)
182        {
183                $path = __DIR__ . '/../../prototype/config/REST.ini';
184
185                $content = "";
186
187                foreach( $config as $key => $value )
188                {
189                        if(is_array($value))
190                        {
191                                $content .= "[".$key."]\n";
192                               
193                                foreach( $value as $ikey => $ivalue )
194                                        $content .= $ikey ."=". $ivalue . "\n";
195                        }
196                        else
197                        {
198                                $content .= $key . "=" . $value . "\n";                         
199                        }
200                }
201
202                if( file_put_contents($path, $content) === false)
203                {
204                        return false;
205                }
206               
207                return true;
208        }
209}
210
211?>
Note: See TracBrowser for help on using the repository browser.