/** *gets tracking code based on campaign *@return tracking javascript for pardot api */ public static function GetPardotTrackingJs() { $html = false; $campaign = PardotConfig::getCampaignCode(); if ($campaign) { $tracker_cache = SS_Cache::factory('Pardot'); if (!($tracking_code_template = $tracker_cache->load('pardot_tracking_code_template'))) { $api_credentials = PardotConfig::getPardotCredentials(); $pardot = new Pardot_API(); if (!$pardot->is_authenticated()) { $pardot->authenticate($api_credentials); } $account = $pardot->get_account(); if (isset($account->tracking_code_template)) { $tracking_code_template = $account->tracking_code_template; $tracker_cache->save($tracking_code_template, 'pardot_tracking_code_template'); } } $tracking_code_template = str_replace('%%CAMPAIGN_ID%%', $campaign + 1000, $tracking_code_template); $campaign = $campaign + 1000; $html = <<<HTML <script> type="text/javascript"> piCId = '{$campaign}'; {$tracking_code_template} </script> HTML; } return $html; }
/** * This function starts the routine, and is the first function * to execute off the URL accessor (defined in @see _config.php) */ public function index() { $pardot = new Pardot_API(PardotConfig::getPardotCredentials()); $forms_object = $pardot->get_forms(PardotConfig::getPardotCredentials()); $forms = array(); foreach ($forms_object as $form_object) { $forms[]['name'] = $form_object->name; } $forms = new ArrayList($forms); $content_object = $pardot->get_dynamicContent(PardotConfig::getPardotCredentials()); $contents = array(); foreach ($content_object as $content) { $contents[]['name'] = $content->name; } $contents = new ArrayList($contents); return $this->customise(array('Forms' => $forms, 'DynamicContent' => $contents))->renderWith(array("PardotModalForm")); }
/** *CMS fields for configuring Pardot plugin */ public function updateCMSFields(FieldList $fields) { $fields->addFieldToTab("Root.Pardot", new LiteralField($name = "pardot_logo", $content = '<div class="field"><img src="/silverstripe-pardot/images/pardot-logo.png" height="50"></div>')); $fields->addFieldToTab("Root.Pardot", new EmailField("pardot_email", "Email Address")); $password_field = new PasswordField("new_pardot_password", "Password"); $password_field->setAttribute('placeholder', '********'); $fields->addFieldToTab("Root.Pardot", $password_field); $fields->addFieldToTab("Root.Pardot", new TextField("pardot_user_key", "User Key")); //option to select campaign available after they have connected if (PardotConfig::validApiCredentials()) { $fields->addFieldToTab("Root.Pardot", self::getCampaignCmsDropdown()); } else { $fields->addFieldToTab("Root.Pardot", new LiteralField($name = "pardot_campaign", $content = '<p class="message bad"> No valid credentials</p>')); $fields->addFieldToTab("Root.Pardot", new LiteralField($name = "pardot_campaign", $content = '<p class="message notice"> Once you are connected, re-visit this page and select a campaign.</p>')); } $fields->addFieldToTab("Root.Pardot", new CheckboxField("pardot_https", "Use HTTPS?")); return $fields; }
/** * caches pardot dynamic content from the pardot api. * * @return array Array of dynamic content objects */ public static function cacheDynamicContentFromPardotApi() { $pardot = new Pardot_API(PardotConfig::getPardotCredentials()); $dynamicContent = $pardot->get_dynamicContent(); $pardot_cache = SS_Cache::factory('Pardot'); $pardot_cache->save(serialize($dynamicContent), 'serialized_dynamic_content'); return $dynamicContent; }