Added support for restricting the search to only public articles
authorJoey Schulze <joey@infodrom.org>
Wed, 31 Jan 2007 08:45:23 +0000 (08:45 +0000)
committerJoey Schulze <joey@infodrom.org>
Wed, 31 Jan 2007 08:45:23 +0000 (08:45 +0000)
src/Infodrom/logbook/find.wml
src/Infodrom/logbook/search.wml

index e622c2a..a9443ff 100644 (file)
@@ -5,7 +5,10 @@
 <p>Public Logbook</p>
 
 <?
-  $urlbase = sprintf ('find.php?keyword=%s&category=%s', urlencode($_REQUEST[keyword]), urlencode($_REQUEST[catgory]));
+  $urlbase = sprintf ('find.php?keyword=%s&category=%s&public=%s',
+                     urlencode($_REQUEST[keyword]),
+                     urlencode($_REQUEST[catgory]),
+                     $_REQUEST[public]);
   $link_date = sprintf ('<a href="%s&sort=date">Date</a>', $urlbase);
   $link_category = sprintf ('<a href="%s&sort=category">Category</a>', $urlbase);
   $link_title = sprintf ('<a href="%s&sort=title">Title</a>', $urlbase);
   pg_exec ($dbh, "SET DateStyle = 'ISO'") or die("Datenbank-Abfrage!");
 
   $query = "SELECT id,category,teaser,created,public FROM logbook WHERE ";
+  $where = array();
   if (strlen($_REQUEST[keyword])) {
-    $query .= sprintf ("( teaser ~* '%s' OR body ~* '%s') ",
+    $where[] = sprintf ("( teaser ~* '%s' OR body ~* '%s')",
                       addslashes ($_REQUEST[keyword]),
                       addslashes ($_REQUEST[keyword]));
-    if (strlen($_REQUEST[category])) {
-      $query .= "AND ";
-    }
   }
 
   if (strlen($_REQUEST[category])) {
-    $query .= sprintf ("category = '%s' ", addslashes ($_REQUEST[category]));
+    $where[] = sprintf ("category = '%s'", addslashes ($_REQUEST[category]));
+  }
+
+  if (strlen($_REQUEST[public])) {
+    $where[] = "public = 1";
   }
 
+  $query .= implode (" AND ", $where);
+
   if (isset($_REQUEST[sort]) && $_REQUEST[sort] == "title") {
     $query .= "ORDER BY teaser,created";
   } elseif (isset($_REQUEST[sort]) && $_REQUEST[sort] == "category") {
index 7f40486..a92e46d 100644 (file)
@@ -14,7 +14,8 @@
     printf ("<option value=\"%s\"%s>%s\n", $srow['category'],
         $row['category'] == $srow['category']?" selected":ยจ, $srow['category']);
   }
-?></select>
+?></select><br>
+<b>Public:</b> <input name=public type=checkbox value=1>
 
 <p><center><input type=submit value="Search">\
 &nbsp;&nbsp;&nbsp;&nbsp;