+(* 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.1 2004/09/28 11:51:38 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *)
+
+open Apache
+open Registry
+open Cgi
+open Printf
+
+open Cocanwiki
+open Cocanwiki_template
+
+let run r (q : cgi) (dbh : Dbi.connection) hostid _ _ =
+ let template = get_template dbh hostid "what_links_here.html" in
+
+ let page = q#param "page" in
+ template#set "page" page;
+
+ let sth = dbh#prepare_cached "select title from pages
+ where hostid = ? and url = ?" in
+ sth#execute [`Int hostid; `String page];
+
+ 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 table =
+ sth#map
+ (function [`String page; `String title] ->
+ [ "page", Template.VarString page;
+ "title", Template.VarString title ]
+ | _ -> assert false) in
+
+ template#table "pages" table;
+
+ q#template template
+
+let () =
+ register_script run