(* COCANWIKI - a wiki written in Objective CAML.
* Written by Richard W.M. Jones <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
- * $Id: edit_host_settings.ml,v 1.5 2004/10/04 15:19:56 rich Exp $
+ * $Id: edit_host_settings.ml,v 1.13 2006/08/14 11:36:50 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
open Cocanwiki
open Cocanwiki_ok
+open Cocanwiki_strings
-let run r (q : cgi) (dbh : Dbi.connection) hostid { hostname = hostname } _ =
+let run r (q : cgi) dbh hostid { hostname = hostname } _ =
(* Cancel? *)
- if q#param_true "cancel" then (
+ if q#param_true "cancel" then
(* Request cancelled. *)
q#redirect ("http://" ^ hostname ^ "/_bin/host_menu.cmo");
- return ()
- );
(* Get parameters. *)
let edit_anon = q#param_true "edit_anon" in
let create_account_anon = q#param_true "create_account_anon" in
let theme_css = q#param "theme_css" in
- let feedback_email = q#param "feedback_email" in
+ let feedback_email = trim (q#param "feedback_email") in
let mailing_list = q#param_true "mailing_list" in
let search_box = q#param_true "search_box" in
+ let ie_imagetoolbar_no = q#param_true "ie_imagetoolbar_no" in
+ let global_noodp = q#param_true "global_noodp" in
+ let navigation = q#param_true "navigation" in
let view_anon = q#param_true "view_anon" in
+ let brand = trim (q#param "brand") in
+ let brand_tagline = trim (q#param "brand_tagline") in
+ let brand_description = trim (q#param "brand_description") in
+ let pagebug = trim (q#param "pagebug") in
- let theme_css = if theme_css = "" then `Null else `String theme_css in
+ let theme_css = if theme_css = "" then None else Some theme_css in
let feedback_email =
- if feedback_email = "" then `Null else `String feedback_email in
+ if string_is_whitespace feedback_email then
+ None else Some feedback_email in
+ let brand = if string_is_whitespace brand then None else Some brand in
+ let brand_tagline =
+ if string_is_whitespace brand_tagline then None else Some brand_tagline in
+ let brand_description =
+ if string_is_whitespace brand_description then
+ None else Some brand_description in
+ let pagebug =
+ if string_is_whitespace pagebug then None else Some pagebug in
(* Update the database. *)
- let sth = dbh#prepare_cached "update hosts set edit_anon = ?,
- create_account_anon = ?, theme_css = ?,
- feedback_email = ?, mailing_list = ?,
- search_box = ?, view_anon = ?
- where id = ?" in
- sth#execute [`Bool edit_anon; `Bool create_account_anon;
- theme_css; feedback_email; `Bool mailing_list; `Bool search_box;
- `Bool view_anon;
- `Int hostid];
+ PGSQL(dbh)
+ "update hosts set edit_anon = $edit_anon,
+ create_account_anon = $create_account_anon, theme_css = $?theme_css,
+ feedback_email = $?feedback_email, mailing_list = $mailing_list,
+ search_box = $search_box, navigation = $navigation,
+ view_anon = $view_anon,
+ brand = $?brand, brand_tagline = $?brand_tagline,
+ brand_description = $?brand_description,
+ pagebug = $?pagebug, ie_imagetoolbar_no = $ie_imagetoolbar_no,
+ global_noodp = $global_noodp
+ where id = $hostid";
- dbh#commit ();
+ PGOCaml.commit dbh;
(* Finish off. *)
ok ~title:"Global settings updated"
~buttons:[ok_button "/_bin/host_menu.cmo"]
- q "The global settings were updated."
+ dbh hostid q "The global settings were updated."
let () =
register_script ~restrict:[CanManageSite] run