function mailchimp_get_list in Mailchimp 7.4
Same name and namespace in other branches
- 8 mailchimp.module \mailchimp_get_list()
- 7.5 mailchimp.module \mailchimp_get_list()
- 7.2 mailchimp.module \mailchimp_get_list()
- 7.3 mailchimp.module \mailchimp_get_list()
- 2.x mailchimp.module \mailchimp_get_list()
Gets a single Mailchimp list by ID.
Parameters
string $list_id: The unique ID of the list provided by Mailchimp.
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
object A Mailchimp list object.
9 calls to mailchimp_get_list()
- MailChimpCampaignController::attachLoad in modules/
mailchimp_campaign/ includes/ mailchimp_campaign.controller.inc - Implement in order to attach Mailchimp data to campaign entities.
- MailchimpListsTestCase::testGetList in modules/
mailchimp_lists/ tests/ mailchimp_lists.test - Tests retrieval of a specific list.
- mailchimp_lists_field_formatter_view in modules/
mailchimp_lists/ includes/ mailchimp_lists.field.inc - Implements hook_field_formatter_view().
- mailchimp_lists_field_get in modules/
mailchimp_lists/ includes/ mailchimp_lists.field.inc - Entity field data callback for Mailchimp subscription fields.
- mailchimp_lists_field_widget_form in modules/
mailchimp_lists/ includes/ mailchimp_lists.field.inc - Implements hook_field_widget_form().
File
- ./
mailchimp.module, line 239 - Mailchimp module.
Code
function mailchimp_get_list($list_id, $use_interest_groups = TRUE, $reset = FALSE) {
$cache = $reset ? NULL : cache_get('list-' . $list_id, 'cache_mailchimp');
if (!empty($cache)) {
// Use cached list only if interest group requirement is met.
if (!$use_interest_groups || $use_interest_groups && isset($cache->data->intgroups)) {
return $cache->data;
}
}
$list = NULL;
try {
/* @var \Mailchimp\MailchimpLists $mc_lists */
$mc_lists = mailchimp_get_api_object('MailchimpLists');
if (!$mc_lists) {
throw new MailchimpException('Cannot get list without Mailchimp API. Check API key has been entered.');
}
$list = $mc_lists
->getList($list_id);
if (!empty($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;
}
}
}
// Add mergefields to the list.
$mergefields = $mc_lists
->getMergeFields($list->id, array(
'count' => 500,
));
if ($mergefields->total_items > 0) {
$list->mergevars = $mergefields->merge_fields;
}
}
cache_set('list-' . $list_id, $list, 'cache_mailchimp', CACHE_PERMANENT);
} catch (Exception $e) {
watchdog('mailchimp', 'An error occurred requesting list information from Mailchimp. "%message"', array(
'%message' => $e
->getMessage(),
), WATCHDOG_ERROR);
}
return $list;
}