Magellan Linux

Contents of /alx-src/branches/alx-web-060/plugin.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3515 - (show annotations) (download)
Thu Apr 19 18:01:58 2012 UTC (12 years ago) by niro
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