From 3b289dfbfd66fe63b1b596d9c451c848d1302840 Mon Sep 17 00:00:00 2001 From: Antonio Gallo Date: Mon, 31 Jan 2011 18:36:25 +0000 Subject: improved search page --- .../Application/Controllers/SearchController.php | 39 ++++++++----- h-source/Application/Include/hardware.php | 12 +++- h-source/Application/Include/languages.php | 4 ++ h-source/Application/Views/Search/form.php | 4 +- .../Application/Views/Search/lspci_results.php | 68 ++++++++++++++++++++++ h-source/Application/Views/Search/results.php | 2 +- 6 files changed, 110 insertions(+), 19 deletions(-) create mode 100644 h-source/Application/Views/Search/lspci_results.php diff --git a/h-source/Application/Controllers/SearchController.php b/h-source/Application/Controllers/SearchController.php index b35ee45..21b3a2e 100644 --- a/h-source/Application/Controllers/SearchController.php +++ b/h-source/Application/Controllers/SearchController.php @@ -110,13 +110,13 @@ class SearchController extends BaseController $data['notice'] = null; $lspci = $this->request->post('lspci','','sanitizeHtml'); + $lspciResult = array(); + $flag = false; + if (strlen($lspci)<10000) { - $flag = false; - $lspci = nl2br($lspci); $lspciArray = explode('
',$lspci); - $lspciResult = array(); reset($lspciArray); while(current($lspciArray) !== false) { @@ -208,25 +208,38 @@ class SearchController extends BaseController } next($lspciArray); } + if (count($lspciResult) === 0) + { + $data['notice'] = "
".gtext('the text submitted by you does not seem the lspci -vmmnn output. Please check the text and try again')."
\n"; + } } else { $data['notice'] = "
the lspci output is too long
\n"; } + + $data['flag'] = $flag; + + $data['table'] = array(); if ($flag) { - echo "
";
-				print_r($lspciResult);
-				echo "
"; + $lspciFiltered = array(); + $vendorIDProductIDArray = array(); + foreach ($lspciResult as $device) + { + if (array_key_exists($device['classId'],Hardware::$deviceClasses)) + { + $vendorIDProductIDArray[] = sanitizePciid($device['vendorId'].":".$device['deviceId']); + $lspciFiltered[] = $device; + } + } + $whereString = "'".implode("','",$vendorIDProductIDArray)."'"; + $data['table'] = $this->m['HardwareModel']->select()->where(array('pci_id'=>"in($whereString)"))->send(); } -// $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(); + $this->append($data); + $this->cleverLoad('lspci_results'); + $this->right(); } } } \ No newline at end of file diff --git a/h-source/Application/Include/hardware.php b/h-source/Application/Include/hardware.php index 3f19ebc..11d12df 100644 --- a/h-source/Application/Include/hardware.php +++ b/h-source/Application/Include/hardware.php @@ -26,11 +26,17 @@ class Hardware public static $controllers = array('notebooks','wifi','videocards','printers','scanners','threegcards','soundcards'); //used by UsersController::login() + public static $deviceClasses = array( + '0403' => 'soundcards', + '0280' => 'wifi', + '0300' => 'videocards', + ); + public static $commYear = 'not-specified,2010,2009,2008,2007,2006,2005,2004,2003,2002,2001,2000,1999,1998,1997,1996,1995,1994,1993,1992'; } -class Printer extends hardware +class Printer extends Hardware { public static $vendors = array( "brother" => "brother", @@ -69,7 +75,7 @@ class Printer extends hardware } -class Wifi extends hardware +class Wifi extends Hardware { public static $vendors = array( "A-LINK" => "A-LINK", @@ -126,7 +132,7 @@ class Wifi extends hardware } } -class Videocard extends hardware +class Videocard extends Hardware { public static $vendors = array( "ATI" => "ATI", diff --git a/h-source/Application/Include/languages.php b/h-source/Application/Include/languages.php index 602e13d..831cdd4 100644 --- a/h-source/Application/Include/languages.php +++ b/h-source/Application/Include/languages.php @@ -147,6 +147,10 @@ class Lang "search by" => "cerca per", "analyze the output of the lspci command" => "analizza l'output del comando lscpi", "paste the output of the lspci command" => "incolla l'output del comand lspci", + "works, but without 3D acceleration" => "funziona, ma senza accelerazione 3D", + "the text submitted by you does not seem the lspci -vmmnn output. Please check the text and try again" => "il testo che hai inviato non sembra l'output del comando lspci -vmmnn. Per favore ricontrolla il testo e riprova", + "Search form" => "Form della ricerca", + "write here the output of lspci -vmmnn" => "scrivi qui l'output del comando lspci -vmmnn", ), 'es' => array ( diff --git a/h-source/Application/Views/Search/form.php b/h-source/Application/Views/Search/form.php index cd5b00a..58b33dd 100644 --- a/h-source/Application/Views/Search/form.php +++ b/h-source/Application/Views/Search/form.php @@ -45,7 +45,7 @@
- ">Home » search form + ">Home »
@@ -100,7 +100,7 @@ - + diff --git a/h-source/Application/Views/Search/lspci_results.php b/h-source/Application/Views/Search/lspci_results.php new file mode 100644 index 0000000..b460021 --- /dev/null +++ b/h-source/Application/Views/Search/lspci_results.php @@ -0,0 +1,68 @@ + + +. +?> + +
+ +
+ ">Home » "> » +
+ +
+ : +
+ +
+ + + +
+ ">back +
+ + + +
+
+ +
+
+ ".$row['hardware']['wifi_works'].""; + break; + case 'videocard': + echo gtext("does it work with free software?"). " ".gtext(Videocard::$videoReverse[$row['hardware']['video_card_works']]).""; + break; + case 'soundcard': + echo gtext("does it work with free software?"). " ".$row['hardware']['sound_card_works'].""; + break; + } + ?> +
+
+ + +
+ +
diff --git a/h-source/Application/Views/Search/results.php b/h-source/Application/Views/Search/results.php index 1b6a27d..dfe0ab9 100644 --- a/h-source/Application/Views/Search/results.php +++ b/h-source/Application/Views/Search/results.php @@ -23,7 +23,7 @@
- ">Home » ">search form » results + ">Home » "> »
-- cgit v1.2.3
:
lspci -vmmnn