Magellan Linux

Diff of /alx-src/branches/alx-web-070/show.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

alx-src/branches/alx-web-050/show.php revision 1628 by niro, Thu Dec 9 21:44:53 2010 UTC alx-src/branches/alx-web-060/show.php revision 2703 by niro, Tue Jul 12 15:01:18 2011 UTC
# Line 1  Line 1 
1  <?  <?
2   // INCLUDE UND TABELLEN-DEFINITIONEN  // INCLUDE UND TABELLEN-DEFINITIONEN
3   include('include/basesql.php');  include('include/basesql.php');
4   $tabs = array('cfg_graphic', 'cfg_network', 'cfg_input', 'client_auth', 'cfg_autostart', 'client_serials', 'cfg_comments', 'cfg_printers', 'cfg_sessions', 'cfg_modules', 'cfg_other_menuitems', 'cfg_screensaver', 'client_version');  include('include/common-functions.php');
  $multi= array(    0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0);  
  $data = array();  
5    
6    // INCLUDE CURRENT-PROBLEMS
7    include('include/current-problems.php');
8    
9   // get alx version info for  $tabs = array('cfg_graphic', 'cfg_network', 'cfg_input', 'client_auth', 'cfg_autostart', 'client_serials', 'cfg_comments', 'cfg_printers', 'cfg_sessions', 'cfg_modules', 'cfg_other_menuitems', 'cfg_screensaver', 'client_version');
10   $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id);  $multi= array(    0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0);
11   $alxos = $alxinfo[os];  $data = array();
  $alxutils = $alxinfo[utils];  
