aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Gallo <tonicucoz@gmail.com>2011-01-31 18:36:25 +0000
committerAntonio Gallo <tonicucoz@gmail.com>2011-01-31 18:36:25 +0000
commit3b289dfbfd66fe63b1b596d9c451c848d1302840 (patch)
tree1e88b600468426b67bdfa5ec683246051f418388
parent3a60b2a5bf93cdff491a0840606f3cf2c4cff151 (diff)
improved search page
-rw-r--r--h-source/Application/Controllers/SearchController.php39
-rw-r--r--h-source/Application/Include/hardware.php12
-rw-r--r--h-source/Application/Include/languages.php4
-rw-r--r--h-source/Application/Views/Search/form.php4
-rw-r--r--h-source/Application/Views/Search/lspci_results.php68
-rw-r--r--h-source/Application/Views/Search/results.php2
6 files changed, 110 insertions, 19 deletions
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('<br />',$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'] = "<div class='alert'>".gtext('the text submitted by you does not seem the lspci -vmmnn output. Please check the text and try again')."</div>\n";
+ }
}
else
{
$data['notice'] = "<div class='alert'>the lspci output is too long</div>\n";
}
+
+ $data['flag'] = $flag;
+
+ $data['table'] = array();
if ($flag)
{
- echo "<pre>";
- print_r($lspciResult);
- echo "</pre>";
+ $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 @@
<div id="left">
<div class="position_tree_box">
- <a href="<?php echo $this->baseUrl."/home/index/$lang";?>">Home</a> &raquo; search form
+ <a href="<?php echo $this->baseUrl."/home/index/$lang";?>">Home</a> &raquo; <?php echo gtext('Search form');?>
</div>
<div class="notebook_view_title">
@@ -100,7 +100,7 @@
<table>
<tr>
<td valign="top"><?php echo gtext("paste the output of the lspci command");?>:<div class="lspci_notice">lspci -vmmnn</div></td>
- <td><?php echo Html_Form::textarea('lspci','insert the output of lspci -vmmnn','textarea_entry_search');?></td>
+ <td><?php echo Html_Form::textarea('lspci',gtext('write here the output of lspci -vmmnn'),'textarea_entry_search');?></td>
</tr>
<tr>
<td><input type="submit" name="search_pci" value="search"></td>
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 @@
+<?php if (!defined('EG')) die('Direct access not allowed!'); ?>
+
+<?php
+// h-source, a web software to build a community of people that want to share their hardware information.
+// Copyright (C) 2010 Antonio Gallo (h-source-copyright.txt)
+//
+// This file is part of h-source
+//
+// h-source is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// h-source is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with h-source. If not, see <http://www.gnu.org/licenses/>.
+?>
+
+ <div id="left">
+
+ <div class="position_tree_box">
+ <a href="<?php echo $this->baseUrl."/home/index/$lang";?>">Home</a> &raquo; <a href="<?php echo $this->baseUrl."/search/form/$lang";?>"><?php echo gtext('Search form');?></a> &raquo; <?php echo gtext('Results of the search');?>
+ </div>
+
+ <div class="notebook_view_title">
+ <?php echo gtext("Results of the search");?>:
+ </div>
+
+ <div class="search_form">
+
+ <?php if (!$flag) { ?>
+ <?php echo $notice;?>
+ <div>
+ <a href="<?php echo $this->baseUrl."/search/form/$lang";?>">back</a>
+ </div>
+ <?php } ?>
+
+ <?php foreach ($table as $row) { ?>
+ <div class="lspci_item_found">
+ <div class="lspci_item_found_model">
+ <?php echo $row['hardware']['model'];?>
+ </div>
+ <div class="lspci_item_found_compat">
+ <?php
+ switch ($row['hardware']['type'])
+ {
+ case 'wifi':
+ echo gtext("does it work with free software?"). " <b>".$row['hardware']['wifi_works']."</b>";
+ break;
+ case 'videocard':
+ echo gtext("does it work with free software?"). " <b>".gtext(Videocard::$videoReverse[$row['hardware']['video_card_works']])."</b>";
+ break;
+ case 'soundcard':
+ echo gtext("does it work with free software?"). " <b>".$row['hardware']['sound_card_works']."</b>";
+ break;
+ }
+ ?>
+ </div>
+ </div>
+ <?php } ?>
+
+ </div>
+
+ </div>
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 @@
<div id="left">
<div class="position_tree_box">
- <a href="<?php echo $this->baseUrl."/home/index/$lang";?>">Home</a> &raquo; <a href="<?php echo $this->baseUrl."/search/form/$lang";?>">search form</a> &raquo; results
+ <a href="<?php echo $this->baseUrl."/home/index/$lang";?>">Home</a> &raquo; <a href="<?php echo $this->baseUrl."/search/form/$lang";?>"><?php echo gtext('Search form');?></a> &raquo; <?php echo gtext('Results of the search');?>
</div>
<div class="notebook_view_title">