field_bundle_settings

7 field.module field_bundle_settings($entity_type, $bundle, $settings = NULL)
8 field.module field_bundle_settings($entity_type, $bundle, $settings = NULL)

Gets or sets administratively defined bundle settings.

For each bundle, settings are provided as a nested array with the following structure:

array(
  'view_modes' => array(
    // One sub-array per view mode for the entity type:
    'full' => array(
      'custom_display' => Whether the view mode uses custom display
        settings or settings of the 'default' mode,
    ),
    'teaser' => ...
  ),
  'extra_fields' => array(
    'form' => array(
      // One sub-array per pseudo-field in displayed entities:
      'extra_field_1' => array(
        'weight' => The weight of the pseudo-field,
      ),
      'extra_field_2' => ...
    ),
    'display' => array(
      // One sub-array per pseudo-field in displayed entities:
      'extra_field_1' => array(
        // One sub-array per view mode for the entity type, including
        // the 'default' mode:
        'default' => array(
          'weight' => The weight of the pseudo-field,
          'visible' => TRUE if the pseudo-field is visible, FALSE if hidden,
        ),
        'full' => ...
      ),
      'extra_field_2' => ...
    ),
  ),
);

Parameters

$entity_type: The type of $entity; e.g., 'node' or 'user'.

$bundle: The bundle name.

$settings: (optional) The settings to store.

Return value

If no $settings are passed, the current settings are returned.

Related topics

5 calls to field_bundle_settings()

1 string reference to 'field_bundle_settings'

File

modules/field/field.module, line 605
Attach custom data fields to Drupal entities.

Code

function field_bundle_settings($entity_type, $bundle, $settings = NULL) {
  if (isset($settings)) {
    variable_set('field_bundle_settings_' . $entity_type . '__' . $bundle, $settings);
    field_info_cache_clear();
  }
  else {
    $settings = variable_get('field_bundle_settings_' . $entity_type . '__' . $bundle, array());
    $settings += array(
      'view_modes' => array(), 
      'extra_fields' => array(),
    );
    $settings['extra_fields'] += array(
      'form' => array(), 
      'display' => array(),
    );

    return $settings;
  }
}

Comments

Better Code Example ...

To set the 'visibility' of an 'extra' field using field_bundle_settings(),
use this :

<?php
$extra_field
[$view_mode]['visible'] = TRUE; // or FALSE
?>

and NOT this (as the above example suggests):
<?php
$extra_field
[$view_mode]['visibility'] = 'visible';// looks like values are 'visible' or 'hidden'
?>

See field_ui_display_overview_form_submit() for a better example.

Also reported in the Drupal documentation issue queue.

Here is another example to

Here is another example to hide the "History" in the user profile page:

<?php
$settings
= array(
       
'extra_fields' => array(
           
'display' => array(
               
// One sub-array per pseudo-field in displayed entities:
               
'summary' => array(
                   
// One sub-array per view mode for the entity type, including
                    // the 'default' mode:
                   
'default' => array(
                       
'visible' => FALSE,
                    ),
                ),
            ),
        ),
    );
   
   
field_bundle_settings("user", "user", $settings);
?>

Login or register to post comments