+ (* Login status. *)
+ (match user with
+ Anonymous ->
+ t#conditional "user_logged_in" false
+ | User (_, username, _) ->
+ t#conditional "user_logged_in" true;
+ t#set "username" username);
+
+ (* Site menu. *)
+ let sth = dbh#prepare_cached "select url, label, ordering from sitemenu
+ where hostid = ? order by ordering" in
+ sth#execute [`Int hostid];
+
+ let table = sth#map (function [`String url; `String label; _] ->
+ [ "url", Template.VarString url;
+ "label", Template.VarString label ]
+ | _ -> assert false) in
+
+ t#table "sitemenu" table;
+