Add a paging facility
authorJoey Schulze <joey@infodrom.org>
Thu, 17 May 2007 17:29:32 +0000 (17:29 +0000)
committerJoey Schulze <joey@infodrom.org>
Thu, 17 May 2007 17:29:32 +0000 (17:29 +0000)
src/Infodrom/logbook/find.wml

index f37342b..7c940ed 100644 (file)
@@ -5,13 +5,32 @@
 <p>Public Logbook</p>
 
 <?
-  $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);
+  $parms = array ("keyword","category","public","teaser");
+  $urlbase = "";
+
+  foreach ($parms as $arg) {
+    if (isset($_REQUEST[$arg])) {
+      if (strlen($urlbase) == 0)
+        $urlbase = "find.php";
+      else
+       $urlbase .= "&";
+      $urlbase .= $_REQUEST[$arg];
+    }
+  }
+
+  if (strlen($urlbase) == 0) {
+    echo "<p><b>No search restriction provided.</b></p>";
+    exit;
+  }
+
+  if (isset($_REQUEST["offset"]))
+    $linkbase = sprintf ("%s&offset=%d", $urlbase, $_REQUEST["offset"]);
+  else
+    $linkbase = $urlbase;
+
+  $link_date = sprintf ('<a href="%s&sort=date">Date</a>', $linkbase);
+  $link_category = sprintf ('<a href="%s&sort=category">Category</a>', $linkbase);
+  $link_title = sprintf ('<a href="%s&sort=title">Title</a>', $linkbase);
 ?>
 
 <table width=100% class=font border=0 cellspacing=3 bgcolor="#<cold>">\
@@ -22,6 +41,7 @@
 </tr>
 
 <?
+  $limit = 50;
   $dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
               or die("Unable to connect to SQL server");
 
@@ -57,6 +77,9 @@
   } else {
     $query .= "ORDER BY created";
   }
+  $query .= " LIMIT $limit";
+  if (isset ($_GET["offset"]))
+    $query .= sprintf (" OFFSET %d\n", $_GET["offset"]);
 
   $sth = pg_exec ($dbh, $query) or die("Datenbank-Abfrage!");
 
             $date, $row['category'], $row['id'], $row['teaser'], $row['id']);
     }
   }
-?>
 
-</table>
+  echo ("</table>\n");
+
+  if ($nr >= pg_NumRows ($sth)) {
+    if (isset($_REQUEST["sort"]))
+      $url = sprintf ("%s&sort=%s&offset=%d", $urlbase, $_REQUEST["sort"], $_GET["offset"]+$limit);
+
+    printf ("<p><a href=\"%s\">next</a></p>\n", $url);
+  }
+
+?>
 
 </page>