12    
  if($kill==1)  
  {  
  foreach($tabs as $t) mysql_query('UPDATE '.$t.' SET serial=-serial WHERE serial='.$id);  
13    
14   echo '<body onload="window.setTimeout(\'window.close()\', 1750)">';  // get alx version info for
15   echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';  $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id);
16    $alxos = $alxinfo[os];
17    $alxutils = $alxinfo[utils];
18    
19   if($id<0) echo 'ACTIVATED #'.abs($id);  if($kill==1)
20   else echo 'DEACTIVATED #'.$id;  {
21     foreach($tabs as $t) mysql_query('UPDATE '.$t.' SET serial=-serial WHERE serial='.$id);
22    
23   echo '</td></tr></table>';   echo '<body onload="window.setTimeout(\'window.close()\', 1750)">';
24   return true;   echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';
  }  
25    
26   // FELD-DEFINITIONEN  (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID)   if($id<0) echo 'ACTIVATED #'.abs($id);
27   $drop = array();   else echo 'DEACTIVATED #'.$id;
28   if($alxos >= '0.5.3')  
29   {   echo '</td></tr></table>';
30   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i710', 'intel', 'nv', 'mach64', 'mga', 'openchrome', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng');   return true;
31    }
32    
33    // FELD-DEFINITIONEN  (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID)
34    $drop = array();
35    if($alxos >= '0.6.0')
36    {
37     $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i710', 'intel', 'nv', 'mach64', 'mga', 'openchrome', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'vmware');
38    }
39    else if($alxos >= '0.5.3')
40    {
41     $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i710', 'intel', 'nv', 'mach64', 'mga', 'openchrome', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng');
42    }
43    else
44    {
45     $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i810', 'i710', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via');
46    }
47    $drop['resolution'] = array('640x480', '800x600', '1024x768', '1280x960', '1280x1024', '1360x768', '1366x768', '1400x1050', '1440x900', '1600x1200', '1680x1050', '1280x720', '1920x1080');
48    $drop['depth'] = array('24', '16', '8');
49    $drop['mouse'] = array('Auto', 'IMPS/2', 'PS/2');
50    $drop['keyboard'] = array('PC105');
51    if($alxos >= '0.6.0')
52    {
53     $drop['cfg_network_module'] = array('3c509', '3c59x', '8139cp', '8139too', '8390', 'amd8111e', 'atl1c', 'atl1e', 'atl1', 'atl2', 'b44', 'bnx2', 'cnic', 'e100', 'e1000', 'e1000e', 'forcedeth', 'igb', 'ipg', 'jme', 'natsemi', 'ne2k-pci', 'ns83820', 'pcnet32', 'qla3xxx', 'r8169', 'sis190', 'sis900', 'skge', 'sky2', 'tg3', 'typhoon', 'via-rhine', 'via-velocity', 'adm8211', 'airo', 'at76c50x-usb', 'ar9170usb', 'ath5k', 'ath9k', 'atmel', 'b43', 'b43legacy', 'hostap_pci', 'hostap_plx', 'ipw2100', 'ipw2200', 'iwl3945', 'usb8xxx', 'libertas_tf', 'libertas_tf_usb', 'mwl8k', 'orinoco', 'orinoco_nortel', 'orinoco_plx', 'orinoco_tmd', 'orinoco_usb', 'p54pci', 'p54usb', 'prism54', 'rndis_wlan', 'rt2400pci', 'rt2500pci', 'rt2500usb', 'rt2800pci', 'rt2800usb', 'rt61pci', 'rt73usb', 'rtl8180', 'rtl8187', 'wl1251', 'wl1271', 'zd1201', 'zd1211rw');
54    }
55    else
56    {
57     $drop['cfg_network_module'] = array('3c59x', '8139too', '8139cp', 'e100', 'ne2k-pci', 'pcnet32', 'sis900', 'via-rhine', 'zd1211', 'b44', 'bnx2', 'dl2k', 'e1000', 'forcedeth', 'r8169', 'sk98lin', 'tg3', 'via-velocity');
58    }
59    $drop['networking'] = array('dhcp', 'static');
60    // 0.6.0 does not support lpd, ipp and socket printing atm
61    if($alxos>='0.6.0')
62    {
63     $drop['port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2');
64     for ($i=0; $i<999; $i++) { $drop['cfg_printers_'.$i.'_ip'] = 'ignore'; }
65     $drop['share'] = 'ignore';
66    }
67    else
68    {
69     $drop['cfg_printers_port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2', 'lpd', 'socket', 'ipp');
70    }
71    $drop['location'] = sqlarr('SELECT location FROM client_locations', '', 'location');
72    $drop['id'] = 'hidden';
73    $drop['flg_modified'] = '1';
74    $drop['serial'] = 'ignore';
75    if($alxos>='0.5.3')
76    {
77     $drop['monitorid'] = 'ignore';
78     $drop['refresh_rate'] = array('','60','75','85','100');
79    }
80    else
81    {
82     $drop['monitorid'] = 'monitorid';
83     $drop['refresh_rate'] = 'ignore';
84    }
85    $drop['hostname'] = 'bold';
86    $drop['session'] = 'bold';
87    if($alxos>='0.6.0')
88    {
89     $drop['cfg_autostart_session'] = sqlarr('SELECT filename FROM cfg_sessions where serial='.$id, '', 'filename');
90     array_unshift($drop['cfg_autostart_session'], "");
91    }
92    else
93    {
94     $drop['cfg_autostart_session'] = 'filename';
95    }
96    $drop['mtime'] = 'showtime';
97    $drop['mac'] = 'show';
98    $drop['client_serials_serial'] = 'show';
99    $drop['password'] = 'password';
100    $drop['shell'] = 'password';
101    $drop['vnc'] = 'password';
102    $drop['samba'] = 'password';
103    $drop['station'] = 'password';
104    $drop['txt'] = 'txt';
105    $drop['screensaver'] = array('','blank', 'random', 'ant', 'ant3d', 'apollonian', 'ball', 'bat', 'blot', 'bomb', 'bouboule',
106     'bounce', 'braid', 'bubble', 'bug', 'clock', 'coral', 'crystal', 'daisy', 'dclock', 'decay', 'deco',
107     'demon', 'dilemma', 'discrete', 'dragon', 'drift', 'euler2d', 'eyes', 'fadeplot', 'fiberlamp', 'flag',
108     'flame', 'flow', 'forest', 'galaxy', 'goop', 'grav', 'helix', 'hop', 'hyper', 'ico', 'ifs', 'image',
109     'juggle', 'julia', 'kaleid', 'kumppa', 'laser', 'life', 'life1d', 'life3d', 'lightning', 'lisa', 'lissie',
110     'loop', 'lyapunov', 'mandelbrot', 'marquee', 'matrix', 'maze', 'mountain', 'munch', 'nose', 'pacman',
111     'penrose', 'petal', 'petri', 'polyominoes', 'puzzle',  'pyro', 'qix', 'roll',  'rotor', 'scooter', 'shape',
112     'sierpinski', 'slip', 'solitare', 'space', 'sphere', 'spiral', 'spline', 'star', 'starfish', 'strange',
113     'swarm', 'swirl', 't3d', 'tetris', 'thornbird', 'tik_tak', 'toneclock', 'triangle', 'tube', 'turtle',
114     'vines', 'voters', 'wator', 'wire', 'world', 'worm', 'xcl', 'xjack');
115    $drop['iface'] = array('eth0', 'wlan0');
116    $drop['client_version_os'] = 'show';
117    $drop['client_version_utils'] = 'show';
118    
119    // ACHTUNG!!! wlan_-Felder heißen eigentlich wireless_
120    $drop['wireless_mode'] = array('', 'managed', 'ad-hoc', 'master', 'repeater', 'secondary', 'monitor', 'auto');
121    $drop['wireless_auth_mode'] = array('', 'wep', 'wpa', 'wpa2', 'off');
122    $drop['wireless_key_length'] = array('', '64', '128', '256');
123    $drop['wireless_channel'] = array('', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14');
124    $drop['wireless_frequency'] = array('', '2.412G', '2.417G', '2.422G', '2.427G', '2.432G', '2.437G', '2.442G',
125     '2.447G', '2.452G', '2.457G', '2.462G', '2.467G', '2.472G', '2.484G');
126    $drop['wireless_key'] = 'password';
127    $drop['wireless_key_ascii'] = 'password';
128    
129    // get current citrix sessions
130    if($alxos>='0.6.0')
131    {
132     // split all citrix server into an array to get the first server from list
133     $citrix_query_browser = split(";", $citrix_browseradrs);
134     exec($wwwroot.'/pnabrowse-wrapper -A '.$citrix_query_browser[0], $returned_citrix_sessions, $retval);
135     if ($retval == 0)
136     {
137     $citrix_public_applications = str_replace("'", "", $returned_citrix_sessions);
138     // add an empty value add the first position of the array as session-default
139     array_unshift($citrix_public_applications, "");
140     for ($i=0; $i<999; $i++) { $drop['cfg_sessions_'.$i.'_session'] = $citrix_public_applications; }
141     }
142     else if($retval = 126) echo "pnabrowser-wrapper has no execute permission! please run chmod +x on ".$wwwroot."/pnabrowser-wrapper.";
143     else echo "pnabrowse-wrapper does not run successfully! retval->'".$retval."'<br>";
144    }
145    
146    // GGF. NEUEN DATENSATZ EINFÜGEN
147    if(isset($_POST['do_add']))
148    {
149     list($bla,$what) = explode(' ',$_POST['do_add']);
150     if($what=='COMMENT') sqladd('cfg_comments', array('serial'=>$id));
151     else if($what=='PRINTER') sqladd('cfg_printers', array('serial'=>$id));
152     else if($what=='MODULE') sqladd('cfg_modules', array('serial'=>$id));
153     else if($what=='SESSION') sqladd('cfg_sessions', array('domain'=>$citrix_domain_name, 'browseradrs'=>$citrix_browseradrs, 'serial'=>$id));
154     else if($what=='MENUITEM') sqladd('cfg_other_menuitems', array('serial'=>$id));
155    }
156    
157    
158    // GGF. SPEICHERN
159    if($_POST['do_upl'])
160    {
161     function postarr($prefix)
162     {
163     $prefix.='_';
164     $prelen = strlen($prefix);
165    
166     $arr = array();
167     foreach($_POST as $k=>$v)
168     if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS'))
169     $arr[substr($k,$prelen)] = stripslashes($v);
170    
171     return $arr;
172   }   }
173   else  
174     foreach($tabs as $k=>$t)
175   {   {
176   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i810', 'i710', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via');   if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id);
177     else
178     {
179     $i=0;
180     while(isset($_POST[$t.'_'.$i.'_id']))
181     {
182     if($_POST[$t.'_'.$i.'_delete'])
183     mysql_query('DELETE FROM '.$t.' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);
184     else
185     mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t.'_'.$i)).' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);
186     $i++;
187     }
188     }
189   }   }
190   $drop['resolution'] = array('640x480', '800x600', '1024x768', '1280x960', '1280x1024', '1360x768', '1366x768', '1400x1050', '1440x900', '1600x1200', '1680x1050');  
191   $drop['depth'] = array('24', '16', '8');   // reload site
192   $drop['mouse'] = array('Auto', 'IMPS/2', 'PS/2');   header("location: show.php?id=".$id);
193   $drop['keyboard'] = array('PC105');  }
194   $drop['cfg_network_module'] = array('3c59x', '8139too', '8139cp', 'e100', 'ne2k-pci', 'pcnet32', 'sis900', 'via-rhine', 'zd1211', 'b44', 'bnx2', 'dl2k', 'e1000', 'r8169', 'sk98lin', 'tg3', 'via-velocity');  
195   $drop['networking'] = array('dhcp', 'static');  // EINLESEN DER DATEN AUS SQL-TABELLEN
196   $drop['port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2', 'lpd', 'socket', 'ipp');  foreach($tabs as $k=>$t)
197   $drop['location'] = sqlarr('SELECT location FROM client_locations', '', 'location');  {
198   $drop['id'] = 'hidden';   if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id);
199   $drop['flg_modified'] = '1';   else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id);
200   $drop['serial'] = 'ignore';  }
201   if($alxos>='0.5.3')  
202    // ANZEIGEN - KLAPPFUNKTIONEN
203    $absnames = array();
204    
205    function openabs($heading, $helpfile='')
206    {
207     global $absnames;
208     $absnames[] = $heading;
209    
210     // <AufZuLink> <Bild/> <Heading/> </AufZuLink><BR/> <Absatz>
211    
212     if( $_SESSION['openclose'][$heading] )
213   {   {
214   $drop['monitorid'] = 'ignore';   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/minus.gif" title="CLOSE" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';
215   $drop['refresh_rate'] = array('','60','75','85','100');   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';
216     echo '<br><div id="sch_absatz_'.$heading.'" style="top:0px; visibility:visible">';
217   }   }
218   else   else
219   {   {
220   $drop['monitorid'] = 'monitorid';   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/plus.gif" title="OPEN" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';
221   $drop['refresh_rate'] = 'ignore';   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';
222   }   echo '<br><div id="sch_absatz_'.$heading.'" style="position:absolute; top:0px; visibility:hidden">';
223   $drop['hostname'] = 'bold';   }
224   $drop['session'] = 'bold';  }
225   $drop['cfg_autostart_session'] = 'filename';  
226   $drop['mtime'] = 'showtime';  function closeabs()
227   $drop['mac'] = 'show';  {
228   $drop['client_serials_serial'] = 'show';   // </Absatz> <BR/>
229   $drop['password'] = 'password';  
230   $drop['shell'] = 'password';   echo '</div><br>';
231   $drop['vnc'] = 'password';  }
  $drop['samba'] = 'password';  
  $drop['station'] = 'password';  
  $drop['txt'] = 'txt';  
  $drop['screensaver'] = array('','blank', 'random', 'ant', 'ant3d', 'apollonian', 'ball', 'bat', 'blot', 'bomb', 'bouboule',  
  'bounce', 'braid', 'bubble', 'bug', 'clock', 'coral', 'crystal', 'daisy', 'dclock', 'decay', 'deco',  
  'demon', 'dilemma', 'discrete', 'dragon', 'drift', 'euler2d', 'eyes', 'fadeplot', 'fiberlamp', 'flag',  
  'flame', 'flow', 'forest', 'galaxy', 'goop', 'grav', 'helix', 'hop', 'hyper', 'ico', 'ifs', 'image',  
  'juggle', 'julia', 'kaleid', 'kumppa', 'laser', 'life', 'life1d', 'life3d', 'lightning', 'lisa', 'lissie',  
  'loop', 'lyapunov', 'mandelbrot', 'marquee', 'matrix', 'maze', 'mountain', 'munch', 'nose', 'pacman',  
  'penrose', 'petal', 'petri', 'polyominoes', 'puzzle',  'pyro', 'qix', 'roll',  'rotor', 'scooter', 'shape',  
  'sierpinski', 'slip', 'solitare', 'space', 'sphere', 'spiral', 'spline', 'star', 'starfish', 'strange',  
  'swarm', 'swirl', 't3d', 'tetris', 'thornbird', 'tik_tak', 'toneclock', 'triangle', 'tube', 'turtle',  
  'vines', 'voters', 'wator', 'wire', 'world', 'worm', 'xcl', 'xjack');  
  $drop['iface'] = array('eth0', 'wlan0');  
  $drop['client_version_os'] = 'show';  
  $drop['client_version_utils'] = 'show';  
   
  // ACHTUNG!!! wlan_-Felder heißen eigentlich wireless_  
  $drop['wireless_mode'] = array('', 'managed', 'ad-hoc', 'master', 'repeater', 'secondary', 'monitor', 'auto');  
  $drop['wireless_auth_mode'] = array('', 'wep', 'wpa', 'off');  
  $drop['wireless_key_length'] = array('', '64', '128', '256');  
  $drop['wireless_channel'] = array('', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14');  
  $drop['wireless_frequency'] = array('', '2.412G', '2.417G', '2.422G', '2.427G', '2.432G', '2.437G', '2.442G',  
  '2.447G', '2.452G', '2.457G', '2.462G', '2.467G', '2.472G', '2.484G');  
  $drop['wireless_key'] = 'password';  
  $drop['wireless_key_ascii'] = 'password';  
232    
  // GGF. NEUEN DATENSATZ EINFÜGEN  
  if(isset($_POST['do_add']))  
  {  
  list($bla,$what) = explode(' ',$_POST['do_add']);  
  if($what=='COMMENT') sqladd('cfg_comments', array('serial'=>$id));  
  else if($what=='PRINTER') sqladd('cfg_printers', array('serial'=>$id));  
  else if($what=='MODULE') sqladd('cfg_modules', array('serial'=>$id));  
  else if($what=='SESSION') sqladd('cfg_sessions', array('domain'=>'DOM_AKA_NT', 'browseradrs'=>'128.20.50.50;128.20.50.66;128.20.50.71;128.20.50.46;128.20.100.31;128.20.100.32', 'serial'=>$id));  
  else if($what=='MENUITEM') sqladd('cfg_other_menuitems', array('serial'=>$id));  
  }  
233    
234    // ANZEIGEN
235    
236   // GGF. SPEICHERN  function parsearr($name, $arr, $del=false, $wireless=false)
237   if($_POST['do_upl'])  {
238   {   global $drop;
239   function postarr($prefix)   global $id;
240   {   global $alxos;
  $prefix.='_';  
  $prelen = strlen($prefix);  
241    
242   $arr = array();   $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];
243   foreach($_POST as $k=>$v)   openabs($name, $helpfile);
244   if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS'))   echo '<table class="keytab">';
  $arr[substr($k,$prelen)] = stripslashes($v);  
245    
246   return $arr;   foreach($arr as $k=>$v)
247   }   {
248     if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;
249    
250     $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];
251     $k = str_replace('wireless_', '', $k);
252     $k2 = $k;
253    
254   foreach($tabs as $k=>$t)   //replace some drivers on 0.5.3 or higher
255     if($alxos >= '0.5.3')
256   {   {
257   if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id);   if($v == 'i810')
258   else   {
259     echo '<br><font color="#FF0000">Replaced "i810" with "intel" - Please press SAVE!</font><br>';
260     $v='intel';
261     }
262     if($v == 'r128')
263     {
264     echo '<br><font color="#FF0000">Replaced "r128" with "vesa" - Please press SAVE!</font><br>';
265     $v='vesa';
266     }
267    
268     if($v == 'via')
269   {   {
270   $i=0;   echo '<br><font color="#FF0000">Replaced "via" with "openchrome" - Please press SAVE!</font><br>';
271   while(isset($_POST[$t.'_'.$i.'_id']))   $v='openchrome';
272   {   }
  if($_POST[$t.'_'.$i.'_delete'])  
  mysql_query('DELETE FROM '.$t.' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);  
  else  
  mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t.'_'.$i)).' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);  
  $i++;  
  }  
  }  
273   }   }
  }  
