public DbLogController::overview()
Displays a listing of database log messages.
Messages are truncated at 56 chars. Full-length messages can be viewed on the message details page.
Return value
array A render array as expected by drupal_render().
See also
dblog_clear_log_form()
dblog_event()
File
- core/modules/dblog/src/Controller/DbLogController.php, line 121
Class
- DbLogController
- Returns responses for dblog routes.
Namespace
Drupal\dblog\Controller
Code
public function overview() { $filter = $this->buildFilterQuery(); $rows = array(); $classes = static::getLogLevelClassMap(); $this->moduleHandler->loadInclude('dblog', 'admin.inc'); $build['dblog_filter_form'] = $this->formBuilder->getForm('Drupal\dblog\Form\DblogFilterForm'); $header = array( // Icon column. '', array( 'data' => $this->t('Type'), 'field' => 'w.type', 'class' => array(RESPONSIVE_PRIORITY_MEDIUM)), array( 'data' => $this->t('Date'), 'field' => 'w.wid', 'sort' => 'desc', 'class' => array(RESPONSIVE_PRIORITY_LOW)), $this->t('Message'), array( 'data' => $this->t('User'), 'field' => 'ufd.name', 'class' => array(RESPONSIVE_PRIORITY_MEDIUM)), array( 'data' => $this->t('Operations'), 'class' => array(RESPONSIVE_PRIORITY_LOW)), ); $query = $this->database->select('watchdog', 'w') ->extend('\Drupal\Core\Database\Query\PagerSelectExtender') ->extend('\Drupal\Core\Database\Query\TableSortExtender'); $query->fields('w', array( 'wid', 'uid', 'severity', 'type', 'timestamp', 'message', 'variables', 'link', )); $query->leftJoin('users_field_data', 'ufd', 'w.uid = ufd.uid'); if (!empty($filter['where'])) { $query->where($filter['where'], $filter['args']); } $result = $query ->limit(50) ->orderByHeader($header) ->execute(); foreach ($result as $dblog) { $message = $this->formatMessage($dblog); if ($message && isset($dblog->wid)) { $title = Unicode::truncate(Html::decodeEntities(strip_tags($message)), 256, TRUE, TRUE); $log_text = Unicode::truncate($title, 56, TRUE, TRUE); // The link generator will escape any unsafe HTML entities in the final // text. $message = $this->l($log_text, new Url('dblog.event', array('event_id' => $dblog->wid), array( 'attributes' => array( // Provide a title for the link for useful hover hints. The // Attribute object will escape any unsafe HTML entities in the // final text. 'title' => $title, ), ))); } $username = array( '#theme' => 'username', '#account' => $this->userStorage->load($dblog->uid), ); $rows[] = array( 'data' => array( // Cells. array('class' => array('icon')), $this->t($dblog->type), $this->dateFormatter->format($dblog->timestamp, 'short'), $message, array('data' => $username), array('data' => array('#markup' => $dblog->link)), ), // Attributes for table row. 'class' => array(Html::getClass('dblog-' . $dblog->type), $classes[$dblog->severity]), ); } $build['dblog_table'] = array( '#type' => 'table', '#header' => $header, '#rows' => $rows, '#attributes' => array('id' => 'admin-dblog', 'class' => array('admin-dblog')), '#empty' => $this->t('No log messages available.'), '#attached' => array( 'library' => array('dblog/drupal.dblog'), ), ); $build['dblog_pager'] = array('#type' => 'pager'); return $build; }
Please login to continue.