);
$processor = new CRM_Export_BAO_ExportProcessor($exportMode, $fields, $queryOperator, $mergeSameHousehold, $isPostalOnly);
+ if ($moreReturnProperties) {
+ $processor->setAdditionalRequestedReturnProperties($moreReturnProperties);
+ }
$returnProperties = $processor->getReturnProperties();
$paymentTableId = $processor->getPaymentTableID();
CRM_Core_DAO::executeQuery($query);
}
- if ($moreReturnProperties) {
- // fix for CRM-7066
- if (!empty($moreReturnProperties['group'])) {
- unset($moreReturnProperties['group']);
- $moreReturnProperties['groups'] = 1;
- }
- $returnProperties = array_merge($returnProperties, $moreReturnProperties);
- }
-
if ($processor->getRequestedFields() &&
$processor->isPostalableOnly()
) {
*/
protected $householdsToSkip = [];
+ /**
+ * Additional fields to return.
+ *
+ * This doesn't make much sense when we have a fields set but search build add it's own onto
+ * the 'Primary fields' (all) option.
+ *
+ * @var array
+ */
+ protected $additionalRequestedReturnProperties = [];
+
+ /**
+ * Get additional return properties.
+ *
+ * @return array
+ */
+ public function getAdditionalRequestedReturnProperties() {
+ return $this->additionalRequestedReturnProperties;
+ }
+
+ /**
+ * Set additional return properties.
+ *
+ * @param array $value
+ */
+ public function setAdditionalRequestedReturnProperties($value) {
+ // fix for CRM-7066
+ if (!empty($value['group'])) {
+ unset($value['group']);
+ $value['groups'] = 1;
+ }
+ $this->additionalRequestedReturnProperties = $value;
+ }
+
/**
* Get return properties by relationship.
* @return array
* @return array
*/
public function getReturnProperties() {
- return $this->returnProperties;
+ return array_merge($this->returnProperties, $this->getAdditionalRequestedReturnProperties());
}
/**