fossasia/engelsystem

View on GitHub
includes/controller/admin_events_controller.php

Summary

Maintainability
C
1 day
Test Coverage
<?php
 
function admin_events_title() {
return _("Create Events");
}
 
Function `admin_events` has a Cognitive Complexity of 36 (exceeds 5 allowed). Consider refactoring.
Method `admin_events` has 82 lines of code (exceeds 25 allowed). Consider refactoring.
function admin_events() {
 
global $user;
$timezone_identifiers = DateTimeZone::listIdentifiers();
$timezone = $user['timezone'];
date_default_timezone_set ("$timezone_identifiers[$timezone]");
 
$name = "";
$description = "";
$organizer = "";
$start_date = DateTime::createFromFormat("Y-m-d H:i", date("Y-m-d") . " 00:00")->getTimestamp();
$end_date = $start_date;
$start_time = DateTime::createFromFormat("H:i", date("H:i") )->getTimestamp();
$end_time = $start_time;
$venue = "";
 
if (isset($_REQUEST['submit'])) {
$ok = true;
 
if (isset($_REQUEST['name']))
$name = strip_request_item('name');
 
if (isset($_REQUEST['start_date']) && $tmp = DateTime::createFromFormat("Y-m-d", trim($_REQUEST['start_date'])))
$start_date = $tmp->getTimestamp();
else {
$ok = false;
error(_('Please select a start date.'));
}
if (isset($_REQUEST['end_date']) && $tmp = DateTime::createFromFormat("Y-m-d", trim($_REQUEST['end_date'])))
$end_date = $tmp->getTimestamp();
else {
$ok = false;
error(_('Please select an end date.'));
}
if (isset($_REQUEST['start_time']) && $tmp = DateTime::createFromFormat("H:i", trim($_REQUEST['start_time'])))
$start_time = $tmp->getTimestamp();
else {
$ok = false;
error(_('Please select an start time.'));
}
if (isset($_REQUEST['end_time']) && $tmp = DateTime::createFromFormat("H:i", trim($_REQUEST['end_time'])))
$end_time = $tmp->getTimestamp();
else {
$ok = false;
error(_('Please select an end time.'));
}
 
if (strtotime($_REQUEST['start_date']) > strtotime($_REQUEST['end_date'])) {
$ok = false;
error(_('The event end has to be after its start.'));
}
if (strtotime($_REQUEST['start_date']) == strtotime($_REQUEST['end_date'])) {
if (strtotime($_REQUEST['start_time']) > strtotime($_REQUEST['end_time'])) {
$ok = false;
error(_('The events end time has to be after its start time.'));
}
}
if (strtotime($_REQUEST['start_date']) == strtotime($_REQUEST['end_date'])) {
if (strtotime($_REQUEST['start_time']) == strtotime($_REQUEST['end_time'])) {
$ok = false;
error(_('The event start and end at same time.'));
}
}
if (isset($_REQUEST['venue']))
$venue = strip_request_item('venue');
if (isset($_REQUEST['organizer']))
$organizer = strip_request_item('organizer');
if (isset($_REQUEST['description']))
$description = strip_request_item_nl('description');
 
}
 
if ($ok) {
event_create($name, $description, $organizer, $start_date, $start_time, $end_date, $end_time, $venue);
 
success(_("New Event Created."));
redirect(page_link_to('admin_events'));
}
 
return page_with_title(admin_events_title(), array(
msg(),
form(array(
form_text('name', _("Event Name"), $name),
form_textarea('description', _("Event Description"), $description),
form_text('organizer', _("Organizer Name"), $organizer),
form_date('start_date', _("Start Date"), $start_date),
form_text('start_time', _("Start Time"), date("H:i", $start_time)),
form_date('end_date', _("End Date"), $end_date),
form_text('end_time', _("End Time"), date("H:i", $end_time)),
form_text('venue', _("Venue"), $venue),
form_submit('submit', _("Save"))
))
));
 
}
 
?>