query($sql); $sql = 'ALTER TABLE "Devices" ADD "dev_Network_Node_port" INTEGER'; $result = $db->query($sql); ?>

'.$name.' / '.$type; if ($port != "") { echo ' ('.$port.')'; } echo ''; } function createTabContent($mac, $name, $type, $port, $activetab) { global $pia_lang; echo '

'.$name.' (ID: '.str_replace(":", "_", $mac).')


'; echo '
'; // Prepare Array for Devices with Port value // If no Port is set, the Port number is set to 1 if ($port == "") {$port = 1;} // Create Array with specific length $network_device_portname = array(); $network_device_portmac = array(); $network_device_portip = array(); $network_device_portstate = array(); // make sql query for Network Hardware ID global $db; $func_sql = 'SELECT * FROM "Devices" WHERE "dev_Network_Node_MAC" = "'.$mac.'"'; $func_result = $db->query($func_sql); while($func_res = $func_result->fetchArray(SQLITE3_ASSOC)) { // Online / Offline state of port if ($func_res['dev_PresentLastScan'] == 1) { $port_state = '
Online
'; } else { $port_state = '
Offline
'; } // Prepare Table with Port > push values in array if ($port > 1) { if (stristr($func_res['dev_Network_Node_port'], ',') == '') { if ($network_device_portname[$func_res['dev_Network_Node_port']] != '') { $network_device_portname[$func_res['dev_Network_Node_port']] = $network_device_portname[$func_res['dev_Network_Node_port']].','.$func_res['dev_Name']; } else { $network_device_portname[$func_res['dev_Network_Node_port']] = $func_res['dev_Name']; } if ($network_device_portmac[$func_res['dev_Network_Node_port']] != '') { $network_device_portmac[$func_res['dev_Network_Node_port']] = $network_device_portmac[$func_res['dev_Network_Node_port']].','.$func_res['dev_MAC']; } else { $network_device_portmac[$func_res['dev_Network_Node_port']] = $func_res['dev_MAC']; } if ($network_device_portip[$func_res['dev_Network_Node_port']] != '') { $network_device_portip[$func_res['dev_Network_Node_port']] = $network_device_portip[$func_res['dev_Network_Node_port']].','.$func_res['dev_LastIP']; } else { $network_device_portip[$func_res['dev_Network_Node_port']] = $func_res['dev_LastIP']; } if (isset($network_device_portstate[$func_res['dev_Network_Node_port']])) { $network_device_portstate[$func_res['dev_Network_Node_port']] = $network_device_portstate[$func_res['dev_Network_Node_port']].','.$func_res['dev_PresentLastScan']; } else { $network_device_portstate[$func_res['dev_Network_Node_port']] = $func_res['dev_PresentLastScan']; } } else { $multiport = array(); $multiport = explode(',',$func_res['dev_Network_Node_port']); foreach($multiport as $row) { $network_device_portname[trim($row)] = $func_res['dev_Name']; $network_device_portmac[trim($row)] = $func_res['dev_MAC']; $network_device_portip[trim($row)] = $func_res['dev_LastIP']; $network_device_portstate[trim($row)] = $func_res['dev_PresentLastScan']; } unset($multiport); } } else { // Table without Port > echo values // Specific icon for devicetype if ($type == "WLAN") {$dev_port_icon = 'fa-wifi';} if ($type == "Powerline") {$dev_port_icon = 'fa-flash';} echo ''; } } // Create table with Port if ($port > 1) { for ($x=1; $x<=$port; $x++) { // Prepare online/offline badge for later functions $online_badge = '
Online
'; $offline_badge = '
Offline
'; // Set online/offline badge echo ''; echo ''; // Set online/offline badge // Check if multiple badges necessary if (stristr($network_device_portstate[$x],',') == '') { // Set single online/offline badge if ($network_device_portstate[$x] == 1) {$port_state = $online_badge;} else {$port_state = $offline_badge;} echo ''; } else { // Set multiple online/offline badges $multistate = array(); $multistate = explode(',',$network_device_portstate[$x]); echo ''; unset($multistate); } // Check if multiple Hostnames are set // print single hostname if (stristr($network_device_portmac[$x],',') == '') { echo ''; } else { // print multiple hostnames with separate links $multimac = array(); $multimac = explode(',',$network_device_portmac[$x]); $multiname = array(); $multiname = explode(',',$network_device_portname[$x]); echo ''; unset($multiname, $multimac); } // Check if multiple IP are set // print single IP if (stristr($network_device_portip[$x],',') == '') { echo ''; } else { // print multiple IPs $multiip = array(); $multiip = explode(',',$network_device_portip[$x]); echo ''; unset($multiip); } echo ''; } } echo '
Port '.$pia_lang['Network_Table_State'].' '.$pia_lang['Network_Table_Hostname'].' '.$pia_lang['Network_Table_IP'].'
'.$port_state.''.$func_res['dev_Name'].''.$func_res['dev_LastIP'].'
'.$x.''.$port_state.''; foreach($multistate as $key => $value) { if ($value == 1) {$port_state = $online_badge;} else {$port_state = $offline_badge;} echo $port_state.'
'; } echo '
'.$network_device_portname[$x].''; foreach($multiname as $key => $value) { echo ''.$value.'
'; } echo '
'.$network_device_portip[$x].''; foreach($multiip as $key => $value) { echo $value.'
'; } echo '
'; echo '
'; } // Create Tabs $sql = 'select dev_MAC, dev_Name, dev_DeviceType, dev_Network_Node_port from Devices where dev_DeviceType in ("AP", "Gateway", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter")'; $result = $db->query($sql); // array $tableData = array(); while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { // Push row data $tableData[] = array('dev_MAC' => $row['dev_MAC'], 'dev_Name' => $row['dev_Name'], 'dev_DeviceType' => $row['dev_DeviceType'], 'dev_Network_Node_port' => $row['dev_Network_Node_port'] ); } // Control no rows if (empty($tableData)) { $tableData = []; } ?>