Improved search form
authorJoey Schulze <joey@infodrom.org>
Sat, 29 Sep 2007 11:12:38 +0000 (11:12 +0000)
committerJoey Schulze <joey@infodrom.org>
Sat, 29 Sep 2007 11:12:38 +0000 (11:12 +0000)
src/search.html.de.wml
src/search.html.en.wml
src/search.php3

index 512ac75..06393c6 100644 (file)
@@ -1,31 +1,46 @@
 #include <infodrom.style>
-#include <quote.style>
 
 <page title="Infodrom Oldenburg - Mail-Archive" menubgcolor=<bgcolor>>
 
 <p><flaglink url=search.html.en.html lang=en>
 <h1 align=center><font face="Helvetica,Arial">Infodrom Oldenburg</font></h1><line height=2 width=90% color=<menu-fgcolor> align=center><br>
 
-<center>
-<table width=85% bgcolor=#ffffff><tr><td><font face="Helvetica,Arial">
+#include "search.inc"
 
-<p>In unserer Site mit Google suchen.
+<script type="text/javascript" src="http://www.infodrom.org/completion.js"></script>
+<script type="text/javascript">
+function urlfunc_complete()
+{
+    return "search.php?js=1&lang=de&";
+}
 
-<p><center><a href="http://www.google.de/">\
-<img width=300 height=105 src="http://www.google.de/images/de_home_title.gif" border=0 alt="Google">\
-</a></center>
+function urlfunc_lookup()
+{
+    return "search.php?lang=de&";
+}
 
-<center>
-<form method=post action=search.php>
+completion_func_complete = urlfunc_complete;
+completion_func_lookup = urlfunc_lookup;
+</script>
 
-<input type=hidden name=site value=www.google.de>
-<input name=keyword size=40 maxlength=100>
+<div class=outer>
+<div class=inner>
+<p>In unseren Webservern mit Google suchen.</p>
 
-<br><input type=submit value="Search!">
-</form>
-</center>
+<center><a href="http://www.google.de/">\
+<img width=300 height=105 src="http://www.google.de/images/de_home_title.gif" border=0 alt="Google">\
+</a></center>
 
-</font></td></tr></table></center><p>
+<form method="post" action="search.php" onsubmit="return completion_check();">
+<input type=hidden class=none name=site value=www.google.de>
+<input name=keyword size=40 maxlength=100 onkeyup="complete();">
+<div class="suggest" id="suggest">&nbsp;</div>
+<div align="center" style="margin-bottom: -30px;">
+<input type="submit" class=button value="Suchen">
+</div>
+</form>
+</div>
+</div>
 
 <frontad>
 
index 559c59f..f2057de 100644 (file)
@@ -1,31 +1,46 @@
 #include <infodrom.style>
-#include <quote.style>
 
 <page title="Infodrom Oldenburg - Mail-Archive" menubgcolor=<bgcolor>>
 
 <p><flaglink url=search.html.de.html lang=de>
 <h1 align=center><font face="Helvetica,Arial">Infodrom Oldenburg</font></h1><line height=2 width=90% color=<menu-fgcolor> align=center><br>
 
-<center>
-<table width=85% bgcolor=#ffffff><tr><td><font face="Helvetica,Arial">
+#include "search.inc"
 
-<p>Search our site through Google.
+<script type="text/javascript" src="http://www.infodrom.org/completion.js"></script>
+<script type="text/javascript">
+function urlfunc_complete()
+{
+    return "search.php?js=1&lang=en&";
+}
 
-<p><center><a href="http://www.google.com/">\
-<img width=276 height=110 src="http://www.google.com/images/logo.gif" border=0 alt="Google">\
-</a></center>
+function urlfunc_lookup()
+{
+    return "search.php?lang=en&";
+}
 
-<center>
-<form method=post action=search.php>
+completion_func_complete = urlfunc_complete;
+completion_func_lookup = urlfunc_lookup;
+</script>
 
-<input type=hidden name=site value=www.google.com>
-<input name=keyword size=40 maxlength=100>
+<div class=outer>
+<div class=inner>
+<p>Search our site through Google.</p>
 
