X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FCampaign.php;h=f99feb3ab8a1e2b79cf8aa49b6b60b2722dae2c7;hb=b7b528bc8826971a6dbeebefc185ab19331d051f;hp=cbfc612a8bf9f178f3594c5be98ada6bf3fe1c71;hpb=e98d91afdb1458e2de5f6c37310788f4820bb288;p=civicrm-core.git diff --git a/api/v3/Campaign.php b/api/v3/Campaign.php index cbfc612a8b..f99feb3ab8 100644 --- a/api/v3/Campaign.php +++ b/api/v3/Campaign.php @@ -3,7 +3,7 @@ +--------------------------------------------------------------------+ | CiviCRM version 5 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2017 | + | Copyright CiviCRM LLC (c) 2004-2019 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -88,3 +88,60 @@ function civicrm_api3_campaign_get($params) { function civicrm_api3_campaign_delete($params) { return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params); } + +/** + * Get campaign list parameters. + * + * @see _civicrm_api3_generic_getlist_params + * + * @param array $request + */ +function _civicrm_api3_campaign_getlist_params(&$request) { + $fieldsToReturn = ['title', 'campaign_type_id', 'status_id', 'start_date', 'end_date']; + $request['params']['return'] = array_unique(array_merge($fieldsToReturn, $request['extra'])); + if (empty($request['params']['id'])) { + $request['params'] += [ + 'is_active' => 1, + ]; + } +} + +/** + * Get campaign list output. + * + * @see _civicrm_api3_generic_getlist_output + * + * @param array $result + * @param array $request + * + * @return array + */ +function _civicrm_api3_campaign_getlist_output($result, $request) { + $output = []; + if (!empty($result['values'])) { + $config = CRM_Core_Config::singleton(); + foreach ($result['values'] as $row) { + $data = [ + 'id' => $row[$request['id_field']], + 'label' => $row[$request['label_field']], + 'description' => [ + CRM_Core_Pseudoconstant::getLabel('CRM_Campaign_BAO_Campaign', 'campaign_type_id', $row['campaign_type_id']), + ], + ]; + if (!empty($row['status_id'])) { + $data['description'][0] .= ': ' . CRM_Core_Pseudoconstant::getLabel('CRM_Campaign_BAO_Campaign', 'status_id', $row['status_id']); + } + $dateString = CRM_Utils_Date::customFormat($row['start_date'], $config->dateformatFull) . ' -'; + if (!empty($row['end_date'])) { + // Remove redundant years + if (substr($row['start_date'], 0, 4) == substr($row['end_date'], 0, 4)) { + $dateString = preg_replace('/[, ]*' . substr($row['start_date'], 0, 4) . '/', '', $dateString); + } + $dateString .= ' ' . CRM_Utils_Date::customFormat($row['end_date'], $config->dateformatFull); + } + $data['description'][] = $dateString; + $output[] = $data; + } + } + return $output; +}