<?php
-// $Id$
/*
+--------------------------------------------------------------------+
/**
* 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;
unset($params['return.sort']);
}
- //legacy support for $params['return.sort']
+ //legacy support for $params['return.offset']
if (CRM_Utils_Array::value('return.offset', $params)) {
$params['options']['offset'] = $params['return.offset'];
unset($params['return.offset']);
if (CRM_Utils_Array::value('is_template', $params)) {
$eventDAO->whereAdd( '( is_template = 1 )' );
}
- else {
+ elseif(empty($eventDAO->id)){
$eventDAO->whereAdd('( is_template IS NULL ) OR ( is_template = 0 )');
}
*
*/
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;