// get the tokens
$contactTokens = CRM_Core_SelectValues::contactTokens();
$eventTokens = CRM_Core_SelectValues::eventTokens();
- $tokens = array_merge($contactTokens, $eventTokens);
+ $participantTokens = CRM_Core_SelectValues::participantTokens();
+
+ $tokens = array_merge($contactTokens, $eventTokens, $participantTokens);
asort($tokens);
$fontSizes = CRM_Core_BAO_LabelFormat::getFontSizes();
* @return None
*/
function setDefaultValues() {
- if (isset($this->_id) && empty($this->_values)) {
- $this->_values = array();
- $params = array('id' => $this->_id);
- CRM_Badge_BAO_Layout::retrieve($params, $this->_values);
-
-
+ if (isset($this->_id)) {
$defaults = array_merge($this->_values,
CRM_Badge_BAO_Layout::getDecodedData($this->_values['data']));
}
'is_bulkmail', 'group', 'tag', 'contact_sub_type', 'note',
'is_deceased', 'deceased_date', 'legal_identifier', 'contact_sub_type', 'user_unique_id',
);
- $customFields = array();
+
$customFields = CRM_Core_BAO_CustomField::getFields('Individual');
$customFieldsAddress = CRM_Core_BAO_CustomField::getFields('Address');
$customFields = $customFields + $customFieldsAddress;
return $tokens;
}
+ /**
+ * different type of Participant Tokens
+ *
+ * @static
+ * return array
+ */
+ static function &participantTokens() {
+ static $tokens = NULL;
+ if (!$tokens) {
+ $exportFields = CRM_Event_BAO_Participant::exportableFields();
+
+ $values = array_merge(array_keys($exportFields));
+ unset($values[0]);
+
+ // skipping some tokens for time being.
+ $skipTokens = array(
+ 'event_id', 'participant_is_pay_later', 'participant_is_test', 'participant_contact_id',
+ 'participant_fee_currency', 'participant_campaign_id', 'participant_status', 'participant_discount_name',
+ );
+
+ $customFields = CRM_Core_BAO_CustomField::getFields('Participant');
+
+ foreach ($values as $key => $val) {
+ if (in_array($val, $skipTokens)) {
+ continue;
+ }
+ //keys for $tokens should be constant. $token Values are changed for Custom Fields. CRM-3734
+ if ($customFieldId = CRM_Core_BAO_CustomField::getKeyID($val)) {
+ $tokens["{participant.$val}"] = CRM_Utils_Array::value($customFieldId, $customFields) ? $customFields[$customFieldId]['label'] . " :: " . $customFields[$customFieldId]['groupTitle'] : '';
+ }
+ else {
+ $tokens["{participant.$val}"] = $exportFields[$val]['title'];
+ }
+ }
+ }
+ return $tokens;
+ }
+
/**
* get qf mappig for all date parts.
*
if (key($token) == 'contact') {
$element = $token['contact'][0];
}
- else {
+ elseif (key($token) == 'event') {
$element = $token['event'][0];
//FIX ME - we need to standardize event token names
if (!strpos($element, 'event_')) {
$element = 'event_' . $element;
}
}
+ elseif (key($token) == 'participant') {
+ $element = $token['participant'][0];
+ }
// build returnproperties for query
$returnProperties[$element] = 1;