trigger_error('assign: missing \'activity_id\' parameter'); } if (!isset($params['target_var'])) { $params['target_var'] = 'target'; } if (!isset($params['assignee_var'])) { $params['assignee_var'] = 'assignee'; } if (!isset($params['return'])) { $params['return'] = 'contact_id,contact_type,display_name,sort_name,first_name,last_name'; } require_once 'api/api.php'; require_once 'api/v3/utils.php'; $activity = civicrm_api('activity', 'getsingle', [ 'version' => 3, 'id' => $params['activity_id'], 'return.target_contact_id' => 1, 'return.assignee_contact_id' => 1, ]); $baseContactParams = ['version' => 3]; foreach (explode(',', $params['return']) as $field) { $baseContactParams['return.' . $field] = 1; } foreach ([ 'target', 'assignee', ] as $role) { $contact = []; if (!empty($activity[$role . '_contact_id'])) { $contact_id = array_shift($activity[$role . '_contact_id']); $contact = civicrm_api('contact', 'getsingle', $baseContactParams + [ 'contact_id' => $contact_id, ]); } $smarty->assign($params[$role . '_var'], $contact); } return ''; }