This is server API (go to client)

Module Eliom_tools_common

module Eliom_tools_common : sig..end

Menus


type 
  ('a, [< Eliom_service.registrable ]
   , [< Eliom_registration.non_caml_service ])
one_page =
  (unit, unit, 'a, [ `WithoutSuffix ], unit, unit,
   [< Eliom_service.registrable ] as 'b,
   [< Eliom_registration.non_caml_service ] as 'c)
  Eliom_service.service

Menus

type get_page = 
  (Eliom_service.get_service_kind, Eliom_service.registrable,
   Eliom_registration.non_caml_service)
  one_page
type ('a, [< Eliom_service.registrable ], 'b) hierarchical_site_item =  | Disabled | Site_tree of 
    ('a, [< Eliom_service.registrable ] as 'c, 'b)
    hierarchical_site

Hierchical sites

type ('a, [< Eliom_service.registrable ]) main_page =  | Main_page of 
    ('a, [< Eliom_service.registrable ] as 'b,
     Eliom_registration.non_caml_service)
    one_page
 | Default_page of
    ('a, 'b, Eliom_registration.non_caml_service)
    one_page
 | Not_clickable
type ('a, [< Eliom_service.registrable ], 'b) hierarchical_site = 
  ('a, [< Eliom_service.registrable ] as 'c)
  main_page *
  ('b * ('a, 'c, 'b) 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.