-<br><input type=submit value="Search!">
-</form>
-</center>
+<center><a href="http://www.google.com/">\
+<img width=276 height=110 src="http://www.google.com/images/logo.gif" border=0 alt="Google">\
+</a></center>
 
-<font></td></tr></table></center><p>
+<form method="post" action="search.php" onsubmit="return completion_check();">
+<input type=hidden class=none name=site value=www.google.com>
+<input name=keyword size=40 maxlength=100 onkeyup="complete();">
+<div class="suggest" id="suggest">&nbsp;</div>
+<div align="center" style="margin-bottom: -30px;">
+<input type="submit" class=button value="Search">
+</div>
+</form>
+</div>
+</div>
 
 <frontad>
 
index 5edd53c..22786e2 100644 (file)
@@ -1,13 +1,63 @@
 <?
-  if (isset($_POST["keyword"]) && isset($_POST["site"])) {
-    $url = "http://" . $_POST["site"] . "/search?as_q=" . ereg_replace (" ", "+", $_POST["keyword"])
+  if (isset ($_GET["js"]) && $_GET["js"] == 1) {
+    if (!isset ($_GET["keyword"]) || !strlen($_GET["keyword"]) ||
+       !isset ($_GET["lang"]) || !strlen($_GET["lang"]) ||
+       ($_GET["lang"] != 'de' && $_GET["lang"] != 'en'))
+      exit();
+    $dbh = pg_pconnect ("", "", "web");
+    if ($dbh) {
+      $query = sprintf ("SELECT keyword FROM search_compiled "
+                      ."WHERE keyword LIKE '%s%%' AND language = '%s' "
+                      ."ORDER BY scores DESC,keyword LIMIT 10",
+                        pg_escape_string($_GET["keyword"]), $_GET["lang"]);
+      $sth = pg_exec ($dbh, $query);
+      $result = array ();
+      $count = 0;
+      for ($nr=0; $nr < pg_NumRows ($sth) && $count < 85; $nr++) {
+        $row = pg_fetch_array ($sth, $nr);
+       if ($result)
+         $count += 2;
+        $result[] = $row["keyword"];
+       $count += strlen($row["keyword"]);
+      }
+      if ($count > 85)
+        unset ($result[count($result)-1]);
+      echo json_encode ($result) . "\n";
+      exit();
+    } else {
+      exit();
+    }
+  }
+
+
+  if ($_REQUEST[keyword] && ($_REQUEST[site] || $_GET[lang])) {
+    $dbh = pg_pconnect ("", "", "web");
+    if ($dbh) {
+      if ($_REQUEST[site] == "www.google.de" || $_GET[lang] == "de") {
+        $lang = "de";
+        $site = "www.google.de";
+      } else {
+        $lang = "en";
+        $site = "www.google.com";
+      }
+
+      $query = sprintf ("INSERT INTO search_keywords VALUES ('%s','%s','%s','%s')",
+                       pg_escape_string($_REQUEST[keyword]),
+                       $lang,
+                       date ("Y-m-d H:i"),
+                       $_SERVER[REMOTE_ADDR]);
+      pg_exec ($dbh, $query);
+    }
+
+    $url = "http://" . $site . "/search?as_q=" . ereg_replace (" ", "+", $_REQUEST[keyword])
           . "&as_sitesearch=infodrom.org";
 
     header ("Location: $url");
-    mail ("joey@luonnotar.infodrom.org", "http://lists.infodrom.org/search.html",
-"Site    : $_POST["site"]
-Keywords: $_POST["keyword"]
-Host    : " . ($REMOTE_HOST?$REMOTE_HOST:$REMOTE_ADDR) . "
+    mail ("joey@luonnotar.infodrom.org", "New Search Request",
+"Site    : $site
+Keywords: $_REQUEST[keyword]
+Host    : " . $_SERVER[REMOTE_ADDR] . "
+SCRIPT  : " . $_SERVER[SCRIPT_URI] . "
 URL     : " . $url . "\n", "From: Infodrom Webserver <www-data@luonnotar.infodrom.org>");
   } else {
     header ("Location: search.html");