public function ReviewsController::reviews in Reviews 1.0.x
Returns a renderable array for the reviews page of a node.
1 string reference to 'ReviewsController::reviews'
File
- src/
Controller/ ReviewsController.php, line 38
Class
- ReviewsController
- Controller for our dynamic tab.
Namespace
Drupal\reviews\ControllerCode
public function reviews(NodeInterface $node) {
// Get the config for the reviews module, we need the sort order.
$config = \Drupal::config('reviews.settings');
$sort = $config
->get('reviews.sort_order') === 'newest' ? 'desc' : 'asc';
// Get review entities for the given node.
$review_ids = \Drupal::entityQuery('review')
->condition('node_id', $node
->id(), '=')
->condition('status', 1)
->sort('created', $sort)
->execute();
if (!empty($review_ids)) {
$entityTypeManager = ControllerBase::entityTypeManager();
$reviews = $entityTypeManager
->getStorage('review')
->loadMultiple($review_ids);
$view_builder = $entityTypeManager
->getViewBuilder('review');
$build = [];
foreach ($reviews as $key => $review) {
$view = $view_builder
->view($review);
$build['review_' . uniqid()] = $view;
}
}
else {
$build = [
'#theme' => 'no_reviews',
];
}
$build['#attached']['library'][] = 'reviews/reviews';
return $build;
}