git.annexia.org
/
cocanwiki.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Script for rebuilding the links table from scratch.
[cocanwiki.git]
/
scripts
/
page.ml
diff --git
a/scripts/page.ml
b/scripts/page.ml
index
1ea4acd
..
a98e688
100644
(file)
--- a/
scripts/page.ml
+++ b/
scripts/page.ml
@@
-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.
(* COCANWIKI - a wiki written in Objective CAML.
* Written by Richard W.M. Jones <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
- * $Id: page.ml,v 1.2
0 2004/09/24 10:44:55
rich Exp $
+ * $Id: page.ml,v 1.2
4 2004/09/27 18:08:02
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
*
* 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
@@
-49,6
+49,8
@@
let search_engines = [
]
let split_words = Pcre.regexp "\\W+"
]
let split_words = Pcre.regexp "\\W+"
+let split_qs_re = Pcre.regexp "\\?"
+
let xhtml_re = Pcre.regexp "<.*?>|[^<>]+"
let run r (q : cgi) (dbh : Dbi.connection) hostid {edit_anon=edit_anon} user =
let xhtml_re = Pcre.regexp "<.*?>|[^<>]+"
let run r (q : cgi) (dbh : Dbi.connection) hostid {edit_anon=edit_anon} user =
@@
-60,13
+62,15
@@
let run r (q : cgi) (dbh : Dbi.connection) hostid {edit_anon=edit_anon} user =
(* Host-specific fields. *)
let sth = dbh#prepare_cached "select css is not null,
(* Host-specific fields. *)
let sth = dbh#prepare_cached "select css is not null,
- feedback_email is not null
+ feedback_email is not null,
+ mailing_list, search_box
from hosts where id = ?" in
sth#execute [`Int hostid];
from hosts where id = ?" in
sth#execute [`Int hostid];
- let has_host_css, has_feedback_email =
+ let has_host_css, has_feedback_email
, mailing_list, search_box
=
match sth#fetch1 () with
match sth#fetch1 () with
- | [ `Bool has_host_css; `Bool has_feedback_email ] ->
- has_host_css, has_feedback_email
+ | [ `Bool has_host_css; `Bool has_feedback_email; `Bool mailing_list;
+ `Bool search_box ] ->
+ has_host_css, has_feedback_email, mailing_list, search_box
| _ -> assert false in
(* Can the user edit? Manage users? etc. *)
| _ -> assert false in
(* Can the user edit? Manage users? etc. *)
@@
-85,7
+89,12
@@
let run r (q : cgi) (dbh : Dbi.connection) hostid {edit_anon=edit_anon} user =
let search_terms_from_referer referer =
let _, argnames =
List.find (fun (rex, _) -> Pcre.pmatch ~rex referer) search_engines in
let search_terms_from_referer referer =
let _, argnames =
List.find (fun (rex, _) -> Pcre.pmatch ~rex referer) search_engines in
- let _, _, args = Cocanwiki_cgi_args.parse referer in
+ let url, qs =
+ match Pcre.split ~rex:split_qs_re ~max:2 referer with
+ | [url] | [url;""] -> url, ""
+ | [url;qs] -> url, qs
+ | _ -> assert false in
+ let args = Cgi_args.parse qs in
let argname =
List.find (fun argname -> List.mem_assoc argname args) argnames in
let search_string = List.assoc argname args in
let argname =
List.find (fun argname -> List.mem_assoc argname args) argnames in
let search_string = List.assoc argname args in
@@
-166,6
+175,8
@@
let run r (q : cgi) (dbh : Dbi.connection) hostid {edit_anon=edit_anon} user =
t#conditional "has_page_css" has_page_css;
t#conditional "has_feedback_email" has_feedback_email;
t#conditional "has_page_css" has_page_css;
t#conditional "has_feedback_email" has_feedback_email;
+ t#conditional "mailing_list" mailing_list;
+ t#conditional "search_box" search_box;
t#conditional "can_edit" can_edit;
t#conditional "can_manage_users" can_manage_users;
t#conditional "can_edit" can_edit;
t#conditional "can_manage_users" can_manage_users;