Magellan Linux

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

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

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

Legend:
Removed from v.1610  
changed lines
  Added in v.2711