| 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;
}
}
Login or register to post comments
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);
?>