274    
275     # tell something about vesa
276     if ($v == 'vesa') echo '<br><font color="#FF0000">Warning: "vesa" graphic module doesn\'t support any resolutions higher than 1024x786x16@60hz!</font><br>';
277    
  // EINLESEN DER DATEN AUS SQL-TABELLEN  
  foreach($tabs as $k=>$t)  
  {  
  if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id);  
  else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id);  
  }  
278    
279   // ANZEIGEN - KLAPPFUNKTIONEN   if(is_array($d))
280   $absnames = array();   {
281     echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">';
282   function openabs($heading, $helpfile='')   foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;
283   {   echo '</select></td></tr>';
284   global $absnames;   }
285   $absnames[] = $heading;   else if($d=='hidden') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';
286     else if($d=='1') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="1"></td></tr>';
287   // <AufZuLink> <Bild/> <Heading/> </AufZuLink><BR/> <Absatz>   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>';
288     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>';
289     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>';
290     else if($d=='show') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.$v.'</b></td></tr>';
291     else if($d=='showtime') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.date('d.m.y - H:i:s', $v).'</b></td></tr>';
292     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>';
293     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>';
294     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>';
295     else if($d!='ignore') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';
296     }
297    
298     if($del) echo '<tr><td class="key">delete</td><td>=<input type=checkbox name="'.$name.'_delete" value="1"></td></tr>';
299     echo '</table>';
300     closeabs();
301    
302     if($name=='cfg_network' && !$wireless) parsearr($name.'_wireless', $arr, $del, true);
303    }
304    function parsearrs($name, $arr)
305    {
306     foreach($arr as $k=>$a)
307     parsearr($name.'_'.$k, $a, true);
308    }
309    
310    ?><head>
311    <title>ALX Config</title>
312    <style>
313     body,table { font-family:Tahoma; font-size:10pt }
314     a { color:#000000; text-decoration:none; }
315     .key { width:85px }
316     .keytab, input, textarea, select, option { font-size:8pt; font-family:Tahoma }
317     .but { font-size:10pt; font-family:Tahoma; height:23px }
318    </style>
319    <script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
320    <script language="JavaScript" src="openclose_ajax.js"></script>
321    <script language="JavaScript">
322    
323     // opens an url and shows retval in a javascript-alert on current site
324     function urlopen(url,typ) {
325     var $url = url.split("?");
326     $.ajax({type:""+typ+"",url:$url[0],data:$url[1],cache:false,success:function(data){ alert(data); }});
327     }
328    
329    /* ignore this atm, not always working, sometime open does not work
330     function openclose(nummer, act)
331     {
332     var bild = document.images['sch_bild_'+nummer];
333     var absatz = document.all['sch_absatz_'+nummer].style;
334     var senden = false;
335    
336     $("#sch_absatz_"+nummer).toggle(0, function(){
337     if($(this).css("display")=="none"){$("#sch_bild_"+nummer).attr({title:'OPEN',src:'pics/plus.gif'});}else{$("#sch_bild_"+nummer).attr({title:'CLOSE',src:'pics/minus.gif'});}
338     });
339     if(act<=1){ $("#sch_bild_"+nummer).attr({title:'CLOSE',src:'pics/minus.gif'}); }else{ $("#sch_bild_"+nummer).attr({title:'OPEN',src:'pics/plus.gif'}); };
340     }
341    */
342     function openclose(nummer, act)
343     {
344     var bild = document.images['sch_bild_'+nummer];
345     var absatz = document.all['sch_absatz_'+nummer].style;
346     var senden = false;
347    
348   if( $_SESSION['openclose'][$heading] )   if(bild.title == 'OPEN')
349   {   {
350   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/minus.gif" title="CLOSE" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';   if(act<=1)
351   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';   {
352   echo '<br><div id="sch_absatz_'.$heading.'" style="top:0px; visibility:visible">';   absatz.visibility = 'visible';
353     absatz.position = '';
354     bild.title = 'CLOSE';
355     bild.src = 'pics/minus.gif';
356     senden = true;
357     act = 0;
358     }
359   }   }
360   else   else
361   {   {
362   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/plus.gif" title="OPEN" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';   if(act>=1)
363   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';   {
364   echo '<br><div id="sch_absatz_'.$heading.'" style="position:absolute; top:0px; visibility:hidden">';   absatz.visibility = 'hidden';
365     absatz.position = 'absolute';
366     bild.title = 'OPEN';
367     bild.src = 'pics/plus.gif';
368     senden = true;
369     act = 2;
370     }
371   }   }
  }  
   
  function closeabs()  
  {  
  // </Absatz> <BR/>  
372    
373   echo '</div><br>';   if(senden) sendopenclose(nummer,act);
374   }   }
   
