You are here

function social_profile_fields_social_user_export_plugin_info_alter in Open Social 8.8

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()
  2. 8.3 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()
  3. 8.4 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()
  4. 8.5 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()
  5. 8.6 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()
  6. 8.7 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()
  7. 10.3.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()
  8. 10.0.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()
  9. 10.1.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()
  10. 10.2.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_social_user_export_plugin_info_alter()

Remove user export plugins for fields which are disabled.

Parameters

array $plugins: An array of all the existing plugin definitions, passed by reference.

See also

\Drupal\social_user_export\UserExportPluginManager

File

modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module, line 205
The social profile fields module file.

Code

function social_profile_fields_social_user_export_plugin_info_alter(array &$plugins) {

  /** @var \Drupal\profile\Entity\ProfileType $profile_type */
  foreach (ProfileType::loadMultiple() as $profile_type) {
    $type = $profile_type
      ->id();

    /** @var \Drupal\field\Entity\FieldConfig $field_config */
    foreach (\Drupal::service('social_profile_fields.helper')
      ->getProfileFields($type) as $field) {
      $config = \Drupal::config('social_profile_fields.settings');
      $setting_value = $config
        ->get($field['id']);
      if (isset($setting_value) && !$setting_value) {
        $plugin_ids_for_fields = \Drupal::service('social_profile_fields.helper')
          ->getUserExportPluginIdForField($field['id']);
        if (!empty($plugin_ids_for_fields)) {
          foreach ($plugin_ids_for_fields as $plugin_id) {
            if ($plugins[$plugin_id]) {
              unset($plugins[$plugin_id]);
            }
          }
        }
      }
    }
  }
}