You are here

public function PhotosAlbumsRecentController::contentOverview in Album Photos 8.4

Returns content for recent albums.

Return value

array An array containing markup for the page content.

1 string reference to 'PhotosAlbumsRecentController::contentOverview'
photos.routing.yml in ./photos.routing.yml
photos.routing.yml

File

src/Controller/PhotosAlbumsRecentController.php, line 70

Class

PhotosAlbumsRecentController
View recent albums.

Namespace

Drupal\photos\Controller

Code

public function contentOverview() {

  // @todo a lot of duplicate code can be consolidated in these controllers.
  $query = $this->connection
    ->select('node', 'n')
    ->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender');
  $query
    ->join('photos_album', 'p', 'p.pid = n.nid');
  $query
    ->fields('n', [
    'nid',
  ]);
  $query
    ->orderBy('n.nid', 'DESC');
  $query
    ->limit(10);
  $query
    ->addTag('node_access');
  $results = $query
    ->execute();
  $output = '';
  foreach ($results as $result) {
    $node = $this->entityTypeManager
      ->getStorage('node')
      ->load($result->nid);
    $node_view = $this->entityTypeManager
      ->getViewBuilder('node')
      ->view($node, 'full');
    $output .= $this->renderer
      ->render($node_view);
  }
  if ($output) {
    $pager = [
      '#type' => 'pager',
    ];
    $output .= $this->renderer
      ->render($pager);
  }
  else {
    $output .= $this
      ->t('No albums have been created yet.');
  }
  return [
    '#markup' => $output,
  ];
}