engelsystem/includes/controller/event_config_controller.php

129 lines
4.1 KiB
PHP
Raw Normal View History

2016-07-14 10:19:38 +02:00
<?php
2016-09-27 17:24:18 +02:00
2017-01-03 03:22:48 +01:00
/**
* @return string
*/
2017-01-02 03:57:23 +01:00
function event_config_title()
{
2017-01-03 14:12:17 +01:00
return _('Event config');
2016-07-14 10:19:38 +02:00
}
2016-09-27 17:24:18 +02:00
2017-01-03 03:22:48 +01:00
/**
* @return array
*/
2017-01-02 03:57:23 +01:00
function event_config_edit_controller()
{
global $privileges;
2017-01-02 15:43:36 +01:00
if (!in_array('admin_event_config', $privileges)) {
2017-01-02 03:57:23 +01:00
redirect('?');
}
2017-01-02 15:43:36 +01:00
$request = request();
2017-01-02 03:57:23 +01:00
$event_name = null;
$event_welcome_msg = null;
$buildup_start_date = null;
$event_start_date = null;
$event_end_date = null;
$teardown_end_date = null;
2017-01-02 15:43:36 +01:00
2017-01-02 03:57:23 +01:00
$event_config = EventConfig();
if ($event_config != null) {
$event_name = $event_config['event_name'];
$buildup_start_date = $event_config['buildup_start_date'];
$event_start_date = $event_config['event_start_date'];
$event_end_date = $event_config['event_end_date'];
$teardown_end_date = $event_config['teardown_end_date'];
$event_welcome_msg = $event_config['event_welcome_msg'];
}
2017-01-02 15:43:36 +01:00
if ($request->has('submit')) {
2017-01-02 03:57:23 +01:00
$valid = true;
2017-01-02 15:43:36 +01:00
if ($request->has('event_name')) {
2017-01-02 03:57:23 +01:00
$event_name = strip_request_item('event_name');
}
if ($event_name == '') {
$event_name = null;
}
2017-01-02 15:43:36 +01:00
if ($request->has('event_welcome_msg')) {
2017-01-02 03:57:23 +01:00
$event_welcome_msg = strip_request_item_nl('event_welcome_msg');
}
if ($event_welcome_msg == '') {
$event_welcome_msg = null;
}
2017-01-02 15:43:36 +01:00
2017-01-03 14:12:17 +01:00
$result = check_request_date('buildup_start_date', _('Please enter buildup start date.'), true);
2017-01-02 03:57:23 +01:00
$buildup_start_date = $result->getValue();
$valid &= $result->isValid();
2017-01-02 15:43:36 +01:00
2017-01-03 14:12:17 +01:00
$result = check_request_date('event_start_date', _('Please enter event start date.'), true);
2017-01-02 03:57:23 +01:00
$event_start_date = $result->getValue();
$valid &= $result->isValid();
2017-01-02 15:43:36 +01:00
2017-01-03 14:12:17 +01:00
$result = check_request_date('event_end_date', _('Please enter event end date.'), true);
2017-01-02 03:57:23 +01:00
$event_end_date = $result->getValue();
$valid &= $result->isValid();
2017-01-02 15:43:36 +01:00
2017-01-03 14:12:17 +01:00
$result = check_request_date('teardown_end_date', _('Please enter teardown end date.'), true);
2017-01-02 03:57:23 +01:00
$teardown_end_date = $result->getValue();
$valid &= $result->isValid();
2017-01-02 15:43:36 +01:00
2017-01-02 03:57:23 +01:00
if ($buildup_start_date != null && $event_start_date != null && $buildup_start_date > $event_start_date) {
$valid = false;
2017-01-03 14:12:17 +01:00
error(_('The buildup start date has to be before the event start date.'));
2017-01-02 03:57:23 +01:00
}
2017-01-02 15:43:36 +01:00
2017-01-02 03:57:23 +01:00
if ($event_start_date != null && $event_end_date != null && $event_start_date > $event_end_date) {
$valid = false;
2017-01-03 14:12:17 +01:00
error(_('The event start date has to be before the event end date.'));
2017-01-02 03:57:23 +01:00
}
2017-01-02 15:43:36 +01:00
2017-01-02 03:57:23 +01:00
if ($event_end_date != null && $teardown_end_date != null && $event_end_date > $teardown_end_date) {
$valid = false;
2017-01-03 14:12:17 +01:00
error(_('The event end date has to be before the teardown end date.'));
2017-01-02 03:57:23 +01:00
}
2017-01-02 15:43:36 +01:00
2017-01-02 03:57:23 +01:00
if ($buildup_start_date != null && $teardown_end_date != null && $buildup_start_date > $teardown_end_date) {
$valid = false;
2017-01-03 14:12:17 +01:00
error(_('The buildup start date has to be before the teardown end date.'));
2017-01-02 03:57:23 +01:00
}
2017-01-02 15:43:36 +01:00
2017-01-02 03:57:23 +01:00
if ($valid) {
2017-01-02 15:43:36 +01:00
$result = EventConfig_update(
$event_name,
$buildup_start_date,
$event_start_date,
$event_end_date,
$teardown_end_date,
$event_welcome_msg
);
2017-01-02 03:57:23 +01:00
if ($result === false) {
2017-01-03 14:12:17 +01:00
engelsystem_error('Unable to update event config.');
2017-01-02 03:57:23 +01:00
}
2017-01-02 15:43:36 +01:00
engelsystem_log(
2017-01-03 14:12:17 +01:00
'Changed event config: $event_name, $event_welcome_msg, '
. date('Y-m-d', $buildup_start_date) . ', ' . date('Y-m-d', $event_start_date) . ', '
. date('Y-m-d', $event_end_date) . ', ' . date('Y-m-d', $teardown_end_date)
2017-01-02 15:43:36 +01:00
);
2017-01-03 14:12:17 +01:00
success(_('Settings saved.'));
2017-01-02 03:57:23 +01:00
redirect(page_link_to('admin_event_config'));
}
2016-07-14 10:19:38 +02:00
}
2017-01-02 15:43:36 +01:00
2017-01-02 03:57:23 +01:00
return [
2017-01-02 15:43:36 +01:00
event_config_title(),
EventConfig_edit_view(
$event_name,
$event_welcome_msg,
$buildup_start_date,
$event_start_date,
$event_end_date,
$teardown_end_date
)
];
2016-07-14 10:19:38 +02:00
}