You are here

function record_shorten_records_table in Shorten URLs 8.2

Same name and namespace in other branches
  1. 8 modules/record_shorten/record_shorten.module \record_shorten_records_table()
  2. 6 record_shorten.module \record_shorten_records_table()
  3. 7.2 record_shorten.module \record_shorten_records_table()
  4. 7 record_shorten.module \record_shorten_records_table()

Builds a list of shortened URLs.

1 call to record_shorten_records_table()
DefaultController::page in modules/record_shorten/src/Controller/DefaultController.php
Page build for Record Shorten.

File

modules/record_shorten/record_shorten.module, line 47

Code

function record_shorten_records_table() {

  // @TODO : Views display plugin needs to be fixed.
  // if (\Drupal::moduleHandler()->moduleExists('views')) {
  //   return views_embed_view('record_shorten', 'default');
  // }
  $header = [
    t('Original'),
    t('Short'),
    t('Service'),
  ];
  $rows = [];

  // SELECT original, short, service FROM {record_shorten} ORDER BY sid DESC.
  $result = \Drupal::database()
    ->select('record_shorten', 'rs')
    ->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender')
    ->limit(10)
    ->fields('rs', [
    'original',
    'short',
    'service',
  ])
    ->orderBy('rs.sid', 'DESC')
    ->execute();
  foreach ($result as $row) {

    // Sigh... DBTNG doesn't have a ->fetchAsNonAssocArray()
    $rows[] = [
      Html::escape($row->original),
      Html::escape($row->short),
      Html::escape($row->service),
    ];
  }
  $table = [
    '#type' => 'table',
    '#header' => $header,
    '#rows' => $rows,
  ];

  // Render Table.
  $output = \Drupal::service('renderer')
    ->render($table);

  // Finally add Pager.
  $pager = [
    '#type' => 'pager',
  ];
  $output .= \Drupal::service('renderer')
    ->render($pager);
  return $output;
}