375    
376   // ANZEIGEN   function showhelp(name)
377     { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }
  function parsearr($name, $arr, $del=false, $wireless=false)  
  {  
  global $drop;  
  global $id;  
  global $alxos;  
   
  $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];  
  openabs($name, $helpfile);  
  echo '<table class="keytab">';  
378    
379   foreach($arr as $k=>$v)  </script>
380   {  </head>
  if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;  
   
  $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];  
  $k = str_replace('wireless_', '', $k);  
  $k2 = $k;  
381    
382   //replace some drivers on 0.5.3 or higher  <body><?
  if($alxos >= '0.5.3')  
  {  
  if($v == 'i810')  
  {  
  echo '<br><font color="#FF0000">Replaced "i810" with "intel" - Please press SAVE!</font><br>';  
  $v='intel';  
  }  
  if($v == 'r128')  
  {  
  echo '<br><font color="#FF0000">Replaced "r128" with "vesa" - Please press SAVE!</font><br>';  
  $v='vesa';  
  }  
   
  if($v == 'via')  
  {  
  echo '<br><font color="#FF0000">Replaced "via" with "openchrome" - Please press SAVE!</font><br>';  
  $v='openchrome';  
  }  
  }  
   
  # tell something about vesa  
  if ($v == 'vesa') echo '<br><font color="#FF0000">Warning: "vesa" graphic module doesn\'t support any resolutions higher than 1020x786x16@60hz!</font><br>';  
