private function get_module_map($auth_mode) { $lang = LangLoader::get('common', 'bugtracker'); $config = BugtrackerConfig::load(); $current_user = AppContext::get_current_user(); $link = new SitemapLink($lang['module_title'], BugtrackerUrlBuilder::home(), Sitemap::FREQ_DEFAULT, Sitemap::PRIORITY_MAX); $module_map = new ModuleMap($link, 'bugtracker'); if ($auth_mode == Sitemap::AUTH_PUBLIC) { $this_auth = Authorizations::check_auth(RANK_TYPE, User::VISITOR_LEVEL, $config->get_authorizations(), BugtrackerAuthorizationsService::READ_AUTHORIZATIONS); } else { if ($auth_mode == Sitemap::AUTH_USER) { if ($current_user->get_level() == User::ADMIN_LEVEL) { $this_auth = true; } else { $this_auth = Authorizations::check_auth(RANK_TYPE, $current_user->get_level(), $config->get_authorizations(), BugtrackerAuthorizationsService::READ_AUTHORIZATIONS); } } } if ($this_auth) { $module_map->add(new SitemapLink($lang['titles.unsolved'], BugtrackerUrlBuilder::unsolved())); $module_map->add(new SitemapLink($lang['titles.solved'], BugtrackerUrlBuilder::solved())); if ($config->is_roadmap_enabled() && $config->get_versions()) { $module_map->add(new SitemapLink($lang['titles.roadmap'], BugtrackerUrlBuilder::roadmap())); } $module_map->add(new SitemapLink($lang['titles.stats'], BugtrackerUrlBuilder::stats())); } return $module_map; }
private function build_response(View $view) { $request = AppContext::get_request(); $field = $request->get_value('field', 'date'); $sort = $request->get_value('sort', 'desc'); $page = $request->get_int('page', 1); $filter = $request->get_value('filter', ''); $filter_id = $request->get_value('filter_id', ''); $body_view = BugtrackerViews::build_body_view($view, 'solved'); $response = new SiteDisplayResponse($body_view); $graphical_environment = $response->get_graphical_environment(); $graphical_environment->set_page_title($this->lang['titles.solved'], $this->lang['module_title']); $graphical_environment->get_seo_meta_data()->set_canonical_url(BugtrackerUrlBuilder::solved($field, $sort, $page, $filter, $filter_id)); $breadcrumb = $graphical_environment->get_breadcrumb(); $breadcrumb->add($this->lang['module_title'], BugtrackerUrlBuilder::home()); $breadcrumb->add($this->lang['titles.solved'], BugtrackerUrlBuilder::solved($field, $sort, $page, $filter, $filter_id)); return $response; }
private function build_versions_form($current_page, $requested_version, $filters, $filters_ids) { $search_field = $current_page == 'unsolved' ? 'detected_in' : 'fixed_in'; if (in_array($search_field, $filters)) { $key = array_search($search_field, $filters); unset($filters[$key]); unset($filters_ids[$key]); } $filter = implode('-', $filters); $filter_id = implode('-', $filters_ids); $form = new HTMLForm('version-form', '', false); $fieldset = new FormFieldsetHorizontal('filter-version'); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldSimpleSelectChoice('filter_version', '', $requested_version, $this->build_select_versions($current_page), array('events' => array('change' => 'if (HTMLForms.getField("filter_version").getValue() > 0) { document.location = "' . ($current_page == 'unsolved' ? BugtrackerUrlBuilder::unsolved('name', 'desc', 1, (!empty($filter) ? $filter . '-' : '') . 'fixed_in', !empty($filter_id) ? $filter_id . '-' : '')->rel() : BugtrackerUrlBuilder::solved('name', 'desc', 1, (!empty($filter) ? $filter . '-' : '') . 'fixed_in', !empty($filter_id) ? $filter_id . '-' : '')->rel()) . '" + HTMLForms.getField("filter_version").getValue(); } else { document.location = "' . ($current_page == 'unsolved' ? BugtrackerUrlBuilder::unsolved('name', 'desc', 1, $filter, $filter_id)->rel() : BugtrackerUrlBuilder::solved('name', 'desc', 1, $filter, $filter_id)->rel()) . '"; }')))); return $form; }