Magellan Linux

Annotation of /alx-src/branches/alx-web-070/plugin.php

Parent Directory Parent Directory | Revision Log Revision Log


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