/** * @param WP_Query $query */ public function filter_the_query($query) { if (!$this->is_issue_archive($query)) { return; } // Project is context dependent, not saved in the filter $project_slug = get_query_var('issue_project'); if ($project_slug) { $project = BuggyPress_Project::get_by_slug($project_slug); if ($project) { $query->query_vars['meta_query'][] = array('key' => BuggyPress_Issue::META_KEY_PROJECT, 'value' => $project->get_id()); } } $filter = $this->get_current_filter(); if ($status = $filter->get_status('slug')) { $query->query_vars['tax_query'][] = array('taxonomy' => 'issue_status', 'field' => 'slug', 'terms' => $status, 'operator' => 'IN'); } if ($type = $filter->get_type('slug')) { $query->query_vars['tax_query'][] = array('taxonomy' => 'issue_type', 'field' => 'slug', 'terms' => $type, 'operator' => 'IN'); } if ($priority = $filter->get_priority('slug')) { $query->query_vars['tax_query'][] = array('taxonomy' => 'issue_priority', 'field' => 'slug', 'terms' => $priority, 'operator' => 'IN'); } if ($resolution = $filter->get_resolution('slug')) { $query->query_vars['tax_query'][] = array('taxonomy' => 'issue_resolution', 'field' => 'slug', 'terms' => $resolution, 'operator' => 'IN'); } // TODO: assignee, tags, created, updated, due date // TODO: sorting // TODO: save the query as a post // TODO: track the user's saved queries }
/** * @param array $args * @return BuggyPress_Form_IssueNew */ private function get_form($args = array()) { $defaults = array('project_slug' => ''); $args = wp_parse_args($args, $defaults); $issue = new BuggyPress_Issue(0); if (!empty($args['project_slug'])) { $project = BuggyPress_Project::get_by_slug($args['project_slug']); if ($project) { $issue->set_project_id($project->get_id()); } } $form = new BuggyPress_Form_IssueNew($issue); $form = apply_filters('buggypress_new_issue_form', $form, $args); return $form; }
private static function register_meta_boxes() { self::$mb_permissions = add_flightless_meta_box(self::POST_TYPE, 'BuggyPress_MB_Permissions'); self::$mb_members = add_flightless_meta_box(self::POST_TYPE, 'BuggyPress_MB_Members'); }