function mailchimp_get_lists in Mailchimp 7.4
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.3 mailchimp.module \mailchimp_get_lists()
- 2.x mailchimp.module \mailchimp_get_lists()
Gets Mailchimp lists. Can be filtered by an array of list IDs.
Parameters
array $list_ids: An array of list IDs to filter the results by.
bool $use_interest_groups: TRUE to load interest groups for the list.
bool $reset: TRUE to reset list cache and load from Mailchimp.
Return value
array An array of Mailchimp list objects.
11 calls to mailchimp_get_lists()
- MailchimpI18nStringObjectWrapper::build_properties in modules/
mailchimp_i18n/ mailchimp_i18n.i18n.inc - Get translatable properties.
- 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_automations_entity_form in modules/
mailchimp_automations/ includes/ mailchimp_automations.admin.inc - Returns a form for a mailchimp_automations_entity.
- mailchimp_campaign_campaign_form in modules/
mailchimp_campaign/ includes/ mailchimp_campaign.admin.inc - Returns a form for creating a campaign.
File
- ./
mailchimp.module, line 311 - Mailchimp module.
Code
function mailchimp_get_lists($list_ids = array(), $use_interest_groups = TRUE, $reset = FALSE) {
$cache = $reset ? NULL : cache_get('lists', 'cache_mailchimp');
// Return cached lists:
if ($cache) {
$lists = $cache->data;
}
else {
$lists = array();
try {
/* @var \Mailchimp\MailchimpLists $mc_lists */
$mc_lists = mailchimp_get_api_object('MailchimpLists');
if (!$mc_lists) {
throw new MailchimpException('Cannot get lists without Mailchimp API. Check API key has been entered.');
}
$result = $mc_lists
->getLists(array(
'count' => 500,
));
if ($result->total_items > 0) {
foreach ($result->lists as $list) {
if ($use_interest_groups) {
// Add interest categories to the list.
$int_category_data = $mc_lists
->getInterestCategories($list->id, array(
'count' => 500,
));
if ($int_category_data->total_items > 0) {
$list->intgroups = array();
foreach ($int_category_data->categories as $interest_category) {
if (isset($interest_category->type) && $interest_category->type == 'hidden') {
continue;
}
$interest_data = $mc_lists
->getInterests($list->id, $interest_category->id, array(
'count' => 500,
));
if ($interest_data->total_items > 0) {
$interest_category->interests = $interest_data->interests;
}
$list->intgroups[] = $interest_category;
}
}
}
$lists[$list->id] = $list;
// Add mergefields to the list.
$mergefields = $mc_lists
->getMergeFields($list->id, array(
'count' => 500,
));
if ($mergefields->total_items > 0) {
$lists[$list->id]->mergevars = $mergefields->merge_fields;
}
}
}
uasort($lists, '_mailchimp_list_cmp');
cache_set('lists', $lists, 'cache_mailchimp', CACHE_PERMANENT);
} 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;
}
}