function rng_views_views_query_alter in RNG - Events and Registrations 8.2
Same name and namespace in other branches
- 3.x rng_views/rng_views.module \rng_views_views_query_alter()
Implements hook_views_query_alter().
File
- rng_views/
rng_views.module, line 191
Code
function rng_views_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
/** @var \Drupal\rng\EventManager $event_manager */
$event_manager = \Drupal::service('rng.event_manager');
$event_types = $event_manager
->getEventTypes();
foreach (array_keys($event_types) as $entity_type) {
if ($view
->id() == "rng_registrations_{$entity_type}") {
/** @var \Drupal\Core\Routing\RouteMatchInterface $route_match */
$route_match = \Drupal::service('current_route_match');
/** @var \Drupal\Core\Entity\EntityInterface $event */
if ($event = $route_match
->getParameter($entity_type)) {
if ($meta = $event_manager
->getMeta($event)) {
// If we waitlist and have a registration limit, set some defaults.
if ($meta
->allowWaitList() && $meta
->getRegistrantsMaximum() > 0) {
if ($view
->getDisplay()->display['id'] == 'page_1') {
$query
->setLimit($meta
->getRegistrantsMaximum());
}
if ($view
->getDisplay()->display['id'] == 'attachment_1') {
$view
->setOffset($meta
->getRegistrantsMaximum());
}
}
}
}
}
}
}