1 | <?php |
---|
2 | /**************************************************************************\ |
---|
3 | * eGroupWare - administration * |
---|
4 | * http://www.egroupware.org * |
---|
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 | |
---|
12 | |
---|
13 | class soapplications |
---|
14 | { |
---|
15 | var $db; |
---|
16 | |
---|
17 | function soapplications() |
---|
18 | { |
---|
19 | $this->db = $GLOBALS['phpgw']->db; |
---|
20 | } |
---|
21 | |
---|
22 | function read($app_name) |
---|
23 | { |
---|
24 | $sql = "SELECT * FROM phpgw_applications WHERE app_name='$app_name'"; |
---|
25 | |
---|
26 | $this->db->query($sql,__LINE__,__FILE__); |
---|
27 | $this->db->next_record(); |
---|
28 | $app_info = array( |
---|
29 | $this->db->f('app_name'), |
---|
30 | $GLOBALS['phpgw_info']['apps'][$this->db->f('app_name')]['title'], |
---|
31 | $this->db->f('app_enabled'), |
---|
32 | $this->db->f('app_name'), |
---|
33 | $this->db->f('app_order') |
---|
34 | ); |
---|
35 | return $app_info; |
---|
36 | } |
---|
37 | |
---|
38 | function get_list() |
---|
39 | { |
---|
40 | $this->db->query('SELECT * FROM phpgw_applications WHERE app_enabled!=3',__LINE__,__FILE__); |
---|
41 | if($this->db->num_rows()) |
---|
42 | { |
---|
43 | while ($this->db->next_record()) |
---|
44 | { |
---|
45 | $app = $this->db->f('app_name'); |
---|
46 | $title = @$GLOBALS['phpgw_info']['apps'][$app]['title']; |
---|
47 | if (empty($title)) |
---|
48 | { |
---|
49 | $title = lang($app) == $app.'*' ? $app : lang($app); |
---|
50 | } |
---|
51 | $apps[$app] = array( |
---|
52 | 'title' => $title, |
---|
53 | 'name' => $app, |
---|
54 | 'status' => $this->db->f('app_enabled') |
---|
55 | ); |
---|
56 | } |
---|
57 | } |
---|
58 | return $apps; |
---|
59 | } |
---|
60 | |
---|
61 | function add($data) |
---|
62 | { |
---|
63 | /* Yes, the sequence should work, but after a mass import in setup (new install) |
---|
64 | it does not work on pg |
---|
65 | */ |
---|
66 | $sql = 'SELECT MAX(app_id) from phpgw_applications'; |
---|
67 | $this->db->query($sql,__LINE__,__FILE__); |
---|
68 | $this->db->next_record(); |
---|
69 | $app_id = $this->db->f(0) + 1; |
---|
70 | $sql = 'INSERT INTO phpgw_applications (app_id,app_name,app_enabled,app_order) VALUES(' |
---|
71 | . $app_id . ",'" . addslashes($data['n_app_name']) . "','" |
---|
72 | . $data['n_app_status'] . "','" . $data['app_order'] . "')"; |
---|
73 | |
---|
74 | $this->db->query($sql,__LINE__,__FILE__); |
---|
75 | return True; |
---|
76 | } |
---|
77 | |
---|
78 | function save($data) |
---|
79 | { |
---|
80 | $sql = "UPDATE phpgw_applications SET " |
---|
81 | . "app_enabled='" . $data['n_app_status'] . "',app_order='" . $data['app_order'] |
---|
82 | . "' WHERE app_name='" . $data['app_name'] . "'"; |
---|
83 | |
---|
84 | $this->db->query($sql,__LINE__,__FILE__); |
---|
85 | return True; |
---|
86 | } |
---|
87 | |
---|
88 | function exists($app_name) |
---|
89 | { |
---|
90 | $this->db->query("SELECT COUNT(app_name) FROM phpgw_applications WHERE app_name='" . addslashes($app_name) . "'",__LINE__,__FILE__); |
---|
91 | $this->db->next_record(); |
---|
92 | |
---|
93 | if ($this->db->f(0) != 0) |
---|
94 | { |
---|
95 | return True; |
---|
96 | } |
---|
97 | return False; |
---|
98 | } |
---|
99 | |
---|
100 | function app_order() |
---|
101 | { |
---|
102 | $this->db->query('SELECT (MAX(app_order)+1) FROM phpgw_applications',__LINE__,__FILE__); |
---|
103 | $this->db->next_record(); |
---|
104 | return $this->db->f(0); |
---|
105 | } |
---|
106 | |
---|
107 | function delete($app_name) |
---|
108 | { |
---|
109 | $this->db->query("DELETE FROM phpgw_applications WHERE app_name='$app_name'",__LINE__,__FILE__); |
---|
110 | } |
---|
111 | |
---|
112 | function register_hook($app) |
---|
113 | { |
---|
114 | $this->db->query("INSERT INTO phpgw_hooks(hook_appname,hook_location,hook_filename) " |
---|
115 | . "VALUES ('".$app['app_name']."','".$app['hook']."','hook_".$app['hook'].".inc.php')",__LINE__,__FILE__ |
---|
116 | ); |
---|
117 | } |
---|
118 | } |
---|