function casetracker_overview in Case Tracker 7.2
@file This file have the page callback functions that are called in hook_menu()
1 string reference to 'casetracker_overview'
- casetracker_menu in ./
casetracker.module - Implements hook_menu().
File
- pages/
casetracker.pages.inc, line 7 - This file have the page callback functions that are called in hook_menu()
Code
function casetracker_overview() {
if (db_table_exists('field_data_field_casetracker_project_ref')) {
$query = db_query("\n SELECT p.pid, p.title as project, s.field_casetracker_case_status_value as status, count(s.field_casetracker_case_status_value) as qtd\n FROM {casetracker_case} c\n JOIN {field_data_field_casetracker_project_ref} pr ON pr.entity_type = 'casetracker_case' AND pr.entity_id = c.cid\n INNER JOIN {casetracker_project} p ON pr.field_casetracker_project_ref_target_id = p.pid\n JOIN {field_data_field_casetracker_case_status} s ON s.entity_type = 'casetracker_case' AND s.entity_id = c.cid\n GROUP BY p.title, status");
$results = $query
->fetchAll();
$field_status = field_read_field('field_casetracker_case_status');
$header[] = t('Project');
foreach ($field_status['settings']['allowed_values'] as $key => $value) {
$header[] = $value;
}
$data = array();
$i = 0;
foreach ($results as $item) {
if (!isset($data[$item->pid])) {
$data[$item->pid] = array(
'project' => l($item->project, 'project/' . $item->pid . '/cases'),
'cases' => array(),
);
foreach ($field_status['settings']['allowed_values'] as $key => $value) {
$data[$item->pid]['cases'][$key] = 0;
}
}
$data[$item->pid]['cases'][$item->status] = $item->qtd;
}
$i = 0;
$rows = array();
foreach ($data as $item) {
$rows[$i] = array(
$item['project'],
);
foreach ($item['cases'] as $case_status) {
$rows[$i][] = $case_status;
}
$i++;
}
$table_element = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
'#empty' => t("You don't have any cases yet."),
);
return drupal_render($table_element);
}
else {
drupal_set_message(t("There isn't any Case or Project types defined on Case Tracker,\n making this page useless. If you want to create one now, please go to <a href='@link'>admin/structure/casetracker</a>.", array(
'@link' => url('admin/structure/casetracker'),
)), 'warning');
return '';
}
}