'Participant');
public $_drilldownReport = array('event/income' => 'Link to Detail Report');
- function __construct() {
+ function __construct() {
+
+ // Check if CiviCampaign is a) enabled and b) has active campaigns
+ $config = CRM_Core_Config::singleton();
+ $campaignEnabled = in_array("CiviCampaign", $config->enableComponents);
+ if ($campaignEnabled) {
+ $getCampaigns = CRM_Campaign_BAO_Campaign::getPermissionedCampaigns(NULL, NULL, TRUE, FALSE, TRUE);
+ $this->activeCampaigns = $getCampaigns['campaigns'];
+ asort($this->activeCampaigns);
+ }
+
$this->_columns = array(
'civicrm_contact' =>
array(
),
),
'grouping' => 'contact-fields',
- 'filters' =>
+ 'order_bys' =>
array(
'sort_name' =>
- array('title' => ts('Participant Name'),
- 'operator' => 'like',
+ array('title' => ts('Last Name, First Name'),
+ 'default' => '1',
+ 'default_weight' => '0',
+ 'default_order' => 'ASC',
),
),
- 'order_bys' =>
+ 'filters' =>
array(
'sort_name' =>
- array('title' => ts('Last Name, First Name'), 'default' => '1', 'default_weight' => '0', 'default_order' => 'ASC'),
+ array('title' => ts('Participant Name'),
+ 'operator' => 'like',
+ ),
),
),
'civicrm_email' =>
),
),
);
+
+ // If we have active campaigns add those elements to both the fields and filters
+ if ($campaignEnabled && !empty($this->activeCampaigns)) {
+ $this->_columns['civicrm_participant']['fields']['campaign_id'] = array(
+ 'title' => ts('Campaign'),
+ 'default' => 'false',
+ );
+ $this->_columns['civicrm_participant']['filters']['campaign_id'] = array('title' => ts('Campaign'),
+ 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
+ 'options' => $this->activeCampaigns,
+ );
+ $this->_columns['civicrm_participant']['order_bys']['campaign_id'] = array('title' => ts('Campaign'));
+
+ }
+
$this->_currencyColumn = 'civicrm_participant_fee_currency';
parent::__construct();
}
+
function preProcess() {
parent::preProcess();
}
}
+ // Convert campaign_id to campaign title
+ if (array_key_exists('civicrm_participant_campaign_id', $row)) {
+ if ($value = $row['civicrm_participant_campaign_id']) {
+ $rows[$rowNum]['civicrm_participant_campaign_id'] = $this->activeCampaigns[$value];
+ $entryFound = TRUE;
+ }
+ }
+
// skip looking further in rows, if first row itself doesn't
// have the column we need
if (!$entryFound) {