You are here

function share42_field_extra_fields in Share42 - social sharing buttons 7.2

Implements hook_field_extra_fields().

3 calls to share42_field_extra_fields()
share42_form_field_ui_display_overview_form_alter in ./share42.module
Implements hook_form_FORM_ID_alter().
_share42_field_formatter_settings_form in ./share42.module
Pseudo hook_field_formatter_settings_form().
_share42_field_formatter_settings_summary in ./share42.module
Pseudo hook_field_formatter_settings_summary().

File

./share42.module, line 81
Main file for the Share42 module.

Code

function share42_field_extra_fields($get_defaults = FALSE) {
  $defaults = array(
    'label' => t('Share42'),
    'description' => t('Share42 widget.'),
    'weight' => 100,
    'settings' => array(
      'image_field' => 'field_image',
      'image_style' => 'thumbnail',
      'description' => '',
    ),
  );
  if ($get_defaults) {
    return array(
      'extra_fields' => array(
        'display' => array(
          'share42' => $defaults,
        ),
      ),
    );
  }
  $extra = array();
  foreach (entity_get_info() as $entity_type => $entity_info) {
    foreach (array_keys($entity_info['bundles']) as $bundle) {
      $extra[$entity_type][$bundle]['display']['share42'] = $defaults;

      // Hide it by default (if there is no info about our extra field in field bundle settings).
      $field_bundle_setting = field_bundle_settings($entity_type, $bundle);
      if (empty($field_bundle_setting['extra_fields']['display']['share42'])) {

        // Prepare all entity type view modes.
        $view_modes = array_keys($entity_info['view modes']);
        if (!in_array('default', $view_modes)) {
          $view_modes[] = 'default';
        }
        foreach ($view_modes as $view_mode) {
          $field_bundle_setting['extra_fields']['display']['share42'][$view_mode] = array(
            'visible' => FALSE,
            'weight' => $defaults['weight'],
          );
        }
        field_bundle_settings($entity_type, $bundle, $field_bundle_setting);
      }
    }
  }
  return $extra;
}