383    
384    echo '<form action="show.php" method="post" onreset="return confirm(\'UNDO CHANGES?\')">';
385    echo '<input type=hidden name="do_upl" value="1">';
386    echo '<input type=hidden name="id" value="'.$id.'">';
387    
388   if(is_array($d))  // ANZEIGEN => NON-MULTI TABELLEN
389   {  echo '<table><tr><td valign=top width="300">';
  echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">';  
  foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;  
  echo '</select></td></tr>';  
  }  
  else if($d=='hidden') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  else if($d=='1') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="1"></td></tr>';  
  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>';  
  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>';  
  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>';  
  else if($d=='show') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.$v.'</b></td></tr>';  
  else if($d=='showtime') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.date('d.m.y - H:i:s', $v).'</b></td></tr>';  
  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>';  
  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>';  
  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>';  
  else if($d!='ignore') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  }  
390    
391   if($del) echo '<tr><td class="key">delete</td><td>=<input type=checkbox name="'.$name.'_delete" value="1"></td></tr>';   echo '<b style="font-size:6pt">';
392   echo '</table>';   echo '<a href="JavaScript:opencloseall(0);" title="OPEN ALL"><img src="pics/plus.gif" border="0"> OPEN...</a> ';
393   closeabs();   echo '<a href="JavaScript:opencloseall(2);" title="CLOSE ALL"><img src="pics/minus.gif" border="0"> CLOSE...</a> ALL';
394     echo '</b><br><br>';
  if($name=='cfg_network' && !$wireless) parsearr($name.'_wireless', $arr, $del, true);  
  }  
  function parsearrs($name, $arr)  
  {  
  foreach($arr as $k=>$a)  
  parsearr($name.'_'.$k, $a, true);  
  }  
395    
396   ?><head>   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);
  <title>ALX Config</title>  
  <style>  
  body,table { font-family:Tahoma; font-size:10pt }  
  a { color:#000000; text-decoration:none; }  
  .key { width:85px }  
  .keytab, input, textarea, select, option { font-size:8pt; font-family:Tahoma }  
  .but { font-size:10pt; font-family:Tahoma; height:23px }  
  </style>  
  <script language="JavaScript" src="openclose_ajax.js"></script>  
  <script language="JavaScript">  
   
  function openclose(nummer, act)  
  {  
  var bild = document.images['sch_bild_'+nummer];  
  var absatz = document.all['sch_absatz_'+nummer].style;  
  var senden = false;  
   
  if(bild.title == 'OPEN')  
  {  
  if(act<=1)  
  {  
  absatz.visibility = 'visible';  
  absatz.position = '';  
  bild.title = 'CLOSE';  
  bild.src = 'pics/minus.gif';  
  senden = true;  
  act = 0;  
  }  
  }  
  else  
  {  
  if(act>=1)  
  {  
  absatz.visibility = 'hidden';  
  absatz.position = 'absolute';  
  bild.title = 'OPEN';  
  bild.src = 'pics/plus.gif';  
  senden = true;  
  act = 2;  
  }  
  }  
   
  if(senden) sendopenclose(nummer,act);  
  }  
   
  function showhelp(name)  
  { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }  
   
  </script>  
  </head>  
   
  <body><?  
   
   
  //echo '<body style="background-image:URL(logo.jpg);background-repeat:no-repeat; background-position:0px 0px; margin-top:25px">';  
  echo '<form action="show.php" method=post onreset="return confirm(\'UNDO CHANGES?\')">';  
  echo '<input type=hidden name="do_upl" value="1">';  
  echo '<input type=hidden name="id" value="'.$id.'">';  
397    
398   // ANZEIGEN => NON-MULTI TABELLEN  // ANZEIGEN => MULTI TABELLEN
399   echo '<table><tr><td valign=top width="300">';  echo '</td><td valign=top width="300">';
400    
401   echo '<b style="font-size:6pt">';   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);
  echo '<a href="JavaScript:opencloseall(0);" title="OPEN ALL"><img src="pics/plus.gif" border="0"> OPEN...</a> ';  
  echo '<a href="JavaScript:opencloseall(2);" title="CLOSE ALL"><img src="pics/minus.gif" border="0"> CLOSE...</a> ALL';  
  echo '</b><br><br>';  
402    
403   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);   echo '<script language="JavaScript">';
404     echo 'function opencloseall(act) { ';
405    
406   // ANZEIGEN => MULTI TABELLEN   foreach($absnames as $absname)
407   echo '</td><td valign=top width="300">';   echo 'openclose("'.$absname.'", act); ';
408    
409   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);   echo '}</script>';
   
  echo '<script language="JavaScript">';  
  echo 'function opencloseall(act) { ';  
   
  foreach($absnames as $absname)  
  echo 'openclose("'.$absname.'", act); ';  
   
  echo '}</script>';  
410    
411   // ANZEIGEN => NAVI  // ANZEIGEN => NAVI
412   echo '</td><td valign=top>';  echo '</td><td valign=top>';
413    
414   // STATUS BESTIMMEN (ON/OFF)   // STATUS BESTIMMEN (ON/OFF)
415   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);
416   $state = 'Off';   $state = 'Off';
417   if(count($conn)>0)   if(count($conn)>0)
418   {   {
419  // passthru($pingcmd." ".$conn['ip']." &> /dev/null && exit 0 || exit 1",$retval);   if($retval==0) $state = 'On';
420   if($retval==0) $state = 'On';   }
421   }  
422     echo '<img src="pics/logo2.jpg"><br><br>';
423    
424     echo '<input class="but" type=submit value="SAVE" style="width:150px"><br><br>';
425    
426     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';
427     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';
428     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD SESSION" style="width:150px"><br>';
429     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MODULE" style="width:150px"><br>';
430     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MENUITEM" style="width:150px"><br><br>';
431    
432    
433   echo '<img src="pics/logo2.jpg"><br><br>';   if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE';
434     echo '<input class="but" type=button value="'.$KILLCAP.'" style="width:150px" onclick="if(confirm(\''.$KILLCAP.' CLIENT #'.abs($id).' ?\')) { window.open(\'show.php?id='.$id.'&kill=1\', \'DeactWin\', \'width=200,height=100\'); location.href=\'index.php\'; }"><br>';
435     echo '<input class="but" type=button value="IMPORT FROM..." style="width:150px" onclick="location.href=\'import.php?id='.$id.'\'"><br>';
436     echo '<input class="but" type=reset value="UNDO CHANGES" style="width:150px"><br><br>';
437    
438   echo '<input class="but" type=submit value="SAVE" style="width:150px"><br><br>';   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';
439     $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';
440    
441   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';   echo '<input class="but" type=button '.$disdavor.' value="<" style="width:30px" onclick="location.href=\'show.php?id='.($id-1).'\'">';
442   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';   echo '<input class="but" type=button value="REFRESH" style="width:90px" onclick="location.href=\'show.php?id='.$id.'\'">';
443   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD SESSION" style="width:150px"><br>';   echo '<input class="but" type=button '.$disdanach.' value=">" style="width:30px" onclick="location.href=\'show.php?id='.($id+1).'\'">';
444   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MODULE" style="width:150px"><br>';   echo '<br><input class="but" type=button value="INDEX" style="width:150px; font-weight:bold" onclick="location.href=\'index.php\'"><br><br>';
445   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MENUITEM" style="width:150px"><br><br>';  
446     echo '<br>';
447     echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff"><b>';
448   if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE';   if($id<0) echo '<b>DEACTIVATED!</b><br><br>';
449   echo '<input class="but" type=button value="'.$KILLCAP.'" style="width:150px" onclick="if(confirm(\''.$KILLCAP.' CLIENT #'.abs($id).' ?\')) { window.open(\'show.php?id='.$id.'&kill=1\', \'DeactWin\', \'width=200,height=100\'); location.href=\'index.php\'; }"><br>';   echo '<u>Serial:</u>&nbsp;&nbsp;#'.$id.'<br>';
450   echo '<input class="but" type=button value="IMPORT FROM..." style="width:150px" onclick="location.href=\'import.php?id='.$id.'\'"><br>';   echo '<u>Stand:</u>&nbsp;&nbsp;'.date('H:i:s').'<br>';
451   echo '<input class="but" type=reset value="UNDO CHANGES" style="width:150px"><br><br>';   echo '<u>Status:</u> <img src="pics/'.strtolower($state).'line.gif" align=top> '.$state.'line<br>';
452     if($state=='On')
453   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';   {
454   $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';   echo '<u>IP:</u> '.$conn['ip'].'<br><br>';
455     if($alxos >= '0.6.0')
  echo '<input class="but" type=button '.$disdavor.' value="<" style="width:30px" onclick="location.href=\'show.php?id='.($id-1).'\'">';  
  echo '<input class="but" type=button value="REFRESH" style="width:90px" onclick="location.href=\'show.php?id='.$id.'\'">';  
  echo '<input class="but" type=button '.$disdanach.' value=">" style="width:30px" onclick="location.href=\'show.php?id='.($id+1).'\'">';  
  echo '<br><input class="but" type=button value="INDEX" style="width:150px; font-weight:bold" onclick="location.href=\'index.php\'"><br><br>';  
   
  echo '<br><br>';  
  echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff"><b>';  
  if($id<0) echo '<b>DEACTIVATED!</b><br><br>';  
  echo '<u>Serial:</u>&nbsp;&nbsp;#'.$id.'<br>';  
  echo '<u>Stand:</u>&nbsp;&nbsp;'.date('H:i:s').'<br>';  
  echo '<u>Status:</u> <img src="pics/'.strtolower($state).'line.gif" align=top> '.$state.'line<br>';  
  if($state=='On')  
