<?php
-// $Id$
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.4 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2013 |
+--------------------------------------------------------------------+
/**
* Files required for this package
*/
-require_once 'CRM/Event/BAO/Event.php';
/**
* Create a Event
* @access public
*/
function civicrm_api3_event_create($params) {
+ civicrm_api3_verify_one_mandatory($params, NULL, array('event_type_id', 'template_id'));
+
+ // Clone event from template
+ if (!empty($params['template_id']) && empty($params['id'])) {
+ $copy = CRM_Event_BAO_Event::copy($params['template_id']);
+ $params['id'] = $copy->id;
+ unset($params['template_id']);
+ if (empty($params['is_template'])) {
+ $params['is_template'] = 0;
+ }
+ }
_civicrm_api3_event_create_legacy_support_42($params);
+
//format custom fields so they can be added
- $value = array();
+ $values = array();
_civicrm_api3_custom_format_params($params, $values, 'Event');
$params = array_merge($values, $params);
- require_once 'CRM/Event/BAO/Event.php';
$eventBAO = CRM_Event_BAO_Event::create($params);
- $event = array();
- _civicrm_api3_object_to_array($eventBAO, $event[$eventBAO->id]);
+ $event = array();
+ _civicrm_api3_object_to_array($eventBAO, $event[$eventBAO->id]);
return civicrm_api3_create_success($event, $params);
}
* @param array $params array or parameters determined by getfields
*/
function _civicrm_api3_event_create_spec(&$params) {
- $params['event_type_id']['api.required'] = 1;;
$params['start_date']['api.required'] = 1;
$params['title']['api.required'] = 1;
$params['is_active']['api.default'] = 1;
function civicrm_api3_event_get($params) {
//legacy support for $params['return.sort']
- if (CRM_Utils_Array::value('return.sort', $params)) {
+ if (!empty($params['return.sort'])) {
$params['options']['sort'] = $params['return.sort'];
unset($params['return.sort']);
}
- //legacy support for $params['return.sort']
- if (CRM_Utils_Array::value('return.offset', $params)) {
+ //legacy support for $params['return.offset']
+ if (!empty($params['return.offset'])) {
$params['options']['offset'] = $params['return.offset'];
unset($params['return.offset']);
}
//legacy support for $params['return.max_results']
- if (CRM_Utils_Array::value('return.max_results', $params)) {
+ if (!empty($params['return.max_results'])) {
$params['options']['limit'] = $params['return.max_results'];
unset($params['return.max_results']);
}
$eventDAO = new CRM_Event_BAO_Event();
_civicrm_api3_dao_set_filter($eventDAO, $params, TRUE, 'Event');
- if (CRM_Utils_Array::value('is_template', $params)) {
+ if (!empty($params['is_template'])) {
$eventDAO->whereAdd( '( is_template = 1 )' );
}
- else {
- $eventDAO->whereAdd('( is_template IS NULL ) OR ( is_template = 0 )');
+ elseif(empty($eventDAO->id)){
+ $eventDAO->whereAdd('( is_template IS NULL ) OR ( is_template = 0 )');
}
- if (CRM_Utils_Array::value('isCurrent', $params)) {
+ if (!empty($params['isCurrent'])) {
$eventDAO->whereAdd('(start_date >= CURDATE() || end_date >= CURDATE())');
}
while ($eventDAO->fetch()) {
$event[$eventDAO->id] = array();
CRM_Core_DAO::storeValues($eventDAO, $event[$eventDAO->id]);
- if (CRM_Utils_Array::value('return.is_full', $params)) {
+ if (!empty($params['return.is_full'])) {
_civicrm_api3_event_getisfull($event, $eventDAO->id);
}
_civicrm_api3_event_get_legacy_support_42($event, $eventDAO->id);
*
*/
function _civicrm_api3_event_getisfull(&$event, $event_id) {
- require_once 'CRM/Event/BAO/Participant.php';
$eventFullResult = CRM_Event_BAO_Participant::eventFull($event_id, 1);
if (!empty($eventFullResult) && is_int($eventFullResult)) {
$event[$event_id]['available_places'] = $eventFullResult;