addHint(admin_new_questions()); $hints_renderer->addHint(user_angeltypes_unconfirmed_hint()); $hints_renderer->addHint(render_user_departure_date_hint()); $hints_renderer->addHint(user_driver_license_required_hint()); // Important hints: $hints_renderer->addHint(render_user_freeloader_hint(), true); $hints_renderer->addHint(render_user_arrived_hint(), true); $hints_renderer->addHint(render_user_tshirt_hint(), true); $hints_renderer->addHint(render_user_dect_hint(), true); } return $hints_renderer->render(); } /** * Renders the header toolbar containing search, login/logout, user and settings links. * * @return string */ function header_toolbar() { global $page, $privileges, $user; $toolbar_items = []; if (isset($user)) { $toolbar_items[] = toolbar_item_link( page_link_to('shifts', ['action' => 'next']), 'time', User_shift_state_render($user) ); } if (!isset($user) && in_array('register', $privileges) && config('registration_enabled')) { $toolbar_items[] = toolbar_item_link( page_link_to('register'), 'plus', register_title(), $page == 'register' ); } if (in_array('login', $privileges)) { $toolbar_items[] = toolbar_item_link( page_link_to('login'), 'log-in', login_title(), $page == 'login' ); } if (isset($user) && in_array('user_messages', $privileges)) { $toolbar_items[] = toolbar_item_link( page_link_to('user_messages'), 'envelope', user_unread_messages() ); } $toolbar_items[] = header_render_hints(); if (in_array('user_myshifts', $privileges)) { $toolbar_items[] = toolbar_item_link( page_link_to('users', ['action' => 'view']), ' icon-icon_angel', $user['Nick'], $page == 'users' ); } $user_submenu = make_user_submenu(); if (count($user_submenu) > 0) { $toolbar_items[] = toolbar_dropdown('', '', $user_submenu); } return toolbar($toolbar_items, true); } /** * @return array */ function make_user_submenu() { global $privileges, $page; $user_submenu = make_langselect(); if (in_array('user_settings', $privileges) || in_array('logout', $privileges)) { $user_submenu[] = toolbar_item_divider(); } if (in_array('user_settings', $privileges)) { $user_submenu[] = toolbar_item_link( page_link_to('user_settings'), 'list-alt', settings_title(), $page == 'user_settings' ); } if (in_array('logout', $privileges)) { $user_submenu[] = toolbar_item_link( page_link_to('logout'), 'log-out', logout_title(), $page == 'logout' ); } return $user_submenu; } /** * @return string */ function make_navigation() { global $page, $privileges; $menu = []; $pages = [ 'news' => news_title(), 'user_meetings' => meetings_title(), 'user_shifts' => shifts_title(), 'angeltypes' => angeltypes_title(), 'user_questions' => questions_title() ]; foreach ($pages as $menu_page => $title) { if (in_array($menu_page, $privileges)) { $menu[] = toolbar_item_link(page_link_to($menu_page), '', $title, $menu_page == $page); } } $menu = make_room_navigation($menu); $admin_menu = []; $admin_pages = [ 'admin_arrive' => admin_arrive_title(), 'admin_active' => admin_active_title(), 'admin_user' => admin_user_title(), 'admin_free' => admin_free_title(), 'admin_questions' => admin_questions_title(), 'shifttypes' => shifttypes_title(), 'admin_shifts' => admin_shifts_title(), 'admin_rooms' => admin_rooms_title(), 'admin_groups' => admin_groups_title(), 'admin_import' => admin_import_title(), 'admin_log' => admin_log_title(), 'admin_event_config' => event_config_title() ]; foreach ($admin_pages as $menu_page => $title) { if (in_array($menu_page, $privileges)) { $admin_menu[] = toolbar_item_link( page_link_to($menu_page), '', $title, $menu_page == $page ); } } if (count($admin_menu) > 0) { $menu[] = toolbar_dropdown('', _('Admin'), $admin_menu); } return toolbar($menu); } /** * Adds room navigation to the given menu. * * @param string[] $menu Rendered menu * @return string[] */ function make_room_navigation($menu) { global $privileges; if (!in_array('view_rooms', $privileges)) { return $menu; } // Get a list of all rooms $rooms = Rooms(); $room_menu = []; if (in_array('admin_rooms', $privileges)) { $room_menu[] = toolbar_item_link(page_link_to('admin_rooms'), 'list', _('Manage rooms')); } if (count($room_menu) > 0) { $room_menu[] = toolbar_item_divider(); } foreach ($rooms as $room) { $room_menu[] = toolbar_item_link(room_link($room), 'map-marker', $room['Name']); } if (count($room_menu) > 0) { $menu[] = toolbar_dropdown('map-marker', _('Rooms'), $room_menu); } return $menu; } /** * @return string */ function make_menu() { return make_navigation(); }