Skip to content

Instantly share code, notes, and snippets.

@doublejosh
Created October 13, 2015 19:02
Show Gist options
  • Select an option

  • Save doublejosh/6eedeface64c7d9fcbac to your computer and use it in GitHub Desktop.

Select an option

Save doublejosh/6eedeface64c7d9fcbac to your computer and use it in GitHub Desktop.
Bundle extra field
<?php
// tableau_sitewide_tweaks.install
/**
* Utility function to hide ANY newly created extra_fields.
*
* @param $entity_type string
* @param $bundle string
* @param $field_name string
*/
function tableau_sitewide_tweaks_hide_new_extra_field($entity_type, $bundle, $field_name) {
$settings = field_bundle_settings($entity_type, $bundle);
$settings_updated = FALSE;
$entity_info = entity_get_info($entity_type, $bundle);
$view_modes = array_keys($entity_info['view modes']);
if (!in_array('default', $view_modes)) {
$view_modes[] = 'default';
}
foreach ($view_modes as $view_mode) {
if (!isset($settings['extra_fields']['display'][$field_name][$view_mode])) {
$settings_updated = TRUE;
$settings['extra_fields']['display'][$field_name][$view_mode] = array(
'weight' => 10,
'visible' => FALSE,
);
}
}
if ($settings_updated) {
field_bundle_settings($entity_type, $bundle, $settings);
}
}
/**
* Default new extra field to hidden.
*/
function tableau_sitewide_tweaks_update_7174() {
foreach (node_type_get_types() as $bundle) {
tableau_sitewide_tweaks_hide_new_extra_field('node', $bundle->type, 'bundle_name');
}
}
// tableau_sitewide_tweaks.module
/**
* Implements hook_node_view().
*/
function tableau_sitewide_tweaks_node_view($node, $view_mode) {
// Set bundle name extra field.
$node->content['bundle_name'] = array('#markup' => node_type_get_name($node));
}
/**
* Implements hook_field_extra_fields().
*/
function tableau_sitewide_tweaks_field_extra_fields() {
foreach (node_type_get_types() as $bundle) {
$extra['node'][$bundle->type] = array (
'display' => array(
'bundle_name' => array(
'label' => t('Bundle label'),
'description' => t('Bundle name, as an extra field.'),
'weight' => -1,
)
)
);
}
return $extra;
}
// tableau_recommended.context.inc
'cck_blocks-field_recommend_override' => array(
'module' => 'cck_blocks',
'delta' => 'field_recommend_override',
'region' => 'content_below',
'weight' => '-1',
),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment