class ReviewsController in Reviews 1.0.x
Controller for our dynamic tab.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, RedirectDestinationTrait, StringTranslationTrait
- class \Drupal\reviews\Controller\ReviewsController
Expanded class hierarchy of ReviewsController
File
- src/
Controller/ ReviewsController.php, line 12
Namespace
Drupal\reviews\ControllerView source
class ReviewsController extends ControllerBase {
/**
* Route title callback.
*
* @param \Drupal\node\NodeInterface $node
* The node entity.
*
* @return string
* The title.
*/
public function getReviewsPageTitle(NodeInterface $node) {
// Get review entities for the given node.
$query = \Drupal::entityQuery('review')
->condition('node_id', $node
->id(), '=')
->condition('status', 1)
->execute();
$review_count = count($query);
return $this
->t('Reviews (@review_count)', [
'@review_count' => $review_count,
]);
}
/**
* Returns a renderable array for the reviews page of a node.
*/
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;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
46 |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function | Returns a redirect response object for the specified route. | |
ControllerBase:: |
protected | function | Returns the state storage service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
ReviewsController:: |
public | function | Route title callback. | |
ReviewsController:: |
public | function | Returns a renderable array for the reviews page of a node. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |