Note small bug in cocanwiki_links.
[cocanwiki.git] / scripts / page.ml
index f741e58..3657919 100644 (file)
@@ -1,7 +1,7 @@
 (* COCANWIKI - a wiki written in Objective CAML.
  * Written by Richard W.M. Jones <rich@merjis.com>.
  * Copyright (C) 2004 Merjis Ltd.
- * $Id: page.ml,v 1.30 2004/10/10 16:31:52 rich Exp $
+ * $Id: page.ml,v 1.33 2004/10/17 19:43:19 rich Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,6 +25,7 @@ open Cgi
 open Printf
 
 open ExtString
+open ExtList
 
 open Cocanwiki
 open Cocanwiki_template
@@ -55,12 +56,12 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid
     ({ edit_anon = edit_anon;
        view_anon = view_anon } as host)
     user =
-  let template_page = get_template dbh hostid "page.html" in
-  let template_404  = get_template dbh hostid "page_404.html" in
-
   let page = q#param "page" in
   let page = if page = "" then "index" else page in
 
+  let template_page = get_template ~page dbh hostid "page.html" in
+  let template_404  = get_template dbh hostid "page_404.html" in
+
   (* Host-specific fields. *)
   let sth = dbh#prepare_cached "select css is not null,
                                        feedback_email is not null,
@@ -300,6 +301,7 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid
 
       (* What links here. *)
       let wlh = what_links_here dbh hostid page' in
+      let wlh = List.take max_links wlh in
       let wlh_urls = List.map fst wlh in (* Just the URLs ... *)
 
       let rv =
@@ -339,6 +341,11 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid
       let table = List.map f rv in
       t#table "recently_visited" table;
       t#conditional "has_recently_visited" (rv <> []);
+
+      (* If both lists are empty (ie. an empty navigation box would
+       * appear), then disable navigation altogether.
+       *)
+      if wlh = [] && rv = [] then t#conditional "navigation" false
     );
 
     (* If we are coming from a search engine then we want to highlight