You are here

function biblio_create_fields_by_bundle in Bibliography Module 7.3

Attach fields to bundles.

Parameters

$bundles: Array with the bundles to process, or empty array to use all Biblio bundles.

9 calls to biblio_create_fields_by_bundle()
BiblioAddContributorTestCase::setUp in tests/AddContributor.test
Sets up a Drupal site for running functional and integration tests.
BiblioBibtexTestCase::setUp in tests/BibTex.test
Sets up a Drupal site for running functional and integration tests.
BiblioCiteProcTestCase::setUp in tests/CiteProc.test
Sets up a Drupal site for running functional and integration tests.
BiblioEndNoteTestCase::setUp in tests/EndNote.test
Sets up a Drupal site for running functional and integration tests.
BiblioImportPreventDuplicateTestCase::setUp in tests/ImportPreventDuplicates.test
Sets up a Drupal site for running functional and integration tests.

... See full list

1 string reference to 'biblio_create_fields_by_bundle'
biblio_ui_attach_biblio_fields_submit in modules/biblio_ui/biblio_ui.module
Submit handler; Attach biblio fields to selected biblio types.

File

./biblio.module, line 746
Maintains bibliographic lists.

Code

function biblio_create_fields_by_bundle($bundles = array(), $clear_cache = TRUE) {
  $entity_info = entity_get_info('biblio');
  $bundles = $bundles ? $bundles : array_keys($entity_info['bundles']);
  $fields_info = biblio_fields_info();
  foreach ($bundles as $bundle) {
    foreach ($fields_info as $field_name => $field_info) {
      if (in_array($field_name, array(
        'biblio_contributor_role',
        'biblio_contributor',
      ))) {
        continue;
      }
      if (!empty($field_info['bundles_info']) && isset($field_info['bundles_info'][$bundle])) {

        // Allow per bundle settings to override the instance's default settings.
        $field_info['instance'] = drupal_array_merge_deep($field_info['instance'], $field_info['bundles_info'][$bundle]);
        biblio_create_field($field_name, 'biblio', $bundle, $field_info, $clear_cache);
      }
      elseif (!isset($field_info['bundles_info'])) {
        biblio_create_field($field_name, 'biblio', $bundle, $field_info, $clear_cache);
      }
    }
  }
}