function track_da_files_table_build_file_report in Track da files 8
Same name and namespace in other branches
- 7 includes/track_da_files.admin.inc \track_da_files_table_build_file_report()
Build variables used to create file report.
1 call to track_da_files_table_build_file_report()
- track_da_files_table in includes/
track_da_files.admin.inc - Builds a table which shows number of displays by file.
File
- includes/
track_da_files.admin.inc, line 411 - Administrative page callbacks for Track da files module.
Code
function track_da_files_table_build_file_report($fid, $pid) {
$track_da_files_single_file_report_datas = variable_get('track_da_files_single_file_report_datas', array(
'id',
'referer',
'browser',
'browser_version',
'browser_platform',
'ip',
'uid',
));
$track_da_files_user_report_enabled = variable_get('track_da_files_user_report_enabled', 1);
// We prepare table header for file specific report.
$header = array(
array(
'data' => t('Time'),
),
);
// Header datas.
foreach ($track_da_files_single_file_report_datas as $data => $value) {
if (!empty($value)) {
if ($value == 'uid') {
$header[] = array(
'data' => t('Username'),
'field' => $value,
'sort' => 'DESC',
);
}
elseif ($value == 'id') {
$header[] = array(
'data' => t('Related content'),
'field' => $value,
'sort' => 'DESC',
);
}
elseif ($value == 'referer') {
$header[] = array(
'data' => t('Displayed from'),
'field' => $value,
'sort' => 'DESC',
);
}
elseif ($value == 'browser') {
$header[] = array(
'data' => t('Browser'),
'field' => $value,
'sort' => 'DESC',
);
}
elseif ($value == 'browser_version') {
$header[] = array(
'data' => t('Browser version'),
'field' => $value,
'sort' => 'DESC',
);
}
elseif ($value == 'browser_platform') {
$header[] = array(
'data' => t('Platform'),
'field' => $value,
'sort' => 'DESC',
);
}
elseif ($value == 'ip') {
$header[] = array(
'data' => t('Ip'),
'field' => $value,
'sort' => 'DESC',
);
}
elseif ($value == 'uid') {
$header[] = array(
'data' => t('User name'),
'field' => $value,
'sort' => 'DESC',
);
}
}
}
// We build an array with header values to make some verifications.
foreach ($header as $key => $value) {
foreach ($value as $value2) {
$header_values[] = $value2;
}
}
if ($track_da_files_user_report_enabled) {
$header[] = array(
'data' => t('User datas'),
);
}
// We prepare fields.
$fields = array(
'time',
);
if (isset($track_da_files_single_file_report_datas['id']) && $track_da_files_single_file_report_datas['id'] == '0') {
unset($track_da_files_single_file_report_datas['id']);
}
foreach ($track_da_files_single_file_report_datas as $key => $value) {
if (!empty($value)) {
if ($value == 'id') {
$fields[] = 'id';
$fields[] = 'type';
}
else {
$fields[] = $value;
}
}
}
if ($track_da_files_user_report_enabled && !in_array('uid', $header_values)) {
$fields[] = 'uid';
}
$query = db_select('track_da_files', 't');
$query
->extend('PagerDefault')
->limit(20)
->extend('TableSort')
->orderByHeader($header)
->fields('t', $fields)
->condition('pid', $pid);
$results = $query
->execute();
$rows = array();
// We loop into the results to build table rows for file report table.
foreach ($results as $key => $record) {
foreach ($record as $key2 => $row) {
if ($key2 == 'time') {
$rows[$key][$key2] = format_date($row, 'short');
}
elseif ($key2 == 'id') {
if ($record->type == 'node') {
$node = node_load($row);
$rows[$key][$key2] = l($node->title, $record->type . '/' . $row) . '<br />(' . t('content') . ')';
}
elseif ($record->type == 'comment') {
$comment = comment_load($row);
$rows[$key][$key2] = l($comment->subject, $record->type . '/' . $row, array(
'fragment' => 'comment-' . $row,
)) . '<br />(' . t('comment') . ')';
}
else {
$rows[$key][$key2] = ' ';
}
}
elseif ($key2 == 'type') {
unset($rows[$key][$key2]);
}
elseif ($key2 == 'uid') {
$uid = $row;
$user = user_load($uid);
if ($track_da_files_user_report_enabled) {
if (in_array('uid', $header_values)) {
if (!empty($user->name)) {
$rows[$key][$key2] = theme('username', array(
'account' => $user,
));
}
else {
$rows[$key][$key2] = t('Anonymous user');
}
}
$rows[$key]['view_more'] = l(t('View more'), 'admin/reports/track_da_files/user_report/' . $uid);
}
else {
$rows[$key][$key2] = theme('username', array(
'account' => $user,
));
}
}
else {
$rows[$key][$key2] = $row;
}
}
}
$variables = array(
'header' => $header,
'rows' => $rows,
);
return $variables;
}