LinkAddressfield.php in Conditional Fields 4.x        
                          
                  
                        
  
  
  
  
File
  src/Plugin/conditional_fields/handler/extra_contrib/LinkAddressfield.php
  
    View source  
  <?php
namespace Drupal\conditional_fields\Plugin\conditional_fields\handler\extra_contrib;
use Drupal\conditional_fields\ConditionalFieldsHandlerBase;
use Drupal\conditional_fields\ConditionalFieldsInterface;
class LinkAddressfield extends ConditionalFieldsHandlerBase {
  
  public function statesHandler($field, $field_info, $options) {
    $state = [];
    if ($options['values_set'] != ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_WIDGET) {
      return $state;
    }
    $regex = $options['values_set'] == ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_REGEX;
    $keys = [];
    if ($field['#handlers']['address']) {
      $keys += [
        'country',
        'thoroughfare',
        'premise',
        'postal_code',
        'locality',
        'administrative_area',
      ];
    }
    if ($field['#handlers']['organisation']) {
      $keys += [
        'organisation_name',
      ];
    }
    if ($field['#handlers']['name-oneline']) {
      $keys += [
        'name_line',
      ];
    }
    elseif ($field['#handlers']['name-full']) {
      $keys += [
        'first_name',
        'last_name',
      ];
    }
    $addressfield_selectors = [];
    foreach ($keys as $key) {
      $addressfield_selectors[str_replace('%key', $key, $options['selector'])] = [
        'value' => $regex ? $options['value'] : $options['value'][0][$key],
      ];
    }
    $state = [
      $options['state'] => $addressfield_selectors,
    ];
    return $state;
  }
}
 
Classes
        
  
  
      
      
         
      
                  
            Name            | 
                  
            Description           | 
              
    
    
          
                  | 
            LinkAddressfield           | 
                  
            Provides states handler for links provided by the Addressfield module.           |