Magellan Linux

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

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

revision 2017 by niro, Mon May 9 16:31:38 2011 UTC revision 2705 by niro, Tue Jul 12 15:10:27 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    include('include/common-functions.php');
5    
6   // INCLUDE CURRENT-PROBLEMS  // INCLUDE CURRENT-PROBLEMS
7   include('include/current-problems.php');  include('include/current-problems.php');
8    
9   $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');  $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   $multi= array(    0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0);  $multi= array(    0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1);
11   $data = array();  $data = array();
12    
13    
14   // get alx version info for  // get alx version info for
15   $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id);  $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id);
16   $alxos = $alxinfo[os];  $alxos = $alxinfo[os];
17   $alxutils = $alxinfo[utils];  $alxutils = $alxinfo[utils];
18    
19   if($kill==1)  if($kill==1)
20   {  {
21   foreach($tabs as $t) mysql_query('UPDATE '.$t.' SET serial=-serial WHERE serial='.$id);   foreach($tabs as $t) mysql_query('UPDATE '.$t.' SET serial=-serial WHERE serial='.$id);
22    
23   echo '<body onload="window.setTimeout(\'window.close()\', 1750)">';   echo '<body onload="window.setTimeout(\'window.close()\', 1750)">';
24   echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';   echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';
25    
26   if($id<0) echo 'ACTIVATED #'.abs($id);   if($id<0) echo 'ACTIVATED #'.abs($id);
27   else echo 'DEACTIVATED #'.$id;   else echo 'DEACTIVATED #'.$id;
28    
29   echo '</td></tr></table>';   echo '</td></tr></table>';
30   return true;   return true;
31   }  }
32    
33   // FELD-DEFINITIONEN  (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID)  // FELD-DEFINITIONEN  (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID)
34   $drop = array();  $drop = array();
35   if($alxos >= '0.5.3')  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');   $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  else if($alxos >= '0.5.3')
40   {  {
41   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i810', 'i710', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via');   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i710', 'intel', 'nv', 'mach64', 'mga', 'openchrome', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng');
42   }  }
43   $drop['resolution'] = array('640x480', '800x600', '1024x768', '1280x960', '1280x1024', '1360x768', '1366x768', '1400x1050', '1440x900', '1600x1200', '1680x1050', '1280x720', '1920x1080');  else
44   $drop['depth'] = array('24', '16', '8');  {
45   $drop['mouse'] = array('Auto', 'IMPS/2', 'PS/2');   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i810', 'i710', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via');
46   $drop['keyboard'] = array('PC105');  }
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');   $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   $drop['networking'] = array('dhcp', 'static');  }
59   $drop['port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2', 'lpd', 'socket', 'ipp');  $drop['networking'] = array('dhcp', 'static');
60   $drop['location'] = sqlarr('SELECT location FROM client_locations', '', 'location');  // 0.6.0 does not support lpd, ipp and socket printing atm
61   $drop['id'] = 'hidden';  if($alxos>='0.6.0')
62   $drop['flg_modified'] = '1';  {
63   $drop['serial'] = 'ignore';   $drop['port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2');
64   if($alxos>='0.5.3')   for ($i=0; $i<999; $i++) { $drop['cfg_printers_'.$i.'_ip'] = 'ignore'; }
65   {   $drop['share'] = 'ignore';
66   $drop['monitorid'] = 'ignore';  }
67   $drop['refresh_rate'] = array('','60','75','85','100');  else
68   }  {
69   else   $drop['cfg_printers_port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2', 'lpd', 'socket', 'ipp');
70   {  }
71   $drop['monitorid'] = 'monitorid';  $drop['location'] = sqlarr('SELECT location FROM client_locations', '', 'location');
72   $drop['refresh_rate'] = 'ignore';  $drop['id'] = 'hidden';
73   }  $drop['flg_modified'] = '1';
74   $drop['hostname'] = 'bold';  $drop['serial'] = 'ignore';
75   $drop['session'] = 'bold';  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';   $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     {
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   return $arr;   return $arr;
  }  
   
  foreach($tabs as $k=>$t)  
  {  
  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   function closeabs()   // <AufZuLink> <Bild/> <Heading/> </AufZuLink><BR/> <Absatz>
229    
230     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;
271   openabs($name, $helpfile);  
272   echo '<table class="keytab">';   //replace some drivers on 0.5.3 or higher
273     if($alxos >= '0.5.3')
274   foreach($arr as $k=>$v)   {
275   {   if($v == 'i810')
276   if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;   {
277     echo '<br><font color="#FF0000">Replaced "i810" with "intel" - Please press SAVE!</font><br>';
278   $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];   $v='intel';
279   $k = str_replace('wireless_', '', $k);   }
280   $k2 = $k;   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   //replace some drivers on 0.5.3 or higher   if($v == 'via')
  if($alxos >= '0.5.3')  
287   {   {
288   if($v == 'i810')   echo '<br><font color="#FF0000">Replaced "via" with "openchrome" - Please press SAVE!</font><br>';
289   {   $v='openchrome';
  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';  
  }  
290   }   }
291     }
292   # tell something about vesa  
293   if ($v == 'vesa') echo '<br><font color="#FF0000">Warning: "vesa" graphic module doesn\'t support any resolutions higher than 1024x786x16@60hz!</font><br>';   # 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))   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]);
429   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);  
430   $state = 'Off';  // ANZEIGEN => MULTI TABELLEN
431   if(count($conn)>0)  echo '</td><td valign=top width="300">';
  {  
 // passthru($pingcmd." ".$conn['ip']." &> /dev/null && exit 0 || exit 1",$retval);  
  if($retval==0) $state = 'On';  
  }  
