| 1 dblog.admin.inc | dblog_top($type) | 
Page callback: Shows the most frequent log messages of a given event type.
Messages are not truncated on this page because events detailed herein do not have links to a detailed view.
Parameters
string $type: Type of database log events to display (e.g., 'search').
Return value
array: A build array in the format expected by backdrop_render().
See also
File
- core/modules/ dblog/ dblog.admin.inc, line 102 
- Admin page callbacks for the Database Logging module.
Code
function dblog_top($type) {
  $header = array(
    array('data' => t('Count'), 'field' => 'count', 'sort' => 'desc'),
    array('data' => t('Message'), 'field' => 'message')
  );
  $count_query = db_select('watchdog');
  $count_query->addExpression('COUNT(DISTINCT(message))');
  $count_query->condition('type', $type);
  $query = db_select('watchdog', 'w')->extend('PagerDefault')->extend('TableSort');
  $query->addExpression('COUNT(wid)', 'count');
  $query = $query
  ->fields('w', array('message', 'variables'))
    ->condition('w.type', $type)
    ->groupBy('message')
    ->groupBy('variables')
    ->limit(30)
    ->orderByHeader($header);
  $query->setCountQuery($count_query);
  $result = $query->execute();
  $rows = array();
  foreach ($result as $dblog) {
    $rows[] = array($dblog->count, dblog_format_message($dblog));
  }
  $build['dblog_top_table'] = array(
    '#theme' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#empty' => t('No log messages available.'),
  );
  $build['dblog_top_pager'] = array('#theme' => 'pager');
  return $build;
}
