You are here

function track_da_files_table_build_user_report in Track da files 8

Same name and namespace in other branches
  1. 7 includes/track_da_files.admin.inc \track_da_files_table_build_user_report()

Build variables used to create table which shows datas for a specific user.

1 call to track_da_files_table_build_user_report()
track_da_files_table_user_report in includes/track_da_files.admin.inc
Builds a table which shows datas for a specific user.

File

includes/track_da_files.admin.inc, line 598
Administrative page callbacks for Track da files module.

Code

function track_da_files_table_build_user_report($uid) {
  $track_da_files_user_report_enabled = variable_get('track_da_files_user_report_enabled', 1);
  $track_da_files_single_user_report_datas = variable_get('track_da_files_single_user_report_datas', array(
    'referer',
    'browser',
    'browser_version',
    'browser_platform',
    'ip',
  ));
  if ($track_da_files_user_report_enabled) {
    $header = array(
      array(
        'data' => t('Filename'),
      ),
      array(
        'data' => t('time'),
        'field' => 'time',
        'sort' => 'DESC',
      ),
    );

    // Header datas.
    foreach ($track_da_files_single_user_report_datas as $data => $value) {
      if (!empty($value)) {
        if ($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',
          );
        }
      }
    }

    // We prepare fields.
    $fields = array(
      'time',
    );
    foreach ($track_da_files_single_user_report_datas as $key => $value) {
      if ($value) {
        $fields[] = $value;
      }
    }
    $query = db_select('track_da_files', 't');
    $query
      ->join('track_da_files_paths', 'p', 't.pid = p.pid');
    $query
      ->extend('PagerDefault')
      ->limit(20)
      ->extend('TableSort')
      ->orderByHeader($header)
      ->fields('p', array(
      'fid',
    ))
      ->fields('t', $fields)
      ->condition('uid', $uid);
    $results = $query
      ->execute();
    $rows = array();

    // We loop into results to build rows for user report table.
    foreach ($results as $key => $record) {
      foreach ($record as $key2 => $row) {
        if ($key2 == 'time') {
          $rows[$key][$key2] = format_date($row, 'short');
        }
        elseif ($key2 == 'fid') {
          $file = file_load($row);
          if (isset($file->filename)) {
            $rows[$key][$key2] = $file->filename;
          }
          else {
            $rows[$key][$key2] = t('No name');
          }
        }
        else {
          $rows[$key][$key2] = $row;
        }
      }
    }
    $variables = array(
      'header' => $header,
      'rows' => $rows,
    );
    return $variables;
  }
  else {
    return drupal_access_denied();
  }
}