432    
433     foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);
434    
435   echo '<img src="pics/logo2.jpg"><br><br>';   echo '<script language="JavaScript">';
436     echo 'function opencloseall(act) { ';
437    
438   echo '<input class="but" type=submit value="SAVE" style="width:150px"><br><br>';   foreach($absnames as $absname)
439     echo 'openclose("'.$absname.'", act); ';
440    
441   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';   echo '}</script>';
  echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';  
  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>';  
442    
443    // ANZEIGEN => NAVI
444    echo '</td><td valign=top>';
445    
446   if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE';   // STATUS BESTIMMEN (ON/OFF)
447   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>';   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);
448   echo '<input class="but" type=button value="IMPORT FROM..." style="width:150px" onclick="location.href=\'import.php?id='.$id.'\'"><br>';   $state = 'Off';
449   echo '<input class="but" type=reset value="UNDO CHANGES" style="width:150px"><br><br>';   if(count($conn)>0)
450     {
451     if($retval==0) $state = 'On';
452     }
453    
454   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';   echo '<img src="pics/logo2.jpg"><br><br>';
  $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';  
455    
456   echo '<input class="but" type=button '.$disdavor.' value="<" style="width:30px" onclick="location.href=\'show.php?id='.($id-1).'\'">';   echo '<input class="but" type=submit value="SAVE" style="width:150px"><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>';  
457    
458   echo '<br><br>';   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';
459   echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff"><b>';   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';
460   if($id<0) echo '<b>DEACTIVATED!</b><br><br>';   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD SESSION" style="width:150px"><br>';
461   echo '<u>Serial:</u>&nbsp;&nbsp;#'.$id.'<br>';   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MODULE" style="width:150px"><br>';
462   echo '<u>Stand:</u>&nbsp;&nbsp;'.date('H:i:s').'<br>';   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MENUITEM" style="width:150px"><br>';
463   echo '<u>Status:</u> <img src="pics/'.strtolower($state).'line.gif" align=top> '.$state.'line<br>';   if($alxos >= '0.6.0')
464   if($state=='On')   {
465     echo '<input class="but" type=submit name="do_add" value="INSTALL PLUGIN" style="width:150px"><br>';
466     }
467     echo '<br>';
468    
469     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     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   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']);
494   $pubkey = mysql_query('select public_key from ssh_auth_clients where serial='.$id.'');   }
495   while ($row = mysql_fetch_row ($pubkey)) {   else
496   # schreiben der .ssh/known_hosts file mit dem public rsa key des client,   {
497   # 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']);
498   $hostfile = fopen ($home."/.ssh/known_hosts","w");   }
499   fwrite($hostfile,$conn['ip']." ".$row[0],strlen($row[0])+strlen($conn['ip'])+1);   $osver = explode(':',$osver[1]);
500   fclose($hostfile);   if($osver[0] == '') $osver[0]='unkown';
501     if($osver[1] == '') $osver[1]='unkown';
502    
503   $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
504   $osver = explode(':',$osver);   if($alxos == '' && $osver[0] >= '0.5.3')
505   }   {
506   if($osver[0] == '') $osver[0]='unkown';   mysql_query('insert into client_version(serial,os,utils) values("'.$id.'","'.$osver[0].'","'.$osver[1].'")
507   if($osver[1] == '') $osver[1]='unkown';   on duplicate key update os="'.$osver[0].'", utils="'.$osver[1].'"');
508     # reload the site
509   # update os string in database   echo '<script type="text/javascript">setTimeout(\'window.location.reload()\',0);</script>';
510   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>';  
  }  
511    
512   echo '<u>OS:</u> '.$osver[0].'<br>';   echo '<u>OS:</u> '.$osver[0].'<br>';
513   echo '<u>Utils:</u> '.$osver[1].'<br>';   echo '<u>Utils:</u> '.$osver[1].'<br>';
514    
515   if($osver[0] <> 'unkown')   if($osver[0] <> 'unkown')
516   {   {
517   //write them to database   //write them to database
  }  
518   }   }
519     }
520    
521     echo '</b></div>';
522    
523   echo '</b></div>';   if($state=='On')
524   //echo '<br><br>';   {
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($state=='On')   if($alxos >= '0.6.0')
530   {   {
531   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>';
532   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>';
533   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\');">';
534                   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\');">';
535                  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\');">';
536   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 '<input class="but" type=button value="SSH" style="width:150px" onclick="window.open(\'mindterm.php?ip='.$conn['ip'].'\', \'MindTerm\', \'width=200,height=100\')"><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>';  
537   }   }
  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>';  
538    
539   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>';
540     echo 'Remote Shadow:</b></div>';
541     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>';
542     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>';
543     echo '<br>';
544     echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';
545     echo 'Client Update:</b></div>';
546     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>';
547     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>';
548     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>';
549     }
550     else
551     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>';
552    
553     echo '<br><center><a href="share/ChangeLog.html" target="_blank">[ChangeLog]</a> <a href="share/FAQ.html" target="_blank">[FAQs]</a></center>';
554    
555   echo '</td></tr></table>';  echo '</td></tr></table>';
556   echo '</form>';  echo '</form>';
557  ?>  ?>

Legend:
Removed from v.2017  
changed lines
  Added in v.2705