. if (!defined('EG')) die('Direct access not allowed!'); class SearchController extends BaseController { public function __construct($model, $controller, $queryString) { $this->_topMenuClasses['search'] = " class='currentitem'"; parent::__construct($model, $controller, $queryString); $this->model('HardwareModel'); $data['title'] = 'search - '.Website::$generalName; $this->append($data); } public function form($lang = 'en') { $this->cleverLoad('form'); $this->right(); } public function results($lang = 'en') { Params::$nullQueryValue = 'undef'; $argKeys = array( 'page:forceNat' => 1, 'action:sanitizeAlphanum' => 'search', 'type:sanitizeString' => 'notebook', 'model:sanitizeString' => 'undef', ); $this->setArgKeys($argKeys); $this->shift(1); if (strcmp($this->viewArgs['action'],'search') === 0) { Params::$whereClauseSymbolArray = array('like'); $whereClause = array( 'type' => $this->viewArgs['type'], 'model' => "like '%".$this->viewArgs['model']."%'", '-deleted' => "no", ); $recordNumber = $this->m['HardwareModel']->clear()->where($whereClause)->orderBy("id_hard desc")->rowNumber(); $data['recordNumber'] = $recordNumber; //load the Pages helper $this->helper('Pages',$this->controller.'/results/'.$this->lang,'page'); $page = $this->viewArgs['page']; //set the limit clause $limit = $this->h['Pages']->getLimit($page,$recordNumber,10); $data['table'] = $this->m['HardwareModel']->clear()->select('id_hard,model,type,comm_year')->where($whereClause)->limit($limit)->orderBy("id_hard desc")->send(); // echo $this->m['HardwareModel']->getQuery(); $data['pageList'] = $this->h['Pages']->render($page-3,7); $this->append($data); $this->cleverLoad('results'); $this->right(); } } public function pciid($lang = 'en') { if (isset($_POST['pciid'])) { $clean['pciid'] = $this->request->post('pciid','','sanitizePciid'); $data['table'] = $this->m['HardwareModel']->clear()->select()->where(array('pci_id'=>$clean['pciid']))->send(); $data['recordNumber'] = 0; $this->append($data); $this->cleverLoad('results'); $this->right(); } } public function lspci($lang = 'en') { if (isset($_POST['lspci'])) { $data['notice'] = null; $lspci = $this->request->post('lspci','','sanitizeHtml'); if (strlen($lspci)<10000) { $flag = false; $lspci = nl2br($lspci); $lspciArray = explode('
',$lspci); $lspciResult = array(); reset($lspciArray); while(current($lspciArray) !== false) { $item = current($lspciArray); if (stristr($item,'Slot')) { $temp = array(); // class if (next($lspciArray) !== false) { $item = trim(current($lspciArray)); if( !preg_match( '/^[a-zA-Z0-9\-\_\.\:\+\s\(\)\/\[\]]+$/i', $item ) ) { $flag = false; break; } if( preg_match( '/Class\:(.*)\[(.*)\]/i', $item, $matches ) ) { $temp['className'] = $matches[1]; $temp['classId'] = $matches[2]; } else { $temp['className'] = "unknown"; $temp['classId'] = "unknown"; } } else { $flag = false; break; } // vendor if (next($lspciArray) !== false) { $item = trim(current($lspciArray)); if( !preg_match( '/^[a-zA-Z0-9\-\_\.\:\+\s\(\)\/\[\]]+$/i', $item ) ) { $flag = false; break; } if( preg_match( '/Vendor\:(.*)\[(.*)\]/i', $item, $matches ) ) { $temp['vendorName'] = $matches[1]; $temp['vendorId'] = $matches[2]; } else { $temp['vendorName'] = "unknown"; $temp['vendorId'] = "unknown"; } } else { $flag = false; break; } // device if (next($lspciArray) !== false) { $item = trim(current($lspciArray)); if( !preg_match( '/^[a-zA-Z0-9\-\_\.\:\+\s\(\)\/\[\]]+$/i', $item ) ) { $flag = false; break; } if( preg_match( '/Device\:(.*)\[(.*)\]/i', $item, $matches ) ) { $temp['deviceName'] = $matches[1]; $temp['deviceId'] = $matches[2]; } else { $temp['deviceName'] = "unknown"; $temp['deviceId'] = "unknown"; } } else { $flag = false; break; } $lspciResult[] = $temp; $flag = true; } next($lspciArray); } } else { $data['notice'] = "
the lspci output is too long
\n"; } if ($flag) { echo "
";
				print_r($lspciResult);
				echo "
"; } // $clean['pciid'] = $this->request->post('lspci','','sanitizePciid'); // $data['table'] = $this->m['HardwareModel']->clear()->select()->where(array('pci_id'=>$clean['pciid']))->send(); // $data['recordNumber'] = 0; // // $this->append($data); // $this->cleverLoad('results'); // $this->right(); } } }