[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/modules/project_issue/includes/ -> issue_cockpit.inc (source)

   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  


Generated: Thu Mar 24 11:18:33 2011 Cross-referenced by PHPXref 0.7