diff --git a/CRM/Report/Form/Campaign/SurveyDetails.php b/CRM/Report/Form/Campaign/SurveyDetails.php index 235ded902be8..d5c7b58e69f2 100644 --- a/CRM/Report/Form/Campaign/SurveyDetails.php +++ b/CRM/Report/Form/Campaign/SurveyDetails.php @@ -53,6 +53,10 @@ class CRM_Report_Form_Campaign_SurveyDetails extends CRM_Report_Form { private static $_surveyRespondentStatus; + // Survey Question titles are overridden when in print or pdf mode to + // say Q1, Q2 instead of the full title - to save space. + private $_columnTitleOverrides = array(); + /** */ /** @@ -203,7 +207,7 @@ public function __construct() { ), 'grouping' => 'survey-activity-fields', ), - ) + $this->addAddressFields(); + ) + $this->getAddressColumns(); parent::__construct(); } @@ -239,9 +243,16 @@ public function select() { } $select[] = "{$field['dbAlias']} as {$tableName}_{$fieldName}"; + + // Set default title + $title = CRM_Utils_Array::value('title', $field); + // Check for an override. + if (!empty($this->_columnTitleOverrides["{$tableName}_{$fieldName}"])) { + $title = $this->_columnTitleOverrides["{$tableName}_{$fieldName}"]; + } + $this->_columnHeaders["{$tableName}_{$fieldName}"]['title'] = $title; + $this->_selectAliases[] = "{$tableName}_{$fieldName}"; - $this->_columnHeaders["{$tableName}_{$fieldName}"]['title'] = CRM_Utils_Array::value('title', $field); - $this->_columnHeaders["{$tableName}_{$fieldName}"]['type'] = CRM_Utils_Array::value('type', $field); } } } @@ -737,7 +748,7 @@ private function _addSurveyResponseColumns() { WHERE cf.id IN ( ' . implode(' , ', $responseFieldIds) . ' ) ORDER BY cf.weight'; $response = CRM_Core_DAO::executeQuery($query); - $fildCnt = 1; + $fieldCnt = 1; while ($response->fetch()) { $resTable = $response->table_name; $fieldName = "custom_{$response->cfId}"; @@ -754,20 +765,22 @@ private function _addSurveyResponseColumns() { if (!is_array(CRM_Utils_Array::value('fields', $this->_columns[$resTable]))) { $this->_columns[$resTable]['fields'] = array(); } - if (array_key_exists($fieldName, $this->_columns[$resTable]['fields'])) { - $this->_columns[$resTable]['fields'][$fieldName]['required'] = TRUE; - $this->_columns[$resTable]['fields'][$fieldName]['isSurveyResponseField'] = TRUE; - continue; - } - $title = $responseFields[$fieldName]['title']; if (in_array($this->_outputMode, array( 'print', 'pdf', ))) { - $title = 'Q' . $fildCnt++; + $this->_columnTitleOverrides["{$resTable}_{$fieldName}"] = 'Q' . $fieldCnt; + $fieldCnt++; + } + + if (array_key_exists($fieldName, $this->_columns[$resTable]['fields'])) { + $this->_columns[$resTable]['fields'][$fieldName]['required'] = TRUE; + $this->_columns[$resTable]['fields'][$fieldName]['isSurveyResponseField'] = TRUE; + continue; } + $title = $responseFields[$fieldName]['title']; $fldType = 'CRM_Utils_Type::T_STRING'; if ($response->time_format) { $fldType = CRM_Utils_Type::T_TIMESTAMP;