Scripts updated to use new PG interface.
[cocanwiki.git] / scripts / sitemap.ml
index 182a061..1aa8f24 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: sitemap.ml,v 1.8 2006/03/27 18:09:46 rich Exp $
+ * $Id: sitemap.ml,v 1.9 2006/03/28 16:24:08 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
@@ -33,24 +33,21 @@ let run r (q : cgi) dbh hostid { hostname = hostname } _ =
   let template = get_template dbh hostid "sitemap.html" in
 
   (* Pull out all the current pages, and a bit of content from each. *)
-  let sth = dbh#prepare_cached "select p.url, p.url = 'index',
-                                       p.title, p.description,
-                                       p.last_modified_date,
-                                       (select content from contents
-                                         where pageid = p.id
-                                         order by ordering limit 1) as content
-                                  from pages p
-                                 where p.hostid = ? and p.url is not null
-                                   and p.redirect is null
-                                 order by 2 desc, 3, 1" in
-  sth#execute [Some hostid];
+  let rows = PGSQL(dbh)
+    "select p.url, p.url = 'index', p.title, p.description,
+            p.last_modified_date, (select content from contents
+                                    where pageid = p.id
+                                    order by ordering limit 1) as content
+       from pages p
+      where p.hostid = $hostid and p.url is not null
+        and p.redirect is null
+      order by 2 desc, 3, 1" in
 
   let table =
-    sth#map
-      (function [Some url; _; Some title; Some description;
-                `Timestamp last_modified_date;
-                (None | Some _) as content] ->
-        let url = if url = "index" then "" else url in
+    List.map
+      (function (Some url, Some is_index, title, description,
+                last_modified_date, content) ->
+        let url = if is_index then "" else url in
         let date = printable_date last_modified_date in
         [ "url", Template.VarString url;
           "title", Template.VarString title;
@@ -59,12 +56,12 @@ let run r (q : cgi) dbh hostid { hostname = hostname } _ =
           "has_content", Template.VarConditional (content <> None);
           "content", Template.VarString
             (match content with
-                 None -> ""
-               | Some c ->
-                   truncate 160
-                     (Wikilib.text_of_xhtml
-                        (Wikilib.xhtml_of_content dbh hostid c))) ]
-        | _ -> assert false) in
+             | None -> ""
+             | Some c ->
+                 truncate 160
+                   (Wikilib.text_of_xhtml
+                      (Wikilib.xhtml_of_content dbh hostid c))) ]
+       | _ -> assert false) rows in
 
   template#set "hostname" hostname;
   template#table "sitemap" table;