function registration_event_count in Entity Registration 8
Same name and namespace in other branches
- 8.2 registration.module \registration_event_count()
- 7.2 registration.module \registration_event_count()
- 7 registration.module \registration_event_count()
Determines current number of spaces filled for a host entity.
Parameters
string $entity_type: The host entity type.
int $entity_id: The host entity ID.
int $registration_id: The registration ID. If specified, exclude identified registration from count.
Return value
int The number of spaces remaining for a host entity.
See also
5 calls to registration_event_count()
- registration_form in includes/
registration.forms.inc - Form callback: create or edit a registration.
- registration_handler_field_entity_capacity_used::render in src/
registration_handler_field_entity_capacity_used.php - registration_handler_field_entity_capacity_used::render in modules/
registration_views/ includes/ registration_handler_field_entity_capacity_used.inc - registration_has_room in ./
registration.module - Determines if a host entity has spaces remaining.
- registration_registrations_page in ./
registration.module - Page callback: Show a list of registrations for a host entity.
File
- ./
registration.module, line 778
Code
function registration_event_count($entity_type, $entity_id, $registration_id = NULL, $reset = FALSE) {
$count =& drupal_static(__FUNCTION__ . '_' . $entity_type . '_' . $entity_id . '_' . $registration_id, FALSE);
if (!$count || $reset) {
$query = db_select('registration', 'r');
$query
->addExpression('sum(count)', 'count');
$query
->condition('entity_id', $entity_id);
$query
->condition('entity_type', $entity_type);
if ($registration_id != NULL) {
$query
->condition('registration_id', $registration_id, '<>');
}
$active_held_states = registration_states(array(
'held' => TRUE,
'active' => TRUE,
));
if (!empty($active_held_states)) {
$query
->condition('state', $active_held_states, 'IN');
}
$result = $query
->execute();
$count = $result
->fetchField();
$count = $count == '' ? 0 : $count;
}
// Allow other mods to override count.
$settings = registration_entity_settings($entity_type, $entity_id);
$context = array(
'entity_type' => $entity_type,
'entity_id' => $entity_id,
'registration_id' => $registration_id,
'settings' => $settings,
);
\Drupal::moduleHandler()
->alter('registration_event_count', $count, $context);
return $count;
}