You are here

function uptolike_field_extra_fields in Uptolike share buttons 7

Implements hook_field_extra_fields().

3 calls to uptolike_field_extra_fields()
uptolike_form_field_ui_display_overview_form_alter in ./uptolike.module
Implements hook_form_FORM_ID_alter() for field_ui_display_overview_form().
_uptolike_field_formatter_settings_form in ./uptolike.module
Pseudo hook_field_formatter_settings_form().
_uptolike_field_formatter_settings_summary in ./uptolike.module
Pseudo hook_field_formatter_settings_summary().

File

./uptolike.module, line 288
Main file for Uptolike module.

Code

function uptolike_field_extra_fields($get_defaults = FALSE) {
  $uptolike = array(
    'label' => t('Uptolike'),
    'description' => t('Uptolike share buttons'),
    'weight' => 50,
    'settings' => array(
      'preset' => 'default_preset',
    ),
  );
  if ($get_defaults) {
    return array(
      'extra_fields' => array(
        'display' => array(
          'uptolike' => $uptolike,
        ),
      ),
    );
  }
  $extra = array();
  $uptolike_entities = variable_get('uptolike_entities', array(
    'node',
  ));
  $uptolike_entities = array_filter($uptolike_entities);
  foreach (entity_get_info() as $entity_type => $entity) {

    // Add extra field only for selected entities.
    if (in_array($entity_type, $uptolike_entities)) {
      foreach (array_keys($entity['bundles']) as $bundle) {
        $extra[$entity_type][$bundle]['display']['uptolike'] = $uptolike;
        $field_bundle_setting = field_bundle_settings($entity_type, $bundle);
        $view_modes = $field_bundle_setting['view_modes'];
        $view_modes = array_keys($view_modes);

        // Hide Uptolike extra field by default.
        if (empty($field_bundle_setting['extra_fields']['display']['uptolike'])) {
          $settings = array(
            'visible' => FALSE,
            'weight' => $uptolike['weight'],
          );
          foreach ($view_modes as $view_mode) {
            $field_bundle_setting['extra_fields']['display']['uptolike'][$view_mode] = $settings;
          }
          field_bundle_settings($entity_type, $bundle, $field_bundle_setting);
        }
      }
    }
  }
  return $extra;
}