X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=scripts%2Frecently_visited.ml;h=ef709c7a0577f78622f4d5475d7b8b9c6b99951c;hb=cd059731a60fd3d4dcf426430ad26ff227b91910;hp=6e689fca9aac02ebb40b6dc560d1f18e80613656;hpb=5b036c1119e5871a8996c98639cd861ea7d93e75;p=cocanwiki.git diff --git a/scripts/recently_visited.ml b/scripts/recently_visited.ml index 6e689fc..ef709c7 100644 --- a/scripts/recently_visited.ml +++ b/scripts/recently_visited.ml @@ -1,7 +1,7 @@ (* COCANWIKI - a wiki written in Objective CAML. * Written by Richard W.M. Jones . * Copyright (C) 2004 Merjis Ltd. - * $Id: recently_visited.ml,v 1.1 2004/10/10 16:14:43 rich Exp $ + * $Id: recently_visited.ml,v 1.4 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 @@ -27,25 +27,26 @@ open Printf open Cocanwiki open Cocanwiki_template -let run r (q : cgi) (dbh : Dbi.connection) hostid _ user = +let run r (q : cgi) dbh hostid _ user = let template = get_template dbh hostid "recently_visited.html" in let userid = match user with - User (userid, _, _) -> userid + User (userid, _, _, _) -> userid | _ -> assert false in - let sth = dbh#prepare_cached "select rv.url, p.title, rv.visit_time - from recently_visited rv, pages p - where rv.hostid = ? and rv.userid = ? - and rv.hostid = p.hostid and rv.url = p.url - order by 3 desc" in - sth#execute [`Int hostid; `Int userid]; - - let table = sth#map (function [`String page; `String title; _] -> - [ "page", Template.VarString page; - "title", Template.VarString title ] - | _ -> assert false) in + let rows = PGSQL(dbh) + "select rv.url, p.title, rv.visit_time + from recently_visited rv, pages p + where rv.hostid = $hostid and rv.userid = $userid + and rv.hostid = p.hostid and rv.url = p.url + order by 3 desc" in + + let table = List.map ( + fun (page, title, _) -> + [ "page", Template.VarString page; + "title", Template.VarString title ] + ) rows in template#table "recently_visited" table; q#template template