You are here

public function ContactSubtype::getArgument in CiviCRM Entity 8.3

Return the default argument.

This needs to be overridden by every default argument handler to properly do what is needed.

Overrides ArgumentDefaultPluginBase::getArgument

File

src/Plugin/views/argument_default/ContactSubtype.php, line 108

Class

ContactSubtype
Default argument plugin to extract the current user's civicrm contact subtype

Namespace

Drupal\civicrm_entity\Plugin\views\argument_default

Code

public function getArgument() {
  $current_user_contact_subtype = $this->options['no_subtype'] == 'none' ? '<none>' : 'all';
  $results = $this->civicrmApi
    ->get('UFMatch', [
    'sequential' => 1,
    'id' => $this->currentUser
      ->id(),
  ]);
  if (!empty($results) && !empty($results[0]['contact_id'])) {
    $cid = $results[0]['contact_id'];
    $results = $this->civicrmApi
      ->get('contact', [
      'sequential' => 1,
      'return' => [
        'contact_sub_type',
      ],
      'id' => $cid,
    ]);
    if (!empty($results) && !empty($results[0]['contact_sub_type'])) {

      // Get subtypes for argument.
      if ($this->options['multiple_subtype'] == 'first') {

        // Match first.
        $current_user_contact_subtype = reset($results[0]['contact_sub_type']);
      }
      else {

        // Match any.
        $current_user_contact_subtype = implode('+', $results[0]['contact_sub_type']);
      }
    }
  }
  return $current_user_contact_subtype;
}