You are here

function date_restrictions_get_bundle_instances in Date Restrictions 7

Returns instances of given types for the specified bundles.

2 calls to date_restrictions_get_bundle_instances()
date_restrictions_get_bundle_instances_as_options in ./date_restrictions.module
Builds a list of options representing fields.
date_restrictions_host_entity_form_alter in modules/host_entity/date_restrictions_host_entity.module
Implements hook_form_alter().

File

./date_restrictions.module, line 196

Code

function date_restrictions_get_bundle_instances($bundles, $field_types = array(
  'date',
  'datetime',
  'datestamp',
)) {
  if (!is_array($field_types)) {
    $field_types = array(
      $field_types,
    );
  }
  $instances = array();
  foreach ($bundles as $entity_type => $_bundles) {
    foreach ($_bundles as $bundle) {
      $query = db_select('field_config_instance', 'fci');
      $query
        ->join('field_config', 'fc', 'fci.field_name = fc.field_name');
      $query
        ->fields('fci', array(
        'field_name',
      ))
        ->condition('fc.type', $field_types, 'IN')
        ->condition('fci.entity_type', $entity_type)
        ->condition('fci.bundle', $bundle)
        ->condition('fci.deleted', 0);
      $result = $query
        ->execute();
      while ($fci = $result
        ->fetchObject()) {
        $instance = field_info_instance($entity_type, $fci->field_name, $bundle);

        // Sanitize restrictions settings.
        $restrictions = isset($instance['settings']['restrictions']) ? $instance['settings']['restrictions'] : NULL;
        $instance['settings']['restrictions'] = date_restrictions_settings($restrictions);
        $restrictions = isset($instance['settings']['restrictions2']) ? $instance['settings']['restrictions2'] : NULL;
        $instance['settings']['restrictions2'] = date_restrictions_settings($restrictions);
        $instances["{$entity_type}:{$bundle}:{$fci->field_name}"] = $instance;
      }
    }
  }
  return $instances;
}