/**
* Event type.
+ * @var int
*/
protected $_eventType = NULL;
*/
public function preProcess() {
parent::preProcess();
- $this->assign('selectedChild', 'settings');
+ $this->setSelectedChild('settings');
- if ($this->_id) {
- $this->assign('entityID', $this->_id);
+ $entityID = $this->_id ?: $this->_templateId;
+ if ($entityID) {
+ $this->assign('entityID', $entityID);
$eventType = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event',
- $this->_id,
+ $entityID,
'event_type_id'
);
}
$this->set('type', 'Event');
$this->set('subType', CRM_Utils_Array::value('event_type_id', $_POST));
$this->assign('customDataSubType', CRM_Utils_Array::value('event_type_id', $_POST));
- $this->set('entityId', $this->_id);
+ $this->set('entityId', $entityID);
- CRM_Custom_Form_CustomData::preProcess($this, NULL, $this->_eventType, 1, 'Event', $this->_id);
+ CRM_Custom_Form_CustomData::preProcess($this, NULL, $this->_eventType, 1, 'Event', $entityID);
CRM_Custom_Form_CustomData::buildQuickForm($this);
CRM_Custom_Form_CustomData::setDefaultValues($this);
}
if ($this->_eventType) {
$this->assign('customDataSubType', $this->_eventType);
}
- $this->assign('entityId', $this->_id);
$this->_first = TRUE;
$this->applyFilter('__ALL__', 'trim');
if ($this->_action & CRM_Core_Action::ADD) {
$eventTemplates = CRM_Event_PseudoConstant::eventTemplates();
if (CRM_Utils_System::isNull($eventTemplates) && !$this->_isTemplate) {
- $url = CRM_Utils_System::url('civicrm/admin/eventTemplate', array('reset' => 1));
- CRM_Core_Session::setStatus(ts('If you find that you are creating multiple events with similar settings, you may want to use the <a href="%1">Event Templates</a> feature to streamline your workflow.', array(1 => $url)), ts('Tip'), 'info');
+ $url = CRM_Utils_System::url('civicrm/admin/eventTemplate', ['reset' => 1]);
+ CRM_Core_Session::setStatus(ts('If you find that you are creating multiple events with similar settings, you may want to use the <a href="%1">Event Templates</a> feature to streamline your workflow.', [1 => $url]), ts('Tip'), 'info');
}
if (!CRM_Utils_System::isNull($eventTemplates)) {
- $this->add('select', 'template_id', ts('From Template'), array('' => ts('- select -')) + $eventTemplates, FALSE, array('class' => 'crm-select2 huge'));
+ $this->add('select', 'template_id', ts('From Template'), ['' => ts('- select -')] + $eventTemplates, FALSE, ['class' => 'crm-select2 huge']);
}
// Make sure this form redirects properly
$this->preventAjaxSubmit();
$this->add('text', 'title', ts('Event Title'), $attributes['event_title'], !$this->_isTemplate);
$this->addSelect('event_type_id',
- array('onChange' => "CRM.buildCustomData( 'Event', this.value );"),
+ ['onChange' => "CRM.buildCustomData( 'Event', this.value );"],
TRUE
);
}
CRM_Campaign_BAO_Campaign::addCampaign($this, $campaignId);
- $this->addSelect('default_role_id', array(), TRUE);
+ $this->addSelect('default_role_id', [], TRUE);
- $this->addSelect('participant_listing_id', array('placeholder' => ts('Disabled'), 'option_url' => NULL));
+ $this->addSelect('participant_listing_id', ['placeholder' => ts('Disabled'), 'option_url' => NULL]);
$this->add('textarea', 'summary', ts('Event Summary'), $attributes['summary']);
- $this->add('wysiwyg', 'description', ts('Complete Description'), $attributes['event_description'] + array('preset' => 'civievent'));
+ $this->add('wysiwyg', 'description', ts('Complete Description'), $attributes['event_description'] + ['preset' => 'civievent']);
$this->addElement('checkbox', 'is_public', ts('Public Event'));
$this->addElement('checkbox', 'is_share', ts('Allow sharing through social media?'));
$this->addElement('checkbox', 'is_map', ts('Include Map to Event Location'));
$this->add('datepicker', 'end_date', ts('End'), [], FALSE, ['time' => TRUE]);
$this->add('number', 'max_participants', ts('Max Number of Participants'),
- array('onchange' => "if (this.value != '') {cj('#id-waitlist').show(); showHideByValue('has_waitlist','0','id-waitlist-text','table-row','radio',false); showHideByValue('has_waitlist','0','id-event_full','table-row','radio',true); return;} else {cj('#id-event_full, #id-waitlist, #id-waitlist-text').hide(); return;}")
+ ['onchange' => "if (this.value != '') {cj('#id-waitlist').show(); showHideByValue('has_waitlist','0','id-waitlist-text','table-row','radio',false); showHideByValue('has_waitlist','0','id-event_full','table-row','radio',true); return;} else {cj('#id-event_full, #id-waitlist, #id-waitlist-text').hide(); return;}"]
);
$this->addRule('max_participants', ts('Max participants should be a positive number'), 'positiveInteger');
$participantStatuses = CRM_Event_PseudoConstant::participantStatus();
$waitlist = 0;
if (in_array('On waitlist', $participantStatuses) and in_array('Pending from waitlist', $participantStatuses)) {
- $this->addElement('checkbox', 'has_waitlist', ts('Offer a Waitlist?'), NULL, array('onclick' => "showHideByValue('has_waitlist','0','id-event_full','table-row','radio',true); showHideByValue('has_waitlist','0','id-waitlist-text','table-row','radio',false);"));
+ $this->addElement('checkbox', 'has_waitlist', ts('Offer a Waitlist?'), NULL, ['onclick' => "showHideByValue('has_waitlist','0','id-event_full','table-row','radio',true); showHideByValue('has_waitlist','0','id-waitlist-text','table-row','radio',false);"]);
$this->add('textarea', 'waitlist_text', ts('Waitlist Message'), $attributes['waitlist_text']);
$waitlist = 1;
}
$this->addElement('checkbox', 'is_active', ts('Is this Event Active?'));
- $this->addFormRule(array('CRM_Event_Form_ManageEvent_EventInfo', 'formRule'));
+ $this->addFormRule(['CRM_Event_Form_ManageEvent_EventInfo', 'formRule']);
parent::buildQuickForm();
}
* list of errors to be posted back to the form
*/
public static function formRule($values) {
- $errors = array();
+ $errors = [];
if (!empty($values['end_date']) && ($values['end_date'] < $values['start_date'])) {
$errors['end_date'] = ts('End date should be after Start date.');
* Process the form submission.
*/
public function postProcess() {
- $params = $this->controller->exportValues($this->_name);
+ $params = array_merge($this->controller->exportValues($this->_name), $this->_submitValues);
//format params
$params['start_date'] = CRM_Utils_Array::value('start_date', $params);
$params['default_role_id'] = CRM_Utils_Array::value('default_role_id', $params, FALSE);
$params['id'] = $this->_id;
- $customFields = CRM_Core_BAO_CustomField::getFields('Event', FALSE, FALSE,
- CRM_Utils_Array::value('event_type_id', $params)
- );
- $params['custom'] = CRM_Core_BAO_CustomField::postProcess($params,
- $this->_id,
- 'Event'
- );
-
//merge params with defaults from templates
if (!empty($params['template_id'])) {
$params = array_merge(CRM_Event_BAO_Event::getTemplateDefaultValues($params['template_id']), $params);
+ foreach ($params as $key => $value) {
+ $customFieldInfo = CRM_Core_BAO_CustomField::getKeyID($key, TRUE);
+ if (!empty($customFieldInfo[1])) {
+ $params[str_replace($customFieldInfo[1], '-' . $customFieldInfo[1], $key)] = $value;
+ unset($params[$key]);
+ }
+ }
}
+ $params['custom'] = CRM_Core_BAO_CustomField::postProcess($params,
+ $this->_id,
+ 'Event'
+ );
+
// now that we have the event’s id, do some more template-based stuff
if (!empty($params['template_id'])) {
$event = CRM_Event_BAO_Event::copy($params['template_id'], $params);
$url = 'civicrm/event/manage';
$urlParams = 'reset=1';
CRM_Core_Session::setStatus(ts("'%1' information has been saved.",
- array(1 => $this->getTitle())
+ [1 => $this->getTitle()]
), ts('Saved'), 'success');
}