public function build_page_tab_menu($page_title) { $page_tabs = array('page' => $page_title, 'editor' => 'Edit', 'history' => 'History'); $tabs_by_user_status = array('default' => array('page', 'history'), 'logged-in' => array_keys($page_tabs)); $user_status = AppUser::is_logged_in() ? 'logged-in' : 'default'; $user_tabs = $tabs_by_user_status[$user_status]; $tab_links = array(); foreach ($user_tabs as $handler) { $label = $page_tabs[$handler]; $href = NeechyPath::url($this->request->page, $handler); $classes = array($handler); if ($handler == 'page') { $classes[] = 'title'; } if ($handler == $this->request->handler) { $classes[] = 'active'; } if ($this->request->handler == 'editor' && $handler == $this->request->handler && $this->request->action == 'preview') { $label = 'Preview'; } $tab_links[] = $this->build_page_tab_link($label, $href, $classes); } return implode("\n", $tab_links); }