You are here

function social_profile_fields_preprocess_field in Open Social 10.2.x

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_preprocess_field()
  2. 10.3.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_preprocess_field()
  3. 10.0.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_preprocess_field()
  4. 10.1.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_preprocess_field()

Implements hook_preprocess_field().

File

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

Code

function social_profile_fields_preprocess_field(&$variables) {
  $formatter = $variables['element']['#formatter'];
  if (in_array($formatter, [
    'address_plain',
    'address_default',
  ])) {
    $entity = $variables['element']['#object'];
    if ($entity && $entity instanceof ProfileInterface && $entity
      ->bundle() === 'profile') {
      $config = \Drupal::config('social_profile_fields.settings');
      switch ($formatter) {
        case 'address_plain':
          if (isset($variables['items'][0]['content']['#locality']) && !$config
            ->get('profile_address_field_city')) {
            $variables['items'][0]['content']['#locality'] = NULL;
          }
          if (isset($variables['items'][0]['content']['#address_line1']) && !$config
            ->get('profile_address_field_address')) {
            $variables['items'][0]['content']['#address_line1'] = NULL;
          }
          if (isset($variables['items'][0]['content']['#postal_code']) && !$config
            ->get('profile_address_field_postalcode')) {
            $variables['items'][0]['content']['#postal_code'] = NULL;
          }
          if (isset($variables['items'][0]['content']['#administrative_area']) && !$config
            ->get('profile_address_field_administrative_area')) {
            $variables['items'][0]['content']['#administrative_area'] = NULL;
          }
          break;
        case 'address_default':
          if (isset($variables['items'][0]['content']['locality']['#value']) && !$config
            ->get('profile_address_field_city')) {
            $variables['items'][0]['content']['locality']['#value'] = '';
          }
          if (isset($variables['items'][0]['content']['address_line1']['#value']) && !$config
            ->get('profile_address_field_address')) {
            $variables['items'][0]['content']['address_line1']['#value'] = '';
          }
          if (isset($variables['items'][0]['content']['postal_code']['#value']) && !$config
            ->get('profile_address_field_postalcode')) {
            $variables['items'][0]['content']['postal_code']['#value'] = '';
          }
          if (isset($variables['items'][0]['content']['administrative_area']['#value']) && !$config
            ->get('profile_address_field_administrative_area')) {
            $variables['items'][0]['content']['administrative_area']['#value'] = '';
          }
          break;
      }
    }
  }
}