Another critical bug fix.
[cocanwiki.git] / scripts / what_links_here.ml
index 0202ee9..80a7c4f 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: what_links_here.ml,v 1.2 2004/09/28 11:56:52 rich Exp $
+ * $Id: what_links_here.ml,v 1.4 2004/10/10 14:44:50 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
@@ -26,6 +26,7 @@ open Printf
 
 open Cocanwiki
 open Cocanwiki_template
+open Cocanwiki_links
 
 let run r (q : cgi) (dbh : Dbi.connection) hostid _ _ =
   let template = get_template dbh hostid "what_links_here.html" in
@@ -40,18 +41,11 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid _ _ =
   let title = sth#fetch1string () in
   template#set "title" title;
 
-  let sth =
-    dbh#prepare_cached "select l.from_url, p.title from links l, pages p
-                         where l.hostid = ? and l.to_url = ?
-                           and l.hostid = p.hostid and l.from_url = p.url" in
-  sth#execute [`Int hostid; `String page];
-
+  let pages = what_links_here dbh hostid page in
   let table =
-    sth#map
-      (function [`String page; `String title] ->
-        [ "page", Template.VarString page;
-          "title", Template.VarString title ]
-        | _ -> assert false) in
+    List.map (fun (page, title) ->
+               [ "page", Template.VarString page;
+                 "title", Template.VarString title ]) pages in
 
   template#table "pages" table;
   template#conditional "pages_empty" (table = []);
@@ -69,4 +63,4 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid _ _ =
   q#template template
 
 let () =
-  register_script run
+  register_script ~restrict:[CanView] run