Module Eliom_tools

module Eliom_tools: sig..end

Predefined boxes for Eliom



Menus


type ('a, 'b) one_page = (unit, unit, 'a, [ `WithoutSuffix ], unit, unit, 'b) Eliom_services.service

val menu :
   ?classe:XHTML.M.nmtoken list ->
    ([< Eliom_services.get_service_kind ] as 'a,
    [< Eliom_services.registrable ] as 'b)
    one_page * Xhtmltypes.a_content XHTML.M.elt list ->
    (('a, 'b) one_page * Xhtmltypes.a_content XHTML.M.elt list) list ->
    service:('a, 'b) one_page ->
    sp:Eliom_sessions.server_params -> [> `Ul ] XHTML.M.elt

Creates a menu

Example:

menu ~classe:["mainmenu"] [ (home, <:xmllist< Home >>); (infos, <:xmllist< More infos >>) ] current sp


Hierchical sites


type ('a, 'b, 'c) hierarchical_site_item =

|Disabled
|Site_tree of ('a, 'b, 'c) hierarchical_site

type ('a, 'b, 'c) main_page =

|Main_page of ('a, 'b) one_page
|Default_page of ('a, 'b) one_page
|Not_clickable

type ('a, 'b, 'c) hierarchical_site =
   ('a, 'b, 'c) main_page *
    ('c XHTML.M.elt list * ('a, 'b, 'c) hierarchical_site_item) list

The type of hierarchical sites. A hierarchical site is a pair (main page, subpages).

The difference between Main_page, Default_page and Not_clickable is a bit subtle:

  • Main_page is when you want to create a main page for your subsite. All the subpages are subsections of that page.
  • Default_page is like Main_page but is not taken into account for computing which is the current page in the menu. Use it for example when there is no main page, but you want one of the subpages to be the default page for your subsite. The service you use as default page must appear another time in the subtree!
  • Not_clickable is when you do not want the menu entry to be a link but you want subpages.

Each subpage is defined by the text to be displayed in menus and a hierarchical_site_item. If the latter is Disabled, the menu entry is disabled.

val hierarchical_menu_depth_first :
   ?classe:XHTML.M.nmtoken list ->
    ?whole_tree:bool ->
    ([< Eliom_services.get_service_kind ] as 'a,
    [< Eliom_services.registrable ] as 'b, Xhtmltypes.a_content)
    hierarchical_site ->
    service:('a, 'b) one_page ->
    sp:Eliom_sessions.server_params -> [> `Ul ] XHTML.M.elt list

hierarchical_menu_depth_first menu constructs a function taking as parameters a service and ~sp (server parameters) and displaying a hierarchical menu for this service.

The menu is constructed by exploring the tree using a depth-first algorithm. It means that the first menu item will be displayed, followed by the whole sub-menu for this item, then the second menu item with its sub-menu, and so on. By default, only the sub-menus corresponding to the current page are displayed. If you want all the sub-menus to be displayed, specify ?whole_tree=true.

val hierarchical_menu_breadth_first :
   ?classe:XHTML.M.nmtoken list ->
    ([< Eliom_services.get_service_kind ] as 'a,
    [< Eliom_services.registrable ] as 'b, Xhtmltypes.a_content)
    hierarchical_site ->
    service:('a, 'b) one_page ->
    sp:Eliom_sessions.server_params -> [> `Ul ] XHTML.M.elt list

hierarchical_menu_breadth_first menu constructs a function taking as parameters a service and ~sp (server parameters) and displaying a hierarchical menu for this service.

The menu is constructed by exploring the tree using a breadth_first algorithm. It means that the whole menu for one level will be displayed, followed by all sub-menus. Only the sub-menu corresponding to the current page is displayed.

Returns the tags <link rel="subsection" ...> and <link rev="subsection" ...> for the given hierarchical site.