456   {   {
457   echo '<u>IP:</u> '.$conn['ip'].'<br><br>';   $osver = sshdo('os_ver=$(</etc/mageversion);cfg_ver=$(/sbin/magequery -n alxconfig-ng | cut -d" " -f5);pname=${cfg_ver%-*-*};cfg_ver=${cfg_ver/${pname}-};echo "${os_ver}:${cfg_ver}"', $conn['ip']);
458   $pubkey = mysql_query('select public_key from ssh_auth_clients where serial='.$id.'');   }
459   while ($row = mysql_fetch_row ($pubkey)) {   else
460   # schreiben der .ssh/known_hosts file mit dem public rsa key des client,   {
461   # um die "yes" abfrage zu vermeiden   $osver = sshdo('os_ver=$(</etc/mageversion);cfg_ver=$(/sbin/magequery -n alxconfig-ng-alx | cut -d" " -f5);pname=${cfg_ver%-*-*};cfg_ver=${cfg_ver/${pname}-};echo "${os_ver}:${cfg_ver}"', $conn['ip']);
462   $hostfile = fopen ($home."/.ssh/known_hosts","w");   }
463   fwrite($hostfile,$conn['ip']." ".$row[0],strlen($row[0])+strlen($conn['ip'])+1);   $osver = explode(':',$osver[1]);
464   fclose($hostfile);   if($osver[0] == '') $osver[0]='unkown';
465     if($osver[1] == '') $osver[1]='unkown';
466    
467   $osver = exec($sshcmd.' '.$conn['ip'].' \'os_ver=$(</etc/mageversion);cfg_ver=$(/sbin/magequery -n alxconfig-ng-alx|cut -d" " -f5);pname=${cfg_ver%-*-*};cfg_ver=${cfg_ver/${pname}-};echo "${os_ver}:${cfg_ver}"\'');   # update os string in database
468   $osver = explode(':',$osver);   if($alxos == '' && $osver[0] >= '0.5.3')
469   }   {
470   if($osver[0] == '') $osver[0]='unkown';   mysql_query('insert into client_version(serial,os,utils) values("'.$id.'","'.$osver[0].'","'.$osver[1].'")
471   if($osver[1] == '') $osver[1]='unkown';   on duplicate key update os="'.$osver[0].'", utils="'.$osver[1].'"');
472     # reload the site
473   # update os string in database   echo '<script type="text/javascript">setTimeout(\'window.location.reload()\',0);</script>';
474   if($alxos == '' && $osver[0] >= '0.5.3')   }
  {  
  mysql_query('insert into client_version(serial,os,utils) values("'.$id.'","'.$osver[0].'","'.$osver[1].'")  
  on duplicate key update os="'.$osver[0].'", utils="'.$osver[1].'"');  
  # reload the site  
  echo '<script type="text/javascript">setTimeout(\'window.location.reload()\',0);</script>';  
  }  
475    
476   echo '<u>OS:</u> '.$osver[0].'<br>';   echo '<u>OS:</u> '.$osver[0].'<br>';
477   echo '<u>Utils:</u> '.$osver[1].'<br>';   echo '<u>Utils:</u> '.$osver[1].'<br>';
478    
479   if($osver[0] <> 'unkown')   if($osver[0] <> 'unkown')
480   {   {
481   //write them to database   //write them to database
  }  
482   }   }
483     }
484    
485   echo '</b></div>';   echo '</b></div>';
  //echo '<br><br>';  
