You are here

function badbehavior_overview in Bad Behavior 7.2

Same name and namespace in other branches
  1. 5.2 badbehavior.module \badbehavior_overview()
  2. 6.2 badbehavior.admin.inc \badbehavior_overview()
  3. 6 badbehavior.admin.inc \badbehavior_overview()

Builds the log table seen in the /admin/reports/badbehavior/ page.

Return value

string The actual table in HTML format

1 string reference to 'badbehavior_overview'
badbehavior_menu in ./badbehavior.module
Implements hook_menu().

File

./badbehavior.admin.inc, line 14
Admin page callbacks for the badbehavior module.

Code

function badbehavior_overview() {
  if (!badbehavior_load_includes(array(
    'responses',
  ))) {
    return 'Bad Behavior is not installed correctly. See the README.txt for installation details.';
  }
  $header = array(
    array(
      'data' => t('Response'),
    ),
    array(
      'data' => t('Reason'),
    ),
    array(
      'data' => t('Date'),
      'field' => 'b.date',
      'sort' => 'desc',
    ),
    array(
      'data' => t('IP'),
      'field' => 'b.ip',
    ),
    array(
      'data' => t('Agent'),
      'field' => 'b.user_agent',
      'colspan' => 2,
    ),
  );
  $logtype = variable_get('badbehavior_logging', 1);
  if ($logtype == 'verbose') {
    $sql = db_select('bad_behavior_log', 'b')
      ->fields('b')
      ->extend('PagerDefault')
      ->limit(20)
      ->extend('TableSort')
      ->orderByHeader($header)
      ->execute();
  }
  elseif ($logtype == '1') {
    $sql = db_select('bad_behavior_log', 'b')
      ->fields('b')
      ->extend('PagerDefault')
      ->limit(50)
      ->extend('TableSort')
      ->orderByHeader($header)
      ->condition('b.key', '00000000', '<>')
      ->execute();
  }
  $rows = array();
  if (isset($sql)) {
    foreach ($sql as $record) {
      $response = bb2_get_response($record->key);
      $record->localdate = bb2_convertdate($record->date);
      $rows[] = array(
        'data' => array(
          $response['response'],
          $response['log'],
          $record->localdate,
          $record->ip,
          $record->user_agent,
          l(t('details'), "admin/reports/badbehavior/event/{$record->id}"),
        ),
      );
    }
  }
  $output = theme('table', array(
    'header' => $header,
    'rows' => $rows,
    'caption' => '',
    'empty' => 'No log messages available',
  ));
  $output .= theme('pager', array(
    'tags' => array(),
  ));
  return $output;
}