url_base = $this->url = $url; $this->api_key = $api_key; parent::__construct($url, $api_key, $api_user, $api_pass); } function version($version) { $this->version = (int)$version; if ($version == 2) { $this->url_base = $this->url_base . "/2"; } } function api($path, $post_data = array()) { // IE: "contact/view" $components = explode("/", $path); $component = $components[0]; if (count($components) > 2) { // IE: "contact/tag/add?whatever" // shift off the first item (the component, IE: "contact"). array_shift($components); // IE: convert to "tag_add?whatever" $method_str = implode("_", $components); $components = array($component, $method_str); } if (preg_match("/\?/", $components[1])) { // query params appended to method // IE: contact/edit?overwrite=0 $method_arr = explode("?", $components[1]); $method = $method_arr[0]; $params = $method_arr[1]; } else { // just a method provided // IE: "contact/view if ( isset($components[1]) ) { $method = $components[1]; $params = ""; } else { return "Invalid method."; } } // adjustments if ($component == "list") { // reserved word $component = "list_"; } elseif ($component == "branding") { $component = "design"; } elseif ($component == "sync") { $component = "contact"; $method = "sync"; } elseif ($component == "singlesignon") { $component = "auth"; } $class = ucwords($component); // IE: "contact" becomes "Contact" $class = "AC_" . $class; // IE: new Contact(); $add_tracking = false; if ($class == "AC_Tracking") $add_tracking = true; $class = new $class($this->version, $this->url_base, $this->url, $this->api_key); // IE: $contact->view() if ($add_tracking) { $class->track_email = $this->track_email; $class->track_actid = $this->track_actid; $class->track_key = $this->track_key; } if ($method == "list") { // reserved word $method = "list_"; } $class->debug = $this->debug; $response = $class->$method($params, $post_data); return $response; } } require_once("Account.class.php"); require_once("Auth.class.php"); require_once("Automation.class.php"); require_once("Campaign.class.php"); require_once("Contact.class.php"); require_once("Deal.class.php"); require_once("Design.class.php"); require_once("Form.class.php"); require_once("Group.class.php"); require_once("List.class.php"); require_once("Message.class.php"); require_once("Settings.class.php"); require_once("Subscriber.class.php"); require_once("Tracking.class.php"); require_once("User.class.php"); require_once("Webhook.class.php"); ?>