X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FReportTemplate.php;h=ad618ac654d699c7b80b58a5d3d9ab6ef35acf11;hb=85bb0909cffd925f4cd5c0022a68a1ff74d3ad8e;hp=195b8eaf4b8668e00ca9da3a2edcbf1e9b968cd0;hpb=05274f12832d3e124ebb3fb880f4048eee1f28d9;p=civicrm-core.git diff --git a/api/v3/ReportTemplate.php b/api/v3/ReportTemplate.php index 195b8eaf4b..ad618ac654 100644 --- a/api/v3/ReportTemplate.php +++ b/api/v3/ReportTemplate.php @@ -5,7 +5,9 @@ * * FIXME This is a bare-minimum placeholder * - * @param array $ params input parameters + * @param $params + * + * @internal param $array $ params input parameters * * {@example OptionValueGet.php 0} * @example OptionValueGet.php @@ -29,6 +31,8 @@ function civicrm_api3_report_template_get($params) { * * {@example OptionValueCreate.php} * + * @param $params + * * @return array of newly created option_value property values. * {@getfields OptionValue_create} * @access public @@ -88,10 +92,17 @@ function civicrm_api3_report_template_delete($params) { */ function civicrm_api3_report_template_getrows($params) { civicrm_api3_verify_one_mandatory($params, NULL, array('report_id', 'instance_id')); - list($rows, $instance, $labels) = _civicrm_api3_report_template_getrows($params); - return civicrm_api3_create_success($rows, $params, 'report_template', 'getrows', CRM_Core_DAO::$_nullObject, $labels); + list($rows, $instance, $metadata) = _civicrm_api3_report_template_getrows($params); + return civicrm_api3_create_success($rows, $params, 'report_template', 'getrows', CRM_Core_DAO::$_nullObject, $metadata); } +/** + * @param $params + * + * @return array + * @throws API_Exception + * @throws CiviCRM_API3_Exception + */ function _civicrm_api3_report_template_getrows($params) { if(empty($params['report_id'])) { $params['report_id'] = civicrm_api3('report_instance', 'getvalue', array('id' => $params['instance_id'], 'return' => 'report_id')); @@ -118,21 +129,34 @@ function _civicrm_api3_report_template_getrows($params) { $reportInstance->setOffsetValue($options['offset']); $reportInstance->beginPostProcessCommon(); $sql = $reportInstance->buildQuery(); - $rows = $metadata = array(); + $rows = $metadata = $requiredMetadata = array(); $reportInstance->buildRows($sql, $rows); - $metadata['title'] = $reportInstance->getTitle(); - foreach ($reportInstance->_columnHeaders as $key => $header) { - //would be better just to expect reports to provide titles but reports are not consistent - //NB I think these are already translated - $metadata['labels'][$key] = !empty($header['title']) ? $header['title'] : ''; + $requiredMetadata = array(); + if(isset($params['options']) && !empty($params['options']['metadata'])) { + $requiredMetadata = $params['options']['metadata']; + if(in_array('title', $requiredMetadata)) { + $metadata['metadata']['title'] = $reportInstance->getTitle(); + } + if(in_array('labels', $requiredMetadata)) { + foreach ($reportInstance->_columnHeaders as $key => $header) { + //would be better just to expect reports to provide titles but reports are not consistent so we anticipate empty + //NB I think these are already translated + $metadata['metadata']['labels'][$key] = !empty($header['title']) ? $header['title'] : ''; + } + } } return array($rows, $reportInstance, $metadata); } +/** + * @param $params + * + * @return array + */ function civicrm_api3_report_template_getstatistics($params) { - list($rows, $reportInstance, $labels) = _civicrm_api3_report_template_getrows($params); + list($rows, $reportInstance, $metadata) = _civicrm_api3_report_template_getrows($params); $stats = $reportInstance->statistics($rows); - return civicrm_api3_create_success($stats, $params, 'report_template'); + return civicrm_api3_create_success($stats, $params, 'report_template', 'getstatistics', CRM_Core_DAO::$_nullObject, $metadata); } /** * Retrieve rows from a report template