function mailchimp_get_lists in Mailchimp 7.3
Same name and namespace in other branches
- 8 mailchimp.module \mailchimp_get_lists()
- 7.5 mailchimp.module \mailchimp_get_lists()
- 7.2 mailchimp.module \mailchimp_get_lists()
- 7.4 mailchimp.module \mailchimp_get_lists()
- 2.x mailchimp.module \mailchimp_get_lists()
Return all MailChimp lists for a given key. Lists are stored in the cache.
Parameters
array $list_ids: An array of list IDs to filter the results by.
bool $reset: Force a cache reset.
Return value
array An array of list arrays.
10 calls to mailchimp_get_lists()
- MailchimpListsTestCase::testMultiListRetrieval in modules/
mailchimp_lists/ tests/ mailchimp_lists.test - Tests retrieval of a specific set of lists.
- MailChimpSignupUIController::overviewTable in modules/
mailchimp_signup/ includes/ mailchimp_signup.ui_controller.inc - Overrides parent::overviewTable().
- mailchimp_campaign_campaign_form in modules/
mailchimp_campaign/ includes/ mailchimp_campaign.admin.inc - Returns a form for creating a campaign.
- mailchimp_clear_list_cache_form_submit in includes/
mailchimp.admin.inc - Handler for lists cache clear form.
- mailchimp_get_list in ./
mailchimp.module - Wrapper around mailchimp_get_lists() to return a single list.
File
- ./
mailchimp.module, line 165 - Mailchimp module.
Code
function mailchimp_get_lists($list_ids = array(), $reset = FALSE) {
$cache = $reset ? NULL : cache_get('lists', 'cache_mailchimp');
$lists = array();
// Return cached lists:
if ($cache) {
$lists = $cache->data;
}
else {
try {
$mcapi = mailchimp_get_api_object();
if (!$mcapi) {
throw new MailchimpException('Cannot get lists without MailChimp API. Check API key has been entered.');
}
$result = $mcapi->lists
->getList(array(), 0, 100);
if ($result['total'] > 0) {
foreach ($result['data'] as $list) {
if ($list['stats']['group_count']) {
// Append interest groups:
$list['intgroups'] = $mcapi->lists
->interestGroupings($list['id']);
}
$lists[$list['id']] = $list;
}
// Append mergefields:
$mergevar_settings = $mcapi->lists
->mergeVars($list_ids);
foreach ($mergevar_settings['data'] as $mergevars) {
$lists[$mergevars['id']]['mergevars'] = $mergevars['merge_vars'];
}
}
uasort($lists, '_mailchimp_list_cmp');
cache_set('lists', $lists, 'cache_mailchimp', CACHE_TEMPORARY);
} catch (Exception $e) {
watchdog('mailchimp', 'An error occurred requesting list information from MailChimp. "%message"', array(
'%message' => $e
->getMessage(),
), WATCHDOG_ERROR);
}
}
// Filter by given ids:
if (!empty($list_ids)) {
$filtered_lists = array();
foreach ($list_ids as $id) {
if (array_key_exists($id, $lists)) {
$filtered_lists[$id] = $lists[$id];
}
}
return $filtered_lists;
}
else {
return $lists;
}
}