<?php
-// $Id$
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.5 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
* @package CiviCRM_APIv3
* @subpackage API_Participant
*
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
* @version $Id: Participant.php 30486 2010-11-02 16:12:09Z shot $
*
*/
*/
function civicrm_api3_participant_create($params) {
//check that event id is not an template - should be done @ BAO layer
- if (CRM_Utils_Array::value('event_id', $params)) {
+ if (!empty($params['event_id'])) {
$isTemplate = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $params['event_id'], 'is_template');
if (!empty($isTemplate)) {
return civicrm_api3_create_error(ts('Event templates are not meant to be registered'));
$participantBAO = CRM_Event_BAO_Participant::create($params);
- if(empty($params['price_set_id']) && empty($params['id']) && CRM_Utils_Array::value('fee_level', $params)){
+ if(empty($params['price_set_id']) && empty($params['id']) && !empty($params['fee_level'])){
_civicrm_api3_participant_createlineitem($params, $participantBAO);
}
_civicrm_api3_object_to_array($participantBAO, $participant[$participantBAO->id]);
$params['register_date']['api.default'] = "now";
$params['event_id']['api.required'] = 1;
$params['contact_id']['api.required'] = 1;
+ // These are for the sake of search builder options - can be removed if that is fixed
+ $params['role_id']['api.aliases'] = array('participant_role');
+ $params['status_id']['api.aliases'] = array('participant_status');
}
/**
* @access public
*/
function civicrm_api3_participant_get($params) {
+ $mode = CRM_Contact_BAO_Query::MODE_EVENT;
+ $entity = 'participant';
- $options = _civicrm_api3_get_options_from_params($params, TRUE,'participant','get');
- $sort = CRM_Utils_Array::value('sort', $options, NULL);
- $offset = CRM_Utils_Array::value('offset', $options);
- $rowCount = CRM_Utils_Array::value('limit', $options);
- $smartGroupCache = CRM_Utils_Array::value('smartGroupCache', $params);
- $inputParams = CRM_Utils_Array::value('input_params', $options, array());
- $returnProperties = CRM_Utils_Array::value('return', $options, NULL);
-
- if (empty($returnProperties)) {
- $returnProperties = CRM_Event_BAO_Query::defaultReturnProperties(CRM_Contact_BAO_Query::MODE_EVENT);
- }
- $newParams = CRM_Contact_BAO_Query::convertFormValues($inputParams);
- $query = new CRM_Contact_BAO_Query($newParams, $returnProperties, NULL,
- FALSE, FALSE, CRM_Contact_BAO_Query::MODE_EVENT
- );
- list($select, $from, $where, $having) = $query->query();
-
- $sql = "$select $from $where $having";
-
- if (!empty($sort)) {
- $sql .= " ORDER BY $sort ";
- }
- $sql .= " LIMIT $offset, $rowCount ";
- $dao = CRM_Core_DAO::executeQuery($sql);
+ list($dao, $query) = _civicrm_api3_get_query_object($params, $mode, $entity);
$participant = array();
while ($dao->fetch()) {
$participant[$dao->participant_id] = $query->store($dao);
+ //@todo - is this required - contribution & pledge use the same query but don't self-retrieve custom data
_civicrm_api3_custom_data_get($participant[$dao->participant_id], 'Participant', $dao->participant_id, NULL);
}