You are here

function availability_calendar_get_states in Availability Calendars 7.3

Same name and namespace in other branches
  1. 7.5 availability_calendar.inc \availability_calendar_get_states()
  2. 7.4 availability_calendar.inc \availability_calendar_get_states()

Returns an array of records (or labels) of states keyed by sid.

The results can be processed or filtered based on arguments passed in:

  • bool: filter on is_available
  • string: process array based on the value of the string: 'label': only return label, not a record array 'bool': convert is_available item to a real bool
  • array: filter on sid (array keys should be a list of the allowed sid's)

Multiple filters/processors can be passed.

Parameters

boolean|string ...: Processing or filtering to be done on the list of states.

Return value

array Array of records keyed by the sid.

17 calls to availability_calendar_get_states()
AvailabilityCalendarCssGenerator::createStatesCss in ./availability_calendar.styles.inc
AvailabilityCalendarCssGenerator::createStatesRtlCss in ./availability_calendar.styles.inc
AvailabilityCalendarStylesFormBuilder::fieldsetStates in ./availability_calendar.styles.inc
Helper method to return the fieldset for the states styles.
AvailabilityCalendarStylesFormValidator::fieldsetStates in ./availability_calendar.styles.inc
availability_calendar_add_base_js in ./availability_calendar.inc
Adds the necessary javascript.

... See full list

1 string reference to 'availability_calendar_get_states'
availability_calendar_update_states in ./availability_calendar.inc
Updates the set of states.

File

./availability_calendar.inc, line 236
General helper methods for Availability Calendar

Code

function availability_calendar_get_states() {
  $states =& drupal_static(__FUNCTION__);
  if ($states === NULL) {
    $states = db_select('availability_calendar_state')
      ->fields('availability_calendar_state')
      ->orderBy('weight')
      ->execute()
      ->fetchAllAssoc('sid', PDO::FETCH_ASSOC);
  }
  $result = $states;
  foreach (func_get_args() as $arg) {
    if (is_bool($arg)) {

      // filter out non-available states
      $result = array_filter($result, $arg ? 'availability_calendar_filter_available' : 'availability_calendar_filter_non_available');
    }
    else {
      if (is_array($arg)) {

        // Filter out non-allowed states. If no states are passed in, all states
        // are allowed.
        if (!empty($arg)) {
          $result = array_intersect_key($result, $arg);
        }
      }
      else {
        array_walk($result, 'availability_calendar_convert_state', $arg);
      }
    }
  }
  return $result;
}