486    
487   if($state=='On')   if($state=='On')
488     {
489     echo '<input class="but" type=button value="REBOOT" style="width:150px" onclick="if(confirm(\'REBOOT CLIENT #'.$id.' ?\')) window.open(\'reboot.php?client='.$id.'&ip='.$conn['ip'].'&op=reboot\', \'ShutdownWin\', \'width=200,height=100\')"><br>';
490     echo '<input class="but" type=button value="SHUTDOWN" style="width:150px" onclick="if(confirm(\'SHUTDOWN CLIENT #'.$id.' ?\')) window.open(\'reboot.php?client='.$id.'&ip='.$conn['ip'].'&op=halt\', \'ShutdownWin\', \'width=200,height=100\')"><br>';
491     echo '<br>';
492    
493     if($alxos >= '0.6.0')
494   {   {
495   echo '<input class="but" type=button value="REBOOT" style="width:150px" onclick="if(confirm(\'REBOOT CLIENT #'.$id.' ?\')) window.open(\'reboot.php?client='.$id.'&ip='.$conn['ip'].'&op=reboot\', \'ShutdownWin\', \'width=200,height=100\')"><br>';   echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';
496   echo '<input class="but" type=button value="SHUTDOWN" style="width:150px" onclick="if(confirm(\'SHUTDOWN CLIENT #'.$id.' ?\')) window.open(\'reboot.php?client='.$id.'&ip='.$conn['ip'].'&op=halt\', \'ShutdownWin\', \'width=200,height=100\')"><br>';   echo 'Hardware Detection:</b></div>';
497   echo '<br>';   echo '<input class="but" type=button value="LAN" style="width:50px" onclick="javascript:urlopen(\'include/hwinfo.php?ip='.$conn['ip'].'&cmd=lan\',\'POST\');">';
498                   echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';   echo '<input class="but" type=button value="WLAN" style="width:50px" onclick="javascript:urlopen(\'include/hwinfo.php?ip='.$conn['ip'].'&cmd=wlan\',\'POST\');">';
499                  echo 'Remote Shadow:</b></div>';   echo '<input class="but" type=button value="VGA" style="width:50px" onclick="javascript:urlopen(\'include/hwinfo.php?ip='.$conn['ip'].'&cmd=vga\',\'POST\');">';
500   echo '<input class="but" type=button value="VNC" style="width:150px" onclick="window.open(\'vncviewer.php?ip='.$conn['ip'].'\', \'VncViewer\', \'width=200,height=100\')"><br>';   echo '<br><br>';
  echo '<br>';  
                  echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';  
                 echo 'Client Update:</b></div>';  
  echo '<input class="but" type=button value="UPDATE MAGE DB" style="width:150px" onclick="if(confirm(\'UPDATE DB ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=update\', \'ShutdownWin\', \'width=800,height=600\')"><br>';  
  echo '<input class="but" type=button value="CALC DEPS" style="width:150px" onclick="if(confirm(\'CALC DEPS FOR CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=calc\', \'ShutdownWin\', \'width=800,height=600\')"><br>';  
  echo '<input class="but" type=button value="UPGRADE CLIENT" style="width:150px" onclick="if(confirm(\'UPGRADE ALL PACKAGES ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=upgrade\', \'ShutdownWin\', \'width=800,height=600\');setTimeout(\'window.location.reload()\',0);"><br>';  
501   }   }
  else  
  echo '<input class="but" type=button value="WAKE ON LAN" style="width:150px" onclick="if(confirm(\'WAKE CLIENT #'.$id.' ?\')) window.open(\'wake_on_lan.php?mac='.$data['client_serials']['mac'].'\', \'WakeWin\', \'width=200,height=100\')"><br>';  
502    
503   echo '<br><center><a href="share/ChangeLog.html" target="_blank">[ChangeLog]</a> <a href="share/FAQ.html" target="_blank">[FAQs]</a></center>';   echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';
504     echo 'Remote Shadow:</b></div>';
505     echo '<input class="but" type=button value="VNC" style="width:150px" onclick="window.open(\'vncviewer.php?ip='.$conn['ip'].'\', \'VncViewer\', \'width=200,height=100\')"><br>';
506     echo '<input class="but" type=button value="SSH" style="width:150px" onclick="window.open(\'mindterm.php?ip='.$conn['ip'].'\', \'MindTerm\', \'width=200,height=100\')"><br>';
507     echo '<br>';
508     echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';
509     echo 'Client Update:</b></div>';
510     echo '<input class="but" type=button value="UPDATE MAGE DB" style="width:150px" onclick="if(confirm(\'UPDATE DB ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=update\', \'ShutdownWin\', \'width=800,height=600\')"><br>';
511     echo '<input class="but" type=button value="CALC DEPS" style="width:150px" onclick="if(confirm(\'CALC DEPS FOR CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=calc\', \'ShutdownWin\', \'width=800,height=600\')"><br>';
512     echo '<input class="but" type=button value="UPGRADE CLIENT" style="width:150px" onclick="if(confirm(\'UPGRADE ALL PACKAGES ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=upgrade\', \'ShutdownWin\', \'width=800,height=600\');setTimeout(\'window.location.reload()\',0);"><br>';
513     }
514     else
515     echo '<input class="but" type=button value="WAKE ON LAN" style="width:150px" onclick="if(confirm(\'WAKE CLIENT #'.$id.' ?\')) window.open(\'wake_on_lan.php?mac='.$data['client_serials']['mac'].'\', \'WakeWin\', \'width=200,height=100\')"><br>';
516    
517     echo '<br><center><a href="share/ChangeLog.html" target="_blank">[ChangeLog]</a> <a href="share/FAQ.html" target="_blank">[FAQs]</a></center>';
518    
519   echo '</td></tr></table>';  echo '</td></tr></table>';
520   echo '</form>';  echo '</form>';
521  ?>  ?>

Legend:
Removed from v.1628  
changed lines
  Added in v.2703