Index: issue.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project_issue/issue.inc,v retrieving revision 1.317 diff -u -p -r1.317 issue.inc --- issue.inc 29 Oct 2008 00:20:08 -0000 1.317 +++ issue.inc 4 Nov 2008 21:38:51 -0000 @@ -58,8 +58,7 @@ function project_issue_page() { return t('Please login or register in order to subscribe to issues.', array('@login' => url('user/login', $destination), '@register' => url('user/register', $destination))); } break; - case 'user': - $_GET['participated'] = $GLOBALS['user']->uid; + default: $project = project_issue_build_form_url(arg(2)); if ($project->nid && node_access('view', $project)) { @@ -212,7 +211,12 @@ function project_issue_build_form_url($u $filters = array_slice($adv_filters, 6); // Remember this is a request for "my issues" if ($url_arg == 'user') { - $_REQUEST['participated'] = $GLOBALS['user']->uid; + if (module_exists('flag')) { + $_REQUEST['starred'] = $GLOBALS['user']->uid; + } + else { + $_REQUEST['participated'] = $GLOBALS['user']->uid; + } } // this isn't a POST, just return project @@ -2021,7 +2025,7 @@ function project_issue_query_url($query * @see project_issue_query_result() */ function project_issue_query_parse($query = NULL) { - $fields = array('projects', 'text', 'attachment', 'summary', 'comment', 'categories', 'components', 'versions', 'states', 'priorities', 'users', 'assigned', 'submitted', 'participated'); + $fields = array('projects', 'text', 'attachment', 'summary', 'comment', 'categories', 'components', 'versions', 'states', 'priorities', 'users', 'assigned', 'submitted', 'participated', 'starred'); if ($_SERVER['REQUEST_METHOD'] == 'POST' && is_array($_POST)) { foreach ($_POST as $key => $value) { if (!empty($value) && in_array($key, $fields)) { @@ -2046,6 +2050,9 @@ function project_issue_query_parse($quer if (!empty($_REQUEST['participated']) && empty($query->participated)) { $query->participated = (int)$_REQUEST['participated']; } + if (!empty($_REQUEST['starred']) && empty($query->starred)) { + $query->starred = (int)$_REQUEST['starred']; + } return $query; } @@ -2079,6 +2086,7 @@ function project_issue_query_pager($quer function project_issue_query_sql($query) { $comments = 0; + $flag = ''; foreach ($query as $key => $value) { switch ($key) { case 'projects': @@ -2132,6 +2140,12 @@ function project_issue_query_sql($query) ); $sql[] = '('. implode(' OR ', $_sql) .')'; break; + case 'starred': + if (module_exists('flag')) { + $flag = "LEFT JOIN {flag_content} fc ON fc.content_type = 'node' AND fc.content_id = n.nid LEFT JOIN {flag_types} ft ON ft.fid = fc.fid AND ft.type = 'project_issue'"; + $sql[] = project_issue_query_sql_field('fc.uid', $value, 0, ' OR ', 'project_issue_query_user'); + } + break; case 'assigned': $sql[] = project_issue_query_sql_field('p.assigned', $value, 0, ' OR ', 'project_issue_query_user'); break; @@ -2143,14 +2157,14 @@ function project_issue_query_sql($query) if (!$comments) { return array( - 'sql' => db_rewrite_sql('SELECT n.nid FROM {node} n INNER JOIN {project_issues} p ON p.nid = n.nid INNER JOIN {node_revisions} r ON r.vid = n.vid INNER JOIN {users} u ON p.assigned = u.uid WHERE n.status = 1 AND ('. implode(') AND (', $sql) .')'), - 'count' => db_rewrite_sql('SELECT COUNT(n.nid) FROM {node} n INNER JOIN {project_issues} p ON p.nid = n.nid INNER JOIN {node_revisions} r ON r.vid = n.vid INNER JOIN {users} u ON p.assigned = u.uid WHERE n.status = 1 AND ('. implode(') AND (', $sql) .')') + 'sql' => db_rewrite_sql('SELECT n.nid FROM {node} n INNER JOIN {project_issues} p ON p.nid = n.nid INNER JOIN {node_revisions} r ON r.vid = n.vid INNER JOIN {users} u ON p.assigned = u.uid '. $flag .' WHERE n.status = 1 AND ('. implode(') AND (', $sql) .')'), + 'count' => db_rewrite_sql('SELECT COUNT(n.nid) FROM {node} n INNER JOIN {project_issues} p ON p.nid = n.nid INNER JOIN {node_revisions} r ON r.vid = n.vid INNER JOIN {users} u ON p.assigned = u.uid '. $flag .' WHERE n.status = 1 AND ('. implode(') AND (', $sql) .')') ); } else { return array( - 'sql' => db_rewrite_sql('SELECT DISTINCT(n.nid), n.changed FROM {node} n INNER JOIN {project_issues} p ON p.nid = n.nid INNER JOIN {node_revisions} r ON r.vid = n.vid INNER JOIN {users} u ON p.assigned = u.uid LEFT JOIN {comments} c ON c.nid = p.nid LEFT JOIN {comment_upload_files} cu ON p.nid = cu.nid LEFT JOIN {files} f ON n.nid = f.nid WHERE n.status = 1 AND ('. implode(') AND (', $sql) .')'), - 'count' => db_rewrite_sql('SELECT COUNT(DISTINCT(n.nid)) FROM {node} n INNER JOIN {project_issues} p ON p.nid = n.nid INNER JOIN {node_revisions} r ON r.vid = n.vid INNER JOIN {users} u ON p.assigned = u.uid LEFT JOIN {comments} c ON c.nid = p.nid LEFT JOIN {comment_upload_files} cu ON p.nid = cu.nid LEFT JOIN {files} f ON n.nid = f.nid WHERE n.status = 1 AND ('. implode(') AND (', $sql) .')') + 'sql' => db_rewrite_sql('SELECT DISTINCT(n.nid), n.changed FROM {node} n INNER JOIN {project_issues} p ON p.nid = n.nid INNER JOIN {node_revisions} r ON r.vid = n.vid INNER JOIN {users} u ON p.assigned = u.uid LEFT JOIN {comments} c ON c.nid = p.nid LEFT JOIN {comment_upload_files} cu ON p.nid = cu.nid LEFT JOIN {files} f ON n.nid = f.nid '. $flag .' WHERE n.status = 1 AND ('. implode(') AND (', $sql) .')'), + 'count' => db_rewrite_sql('SELECT COUNT(DISTINCT(n.nid)) FROM {node} n INNER JOIN {project_issues} p ON p.nid = n.nid INNER JOIN {node_revisions} r ON r.vid = n.vid INNER JOIN {users} u ON p.assigned = u.uid LEFT JOIN {comments} c ON c.nid = p.nid LEFT JOIN {comment_upload_files} cu ON p.nid = cu.nid LEFT JOIN {files} f ON n.nid = f.nid '. $flag .' WHERE n.status = 1 AND ('. implode(') AND (', $sql) .')') ); } }