Change subject line so it shows the name of the site.
[cocanwiki.git] / scripts / restore.ml
index 2d40f6e..f7ce475 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: restore.ml,v 1.20 2006/03/27 18:09:46 rich Exp $
+ * $Id: restore.ml,v 1.21 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
@@ -45,47 +45,37 @@ let run r (q : cgi) dbh hostid {hostname = hostname} user =
        | _ -> None in
 
     (* Copy the old version of the page to be live. *)
-    let sth = dbh#prepare_cached "select title, description, creation_date,
-                                         redirect, css
-                                    from pages
-                                   where hostid = ?
-                                     and url_deleted = ? and id = ?" in
-    sth#execute [Some hostid; Some page; Some version];
+    let rows = PGSQL(dbh)
+      "select title, description, creation_date,
+              redirect, css
+         from pages
+        where hostid = $hostid
+          and url_deleted = $page and id = $version" in
 
     let title, description, creation_date, redirect, css =
-      match sth#fetch1 () with
-         [ title; description; creation_date; redirect; css ] ->
-           title, description, creation_date, redirect, css
-       | _ -> assert false in
-
-    let sth =
-      dbh#prepare_cached
-       "set constraints pages_redirect_cn, sitemenu_url_cn,
-             page_emails_url_cn, links_from_cn, recently_visited_url_cn
-             deferred" in
-    sth#execute [];
-
-    let sth = dbh#prepare_cached "update pages set url_deleted = url,
-                                                   url = null
-                                   where hostid = ? and url = ?" in
-    sth#execute [Some hostid; Some page];
-
-    let sth = dbh#prepare_cached "insert into pages (hostid, url, title,
-                                     description, creation_date, logged_ip,
-                                     logged_user, redirect, css)
-                                  values (?, ?, ?, ?, ?, ?, ?, ?, ?)" in
-    sth#execute [Some hostid; Some page; title; description;
-                creation_date; logged_ip; logged_user; redirect; css ];
-
-    let pageid = Int64.to_int (sth#serial "pages_id_seq") in
-
-    let sth = dbh#prepare_cached "insert into contents (pageid, ordering,
-                                         sectionname, content, divname)
-                                  select ? as pageid, ordering, sectionname,
-                                              content, divname
-                                    from contents
-                                   where pageid = ?" in
-    sth#execute [Some pageid; Some version];
+      match rows with
+      | [row] -> row
+      | _ -> assert false in
+
+    PGSQL(dbh)
+      "set constraints pages_redirect_cn, sitemenu_url_cn,
+           page_emails_url_cn, links_from_cn, recently_visited_url_cn
+       deferred";
+    PGSQL(dbh) "update pages set url_deleted = url, url = null
+                 where hostid = $hostid and url = $page";
+    PGSQL(dbh) "insert into pages (hostid, url, title,
+                                   description, creation_date, logged_ip,
+                                   logged_user, redirect, css)
+                values ($hostid, $page, $title, $description, $creation_date,
+                        $?logged_ip, $?logged_user, $?redirect, $?css)";
+
+    let pageid = PGOCaml.serial4 dbh "pages_id_seq" in
+
+    PGSQL(dbh) "insert into contents (pageid, ordering,
+                                      sectionname, content, divname)
+                select $pageid, ordering, sectionname, content, divname
+                  from contents
+                 where pageid = $version";
 
     (* Keep the links table in synch. *)
     Cocanwiki_links.update_links_for_page dbh hostid page;