/** * For updating smart campaigns members in background * * @param array $args handler arguments * @param object &$handler reference to the cron_handler object calling this method. * @return boolean indicating success/failure */ function background_update_campaign_members($args, &$handler) { if (!array_key_exists('campaign_guid', $args)) { $msg = 'Campaign GUID not found in arguments list'; debug_add($msg, MIDCOM_LOG_ERROR); $handler->print_error($msg); return false; } midcom::get('auth')->request_sudo(); try { $campaign = new org_openpsa_directmarketing_campaign_dba($args['campaign_guid']); } catch (midcom_error $e) { $msg = "{$args['campaign_guid']} is not a valid campaign GUID"; debug_add($msg, MIDCOM_LOG_ERROR); $handler->print_error($msg); return false; } $stat = $campaign->update_smart_campaign_members(); if (!$stat) { $msg = 'Error while calling campaign->update_smart_campaign_members(), see error log for details'; debug_add($msg, MIDCOM_LOG_ERROR); $handler->print_error($msg); return false; } midcom::get('auth')->drop_sudo(); return true; }
/** * Check if this message is attached to a smart campaign, if so update the campaign members */ private function _check_campaign_up_to_date() { midcom::get('auth')->request_sudo('org.openpsa.directmarketing'); $campaign = new org_openpsa_directmarketing_campaign_dba($this->campaign); midcom::get('auth')->drop_sudo(); if ($campaign->orgOpenpsaObtype == org_openpsa_directmarketing_campaign_dba::TYPE_SMART) { $campaign->update_smart_campaign_members(); } }