Contents of /alx-src/branches/alx-web-070/plugin.php
Parent Directory | Revision Log
Revision 3515 -
(show annotations)
(download)
Thu Apr 19 18:01:58 2012 UTC (12 years, 5 months ago) by niro
Original Path: alx-src/branches/alx-web-060/plugin.php
File size: 5201 byte(s)
Thu Apr 19 18:01:58 2012 UTC (12 years, 5 months ago) by niro
Original Path: alx-src/branches/alx-web-060/plugin.php
File size: 5201 byte(s)
-make plugins configureable via web
1 | <? |
2 | include('include/basesql.php'); |
3 | |
4 | $configure = sqlfirst('SELECT configflag FROM avail_plugins WHERE plugin="'.$plugin.'"'); |
5 | if( $configure[configflag] != '1' ) |
6 | { |
7 | echo 'Plugin "'.$plugin.'" needs no configuration'; |
8 | } |
9 | else |
10 | { |
11 | $plugintable = 'plugin_'.$plugin; |
12 | $tabs = array($plugintable); |
13 | $data = array(); |
14 | |
15 | |
16 | // FELD-DEFINITIONEN (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID) |
17 | $drop = array(); |
18 | $drop['id'] = 'hidden'; |
19 | $drop['serial'] = 'ignore'; |
20 | if (file_exists('include/plugins/'.$plugin.'.php')) |
21 | { |
22 | include('include/plugins/'.$plugin.'.php'); |
23 | } |
24 | |
25 | // GGF. NEUEN DATENSATZ EINF.GEN |
26 | if(isset($_POST['do_add'])) |
27 | { |
28 | list($bla,$what) = explode(' ',$_POST['do_add']); |
29 | if($what=='CONFIG') sqladd($plugintable, array('serial'=>$id)); |
30 | } |
31 | |
32 | // GGF. SPEICHERN |
33 | if($_POST['do_upl']) |
34 | { |
35 | function postarr($prefix) |
36 | { |
37 | $prefix.='_'; |
38 | $prelen = strlen($prefix); |
39 | |
40 | $arr = array(); |
41 | foreach($_POST as $k=>$v) |
42 | if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS')) |
43 | $arr[substr($k,$prelen)] = stripslashes($v); |
44 | |
45 | return $arr; |
46 | } |
47 | |
48 | foreach($tabs as $k=>$t) |
49 | { |
50 | echo "DEBUG: id->'".$id."'"; |
51 | echo "DEBUG: k->'".$k."'"; |
52 | echo "DEBUG: t->'".$t."'"; |
53 | mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id); |
54 | } |
55 | } |
56 | |
57 | // EINLESEN DER DATEN AUS SQL-TABELLEN |
58 | foreach($tabs as $k=>$t) |
59 | { |
60 | $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id); |
61 | } |
62 | |
63 | $plugininfo = sqlfirst('SELECT * FROM '.$plugintable.' WHERE serial='.$id); |
64 | echo "DEBUG: plugininfo[serial]='".$plugininfo['serial']."'"; |
65 | if ($plugininfo['serial'] == NULL ) |
66 | { |
67 | echo "data = null"; |
68 | $showconfigadd = 1; |
69 | } else { |
70 | echo "data = filled"; |
71 | $showconfigadd = 0; |
72 | } |
73 | |
74 | |
75 | // ANZEIGEN |
76 | |
77 | function parsearr($name, $arr, $del=false, $wireless=false) |
78 | { |
79 | global $drop; |
80 | global $id; |
81 | |
82 | $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1]; |
83 | echo '<br>'.$name.':'; |
84 | echo '<table class="keytab">'; |
85 | |
86 | foreach($arr as $k=>$v) |
87 | { |
88 | |
89 | $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k]; |
90 | $k2 = $k; |
91 | |
92 | if(is_array($d)) |
93 | { |
94 | echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">'; |
95 | foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di; |
96 | echo '</select></td></tr>'; |
97 | } |
98 | else if($d=='hidden') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>'; |
99 | else if($d=='1') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="1"></td></tr>'; |
100 | else if($d=='monitorid') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=button style="width:24px" onclick="window.open(\'monitor.php?id='.$id.'\', \'MonitorWin\', \'width=350,height=200\')" value="..."></td>'; |
101 | else if($d=='bold') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px;font-weight:bold" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>'; |
102 | else if($d=='filename') echo '<tr><td class="key">filename</td><td>= <input style="width:144px;font-weight:bold" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>'; |
103 | else if($d=='show') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.$v.'</b></td></tr>'; |
104 | else if($d=='showtime') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.date('d.m.y - H:i:s', $v).'</b></td></tr>'; |
105 | else if($d=='password' && $v=='') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=password style="width:144px" name="'.$name.'_'.$k.'" value=""></td></tr>'; |
106 | else if($d=='password') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=password style="width:144px" name="'.$name.'_'.$k.'" value="KEEPPASS"></td></tr>'; |
107 | else if($d=='txt') echo '<tr><td colspan=2><textarea style="width:240px; background-color:#d5e5ff" rows=4 name="'.$name.'_'.$k.'">'.$v.'</textarea></td></tr>'; |
108 | else if($d!='ignore') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>'; |
109 | } |
110 | echo '</table>'; |
111 | } |
112 | |
113 | ?><head> |
114 | <title>ALX Plugin Config</title> |
115 | <style> |
116 | body,table { font-family:Tahoma; font-size:10pt } |
117 | a { color:#000000; text-decoration:none; } |
118 | .key { width:85px } |
119 | .keytab, input, textarea, select, option { font-size:8pt; font-family:Tahoma } |
120 | .but { font-size:10pt; font-family:Tahoma; height:23px } |
121 | </style> |
122 | </script> |
123 | </head> |
124 | |
125 | <body><? |
126 | |
127 | echo '<form action="plugin.php" method="post" onreset="return confirm(\'UNDO CHANGES?\')">'; |
128 | echo '<input type=hidden name="do_upl" value="1">'; |
129 | echo '<input type=hidden name="id" value="'.$id.'">'; |
130 | echo '<input type=hidden name="plugin" value="'.$plugin.'">'; |
131 | |
132 | // ANZEIGEN => NON-MULTI TABELLEN |
133 | echo '<table><tr><td valign=top width="300">'; |
134 | |
135 | echo '<b style="font-size:6pt">'; |
136 | echo '</b><br><br>'; |
137 | foreach($tabs as $k=>$t) parsearr($t, $data[$t]); |
138 | |
139 | // ANZEIGEN => NAVI |
140 | echo '</td><td valign=top>'; |
141 | echo '<img src="pics/logo2.jpg"><br><br>'; |
142 | if ( $showconfigadd == "1" ) echo '<input class="but" type=submit name="do_add" value="SAVE+ADD CONFIG" style="width:150px"><br>'; |
143 | else echo '<input class="but" type=submit value="SAVE" style="width:150px"><br><br>'; |
144 | echo '</td></tr></table>'; |
145 | echo '</form>'; |
146 | } |
147 | ?> |
148 |