You are here

function support_reference_block_view in Support Ticketing System 7

Implements hook_block_view().

File

support_reference/support_reference.module, line 61
Support ticket references.

Code

function support_reference_block_view($delta = '') {
  global $user;
  $block = array();
  if ($delta == 'support_reference_references' && arg(0) == 'node' && is_numeric(arg(1))) {
    if ($node = node_load(arg(1))) {
      if ($node->type == 'support_ticket') {
        $view = $edit = '';
        if (user_access('view support ticket references')) {
          $result = db_query('SELECT rnid FROM {support_reference} WHERE nid = :nid ORDER BY rnid DESC', array(
            ':nid' => $node->nid,
          ))
            ->fetchCol();
          $nodes = node_load_multiple($result);
          $references = array();
          foreach ($nodes as $reference) {

            // Only list reference if user viewing page has access.
            $client = support_client_load($reference->client);
            if (support_access_clients($client, $user)) {
              $state = _support_state($reference->state);
              $priority = _support_priorities($reference->priority);
              $class = "support-reference state-{$state} priority-{$priority}";
              if ($node->client != $reference->client) {
                $class .= ' crossclient';
              }
              $references[$reference->nid] = '<span class="' . check_plain($class) . '">' . l(t('#!nid: !title', array(
                '!nid' => $reference->nid,
                '!title' => $reference->title,
              )), "node/{$reference->nid}", array(
                'attributes' => array(
                  'title' => t('!state !priority priority ticket.', array(
                    '!state' => ucfirst($state),
                    '!priority' => $priority,
                  )),
                ),
              )) . '</span>';
            }
          }
          $view = theme('item_list', array(
            'items' => $references,
          ));
        }
        if (user_access('edit support ticket references')) {
          $edit = drupal_get_form('support_reference_block_form', $node->client, $node);
        }
        $block['content'][] = array(
          '#markup' => $view,
        );
        $block['content'][] = $edit;
        $block['subject'] = t('Support ticket references');
      }
    }
  }
  return $block;
}