| Versions | |
|---|---|
| 7 | 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:
<?php
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,
'visibility' => Whether the pseudo-field is visible or hidden,
),
'full' => ...
),
'extra_field_2' => ...
),
),
);
?>
$entity_type The type of $entity; e.g. 'node' or 'user'.
$bundle The bundle name.
$settings (optional) The settings to store.
If no $settings are passed, the current settings are returned.
drupal/
<?php
function field_bundle_settings($entity_type, $bundle, $settings = NULL) {
$stored_settings = variable_get('field_bundle_settings', array());
if (isset($settings)) {
$stored_settings[$entity_type][$bundle] = $settings;
variable_set('field_bundle_settings', $stored_settings);
field_info_cache_clear();
}
else {
$settings = isset($stored_settings[$entity_type][$bundle]) ? $stored_settings[$entity_type][$bundle] : array();
$settings += array(
'view_modes' => array(),
'extra_fields' => array(),
);
$settings['extra_fields'] += array(
'form' => array(),
'display' => array(),
);
return $settings;
}
}
?>