Implements FS#45619.

Signed-off-by: Marcel Korpel <[email protected]>
---
 web/lib/pkgfuncs.inc.php         | 7 +++++++
 web/template/pkg_search_form.php | 1 +
 2 files changed, 8 insertions(+)

diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index d760429..da2c3da 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -608,6 +608,13 @@ function pkg_search_page($SID="") {
                        $K = "%" . addcslashes($_GET['K'], '%_') . "%";
                        $q_where .= "AND (PackageBases.Name LIKE " . 
$dbh->quote($K) . ") ";
                }
+               elseif (isset($_GET["SeB"]) && $_GET["SeB"] == "k") {
+                       /* Search by keywords. */
+                       $K = "%" . addcslashes($_GET['K'], '%_') . "%";
+                       $q_where .= "AND EXISTS (SELECT * FROM PackageKeywords 
WHERE ";
+                       $q_where .= "PackageKeywords.PackageBaseID = 
Packages.PackageBaseID ";
+                       $q_where .= "AND PackageKeywords.Keyword LIKE " . 
$dbh->quote($K) . ") ";
+               }
                elseif (isset($_GET["SeB"]) && $_GET["SeB"] == "N") {
                        /* Search by name (exact match). */
                        $q_where .= "AND (Packages.Name = " . 
$dbh->quote($_GET['K']) . ") ";
diff --git a/web/template/pkg_search_form.php b/web/template/pkg_search_form.php
index 404d16e..cce3b6a 100644
--- a/web/template/pkg_search_form.php
+++ b/web/template/pkg_search_form.php
@@ -7,6 +7,7 @@ $searchby = array(
        'b' => __('Package Base'),
        'N' => __('Exact Name'),
        'B' => __('Exact Package Base'),
+       'k' => __('Keywords'),
        'm'  => __('Maintainer'),
        's'  => __('Submitter')
 );
-- 
2.5.2

Reply via email to