Overview

Namespaces

  • Ctct
    • Auth
    • Components
      • Account
      • Activities
      • Contacts
      • EmailMarketing
      • Tracking
    • Exceptions
    • Services
  • PHP

Classes

  • Activity
  • ActivityError
  • AddContacts
  • AddContactsImportData
  • ExportContacts
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: namespace Ctct\Components\Activities;
  3: 
  4: use Ctct\Components\Component;
  5: use Ctct\Util\Config;
  6: use Ctct\Components\Activities\ActivityError;
  7: use Ctct\Components\Activities\AddContactsImportData;
  8: use Ctct\Exceptions\IllegalArgumentException;
  9: 
 10: class AddContacts extends Component
 11: {
 12:     public $import_data = array();
 13:     public $lists = array();
 14:     public $column_names = array();
 15: 
 16:     /**
 17:      * Represents an AddContact activity
 18:      *
 19:      * @package     Components
 20:      * @subpackage     Activities
 21:      * @author         Constant Contact
 22:      */
 23:     public function __construct(Array $contacts, Array $lists, Array $columnNames = array())
 24:     {
 25:         if (!empty($contacts)) {
 26:             if ($contacts[0] instanceof AddContactsImportData) {
 27:                 $this->import_data = $contacts;
 28:             } else {
 29:                 $msg = sprintf(Config::get('errors.id_or_object'), "AddContactsImportData");
 30:                 throw new IllegalArgumentException($msg);
 31:             }
 32:         }
 33: 
 34:         $this->lists = $lists;
 35:         
 36:         if (empty($columnNames)) {
 37:             $usedColumns[] = Config::get('activities_columns.email');
 38:             $contact = $contacts[0];
 39: 
 40:             if (isset($contact->first_name)) {
 41:                 $usedColumns[] = Config::get('activities_columns.first_name');
 42:             }
 43:             if (isset($contact->middle_name)) {
 44:                 $usedColumns[] = Config::get('activities_columns.middle_name');
 45:             }
 46:             if (isset($contact->last_name)) {
 47:                 $usedColumns[] = Config::get('activities_columns.last_name');
 48:             }
 49:             if (isset($contact->job_title)) {
 50:                 $usedColumns[] = Config::get('activities_columns.job_title');
 51:             }
 52:             if (isset($contact->company_name)) {
 53:                 $usedColumns[] = Config::get('activities_columns.company_name');
 54:             }
 55:             if (isset($contact->work_phone)) {
 56:                 $usedColumns[] = Config::get('activities_columns.work_phone');
 57:             }
 58:             if (isset($contact->home_phone)) {
 59:                 $usedColumns[] = Config::get('activities_columns.home_phone');
 60:             }
 61: 
 62:             // Addresses
 63:             if (!empty($contact->addresses)) {
 64:                 $address = $contact->addresses[0];
 65:                 if (isset($address->line1)) {
 66:                     $usedColumns[] = Config::get('activities_columns.address1');
 67:                 }
 68:                 if (isset($address->line2)) {
 69:                     $usedColumns[] = Config::get('activities_columns.address2');
 70:                 }
 71:                 if (isset($address->line3)) {
 72:                     $usedColumns[] = Config::get('activities_columns.address3');
 73:                 }
 74:                 if (isset($address->city)) {
 75:                     $usedColumns[] = Config::get('activities_columns.city');
 76:                 }
 77:                 if (isset($address->state_code)) {
 78:                     $usedColumns[] = Config::get('activities_columns.state');
 79:                 }
 80:                 if (isset($address->state_province)) {
 81:                     $usedColumns[] = Config::get('activities_columns.state_province');
 82:                 }
 83:                 if (isset($address->country)) {
 84:                     $usedColumns[] = Config::get('activities_columns.country');
 85:                 }
 86:                 if (isset($address->postal_code)) {
 87:                     $usedColumns[] = Config::get('activities_columns.postal_code');
 88:                 }
 89:                 if (isset($address->sub_postal_code)) {
 90:                     $usedColumns[] = Config::get('activities_columns.sub_postal_code');
 91:                 }
 92:             }
 93: 
 94:             // Custom Fields
 95:             if (!empty($contact->custom_fields)) {
 96:                 foreach ($contact->custom_fields as $customField) {
 97:                     if (strpos($customField->name, 'custom_field_') !== false) {
 98:                         $customFieldNumber = substr($customField->name, 13);
 99:                         $usedColumns[] = Config::get('activities_columns.custom_field_' . $customFieldNumber);
100:                     }
101:                 }
102:             }
103:             $this->column_names = $usedColumns;
104:         }
105:     }
106: 
107:     /**
108:      * Turn the object into json, removing any extra fields
109:      * @return string
110:      */
111:     public function toJson()
112:     {
113:         foreach ($this->import_data as $contact) {
114:             foreach ($contact as $key => $value) {
115:                 if ($value == null) {
116:                     unset($contact->$key);
117:                 }
118:             }
119:         }
120:         return json_encode($this);
121:     }
122: }
123: 
Appconnect PHP SDK API documentation generated by ApiGen 2.8.0