Files
Geneweb/lib/advSearchOkDisplay.ml
2024-03-05 22:01:20 +01:00

47 lines
1.6 KiB
OCaml

(* Copyright (c) 1998-2007 INRIA *)
open Config
open Util
let print_result conf base max_answers (list, len) =
let list =
if len > max_answers then Util.reduce_list max_answers list else list
in
if len = 0 then (
Output.print_sstring conf (Utf8.capitalize_fst (transl conf "no match"));
Output.print_sstring conf " ")
else
let () = SosaCache.build_sosa_ht conf base in
Output.print_sstring conf "<ul>\n";
List.iter
(fun p ->
Output.print_sstring conf "<li>";
SosaCache.print_sosa conf base p true;
Output.print_sstring conf " ";
Output.print_string conf (referenced_person_text conf base p);
Output.print_string conf (DateDisplay.short_dates_text conf base p);
Output.print_sstring conf "<em>";
specify_homonymous conf base p false;
Output.print_sstring conf "</em>")
list;
if len > max_answers then Output.print_sstring conf "<li>...</li>";
Output.print_sstring conf "</ul>"
let print conf base =
let title _ =
transl_nth conf "advanced request" 0
|> Utf8.capitalize_fst |> Output.print_sstring conf
in
let max_answers =
match p_getint conf.env "max" with Some n -> n | None -> 100
in
Hutil.header conf title;
Output.print_sstring conf "<p>";
Output.print_sstring conf (Utf8.capitalize_fst (transl conf "searching all"));
Output.print_sstring conf " ";
Output.print_string conf (AdvSearchOk.searching_fields conf base);
Output.print_sstring conf ".</p>";
let list = AdvSearchOk.advanced_search conf base max_answers in
print_result conf base max_answers list;
Hutil.trailer conf