function getCampaigns() { $params =& JComponentHelper::getParams('com_joomailermailchimpintegration'); $paramsPrefix = version_compare(JVERSION, '1.6.0', 'ge') ? 'params.' : ''; $MCapi = $params->get($paramsPrefix . 'MCapi'); $MC = new joomlamailerMCAPI($MCapi); $menuitemid = JRequest::getInt('Itemid'); if ($menuitemid) { $menu = JSite::getMenu(); $menuparams = $menu->getParams($menuitemid); $params->merge($menuparams); } $campaigns = $MC->campaigns(array('status' => 'sent'), 0, $params->get('limit', 10)); return $campaigns; }
function a360_request_handler() { if (!empty($_GET['a360_action'])) { $params =& JComponentHelper::getParams('com_joomailermailchimpintegration'); $paramsPrefix = version_compare(JVERSION, '1.6.0', 'ge') ? 'params.' : ''; $a360_api_key = $params->get($paramsPrefix . 'MCapi'); switch ($_GET['a360_action']) { case 'get_mc_data': $api = new joomlamailerMCAPI($a360_api_key); switch ($_GET['data_type']) { case 'campaigns': $results = $api->campaigns(array('sendtime_start' => $_GET['start_date'], 'end_start' => $_GET['end_date'])); if ($results) { die($this->cf_json_encode(array('success' => true, 'data' => $results, 'cached' => false))); } else { if (empty($api->errorCode)) { die($this->cf_json_encode(array('success' => true, 'data' => $results, 'cached' => false))); } else { die($this->cf_json_encode(array('success' => false, 'error' => $api->errorMessage))); } } break; case 'list_growth': $results = $api->listGrowthHistory($_GET['list_id']); if ($results) { die($this->cf_json_encode(array('success' => true, 'data' => $results, 'cached' => false))); } else { die($this->cf_json_encode(array('success' => false, 'error' => $api->errorMessage))); } break; } break; case 'get_ga_data': $params =& JComponentHelper::getParams('com_joomailermailchimpintegration'); $paramsPrefix = version_compare(JVERSION, '1.6.0', 'ge') ? 'params.' : ''; $report_id = $params->get($paramsPrefix . 'gprofileid'); $parameters = array('start-date' => $_GET['start_date'], 'end-date' => $_GET['end_date'], 'sort' => 'date', 'ids' => 'ga:' . $a360_ga_profile_id); // split up top referrals by filtering on each medium in turn if ($_GET['data_type'] == 'top_referrals') { $requests = array('referral' => null, 'organic' => null, 'email' => null, 'cpc' => null, '*' => null); $parameters['dimensions'] = array('medium', 'source'); $parameters['metrics'] = array('visits', 'timeOnSite', 'pageviews'); $parameters['sort'] = '-visits'; $all_results = array(); $filters = array('referral', 'organic', 'email', 'cpc', '*'); foreach ($filters as $f) { $parameters['filter'] = 'medium==' . $f; $all_results[$f] = $this->requestReportData($report_id, $parameters['dimensions'], $parameters['metrics'], $parameters['sort'], $parameters['filters'], $parameters['start-date'], $parameters['end-date'], 1, 30); } header('Content-type: text/javascript'); die($this->cf_json_encode(array('success' => true, 'data' => $all_results, 'cached' => false))); break; } else { switch ($_GET['data_type']) { case 'visits': $parameters['dimensions'] = array('date', 'medium'); $parameters['metrics'] = array('visits', 'bounces', 'entrances', 'pageviews', 'newVisits', 'timeOnSite'); //$parameters['filters'] = 'ga:medium==referral,ga:medium==organic,ga:medium==email,ga:medium==cpc'; //$parameters['sort'] = '-ga:visits'; break; case 'geo': $parameters['dimensions'] = array('country'); $parameters['metrics'] = array('visits'); $parameters['sort'] = array('-visits'); break; case 'top_referrals': $parameters['dimensions'] = array('medium', 'source'); $parameters['metrics'] = array('visits', 'timeOnSite', 'pageviews'); $parameters['sort'] = array('-visits'); $parameters['filters'] = 'medium==referral || medium==organic || medium==email || medium==cpc'; break; case 'referral_media': $parameters['dimensions'] = array('medium'); $parameters['metrics'] = array('visits'); $parameters['sort'] = array('-visits'); break; case 'top_content': $parameters['dimensions'] = array('pagePath'); $parameters['metrics'] = array('pageviews', 'uniquePageviews', 'timeOnPage', 'exits'); $parameters['sort'] = array('-pageviews'); break; case 'keywords': $parameters['dimensions'] = array('keyword'); $parameters['metrics'] = array('pageviews', 'uniquePageviews', 'timeOnPage', 'exits'); $parameters['sort'] = array('-pageviews'); $parameters['filters'] = 'source==' . $_GET['source_name']; break; case 'referral_paths': $parameters['dimensions'] = array('source,referralPath'); $parameters['metrics'] = array('pageviews', 'uniquePageviews', 'timeOnPage', 'exits'); $parameters['sort'] = array('-pageviews'); $parameters['filters'] = 'source==' . $_GET['source_name']; break; case 'email_referrals': $parameters['dimensions'] = array('campaign'); $parameters['metrics'] = array('pageviews', 'uniquePageviews', 'timeOnPage', 'exits'); $parameters['sort'] = array('-pageviews'); $parameters['filters'] = 'medium==email'; break; default: break; } } //call the API $result = $this->requestReportData($report_id, $parameters['dimensions'], $parameters['metrics'], $parameters['sort'], $parameters['filters'], $parameters['start-date'], $parameters['end-date'], 1, 3000); header('Content-type: text/javascript'); die($this->cf_json_encode(array('success' => true, 'data' => $result, 'cached' => false))); break; } } }