? global_subscribe.patch Index: issue.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project_issue/issue.inc,v retrieving revision 1.343 diff -u -p -r1.343 issue.inc --- issue.inc 21 Mar 2009 16:23:24 -0000 1.343 +++ issue.inc 31 Mar 2009 19:39:22 -0000 @@ -253,6 +253,59 @@ function project_issue_subscribe_submit( } } +function project_issue_global_subscribe(&$form, $uid) { + $levels = array(0 => t('None'), 1 => t('Own issues'), 2 => t('All issues')); + + $form['buttons']['all'] = array( + '#type' => 'markup', + '#value' => t('All projects'), + ); + foreach ($levels as $key => $level) { + $form['buttons'][$level] = array( + '#type' => 'submit', + '#name' => 'all', + '#value' => $level, + ); + } + $nids = array(); + + $result = db_query(db_rewrite_sql("SELECT s.nid, n.title, s.level, p.uri FROM {project_subscriptions} s INNER JOIN {node} n ON n.nid = s.nid INNER JOIN {project_projects} p ON n.nid = p.nid WHERE n.type = 'project_project' AND n.status = 1 AND s.uid = %d ORDER BY n.title", 's'), $uid); + while ($project = db_fetch_object($result)) { + $form['project'][$project->nid]['title'] = array( + '#value' => l($project->title, "node/$project->nid"), + ); + foreach ($levels as $key => $level) { + if ($project->level == $key) { + $status[$project->nid] = $key; + } + } + $nids[] = $project->nid; + } + + if (empty($nids)) { + $placeholders = ''; + } + else { + $placeholders = " AND n.nid NOT IN (". implode(',', array_fill(0, count($nids), '%d')) .")"; + } + + $result = db_query(db_rewrite_sql("SELECT n.nid, n.title, p.uri FROM {node} n INNER JOIN {project_projects} p ON n.nid = p.nid WHERE n.type = 'project_project' AND n.status = 1". ($nids ? $placeholders : "") ." ORDER BY n.title"), $nids); + while ($project = db_fetch_object($result)) { + $form['project'][$project->nid]['title'] = array( + '#value' => l($project->title, "node/$project->nid"), + ); + $nids[] = $project->nid; + } + + foreach ($nids as $nid) { + $form['options']['#tree'] = TRUE; + $form['options'][$nid] = array( + '#type' => 'radios', + '#default_value' => isset($status[$nid]) ? $status[$nid] : 0, + '#options' => $levels, + ); + } +} function project_issue_subscribe($form_state, $project_nid = 0) { global $user; @@ -298,56 +351,7 @@ function project_issue_subscribe($form_s } else { - - $form['buttons']['all'] = array( - '#type' => 'markup', - '#value' => t('All projects'), - ); - foreach ($levels as $key => $level) { - $form['buttons'][$level] = array( - '#type' => 'submit', - '#name' => 'all', - '#value' => $level, - ); - } - $nids = array(); - - $result = db_query(db_rewrite_sql("SELECT s.nid, n.title, s.level, p.uri FROM {project_subscriptions} s INNER JOIN {node} n ON n.nid = s.nid INNER JOIN {project_projects} p ON n.nid = p.nid WHERE n.type = 'project_project' AND n.status = 1 AND s.uid = %d ORDER BY n.title", 's'), $user->uid); - while ($project = db_fetch_object($result)) { - $form['project'][$project->nid]['title'] = array( - '#value' => l($project->title, "node/$project->nid"), - ); - foreach ($levels as $key => $level) { - if ($project->level == $key) { - $status[$project->nid] = $key; - } - } - $nids[] = $project->nid; - } - - if (empty($nids)) { - $placeholders = ''; - } - else { - $placeholders = " AND n.nid NOT IN (". implode(',', array_fill(0, count($nids), '%d')) .")"; - } - - $result = db_query(db_rewrite_sql("SELECT n.nid, n.title, p.uri FROM {node} n INNER JOIN {project_projects} p ON n.nid = p.nid WHERE n.type = 'project_project' AND n.status = 1". ($nids ? $placeholders : "") ." ORDER BY n.title"), $nids); - while ($project = db_fetch_object($result)) { - $form['project'][$project->nid]['title'] = array( - '#value' => l($project->title, "node/$project->nid"), - ); - $nids[] = $project->nid; - } - - foreach ($nids as $nid) { - $form['options']['#tree'] = TRUE; - $form['options'][$nid] = array( - '#type' => 'radios', - '#default_value' => isset($status[$nid]) ? $status[$nid] : 0, - '#options' => $levels, - ); - } + project_issue_global_subscribe($form, $user->uid); } $form['submit'] = array( '#type' => 'submit',