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) .')')
);
}
}