function _bat_calendar_reference_units_potential_references in Booking and Availability Management Tools for Drupal 7
Parameters
array $field:
array $options:
Return value
array
1 call to _bat_calendar_reference_units_potential_references()
- bat_calendar_reference_units_potential_references in modules/
bat_calendar_reference/ bat_calendar_reference.module - Retrieves an array of candidate referenceable booking units.
File
- modules/
bat_calendar_reference/ bat_calendar_reference.module, line 387 - Defines a field type for referencing event information.
Code
function _bat_calendar_reference_units_potential_references($field, $options) {
// Avoid useless work.
if (!isset($field['settings']['referenceable_unit_types'])) {
return array();
}
if (!count($field['settings']['referenceable_unit_types'])) {
return array();
}
$query = db_select('bat_units', 'u');
$unit_unit_id_alias = $query
->addField('u', 'unit_id');
$unit_name_alias = $query
->addField('u', 'name', 'name');
$unit_type_alias = $query
->addField('u', 'type', 'type');
if (is_array($field['settings']['referenceable_unit_types'])) {
$referenceable_unit_types = array_filter($field['settings']['referenceable_unit_types']);
if (!empty($referenceable_unit_types)) {
$query
->condition('u.type_id', array_filter($field['settings']['referenceable_unit_types']), 'IN');
}
}
if ($options['string'] !== '') {
switch ($options['match']) {
case 'contains':
$query
->condition('u.name', '%' . $options['string'] . '%', 'LIKE');
break;
case 'starts_with':
$query
->condition('u.name', $options['string'] . '%', 'LIKE');
break;
case 'equals':
default:
// No match type or incorrect match type: use "=".
$query
->condition('u.name', $options['string']);
break;
}
}
if ($options['ids']) {
$query
->condition('u.unit_id', $options['ids'], 'IN');
}
if ($options['limit']) {
$query
->range(0, $options['limit']);
}
$query
->orderBy($unit_name_alias)
->orderBy($unit_type_alias);
$result = $query
->execute()
->fetchAll();
$references = array();
foreach ($result as $unit) {
$references[$unit->unit_id] = array(
'title' => $unit->name,
'rendered' => check_plain($unit->name),
);
}
return $references;
}