Annotation of /alx-src/branches/alx-web-070/plugin.php
Parent Directory | Revision Log
Revision 3515 -
(hide 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 | niro | 2704 | <? |
2 | include('include/basesql.php'); | ||
3 | |||
4 | niro | 3515 | $configure = sqlfirst('SELECT configflag FROM avail_plugins WHERE plugin="'.$plugin.'"'); |
5 | niro | 2704 | 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 | niro | 3515 | if (file_exists('include/plugins/'.$plugin.'.php')) |
21 | { | ||
22 | include('include/plugins/'.$plugin.'.php'); | ||
23 | } | ||
24 | niro | 2704 | |
25 | niro | 3515 | // 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 | niro | 2704 | |
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 | niro | 3515 | $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 | niro | 2704 | // 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 | niro | 3515 | 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 | niro | 2704 | echo '</td></tr></table>'; |
145 | echo '</form>'; | ||
146 | } | ||
147 | ?> | ||
148 |