| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
1 <?php 2 // $Id: issue_cockpit.inc,v 1.6 2009/05/06 23:43:34 dww Exp $ 3 4 /** 5 * Form builder for the search box in the issue cockpit block. 6 */ 7 function project_issue_issue_cockpit_searchbox(&$form_state, $node) { 8 $search_path = 'project/issues/' . $node->project['uri']; 9 $adv_search_path = 'project/issues/search/' . $node->project['uri']; 10 return array( 11 '#action' => url($search_path), 12 '#method' => 'get', 13 'text' => array( 14 '#type' => 'textfield', 15 '#size' => 20, 16 ), 17 'status' => array( 18 '#type' => 'hidden', 19 '#value' => 'All', 20 ), 21 'submit' => array( 22 '#type' => 'submit', 23 '#value' => t('Search'), 24 '#name' => '', 25 ), 26 'advanced' => array( 27 '#value' => l(t('Advanced search'), $adv_search_path), 28 ), 29 ); 30 } 31 32 /** 33 * Theme template preprocess to declare variables for the issue cockpit. 34 */ 35 function template_preprocess_project_issue_issue_cockpit(&$vars) { 36 $node = $vars['node']; 37 38 // Flags that indicate what kind of access to project issues to allow. 39 $has_issues = !empty($node->project_issue['issues']); 40 $vars['view_issues'] = $has_issues && (user_access('access project issues') || user_access('access own project issues') || user_access('administer projects')); 41 $vars['make_issues'] = $has_issues && node_access('create', 'project_issue'); 42 43 if ($vars['view_issues']) { 44 $open_states = '('. implode(',', array_keys(project_issue_state(0, FALSE, FALSE, 0, TRUE))) .')'; 45 46 $vars['path'] = 'project/issues/'. $node->project['uri']; 47 $vars['form'] = drupal_get_form('project_issue_issue_cockpit_searchbox', $node); 48 49 $vars['categories'] = array(); 50 $categories = array('All' => t('All issues')) + project_issue_category(); 51 $setting = variable_get('project_issue_cockpit_categories', array('All' => 'All', 'bug' => 'bug')); 52 $active_categories = array_intersect_key($categories, array_filter($setting)); 53 foreach ($active_categories as $category => $name) { 54 $vars['categories'][$category] = array('name' => $name, 'open' => 0, 'total' => 0); 55 } 56 57 if (isset($vars['categories']['All'])) { 58 $vars['categories']['All']['open'] = db_result(db_query(db_rewrite_sql('SELECT count(*) FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d AND i.sid IN '. $open_states), $node->nid)); 59 $vars['categories']['All']['total'] = db_result(db_query(db_rewrite_sql('SELECT count(*) FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d'), $node->nid)); 60 } 61 62 $result = db_query(db_rewrite_sql('SELECT count(*) AS open, i.category FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d AND i.sid IN '. $open_states .' GROUP BY i.category'), $node->nid); 63 while ($category = db_fetch_object($result)) { 64 if (isset($vars['categories'][$category->category])) { 65 $vars['categories'][$category->category]['open'] = $category->open; 66 } 67 } 68 69 $result = db_query(db_rewrite_sql('SELECT count(*) AS total, i.category FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d GROUP BY i.category'), $node->nid); 70 while ($category = db_fetch_object($result)) { 71 if (isset($vars['categories'][$category->category])) { 72 $vars['categories'][$category->category]['total'] = $category->total; 73 } 74 } 75 76 $vars['issue_subscribe'] = l(t('Subscribe via e-mail'), 'project/issues/subscribe-mail/'. $node->project['uri'], array('query' => drupal_get_destination())); 77 $vars['issue_statistics'] = l(t('Issue statistics'), 'project/issues/statistics/'. $node->project['uri']); 78 $vars['oldest'] = db_result(db_query(db_rewrite_sql('SELECT min(n.created) FROM {node} n INNER JOIN {project_issues} i ON n.nid = i.nid WHERE n.status = 1 AND i.pid = %d AND i.sid IN '. $open_states), $node->nid)); 79 } 80 } 81
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Mar 24 11:18:33 2011 | Cross-referenced by PHPXref 0.7 |