You are here

public static function AdminAuditTrailStorage::getSearchData in Admin Audit Trail 1.0.x

Display event data listing.

Parameters

array $getData: Filter to display data.

array $header: Data sorting type.

int $limit: Limit to display data.

Return value

array The result to display.

1 call to AdminAuditTrailStorage::getSearchData()
OverviewForm::buildForm in src/OverviewForm.php
Form constructor.

File

src/AdminAuditTrailStorage.php, line 23

Class

AdminAuditTrailStorage
Controller class for admin audit trail required special handling for events.

Namespace

Drupal\admin_audit_trail

Code

public static function getSearchData(array $getData, array $header, $limit = NULL) {
  $db = \Drupal::database();
  $query = $db
    ->select('admin_audit_trail', 'e');
  $query
    ->fields('e');
  $table_sort = $query
    ->extend('Drupal\\Core\\Database\\Query\\TableSortExtender')
    ->orderByHeader($header);
  $pager = $table_sort
    ->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender')
    ->limit($limit);

  // Apply filters.
  if (!empty($getData['type'])) {
    $query
      ->condition('type', $getData['type']);
    if (!empty($getData['operation'])) {
      $query
        ->condition('operation', $getData['operation']);
    }
  }
  if (!empty($getData['id'])) {
    $query
      ->condition('ref_numeric', $getData['id']);
  }
  if (!empty($getData['ip'])) {
    $query
      ->condition('ip', $getData['ip']);
  }
  if (!empty($getData['name'])) {
    $query
      ->condition('ref_char', $getData['name']);
  }
  if (!empty($getData['path'])) {
    $query
      ->condition('path', '%' . \Drupal::database()
      ->escapeLike($getData['path']) . '%', 'LIKE');
  }
  if (!empty($getData['keyword'])) {
    $query
      ->condition('description', '%' . \Drupal::database()
      ->escapeLike($getData['keyword']) . '%', 'LIKE');
  }
  if (!empty($getData['user'])) {
    $query
      ->condition('uid', $getData['user']);
  }
  $result = $pager
    ->execute();
  return $result;
}