From 7313e15ce8236e19331fb6639a3a5b97c8f06ecd Mon Sep 17 00:00:00 2001 From: Bot Date: Mon, 2 Jan 2017 03:57:23 +0100 Subject: PSR-2 formatting --- includes/pages/admin_active.php | 277 +++++++++++----------- includes/pages/admin_arrive.php | 255 ++++++++++---------- includes/pages/admin_free.php | 113 ++++----- includes/pages/admin_groups.php | 111 ++++----- includes/pages/admin_import.php | 410 ++++++++++++++++---------------- includes/pages/admin_log.php | 37 +-- includes/pages/admin_news.php | 38 +-- includes/pages/admin_questions.php | 114 ++++----- includes/pages/admin_rooms.php | 273 ++++++++++----------- includes/pages/admin_shifts.php | 447 +++++++++++++++++------------------ includes/pages/admin_user.php | 241 +++++++++---------- includes/pages/guest_credits.php | 11 +- includes/pages/guest_login.php | 470 +++++++++++++++++++------------------ includes/pages/guest_start.php | 6 +- includes/pages/guest_stats.php | 45 ++-- includes/pages/user_atom.php | 58 ++--- includes/pages/user_ical.php | 82 +++---- includes/pages/user_messages.php | 116 ++++----- includes/pages/user_myshifts.php | 153 ++++++------ includes/pages/user_news.php | 274 ++++++++++----------- includes/pages/user_questions.php | 61 ++--- includes/pages/user_settings.php | 271 ++++++++++----------- includes/pages/user_shifts.php | 219 ++++++++--------- 23 files changed, 2066 insertions(+), 2016 deletions(-) (limited to 'includes/pages') diff --git a/includes/pages/admin_active.php b/includes/pages/admin_active.php index a1e31b11..46e88e23 100644 --- a/includes/pages/admin_active.php +++ b/includes/pages/admin_active.php @@ -1,45 +1,47 @@ « ' . _("back") . ' | ' . _("apply") . ''; + $limit = ""; + $msg = success(_("Marked angels."), true); + } else { + $set_active = '« ' . _("back") . ' | ' . _("apply") . ''; + } } - } - if (isset($_REQUEST['active']) && preg_match("/^[0-9]+$/", $_REQUEST['active'])) { - $user_id = $_REQUEST['active']; - $user_source = User($user_id); - if ($user_source != null) { - sql_query("UPDATE `User` SET `Aktiv`=1 WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); - engelsystem_log("User " . User_Nick_render($user_source) . " is active now."); - $msg = success(_("Angel has been marked as active."), true); - } else { - $msg = error(_("Angel not found."), true); - } - } elseif (isset($_REQUEST['not_active']) && preg_match("/^[0-9]+$/", $_REQUEST['not_active'])) { - $user_id = $_REQUEST['not_active']; - $user_source = User($user_id); - if ($user_source != null) { - sql_query("UPDATE `User` SET `Aktiv`=0 WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); - engelsystem_log("User " . User_Nick_render($user_source) . " is NOT active now."); - $msg = success(_("Angel has been marked as not active."), true); - } else { - $msg = error(_("Angel not found."), true); - } - } elseif (isset($_REQUEST['tshirt']) && preg_match("/^[0-9]+$/", $_REQUEST['tshirt'])) { - $user_id = $_REQUEST['tshirt']; - $user_source = User($user_id); - if ($user_source != null) { - sql_query("UPDATE `User` SET `Tshirt`=1 WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); - engelsystem_log("User " . User_Nick_render($user_source) . " has tshirt now."); - $msg = success(_("Angel has got a t-shirt."), true); - } else { - $msg = error("Angel not found.", true); - } - } elseif (isset($_REQUEST['not_tshirt']) && preg_match("/^[0-9]+$/", $_REQUEST['not_tshirt'])) { - $user_id = $_REQUEST['not_tshirt']; - $user_source = User($user_id); - if ($user_source != null) { - sql_query("UPDATE `User` SET `Tshirt`=0 WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); - engelsystem_log("User " . User_Nick_render($user_source) . " has NO tshirt."); - $msg = success(_("Angel has got no t-shirt."), true); - } else { - $msg = error(_("Angel not found."), true); + if (isset($_REQUEST['active']) && preg_match("/^[0-9]+$/", $_REQUEST['active'])) { + $user_id = $_REQUEST['active']; + $user_source = User($user_id); + if ($user_source != null) { + sql_query("UPDATE `User` SET `Aktiv`=1 WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); + engelsystem_log("User " . User_Nick_render($user_source) . " is active now."); + $msg = success(_("Angel has been marked as active."), true); + } else { + $msg = error(_("Angel not found."), true); + } + } elseif (isset($_REQUEST['not_active']) && preg_match("/^[0-9]+$/", $_REQUEST['not_active'])) { + $user_id = $_REQUEST['not_active']; + $user_source = User($user_id); + if ($user_source != null) { + sql_query("UPDATE `User` SET `Aktiv`=0 WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); + engelsystem_log("User " . User_Nick_render($user_source) . " is NOT active now."); + $msg = success(_("Angel has been marked as not active."), true); + } else { + $msg = error(_("Angel not found."), true); + } + } elseif (isset($_REQUEST['tshirt']) && preg_match("/^[0-9]+$/", $_REQUEST['tshirt'])) { + $user_id = $_REQUEST['tshirt']; + $user_source = User($user_id); + if ($user_source != null) { + sql_query("UPDATE `User` SET `Tshirt`=1 WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); + engelsystem_log("User " . User_Nick_render($user_source) . " has tshirt now."); + $msg = success(_("Angel has got a t-shirt."), true); + } else { + $msg = error("Angel not found.", true); + } + } elseif (isset($_REQUEST['not_tshirt']) && preg_match("/^[0-9]+$/", $_REQUEST['not_tshirt'])) { + $user_id = $_REQUEST['not_tshirt']; + $user_source = User($user_id); + if ($user_source != null) { + sql_query("UPDATE `User` SET `Tshirt`=0 WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); + engelsystem_log("User " . User_Nick_render($user_source) . " has NO tshirt."); + $msg = success(_("Angel has got no t-shirt."), true); + } else { + $msg = error(_("Angel not found."), true); + } } - } - $users = sql_select(" + $users = sql_select(" SELECT `User`.*, COUNT(`ShiftEntry`.`id`) as `shift_count`, ${shift_sum_formula} as `shift_length` FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` LEFT JOIN `Shifts` ON `ShiftEntry`.`SID` = `Shifts`.`SID` " . ($show_all_shifts ? "" : "AND (`Shifts`.`end` < " . time() . " OR `Shifts`.`end` IS NULL)") . " WHERE `User`.`Gekommen` = 1 GROUP BY `User`.`UID` ORDER BY `force_active` DESC, `shift_length` DESC" . $limit); - $matched_users = []; - if ($search == "") { - $tokens = []; - } else { - $tokens = explode(" ", $search); - } - foreach ($users as &$usr) { - if (count($tokens) > 0) { - $match = false; - foreach ($tokens as $t) { - if (stristr($usr['Nick'], trim($t))) { - $match = true; - break; - } - } - if (! $match) { - continue; - } + $matched_users = []; + if ($search == "") { + $tokens = []; + } else { + $tokens = explode(" ", $search); } - $usr['nick'] = User_Nick_render($usr); - $usr['shirt_size'] = $tshirt_sizes[$usr['Size']]; - $usr['work_time'] = round($usr['shift_length'] / 60) . ' min (' . round($usr['shift_length'] / 3600) . ' h)'; - $usr['active'] = glyph_bool($usr['Aktiv'] == 1); - $usr['force_active'] = glyph_bool($usr['force_active'] == 1); - $usr['tshirt'] = glyph_bool($usr['Tshirt'] == 1); + foreach ($users as &$usr) { + if (count($tokens) > 0) { + $match = false; + foreach ($tokens as $t) { + if (stristr($usr['Nick'], trim($t))) { + $match = true; + break; + } + } + if (! $match) { + continue; + } + } + $usr['nick'] = User_Nick_render($usr); + $usr['shirt_size'] = $tshirt_sizes[$usr['Size']]; + $usr['work_time'] = round($usr['shift_length'] / 60) . ' min (' . round($usr['shift_length'] / 3600) . ' h)'; + $usr['active'] = glyph_bool($usr['Aktiv'] == 1); + $usr['force_active'] = glyph_bool($usr['force_active'] == 1); + $usr['tshirt'] = glyph_bool($usr['Tshirt'] == 1); - $actions = []; - if ($usr['Aktiv'] == 0) { - $actions[] = '' . _("set active") . ''; - } - if ($usr['Aktiv'] == 1 && $usr['Tshirt'] == 0) { - $actions[] = '' . _("remove active") . ''; - $actions[] = '' . _("got t-shirt") . ''; - } - if ($usr['Tshirt'] == 1) { - $actions[] = '' . _("remove t-shirt") . ''; - } + $actions = []; + if ($usr['Aktiv'] == 0) { + $actions[] = '' . _("set active") . ''; + } + if ($usr['Aktiv'] == 1 && $usr['Tshirt'] == 0) { + $actions[] = '' . _("remove active") . ''; + $actions[] = '' . _("got t-shirt") . ''; + } + if ($usr['Tshirt'] == 1) { + $actions[] = '' . _("remove t-shirt") . ''; + } - $usr['actions'] = join(' ', $actions); + $usr['actions'] = join(' ', $actions); - $matched_users[] = $usr; - } + $matched_users[] = $usr; + } - $shirt_statistics = []; - foreach (array_keys($tshirt_sizes) as $size) { - if ($size != '') { - $shirt_statistics[] = [ + $shirt_statistics = []; + foreach (array_keys($tshirt_sizes) as $size) { + if ($size != '') { + $shirt_statistics[] = [ 'size' => $size, 'needed' => sql_select_single_cell("SELECT count(*) FROM `User` WHERE `Size`='" . sql_escape($size) . "' AND `Gekommen`=1"), - 'given' => sql_select_single_cell("SELECT count(*) FROM `User` WHERE `Size`='" . sql_escape($size) . "' AND `Tshirt`=1") + 'given' => sql_select_single_cell("SELECT count(*) FROM `User` WHERE `Size`='" . sql_escape($size) . "' AND `Tshirt`=1") ]; + } } - } - $shirt_statistics[] = [ + $shirt_statistics[] = [ 'size' => '' . _("Sum") . '', 'needed' => '' . User_arrived_count() . '', - 'given' => '' . sql_select_single_cell("SELECT count(*) FROM `User` WHERE `Tshirt`=1") . '' + 'given' => '' . sql_select_single_cell("SELECT count(*) FROM `User` WHERE `Tshirt`=1") . '' ]; - return page_with_title(admin_active_title(), [ + return page_with_title(admin_active_title(), [ form([ form_text('search', _("Search angel:"), $search), form_checkbox('show_all_shifts', _("Show all shifts"), $show_all_shifts), - form_submit('submit', _("Search")) + form_submit('submit', _("Search")) ], page_link_to('admin_active')), $set_active == "" ? form([ form_text('count', _("How much angels should be active?"), $count), - form_submit('set_active', _("Preview")) + form_submit('set_active', _("Preview")) ]) : $set_active, msg(), table([ @@ -189,14 +191,13 @@ function admin_active() { 'active' => _("Active?"), 'force_active' => _("Forced"), 'tshirt' => _("T-shirt?"), - 'actions' => "" + 'actions' => "" ], $matched_users), '

' . _("Shirt statistics") . '

', table([ 'size' => _("Size"), 'needed' => _("Needed shirts"), - 'given' => _("Given shirts") - ], $shirt_statistics) + 'given' => _("Given shirts") + ], $shirt_statistics) ]); } -?> diff --git a/includes/pages/admin_arrive.php b/includes/pages/admin_arrive.php index 4a1ee8d7..c2e97072 100644 --- a/includes/pages/admin_arrive.php +++ b/includes/pages/admin_arrive.php @@ -1,145 +1,147 @@ 0) { - $match = false; - $index = join(" ", $usr); - foreach ($tokens as $t) { - if (stristr($index, trim($t))) { - $match = true; - break; + if (isset($_REQUEST['reset']) && preg_match("/^[0-9]*$/", $_REQUEST['reset'])) { + $user_id = $_REQUEST['reset']; + $user_source = User($user_id); + if ($user_source != null) { + sql_query("UPDATE `User` SET `Gekommen`=0, `arrival_date` = NULL WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); + engelsystem_log("User set to not arrived: " . User_Nick_render($user_source)); + success(_("Reset done. Angel has not arrived.")); + redirect(user_link($user_source)); + } else { + $msg = error(_("Angel not found."), true); + } + } elseif (isset($_REQUEST['arrived']) && preg_match("/^[0-9]*$/", $_REQUEST['arrived'])) { + $user_id = $_REQUEST['arrived']; + $user_source = User($user_id); + if ($user_source != null) { + sql_query("UPDATE `User` SET `Gekommen`=1, `arrival_date`='" . time() . "' WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); + engelsystem_log("User set has arrived: " . User_Nick_render($user_source)); + success(_("Angel has been marked as arrived.")); + redirect(user_link($user_source)); + } else { + $msg = error(_("Angel not found."), true); } - } - if (! $match) { - continue; - } } - - $usr['nick'] = User_Nick_render($usr); - if ($usr['planned_departure_date'] != null) { - $usr['rendered_planned_departure_date'] = date('Y-m-d', $usr['planned_departure_date']); + + $users = sql_select("SELECT * FROM `User` ORDER BY `Nick`"); + $arrival_count_at_day = []; + $planned_arrival_count_at_day = []; + $planned_departure_count_at_day = []; + $users_matched = []; + if ($search == "") { + $tokens = []; } else { - $usr['rendered_planned_departure_date'] = '-'; + $tokens = explode(" ", $search); } - $usr['rendered_planned_arrival_date'] = date('Y-m-d', $usr['planned_arrival_date']); - $usr['rendered_arrival_date'] = $usr['arrival_date'] > 0 ? date('Y-m-d', $usr['arrival_date']) : "-"; - $usr['arrived'] = $usr['Gekommen'] == 1 ? _("yes") : ""; - $usr['actions'] = $usr['Gekommen'] == 1 ? '' . _("reset") . '' : '' . _("arrived") . ''; + foreach ($users as $usr) { + if (count($tokens) > 0) { + $match = false; + $index = join(" ", $usr); + foreach ($tokens as $t) { + if (stristr($index, trim($t))) { + $match = true; + break; + } + } + if (! $match) { + continue; + } + } - if ($usr['arrival_date'] > 0) { - $day = date('Y-m-d', $usr['arrival_date']); - if (! isset($arrival_count_at_day[$day])) { - $arrival_count_at_day[$day] = 0; - } - $arrival_count_at_day[$day] ++; - } + $usr['nick'] = User_Nick_render($usr); + if ($usr['planned_departure_date'] != null) { + $usr['rendered_planned_departure_date'] = date('Y-m-d', $usr['planned_departure_date']); + } else { + $usr['rendered_planned_departure_date'] = '-'; + } + $usr['rendered_planned_arrival_date'] = date('Y-m-d', $usr['planned_arrival_date']); + $usr['rendered_arrival_date'] = $usr['arrival_date'] > 0 ? date('Y-m-d', $usr['arrival_date']) : "-"; + $usr['arrived'] = $usr['Gekommen'] == 1 ? _("yes") : ""; + $usr['actions'] = $usr['Gekommen'] == 1 ? '' . _("reset") . '' : '' . _("arrived") . ''; - if ($usr['planned_arrival_date'] != null) { - $day = date('Y-m-d', $usr['planned_arrival_date']); - if (! isset($planned_arrival_count_at_day[$day])) { - $planned_arrival_count_at_day[$day] = 0; - } - $planned_arrival_count_at_day[$day] ++; - } + if ($usr['arrival_date'] > 0) { + $day = date('Y-m-d', $usr['arrival_date']); + if (! isset($arrival_count_at_day[$day])) { + $arrival_count_at_day[$day] = 0; + } + $arrival_count_at_day[$day] ++; + } - if ($usr['planned_departure_date'] != null && $usr['Gekommen'] == 1) { - $day = date('Y-m-d', $usr['planned_departure_date']); - if (! isset($planned_departure_count_at_day[$day])) { - $planned_departure_count_at_day[$day] = 0; - } - $planned_departure_count_at_day[$day] ++; - } + if ($usr['planned_arrival_date'] != null) { + $day = date('Y-m-d', $usr['planned_arrival_date']); + if (! isset($planned_arrival_count_at_day[$day])) { + $planned_arrival_count_at_day[$day] = 0; + } + $planned_arrival_count_at_day[$day] ++; + } + + if ($usr['planned_departure_date'] != null && $usr['Gekommen'] == 1) { + $day = date('Y-m-d', $usr['planned_departure_date']); + if (! isset($planned_departure_count_at_day[$day])) { + $planned_departure_count_at_day[$day] = 0; + } + $planned_departure_count_at_day[$day] ++; + } - $users_matched[] = $usr; - } + $users_matched[] = $usr; + } - ksort($arrival_count_at_day); - ksort($planned_arrival_count_at_day); - ksort($planned_departure_count_at_day); + ksort($arrival_count_at_day); + ksort($planned_arrival_count_at_day); + ksort($planned_departure_count_at_day); - $arrival_at_day = []; - $arrival_sum = 0; - foreach ($arrival_count_at_day as $day => $count) { - $arrival_sum += $count; - $arrival_at_day[$day] = [ + $arrival_at_day = []; + $arrival_sum = 0; + foreach ($arrival_count_at_day as $day => $count) { + $arrival_sum += $count; + $arrival_at_day[$day] = [ 'day' => $day, 'count' => $count, - 'sum' => $arrival_sum + 'sum' => $arrival_sum ]; - } + } - $planned_arrival_at_day = []; - $planned_arrival_sum = 0; - foreach ($planned_arrival_count_at_day as $day => $count) { - $planned_arrival_sum += $count; - $planned_arrival_at_day[$day] = [ + $planned_arrival_at_day = []; + $planned_arrival_sum = 0; + foreach ($planned_arrival_count_at_day as $day => $count) { + $planned_arrival_sum += $count; + $planned_arrival_at_day[$day] = [ 'day' => $day, 'count' => $count, - 'sum' => $planned_arrival_sum + 'sum' => $planned_arrival_sum ]; - } + } - $planned_departure_at_day = []; - $planned_departure_sum = 0; - foreach ($planned_departure_count_at_day as $day => $count) { - $planned_departure_sum += $count; - $planned_departure_at_day[$day] = [ + $planned_departure_at_day = []; + $planned_departure_sum = 0; + foreach ($planned_departure_count_at_day as $day => $count) { + $planned_departure_sum += $count; + $planned_departure_at_day[$day] = [ 'day' => $day, 'count' => $count, - 'sum' => $planned_departure_sum + 'sum' => $planned_departure_sum ]; - } + } - return page_with_title(admin_arrive_title(), [ + return page_with_title(admin_arrive_title(), [ msg(), form([ form_text('search', _("Search"), $search), - form_submit('submit', _("Search")) + form_submit('submit', _("Search")) ]), table([ 'nick' => _("Nickname"), @@ -147,55 +149,54 @@ function admin_arrive() { 'arrived' => _("Arrived?"), 'rendered_arrival_date' => _("Arrival date"), 'rendered_planned_departure_date' => _("Planned departure"), - 'actions' => "" + 'actions' => "" ], $users_matched), div('row', [ div('col-md-4', [ heading(_("Planned arrival statistics"), 2), bargraph('planned_arrives', 'day', [ 'count' => _("arrived"), - 'sum' => _("arrived sum") + 'sum' => _("arrived sum") ], [ 'count' => '#090', - 'sum' => '#888' + 'sum' => '#888' ], $planned_arrival_at_day), table([ 'day' => _("Date"), 'count' => _("Count"), - 'sum' => _("Sum") - ], $planned_arrival_at_day) + 'sum' => _("Sum") + ], $planned_arrival_at_day) ]), div('col-md-4', [ heading(_("Arrival statistics"), 2), bargraph('arrives', 'day', [ 'count' => _("arrived"), - 'sum' => _("arrived sum") + 'sum' => _("arrived sum") ], [ 'count' => '#090', - 'sum' => '#888' + 'sum' => '#888' ], $arrival_at_day), table([ 'day' => _("Date"), 'count' => _("Count"), - 'sum' => _("Sum") - ], $arrival_at_day) + 'sum' => _("Sum") + ], $arrival_at_day) ]), div('col-md-4', [ heading(_("Planned departure statistics"), 2), bargraph('planned_departures', 'day', [ 'count' => _("arrived"), - 'sum' => _("arrived sum") + 'sum' => _("arrived sum") ], [ 'count' => '#090', - 'sum' => '#888' + 'sum' => '#888' ], $planned_departure_at_day), table([ 'day' => _("Date"), 'count' => _("Count"), - 'sum' => _("Sum") - ], $planned_departure_at_day) - ]) - ]) + 'sum' => _("Sum") + ], $planned_departure_at_day) + ]) + ]) ]); } -?> diff --git a/includes/pages/admin_free.php b/includes/pages/admin_free.php index 427de61a..db0c239f 100644 --- a/includes/pages/admin_free.php +++ b/includes/pages/admin_free.php @@ -1,37 +1,39 @@ 'alle Typen' + $angel_types_source = sql_select("SELECT `id`, `name` FROM `AngelTypes` ORDER BY `name`"); + $angel_types = [ + '' => 'alle Typen' ]; - foreach ($angel_types_source as $angel_type) { - $angel_types[$angel_type['id']] = $angel_type['name']; - } + foreach ($angel_types_source as $angel_type) { + $angel_types[$angel_type['id']] = $angel_type['name']; + } - $users = sql_select(" + $users = sql_select(" SELECT `User`.* FROM `User` ${angeltypesearch} @@ -41,52 +43,52 @@ function admin_free() { GROUP BY `User`.`UID` ORDER BY `Nick`"); - $free_users_table = []; - if ($search == "") { - $tokens = []; - } else { - $tokens = explode(" ", $search); - } - foreach ($users as $usr) { - if (count($tokens) > 0) { - $match = false; - $index = join("", $usr); - foreach ($tokens as $t) { - if (stristr($index, trim($t))) { - $match = true; - break; - } - } - if (! $match) { - continue; - } + $free_users_table = []; + if ($search == "") { + $tokens = []; + } else { + $tokens = explode(" ", $search); } + foreach ($users as $usr) { + if (count($tokens) > 0) { + $match = false; + $index = join("", $usr); + foreach ($tokens as $t) { + if (stristr($index, trim($t))) { + $match = true; + break; + } + } + if (! $match) { + continue; + } + } - $free_users_table[] = [ + $free_users_table[] = [ 'name' => User_Nick_render($usr), 'shift_state' => User_shift_state_render($usr), 'dect' => $usr['DECT'], 'jabber' => $usr['jabber'], 'email' => $usr['email_by_human_allowed'] ? $usr['email'] : glyph('eye-close'), - 'actions' => in_array('admin_user', $privileges) ? button(page_link_to('admin_user') . '&id=' . $usr['UID'], _("edit"), 'btn-xs') : '' + 'actions' => in_array('admin_user', $privileges) ? button(page_link_to('admin_user') . '&id=' . $usr['UID'], _("edit"), 'btn-xs') : '' ]; - } - return page_with_title(admin_free_title(), [ + } + return page_with_title(admin_free_title(), [ form([ div('row', [ div('col-md-4', [ - form_text('search', _("Search"), $search) + form_text('search', _("Search"), $search) ]), div('col-md-4', [ - form_select('angeltype', _("Angeltype"), $angel_types, $_REQUEST['angeltype']) + form_select('angeltype', _("Angeltype"), $angel_types, $_REQUEST['angeltype']) ]), div('col-md-2', [ - form_checkbox('confirmed_only', _("Only confirmed"), isset($_REQUEST['confirmed_only'])) + form_checkbox('confirmed_only', _("Only confirmed"), isset($_REQUEST['confirmed_only'])) ]), div('col-md-2', [ - form_submit('submit', _("Search")) - ]) - ]) + form_submit('submit', _("Search")) + ]) + ]) ]), table([ 'name' => _("Nick"), @@ -94,8 +96,7 @@ function admin_free() { 'dect' => _("DECT"), 'jabber' => _("Jabber"), 'email' => _("E-Mail"), - 'actions' => '' - ], $free_users_table) + 'actions' => '' + ], $free_users_table) ]); } -?> diff --git a/includes/pages/admin_groups.php b/includes/pages/admin_groups.php index 388e2c68..04e4320d 100644 --- a/includes/pages/admin_groups.php +++ b/includes/pages/admin_groups.php @@ -1,97 +1,98 @@ $group['Name'], 'privileges' => join(', ', $privileges_html), - 'actions' => button(page_link_to('admin_groups') . '&action=edit&id=' . $group['UID'], _("edit"), 'btn-xs') + 'actions' => button(page_link_to('admin_groups') . '&action=edit&id=' . $group['UID'], _("edit"), 'btn-xs') ]; - } + } - return page_with_title(admin_groups_title(), [ + return page_with_title(admin_groups_title(), [ table([ 'name' => _("Name"), 'privileges' => _("Privileges"), - 'actions' => '' - ], $groups_table) + 'actions' => '' + ], $groups_table) ]); - } else { - switch ($_REQUEST["action"]) { + } else { + switch ($_REQUEST["action"]) { case 'edit': if (isset($_REQUEST['id']) && preg_match("/^-[0-9]{1,11}$/", $_REQUEST['id'])) { - $group_id = $_REQUEST['id']; + $group_id = $_REQUEST['id']; } else { - return error("Incomplete call, missing Groups ID.", true); + return error("Incomplete call, missing Groups ID.", true); } $group = sql_select("SELECT * FROM `Groups` WHERE `UID`='" . sql_escape($group_id) . "' LIMIT 1"); if (count($group) > 0) { - list($group) = $group; - $privileges = sql_select("SELECT `Privileges`.*, `GroupPrivileges`.`group_id` FROM `Privileges` LEFT OUTER JOIN `GroupPrivileges` ON (`Privileges`.`id` = `GroupPrivileges`.`privilege_id` AND `GroupPrivileges`.`group_id`='" . sql_escape($group_id) . "') ORDER BY `Privileges`.`name`"); - $privileges_html = ""; - $privileges_form = []; - foreach ($privileges as $priv) { - $privileges_form[] = form_checkbox('privileges[]', $priv['desc'] . ' (' . $priv['name'] . ')', $priv['group_id'] != "", $priv['id']); - $privileges_html .= sprintf('' . ' %s %s', $priv['id'], ($priv['group_id'] != "" ? 'checked="checked"' : ''), $priv['name'], $priv['desc']); - } + list($group) = $group; + $privileges = sql_select("SELECT `Privileges`.*, `GroupPrivileges`.`group_id` FROM `Privileges` LEFT OUTER JOIN `GroupPrivileges` ON (`Privileges`.`id` = `GroupPrivileges`.`privilege_id` AND `GroupPrivileges`.`group_id`='" . sql_escape($group_id) . "') ORDER BY `Privileges`.`name`"); + $privileges_html = ""; + $privileges_form = []; + foreach ($privileges as $priv) { + $privileges_form[] = form_checkbox('privileges[]', $priv['desc'] . ' (' . $priv['name'] . ')', $priv['group_id'] != "", $priv['id']); + $privileges_html .= sprintf('' . ' %s %s', $priv['id'], ($priv['group_id'] != "" ? 'checked="checked"' : ''), $priv['name'], $priv['desc']); + } - $privileges_form[] = form_submit('submit', _("Save")); - $html .= page_with_title(_("Edit group"), [ - form($privileges_form, page_link_to('admin_groups') . '&action=save&id=' . $group_id) + $privileges_form[] = form_submit('submit', _("Save")); + $html .= page_with_title(_("Edit group"), [ + form($privileges_form, page_link_to('admin_groups') . '&action=save&id=' . $group_id) ]); } else { - return error("No Group found.", true); + return error("No Group found.", true); } break; case 'save': if (isset($_REQUEST['id']) && preg_match("/^-[0-9]{1,11}$/", $_REQUEST['id'])) { - $group_id = $_REQUEST['id']; + $group_id = $_REQUEST['id']; } else { - return error("Incomplete call, missing Groups ID.", true); + return error("Incomplete call, missing Groups ID.", true); } $group = sql_select("SELECT * FROM `Groups` WHERE `UID`='" . sql_escape($group_id) . "' LIMIT 1"); if (! is_array($_REQUEST['privileges'])) { - $_REQUEST['privileges'] = []; + $_REQUEST['privileges'] = []; } if (count($group) > 0) { - list($group) = $group; - sql_query("DELETE FROM `GroupPrivileges` WHERE `group_id`='" . sql_escape($group_id) . "'"); - $privilege_names = []; - foreach ($_REQUEST['privileges'] as $priv) { - if (preg_match("/^[0-9]{1,}$/", $priv)) { - $group_privileges_source = sql_select("SELECT * FROM `Privileges` WHERE `id`='" . sql_escape($priv) . "' LIMIT 1"); - if (count($group_privileges_source) > 0) { - sql_query("INSERT INTO `GroupPrivileges` SET `group_id`='" . sql_escape($group_id) . "', `privilege_id`='" . sql_escape($priv) . "'"); - $privilege_names[] = $group_privileges_source[0]['name']; - } + list($group) = $group; + sql_query("DELETE FROM `GroupPrivileges` WHERE `group_id`='" . sql_escape($group_id) . "'"); + $privilege_names = []; + foreach ($_REQUEST['privileges'] as $priv) { + if (preg_match("/^[0-9]{1,}$/", $priv)) { + $group_privileges_source = sql_select("SELECT * FROM `Privileges` WHERE `id`='" . sql_escape($priv) . "' LIMIT 1"); + if (count($group_privileges_source) > 0) { + sql_query("INSERT INTO `GroupPrivileges` SET `group_id`='" . sql_escape($group_id) . "', `privilege_id`='" . sql_escape($priv) . "'"); + $privilege_names[] = $group_privileges_source[0]['name']; + } + } } - } - engelsystem_log("Group privileges of group " . $group['Name'] . " edited: " . join(", ", $privilege_names)); - redirect(page_link_to("admin_groups")); + engelsystem_log("Group privileges of group " . $group['Name'] . " edited: " . join(", ", $privilege_names)); + redirect(page_link_to("admin_groups")); } else { - return error("No Group found.", true); + return error("No Group found.", true); } break; } - } - return $html; + } + return $html; } -?> diff --git a/includes/pages/admin_import.php b/includes/pages/admin_import.php index 0669029d..e1674670 100644 --- a/includes/pages/admin_import.php +++ b/includes/pages/admin_import.php @@ -1,96 +1,98 @@ ' . _('File Upload') . glyph('ok-circle') . '' . mute(glyph('arrow-right')) . _('Validation') . mute(glyph('arrow-right')) . mute(_('Import')) + '' . _('File Upload') . glyph('ok-circle') . '' . mute(glyph('arrow-right')) . _('Validation') . mute(glyph('arrow-right')) . mute(_('Import')) ]) . form([ div('row', [ div('col-sm-6', [ '

' . _("Rooms to create") . '

', - table(_("Name"), $rooms_new) + table(_("Name"), $rooms_new) ]), div('col-sm-6', [ '

' . _("Rooms to delete") . '

', - table(_("Name"), $rooms_deleted) - ]) + table(_("Name"), $rooms_deleted) + ]) ]), '

' . _("Shifts to create") . '

', table([ @@ -156,7 +158,7 @@ function admin_import() { 'end' => _("End"), 'shifttype' => _('Shift type'), 'title' => _("Title"), - 'room' => _("Room") + 'room' => _("Room") ], shifts_printable($events_new, $shifttypes)), '

' . _("Shifts to update") . '

', table([ @@ -165,7 +167,7 @@ function admin_import() { 'end' => _("End"), 'shifttype' => _('Shift type'), 'title' => _("Title"), - 'room' => _("Room") + 'room' => _("Room") ], shifts_printable($events_updated, $shifttypes)), '

' . _("Shifts to delete") . '

', table([ @@ -174,75 +176,75 @@ function admin_import() { 'end' => _("End"), 'shifttype' => _('Shift type'), 'title' => _("Title"), - 'room' => _("Room") + 'room' => _("Room") ], shifts_printable($events_deleted, $shifttypes)), - form_submit('submit', _("Import")) + form_submit('submit', _("Import")) ], page_link_to('admin_import') . '&step=import&shifttype_id=' . $shifttype_id . "&add_minutes_end=" . $add_minutes_end . "&add_minutes_start=" . $add_minutes_start); break; case 'import': if (! file_exists($import_file)) { - error(_('Missing import file.')); - redirect(page_link_to('admin_import')); + error(_('Missing import file.')); + redirect(page_link_to('admin_import')); } if (! file_exists($import_file)) { - redirect(page_link_to('admin_import')); + redirect(page_link_to('admin_import')); } if (isset($_REQUEST['shifttype_id']) && isset($shifttypes[$_REQUEST['shifttype_id']])) { - $shifttype_id = $_REQUEST['shifttype_id']; + $shifttype_id = $_REQUEST['shifttype_id']; } else { - error(_('Please select a shift type.')); - redirect(page_link_to('admin_import')); + error(_('Please select a shift type.')); + redirect(page_link_to('admin_import')); } if (isset($_REQUEST['add_minutes_start']) && is_numeric(trim($_REQUEST['add_minutes_start']))) { - $add_minutes_start = trim($_REQUEST['add_minutes_start']); + $add_minutes_start = trim($_REQUEST['add_minutes_start']); } else { - error(_("Please enter an amount of minutes to add to a talk's begin.")); - redirect(page_link_to('admin_import')); + error(_("Please enter an amount of minutes to add to a talk's begin.")); + redirect(page_link_to('admin_import')); } if (isset($_REQUEST['add_minutes_end']) && is_numeric(trim($_REQUEST['add_minutes_end']))) { - $add_minutes_end = trim($_REQUEST['add_minutes_end']); + $add_minutes_end = trim($_REQUEST['add_minutes_end']); } else { - error(_("Please enter an amount of minutes to add to a talk's end.")); - redirect(page_link_to('admin_import')); + error(_("Please enter an amount of minutes to add to a talk's end.")); + redirect(page_link_to('admin_import')); } list($rooms_new, $rooms_deleted) = prepare_rooms($import_file); foreach ($rooms_new as $room) { - $result = Room_create($room, true, true); - if ($result === false) { - engelsystem_error('Unable to create room.'); - } - $rooms_import[trim($room)] = sql_id(); + $result = Room_create($room, true, true); + if ($result === false) { + engelsystem_error('Unable to create room.'); + } + $rooms_import[trim($room)] = sql_id(); } foreach ($rooms_deleted as $room) { - sql_query("DELETE FROM `Room` WHERE `Name`='" . sql_escape($room) . "' LIMIT 1"); + sql_query("DELETE FROM `Room` WHERE `Name`='" . sql_escape($room) . "' LIMIT 1"); } list($events_new, $events_updated, $events_deleted) = prepare_events($import_file, $shifttype_id, $add_minutes_start, $add_minutes_end); foreach ($events_new as $event) { - $result = Shift_create($event); - if ($result === false) { - engelsystem_error('Unable to create shift.'); - } + $result = Shift_create($event); + if ($result === false) { + engelsystem_error('Unable to create shift.'); + } } foreach ($events_updated as $event) { - $result = Shift_update_by_psid($event); - if ($result === false) { - engelsystem_error('Unable to update shift.'); - } + $result = Shift_update_by_psid($event); + if ($result === false) { + engelsystem_error('Unable to update shift.'); + } } foreach ($events_deleted as $event) { - $result = Shift_delete_by_psid($event['PSID']); - if ($result === false) { - engelsystem_error('Unable to delete shift.'); - } + $result = Shift_delete_by_psid($event['PSID']); + if ($result === false) { + engelsystem_error('Unable to delete shift.'); + } } engelsystem_log("Frab import done"); @@ -250,143 +252,147 @@ function admin_import() { unlink($import_file); $html .= div('well well-sm text-center', [ - '' . _('File Upload') . glyph('ok-circle') . '' . mute(glyph('arrow-right')) . '' . _('Validation') . glyph('ok-circle') . '' . mute(glyph('arrow-right')) . '' . _('Import') . glyph('ok-circle') . '' + '' . _('File Upload') . glyph('ok-circle') . '' . mute(glyph('arrow-right')) . '' . _('Validation') . glyph('ok-circle') . '' . mute(glyph('arrow-right')) . '' . _('Import') . glyph('ok-circle') . '' ]) . success(_("It's done!"), true); break; default: redirect(page_link_to('admin_import')); } - return page_with_title(admin_import_title(), [ + return page_with_title(admin_import_title(), [ msg(), - $html + $html ]); } -function prepare_rooms($file) { - global $rooms_import; - $data = read_xml($file); +function prepare_rooms($file) +{ + global $rooms_import; + $data = read_xml($file); // Load rooms from db for compare with input $rooms = sql_select("SELECT * FROM `Room` WHERE `FromPentabarf`='Y'"); - $rooms_db = []; - $rooms_import = []; - foreach ($rooms as $room) { - $rooms_db[] = (string) $room['Name']; - $rooms_import[$room['Name']] = $room['RID']; - } + $rooms_db = []; + $rooms_import = []; + foreach ($rooms as $room) { + $rooms_db[] = (string) $room['Name']; + $rooms_import[$room['Name']] = $room['RID']; + } - $events = $data->vcalendar->vevent; - $rooms_pb = []; - foreach ($events as $event) { - $rooms_pb[] = (string) $event->location; - if (! isset($rooms_import[trim($event->location)])) { - $rooms_import[trim($event->location)] = trim($event->location); + $events = $data->vcalendar->vevent; + $rooms_pb = []; + foreach ($events as $event) { + $rooms_pb[] = (string) $event->location; + if (! isset($rooms_import[trim($event->location)])) { + $rooms_import[trim($event->location)] = trim($event->location); + } } - } - $rooms_pb = array_unique($rooms_pb); + $rooms_pb = array_unique($rooms_pb); - $rooms_new = array_diff($rooms_pb, $rooms_db); - $rooms_deleted = array_diff($rooms_db, $rooms_pb); + $rooms_new = array_diff($rooms_pb, $rooms_db); + $rooms_deleted = array_diff($rooms_db, $rooms_pb); - return [ + return [ $rooms_new, - $rooms_deleted + $rooms_deleted ]; } -function prepare_events($file, $shifttype_id, $add_minutes_start, $add_minutes_end) { - global $rooms_import; - $data = read_xml($file); +function prepare_events($file, $shifttype_id, $add_minutes_start, $add_minutes_end) +{ + global $rooms_import; + $data = read_xml($file); - $rooms = sql_select("SELECT * FROM `Room`"); - $rooms_db = []; - foreach ($rooms as $room) { - $rooms_db[$room['Name']] = $room['RID']; - } + $rooms = sql_select("SELECT * FROM `Room`"); + $rooms_db = []; + foreach ($rooms as $room) { + $rooms_db[$room['Name']] = $room['RID']; + } - $events = $data->vcalendar->vevent; - $shifts_pb = []; - foreach ($events as $event) { - $event_pb = $event->children("http://pentabarf.org"); - $event_id = trim($event_pb->{ + $events = $data->vcalendar->vevent; + $shifts_pb = []; + foreach ($events as $event) { + $event_pb = $event->children("http://pentabarf.org"); + $event_id = trim($event_pb->{ 'event-id' }); - $shifts_pb[$event_id] = [ + $shifts_pb[$event_id] = [ 'shifttype_id' => $shifttype_id, 'start' => parse_date("Ymd\THis", $event->dtstart) - $add_minutes_start * 60, 'end' => parse_date("Ymd\THis", $event->dtend) + $add_minutes_end * 60, 'RID' => $rooms_import[trim($event->location)], 'title' => trim($event->summary), 'URL' => trim($event->url), - 'PSID' => $event_id + 'PSID' => $event_id ]; - } + } - $shifts = sql_select("SELECT * FROM `Shifts` WHERE `PSID` IS NOT NULL ORDER BY `start`"); - $shifts_db = []; - foreach ($shifts as $shift) { - $shifts_db[$shift['PSID']] = $shift; - } + $shifts = sql_select("SELECT * FROM `Shifts` WHERE `PSID` IS NOT NULL ORDER BY `start`"); + $shifts_db = []; + foreach ($shifts as $shift) { + $shifts_db[$shift['PSID']] = $shift; + } - $shifts_new = []; - $shifts_updated = []; - foreach ($shifts_pb as $shift) { - if (! isset($shifts_db[$shift['PSID']])) { - $shifts_new[] = $shift; - } else { - $tmp = $shifts_db[$shift['PSID']]; - if ($shift['shifttype_id'] != $tmp['shifttype_id'] || $shift['title'] != $tmp['title'] || $shift['start'] != $tmp['start'] || $shift['end'] != $tmp['end'] || $shift['RID'] != $tmp['RID'] || $shift['URL'] != $tmp['URL']) { - $shifts_updated[] = $shift; - } + $shifts_new = []; + $shifts_updated = []; + foreach ($shifts_pb as $shift) { + if (! isset($shifts_db[$shift['PSID']])) { + $shifts_new[] = $shift; + } else { + $tmp = $shifts_db[$shift['PSID']]; + if ($shift['shifttype_id'] != $tmp['shifttype_id'] || $shift['title'] != $tmp['title'] || $shift['start'] != $tmp['start'] || $shift['end'] != $tmp['end'] || $shift['RID'] != $tmp['RID'] || $shift['URL'] != $tmp['URL']) { + $shifts_updated[] = $shift; + } + } } - } - $shifts_deleted = []; - foreach ($shifts_db as $shift) { - if (! isset($shifts_pb[$shift['PSID']])) { - $shifts_deleted[] = $shift; + $shifts_deleted = []; + foreach ($shifts_db as $shift) { + if (! isset($shifts_pb[$shift['PSID']])) { + $shifts_deleted[] = $shift; + } } - } - return [ + return [ $shifts_new, $shifts_updated, - $shifts_deleted + $shifts_deleted ]; } -function read_xml($file) { - global $xml_import; - if (! isset($xml_import)) { - $xml_import = simplexml_load_file($file); - } - return $xml_import; +function read_xml($file) +{ + global $xml_import; + if (! isset($xml_import)) { + $xml_import = simplexml_load_file($file); + } + return $xml_import; } -function shifts_printable($shifts, $shifttypes) { - global $rooms_import; - $rooms = array_flip($rooms_import); +function shifts_printable($shifts, $shifttypes) +{ + global $rooms_import; + $rooms = array_flip($rooms_import); - uasort($shifts, 'shift_sort'); + uasort($shifts, 'shift_sort'); - $shifts_printable = []; - foreach ($shifts as $shift) { - $shifts_printable[] = [ + $shifts_printable = []; + foreach ($shifts as $shift) { + $shifts_printable[] = [ 'day' => date("l, Y-m-d", $shift['start']), 'start' => date("H:i", $shift['start']), 'shifttype' => ShiftType_name_render([ 'id' => $shift['shifttype_id'], - 'name' => $shifttypes[$shift['shifttype_id']] + 'name' => $shifttypes[$shift['shifttype_id']] ]), 'title' => shorten($shift['title']), 'end' => date("H:i", $shift['end']), - 'room' => $rooms[$shift['RID']] + 'room' => $rooms[$shift['RID']] ]; - } - return $shifts_printable; + } + return $shifts_printable; } -function shift_sort($shift_a, $shift_b) { - return ($shift_a['start'] < $shift_b['start']) ? - 1 : 1; +function shift_sort($shift_a, $shift_b) +{ + return ($shift_a['start'] < $shift_b['start']) ? - 1 : 1; } -?> diff --git a/includes/pages/admin_log.php b/includes/pages/admin_log.php index 97b81585..d4548c07 100644 --- a/includes/pages/admin_log.php +++ b/includes/pages/admin_log.php @@ -1,33 +1,34 @@ "Time", 'nick' => "Angel", - 'message' => "Log Entry" - ], $log_entries) + 'message' => "Log Entry" + ], $log_entries) ]); } -?> diff --git a/includes/pages/admin_news.php b/includes/pages/admin_news.php index 789fc728..46d72ddd 100644 --- a/includes/pages/admin_news.php +++ b/includes/pages/admin_news.php @@ -1,24 +1,25 @@

' . _("Edit news entry") . '

' . msg(); - if (isset($_REQUEST['id']) && preg_match("/^[0-9]{1,11}$/", $_REQUEST['id'])) { - $news_id = $_REQUEST['id']; - } else { - return error("Incomplete call, missing News ID.", true); - } + $html = '

' . _("Edit news entry") . '

' . msg(); + if (isset($_REQUEST['id']) && preg_match("/^[0-9]{1,11}$/", $_REQUEST['id'])) { + $news_id = $_REQUEST['id']; + } else { + return error("Incomplete call, missing News ID.", true); + } - $news = sql_select("SELECT * FROM `News` WHERE `ID`='" . sql_escape($news_id) . "' LIMIT 1"); - if (empty($news)) { - return error("No News found.", true); - } - switch ($_REQUEST["action"]) { + $news = sql_select("SELECT * FROM `News` WHERE `ID`='" . sql_escape($news_id) . "' LIMIT 1"); + if (empty($news)) { + return error("No News found.", true); + } + switch ($_REQUEST["action"]) { default: redirect(page_link_to('news')); case 'edit': @@ -32,7 +33,7 @@ function admin_news() { form_text('eBetreff', _("Subject"), $news['Betreff']), form_textarea('eText', _("Message"), $news['Text']), form_checkbox('eTreffen', _("Meeting"), $news['Treffen'] == 1, 1), - form_submit('submit', _("Save")) + form_submit('submit', _("Save")) ], page_link_to('admin_news&action=save&id=' . $news_id)); $html .= ' ' . _("Delete") . ''; @@ -62,6 +63,5 @@ function admin_news() { redirect(page_link_to("news")); break; } - return $html . '
'; + return $html . ''; } -?> \ No newline at end of file diff --git a/includes/pages/admin_questions.php b/includes/pages/admin_questions.php index f53cfab9..e8a2e50d 100644 --- a/includes/pages/admin_questions.php +++ b/includes/pages/admin_questions.php @@ -1,69 +1,72 @@ 0) { - return '' . _('There are unanswered questions!') . ''; - } + if ($new_messages > 0) { + return '' . _('There are unanswered questions!') . ''; + } + } } - } - return null; + return null; } -function admin_questions() { - global $user; +function admin_questions() +{ + global $user; - if (! isset($_REQUEST['action'])) { - $unanswered_questions_table = []; - $questions = sql_select("SELECT * FROM `Questions` WHERE `AID` IS NULL"); - foreach ($questions as $question) { - $user_source = User($question['UID']); + if (! isset($_REQUEST['action'])) { + $unanswered_questions_table = []; + $questions = sql_select("SELECT * FROM `Questions` WHERE `AID` IS NULL"); + foreach ($questions as $question) { + $user_source = User($question['UID']); - $unanswered_questions_table[] = [ + $unanswered_questions_table[] = [ 'from' => User_Nick_render($user_source), 'question' => str_replace("\n", "
", $question['Question']), 'answer' => form([ form_textarea('answer', '', ''), - form_submit('submit', _("Save")) + form_submit('submit', _("Save")) ], page_link_to('admin_questions') . '&action=answer&id=' . $question['QID']), - 'actions' => button(page_link_to("admin_questions") . '&action=delete&id=' . $question['QID'], _("delete"), 'btn-xs') + 'actions' => button(page_link_to("admin_questions") . '&action=delete&id=' . $question['QID'], _("delete"), 'btn-xs') ]; - } + } - $answered_questions_table = []; - $questions = sql_select("SELECT * FROM `Questions` WHERE NOT `AID` IS NULL"); - foreach ($questions as $question) { - $user_source = User($question['UID']); - $answer_user_source = User($question['AID']); - $answered_questions_table[] = [ + $answered_questions_table = []; + $questions = sql_select("SELECT * FROM `Questions` WHERE NOT `AID` IS NULL"); + foreach ($questions as $question) { + $user_source = User($question['UID']); + $answer_user_source = User($question['AID']); + $answered_questions_table[] = [ 'from' => User_Nick_render($user_source), 'question' => str_replace("\n", "
", $question['Question']), 'answered_by' => User_Nick_render($answer_user_source), 'answer' => str_replace("\n", "
", $question['Answer']), - 'actions' => button(page_link_to("admin_questions") . '&action=delete&id=' . $question['QID'], _("delete"), 'btn-xs') + 'actions' => button(page_link_to("admin_questions") . '&action=delete&id=' . $question['QID'], _("delete"), 'btn-xs') ]; - } + } - return page_with_title(admin_questions_title(), [ + return page_with_title(admin_questions_title(), [ '

' . _("Unanswered questions") . '

', table([ 'from' => _("From"), 'question' => _("Question"), 'answer' => _("Answer"), - 'actions' => '' + 'actions' => '' ], $unanswered_questions_table), '

' . _("Answered questions") . '

', table([ @@ -71,50 +74,49 @@ function admin_questions() { 'question' => _("Question"), 'answered_by' => _("Answered by"), 'answer' => _("Answer"), - 'actions' => '' - ], $answered_questions_table) + 'actions' => '' + ], $answered_questions_table) ]); - } else { - switch ($_REQUEST['action']) { + } else { + switch ($_REQUEST['action']) { case 'answer': if (isset($_REQUEST['id']) && preg_match("/^[0-9]{1,11}$/", $_REQUEST['id'])) { - $question_id = $_REQUEST['id']; + $question_id = $_REQUEST['id']; } else { - return error("Incomplete call, missing Question ID.", true); + return error("Incomplete call, missing Question ID.", true); } $question = sql_select("SELECT * FROM `Questions` WHERE `QID`='" . sql_escape($question_id) . "' LIMIT 1"); if (count($question) > 0 && $question[0]['AID'] == null) { - $answer = trim(preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', strip_tags($_REQUEST['answer']))); + $answer = trim(preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', strip_tags($_REQUEST['answer']))); - if ($answer != "") { - sql_query("UPDATE `Questions` SET `AID`='" . sql_escape($user['UID']) . "', `Answer`='" . sql_escape($answer) . "' WHERE `QID`='" . sql_escape($question_id) . "' LIMIT 1"); - engelsystem_log("Question " . $question[0]['Question'] . " answered: " . $answer); - redirect(page_link_to("admin_questions")); - } else { - return error("Enter an answer!", true); - } + if ($answer != "") { + sql_query("UPDATE `Questions` SET `AID`='" . sql_escape($user['UID']) . "', `Answer`='" . sql_escape($answer) . "' WHERE `QID`='" . sql_escape($question_id) . "' LIMIT 1"); + engelsystem_log("Question " . $question[0]['Question'] . " answered: " . $answer); + redirect(page_link_to("admin_questions")); + } else { + return error("Enter an answer!", true); + } } else { - return error("No question found.", true); + return error("No question found.", true); } break; case 'delete': if (isset($_REQUEST['id']) && preg_match("/^[0-9]{1,11}$/", $_REQUEST['id'])) { - $question_id = $_REQUEST['id']; + $question_id = $_REQUEST['id']; } else { - return error("Incomplete call, missing Question ID.", true); + return error("Incomplete call, missing Question ID.", true); } $question = sql_select("SELECT * FROM `Questions` WHERE `QID`='" . sql_escape($question_id) . "' LIMIT 1"); if (count($question) > 0) { - sql_query("DELETE FROM `Questions` WHERE `QID`='" . sql_escape($question_id) . "' LIMIT 1"); - engelsystem_log("Question deleted: " . $question[0]['Question']); - redirect(page_link_to("admin_questions")); + sql_query("DELETE FROM `Questions` WHERE `QID`='" . sql_escape($question_id) . "' LIMIT 1"); + engelsystem_log("Question deleted: " . $question[0]['Question']); + redirect(page_link_to("admin_questions")); } else { - return error("No question found.", true); + return error("No question found.", true); } break; } - } + } } -?> diff --git a/includes/pages/admin_rooms.php b/includes/pages/admin_rooms.php index 129ed423..365c2f69 100644 --- a/includes/pages/admin_rooms.php +++ b/includes/pages/admin_rooms.php @@ -1,140 +1,142 @@ Room_name_render($room), 'from_pentabarf' => $room['FromPentabarf'] == 'Y' ? '✓' : '', 'public' => $room['show'] == 'Y' ? '✓' : '', 'actions' => table_buttons([ button(page_link_to('admin_rooms') . '&show=edit&id=' . $room['RID'], _("edit"), 'btn-xs'), - button(page_link_to('admin_rooms') . '&show=delete&id=' . $room['RID'], _("delete"), 'btn-xs') - ]) + button(page_link_to('admin_rooms') . '&show=delete&id=' . $room['RID'], _("delete"), 'btn-xs') + ]) ]; - } - $room = null; + } + $room = null; - if (isset($_REQUEST['show'])) { - $msg = ""; - $name = ""; - $from_pentabarf = ""; - $public = 'Y'; - $number = ""; + if (isset($_REQUEST['show'])) { + $msg = ""; + $name = ""; + $from_pentabarf = ""; + $public = 'Y'; + $number = ""; - $angeltypes_source = sql_select("SELECT * FROM `AngelTypes` ORDER BY `name`"); - $angeltypes = []; - $angeltypes_count = []; - foreach ($angeltypes_source as $angeltype) { - $angeltypes[$angeltype['id']] = $angeltype['name']; - $angeltypes_count[$angeltype['id']] = 0; - } + $angeltypes_source = sql_select("SELECT * FROM `AngelTypes` ORDER BY `name`"); + $angeltypes = []; + $angeltypes_count = []; + foreach ($angeltypes_source as $angeltype) { + $angeltypes[$angeltype['id']] = $angeltype['name']; + $angeltypes_count[$angeltype['id']] = 0; + } - if (test_request_int('id')) { - $room = Room($_REQUEST['id']); - if ($room === false) { - engelsystem_error("Unable to load room."); - } - if ($room == null) { - redirect(page_link_to('admin_rooms')); - } + if (test_request_int('id')) { + $room = Room($_REQUEST['id']); + if ($room === false) { + engelsystem_error("Unable to load room."); + } + if ($room == null) { + redirect(page_link_to('admin_rooms')); + } - $room_id = $_REQUEST['id']; - $name = $room['Name']; - $from_pentabarf = $room['FromPentabarf']; - $public = $room['show']; - $number = $room['Number']; + $room_id = $_REQUEST['id']; + $name = $room['Name']; + $from_pentabarf = $room['FromPentabarf']; + $public = $room['show']; + $number = $room['Number']; - $needed_angeltypes = sql_select("SELECT * FROM `NeededAngelTypes` WHERE `room_id`='" . sql_escape($room_id) . "'"); - foreach ($needed_angeltypes as $needed_angeltype) { - $angeltypes_count[$needed_angeltype['angel_type_id']] = $needed_angeltype['count']; - } - } + $needed_angeltypes = sql_select("SELECT * FROM `NeededAngelTypes` WHERE `room_id`='" . sql_escape($room_id) . "'"); + foreach ($needed_angeltypes as $needed_angeltype) { + $angeltypes_count[$needed_angeltype['angel_type_id']] = $needed_angeltype['count']; + } + } - if ($_REQUEST['show'] == 'edit') { - if (isset($_REQUEST['submit'])) { - $valid = true; + if ($_REQUEST['show'] == 'edit') { + if (isset($_REQUEST['submit'])) { + $valid = true; - if (isset($_REQUEST['name']) && strlen(strip_request_item('name')) > 0) { - $name = strip_request_item('name'); - if (isset($room) && sql_num_query("SELECT * FROM `Room` WHERE `Name`='" . sql_escape($name) . "' AND NOT `RID`=" . sql_escape($room_id)) > 0) { - $valid = false; - $msg .= error(_("This name is already in use."), true); - } - } else { - $valid = false; - $msg .= error(_("Please enter a name."), true); - } + if (isset($_REQUEST['name']) && strlen(strip_request_item('name')) > 0) { + $name = strip_request_item('name'); + if (isset($room) && sql_num_query("SELECT * FROM `Room` WHERE `Name`='" . sql_escape($name) . "' AND NOT `RID`=" . sql_escape($room_id)) > 0) { + $valid = false; + $msg .= error(_("This name is already in use."), true); + } + } else { + $valid = false; + $msg .= error(_("Please enter a name."), true); + } - if (isset($_REQUEST['from_pentabarf'])) { - $from_pentabarf = 'Y'; - } else { - $from_pentabarf = ''; - } + if (isset($_REQUEST['from_pentabarf'])) { + $from_pentabarf = 'Y'; + } else { + $from_pentabarf = ''; + } - if (isset($_REQUEST['public'])) { - $public = 'Y'; - } else { - $public = ''; - } + if (isset($_REQUEST['public'])) { + $public = 'Y'; + } else { + $public = ''; + } - if (isset($_REQUEST['number'])) { - $number = strip_request_item('number'); - } else { - $valid = false; - } + if (isset($_REQUEST['number'])) { + $number = strip_request_item('number'); + } else { + $valid = false; + } - foreach ($angeltypes as $angeltype_id => $angeltype) { - if (isset($_REQUEST['angeltype_count_' . $angeltype_id]) && preg_match("/^[0-9]{1,4}$/", $_REQUEST['angeltype_count_' . $angeltype_id])) { - $angeltypes_count[$angeltype_id] = $_REQUEST['angeltype_count_' . $angeltype_id]; - } else { - $valid = false; - $msg .= error(sprintf(_("Please enter needed angels for type %s.", $angeltype)), true); - } - } + foreach ($angeltypes as $angeltype_id => $angeltype) { + if (isset($_REQUEST['angeltype_count_' . $angeltype_id]) && preg_match("/^[0-9]{1,4}$/", $_REQUEST['angeltype_count_' . $angeltype_id])) { + $angeltypes_count[$angeltype_id] = $_REQUEST['angeltype_count_' . $angeltype_id]; + } else { + $valid = false; + $msg .= error(sprintf(_("Please enter needed angels for type %s.", $angeltype)), true); + } + } - if ($valid) { - if (isset($room_id)) { - sql_query("UPDATE `Room` SET `Name`='" . sql_escape($name) . "', `FromPentabarf`='" . sql_escape($from_pentabarf) . "', `show`='" . sql_escape($public) . "', `Number`='" . sql_escape($number) . "' WHERE `RID`='" . sql_escape($room_id) . "' LIMIT 1"); - engelsystem_log("Room updated: " . $name . ", pentabarf import: " . $from_pentabarf . ", public: " . $public . ", number: " . $number); - } else { - $room_id = Room_create($name, $from_pentabarf, $public, $number); - if ($room_id === false) { - engelsystem_error("Unable to create room."); - } - engelsystem_log("Room created: " . $name . ", pentabarf import: " . $from_pentabarf . ", public: " . $public . ", number: " . $number); - } + if ($valid) { + if (isset($room_id)) { + sql_query("UPDATE `Room` SET `Name`='" . sql_escape($name) . "', `FromPentabarf`='" . sql_escape($from_pentabarf) . "', `show`='" . sql_escape($public) . "', `Number`='" . sql_escape($number) . "' WHERE `RID`='" . sql_escape($room_id) . "' LIMIT 1"); + engelsystem_log("Room updated: " . $name . ", pentabarf import: " . $from_pentabarf . ", public: " . $public . ", number: " . $number); + } else { + $room_id = Room_create($name, $from_pentabarf, $public, $number); + if ($room_id === false) { + engelsystem_error("Unable to create room."); + } + engelsystem_log("Room created: " . $name . ", pentabarf import: " . $from_pentabarf . ", public: " . $public . ", number: " . $number); + } - NeededAngelTypes_delete_by_room($room_id); - $needed_angeltype_info = []; - foreach ($angeltypes_count as $angeltype_id => $angeltype_count) { - $angeltype = AngelType($angeltype_id); - if ($angeltype != null) { - NeededAngelType_add(null, $angeltype_id, $room_id, $angeltype_count); - $needed_angeltype_info[] = $angeltype['name'] . ": " . $angeltype_count; - } - } + NeededAngelTypes_delete_by_room($room_id); + $needed_angeltype_info = []; + foreach ($angeltypes_count as $angeltype_id => $angeltype_count) { + $angeltype = AngelType($angeltype_id); + if ($angeltype != null) { + NeededAngelType_add(null, $angeltype_id, $room_id, $angeltype_count); + $needed_angeltype_info[] = $angeltype['name'] . ": " . $angeltype_count; + } + } - engelsystem_log("Set needed angeltypes of room " . $name . " to: " . join(", ", $needed_angeltype_info)); - success(_("Room saved.")); - redirect(page_link_to("admin_rooms")); - } - } - $angeltypes_count_form = []; - foreach ($angeltypes as $angeltype_id => $angeltype) { - $angeltypes_count_form[] = div('col-lg-4 col-md-6 col-xs-6', [ - form_spinner('angeltype_count_' . $angeltype_id, $angeltype, $angeltypes_count[$angeltype_id]) + engelsystem_log("Set needed angeltypes of room " . $name . " to: " . join(", ", $needed_angeltype_info)); + success(_("Room saved.")); + redirect(page_link_to("admin_rooms")); + } + } + $angeltypes_count_form = []; + foreach ($angeltypes as $angeltype_id => $angeltype) { + $angeltypes_count_form[] = div('col-lg-4 col-md-6 col-xs-6', [ + form_spinner('angeltype_count_' . $angeltype_id, $angeltype, $angeltypes_count[$angeltype_id]) ]); - } + } - return page_with_title(admin_rooms_title(), [ + return page_with_title(admin_rooms_title(), [ buttons([ - button(page_link_to('admin_rooms'), _("back"), 'back') + button(page_link_to('admin_rooms'), _("back"), 'back') ]), $msg, form([ @@ -143,54 +145,53 @@ function admin_rooms() { form_text('name', _("Name"), $name), form_checkbox('from_pentabarf', _("Frab import"), $from_pentabarf), form_checkbox('public', _("Public"), $public), - form_text('number', _("Room number"), $number) + form_text('number', _("Room number"), $number) ]), div('col-md-6', [ div('row', [ div('col-md-12', [ - form_info(_("Needed angels:")) + form_info(_("Needed angels:")) ]), - join($angeltypes_count_form) - ]) - ]) + join($angeltypes_count_form) + ]) + ]) ]), - form_submit('submit', _("Save")) - ]) + form_submit('submit', _("Save")) + ]) ]); - } elseif ($_REQUEST['show'] == 'delete') { - if (isset($_REQUEST['ack'])) { - if (! Room_delete($room_id)) { - engelsystem_error("Unable to delete room."); - } + } elseif ($_REQUEST['show'] == 'delete') { + if (isset($_REQUEST['ack'])) { + if (! Room_delete($room_id)) { + engelsystem_error("Unable to delete room."); + } - engelsystem_log("Room deleted: " . $name); - success(sprintf(_("Room %s deleted."), $name)); - redirect(page_link_to('admin_rooms')); - } + engelsystem_log("Room deleted: " . $name); + success(sprintf(_("Room %s deleted."), $name)); + redirect(page_link_to('admin_rooms')); + } - return page_with_title(admin_rooms_title(), [ + return page_with_title(admin_rooms_title(), [ buttons([ - button(page_link_to('admin_rooms'), _("back"), 'back') + button(page_link_to('admin_rooms'), _("back"), 'back') ]), sprintf(_("Do you want to delete room %s?"), $name), buttons([ - button(page_link_to('admin_rooms') . '&show=delete&id=' . $room_id . '&ack', _("Delete"), 'delete') - ]) + button(page_link_to('admin_rooms') . '&show=delete&id=' . $room_id . '&ack', _("Delete"), 'delete') + ]) ]); + } } - } - return page_with_title(admin_rooms_title(), [ + return page_with_title(admin_rooms_title(), [ buttons([ - button(page_link_to('admin_rooms') . '&show=edit', _("add")) + button(page_link_to('admin_rooms') . '&show=edit', _("add")) ]), msg(), table([ 'name' => _("Name"), 'from_pentabarf' => _("Frab import"), 'public' => _("Public"), - 'actions' => "" - ], $rooms) + 'actions' => "" + ], $rooms) ]); } -?> diff --git a/includes/pages/admin_shifts.php b/includes/pages/admin_shifts.php index 42a8c682..79c9874a 100644 --- a/includes/pages/admin_shifts.php +++ b/includes/pages/admin_shifts.php @@ -1,257 +1,259 @@ = $end) { - $valid = false; - error(_('The shifts end has to be after its start.')); + $valid = false; + $rid = $rooms[0]['RID']; + error(_('Please select a location.')); } - if (isset($_REQUEST['mode'])) { - if ($_REQUEST['mode'] == 'single') { - $mode = 'single'; - } elseif ($_REQUEST['mode'] == 'multi') { - if (isset($_REQUEST['length']) && preg_match("/^[0-9]+$/", trim($_REQUEST['length']))) { - $mode = 'multi'; - $length = trim($_REQUEST['length']); + if (isset($_REQUEST['start']) && $tmp = parse_date("Y-m-d H:i", $_REQUEST['start'])) { + $start = $tmp; } else { - $valid = false; - error(_('Please enter a shift duration in minutes.')); + $valid = false; + error(_('Please select a start time.')); } - } elseif ($_REQUEST['mode'] == 'variable') { - if (isset($_REQUEST['change_hours']) && preg_match("/^([0-9]{2}(,|$))/", trim(str_replace(" ", "", $_REQUEST['change_hours'])))) { - $mode = 'variable'; - $change_hours = array_map('trim', explode(",", $_REQUEST['change_hours'])); + + if (isset($_REQUEST['end']) && $tmp = parse_date("Y-m-d H:i", $_REQUEST['end'])) { + $end = $tmp; } else { - $valid = false; - error(_('Please split the shift-change hours by colons.')); + $valid = false; + error(_('Please select an end time.')); } - } - } else { - $valid = false; - error(_('Please select a mode.')); - } - if (isset($_REQUEST['angelmode'])) { - if ($_REQUEST['angelmode'] == 'location') { - $angelmode = 'location'; - } elseif ($_REQUEST['angelmode'] == 'manually') { - $angelmode = 'manually'; - foreach ($types as $type) { - if (isset($_REQUEST['type_' . $type['id']]) && preg_match("/^[0-9]+$/", trim($_REQUEST['type_' . $type['id']]))) { - $needed_angel_types[$type['id']] = trim($_REQUEST['type_' . $type['id']]); - } else { + if ($start >= $end) { $valid = false; - error(sprintf(_('Please check the needed angels for team %s.'), $type['name'])); - } + error(_('The shifts end has to be after its start.')); } - if (array_sum($needed_angel_types) == 0) { - $valid = false; - error(_('There are 0 angels needed. Please enter the amounts of needed angels.')); + + if (isset($_REQUEST['mode'])) { + if ($_REQUEST['mode'] == 'single') { + $mode = 'single'; + } elseif ($_REQUEST['mode'] == 'multi') { + if (isset($_REQUEST['length']) && preg_match("/^[0-9]+$/", trim($_REQUEST['length']))) { + $mode = 'multi'; + $length = trim($_REQUEST['length']); + } else { + $valid = false; + error(_('Please enter a shift duration in minutes.')); + } + } elseif ($_REQUEST['mode'] == 'variable') { + if (isset($_REQUEST['change_hours']) && preg_match("/^([0-9]{2}(,|$))/", trim(str_replace(" ", "", $_REQUEST['change_hours'])))) { + $mode = 'variable'; + $change_hours = array_map('trim', explode(",", $_REQUEST['change_hours'])); + } else { + $valid = false; + error(_('Please split the shift-change hours by colons.')); + } + } + } else { + $valid = false; + error(_('Please select a mode.')); + } + + if (isset($_REQUEST['angelmode'])) { + if ($_REQUEST['angelmode'] == 'location') { + $angelmode = 'location'; + } elseif ($_REQUEST['angelmode'] == 'manually') { + $angelmode = 'manually'; + foreach ($types as $type) { + if (isset($_REQUEST['type_' . $type['id']]) && preg_match("/^[0-9]+$/", trim($_REQUEST['type_' . $type['id']]))) { + $needed_angel_types[$type['id']] = trim($_REQUEST['type_' . $type['id']]); + } else { + $valid = false; + error(sprintf(_('Please check the needed angels for team %s.'), $type['name'])); + } + } + if (array_sum($needed_angel_types) == 0) { + $valid = false; + error(_('There are 0 angels needed. Please enter the amounts of needed angels.')); + } + } else { + $valid = false; + error(_('Please select a mode for needed angels.')); + } + } else { + $valid = false; + error(_('Please select needed angels.')); } - } else { - $valid = false; - error(_('Please select a mode for needed angels.')); - } - } else { - $valid = false; - error(_('Please select needed angels.')); - } // Beim Zurück-Knopf das Formular zeigen if (isset($_REQUEST['back'])) { - $valid = false; + $valid = false; } // Alle Eingaben in Ordnung if ($valid) { - if ($angelmode == 'location') { - $needed_angel_types = []; - $needed_angel_types_location = sql_select("SELECT * FROM `NeededAngelTypes` WHERE `room_id`='" . sql_escape($rid) . "'"); - foreach ($needed_angel_types_location as $type) { - $needed_angel_types[$type['angel_type_id']] = $type['count']; + if ($angelmode == 'location') { + $needed_angel_types = []; + $needed_angel_types_location = sql_select("SELECT * FROM `NeededAngelTypes` WHERE `room_id`='" . sql_escape($rid) . "'"); + foreach ($needed_angel_types_location as $type) { + $needed_angel_types[$type['angel_type_id']] = $type['count']; + } } - } - $shifts = []; - if ($mode == 'single') { - $shifts[] = [ + $shifts = []; + if ($mode == 'single') { + $shifts[] = [ 'start' => $start, 'end' => $end, 'RID' => $rid, 'title' => $title, - 'shifttype_id' => $shifttype_id + 'shifttype_id' => $shifttype_id ]; - } elseif ($mode == 'multi') { - $shift_start = $start; - do { - $shift_end = $shift_start + $length * 60; + } elseif ($mode == 'multi') { + $shift_start = $start; + do { + $shift_end = $shift_start + $length * 60; - if ($shift_end > $end) { - $shift_end = $end; - } - if ($shift_start >= $shift_end) { - break; - } + if ($shift_end > $end) { + $shift_end = $end; + } + if ($shift_start >= $shift_end) { + break; + } - $shifts[] = [ + $shifts[] = [ 'start' => $shift_start, 'end' => $shift_end, 'RID' => $rid, 'title' => $title, - 'shifttype_id' => $shifttype_id + 'shifttype_id' => $shifttype_id ]; - $shift_start = $shift_end; - } while ($shift_end < $end); - } elseif ($mode == 'variable') { - rsort($change_hours); - $day = parse_date("Y-m-d H:i", date("Y-m-d", $start) . " 00:00"); - $change_index = 0; + $shift_start = $shift_end; + } while ($shift_end < $end); + } elseif ($mode == 'variable') { + rsort($change_hours); + $day = parse_date("Y-m-d H:i", date("Y-m-d", $start) . " 00:00"); + $change_index = 0; // Ersten/nächsten passenden Schichtwechsel suchen foreach ($change_hours as $i => $change_hour) { - if ($start < $day + $change_hour * 60 * 60) { - $change_index = $i; - } elseif ($start == $day + $change_hour * 60 * 60) { - // Start trifft Schichtwechsel + if ($start < $day + $change_hour * 60 * 60) { + $change_index = $i; + } elseif ($start == $day + $change_hour * 60 * 60) { + // Start trifft Schichtwechsel $change_index = ($i + count($change_hours) - 1) % count($change_hours); - break; - } else { - break; - } + break; + } else { + break; + } } - $shift_start = $start; - do { - $day = parse_date("Y-m-d H:i", date("Y-m-d", $shift_start) . " 00:00"); - $shift_end = $day + $change_hours[$change_index] * 60 * 60; + $shift_start = $start; + do { + $day = parse_date("Y-m-d H:i", date("Y-m-d", $shift_start) . " 00:00"); + $shift_end = $day + $change_hours[$change_index] * 60 * 60; - if ($shift_end > $end) { - $shift_end = $end; - } - if ($shift_start >= $shift_end) { - $shift_end += 24 * 60 * 60; - } + if ($shift_end > $end) { + $shift_end = $end; + } + if ($shift_start >= $shift_end) { + $shift_end += 24 * 60 * 60; + } - $shifts[] = [ + $shifts[] = [ 'start' => $shift_start, 'end' => $shift_end, 'RID' => $rid, 'title' => $title, - 'shifttype_id' => $shifttype_id + 'shifttype_id' => $shifttype_id ]; - $shift_start = $shift_end; - $change_index = ($change_index + count($change_hours) - 1) % count($change_hours); - } while ($shift_end < $end); - } + $shift_start = $shift_end; + $change_index = ($change_index + count($change_hours) - 1) % count($change_hours); + } while ($shift_end < $end); + } - $shifts_table = []; - foreach ($shifts as $shift) { - $shifts_table_entry = [ + $shifts_table = []; + foreach ($shifts as $shift) { + $shifts_table_entry = [ 'timeslot' => ' ' . date("Y-m-d H:i", $shift['start']) . ' - ' . date("H:i", $shift['end']) . '
' . Room_name_render(Room($shift['RID'])), 'title' => ShiftType_name_render(ShiftType($shifttype_id)) . ($shift['title'] ? '
' . $shift['title'] : ''), - 'needed_angels' => '' + 'needed_angels' => '' ]; - foreach ($types as $type) { - if (isset($needed_angel_types[$type['id']]) && $needed_angel_types[$type['id']] > 0) { - $shifts_table_entry['needed_angels'] .= '' . AngelType_name_render($type) . ': ' . $needed_angel_types[$type['id']] . '
'; - } + foreach ($types as $type) { + if (isset($needed_angel_types[$type['id']]) && $needed_angel_types[$type['id']] > 0) { + $shifts_table_entry['needed_angels'] .= '' . AngelType_name_render($type) . ': ' . $needed_angel_types[$type['id']] . '
'; + } + } + $shifts_table[] = $shifts_table_entry; } - $shifts_table[] = $shifts_table_entry; - } // Fürs Anlegen zwischenspeichern: $_SESSION['admin_shifts_shifts'] = $shifts; - $_SESSION['admin_shifts_types'] = $needed_angel_types; + $_SESSION['admin_shifts_types'] = $needed_angel_types; - $hidden_types = ""; - foreach ($needed_angel_types as $type_id => $count) { - $hidden_types .= form_hidden('type_' . $type_id, $count); - } - return page_with_title(_("Preview"), [ + $hidden_types = ""; + foreach ($needed_angel_types as $type_id => $count) { + $hidden_types .= form_hidden('type_' . $type_id, $count); + } + return page_with_title(_("Preview"), [ form([ $hidden_types, form_hidden('shifttype_id', $shifttype_id), @@ -267,53 +269,53 @@ function admin_shifts() { table([ 'timeslot' => _('Time and location'), 'title' => _('Type and title'), - 'needed_angels' => _('Needed angels') + 'needed_angels' => _('Needed angels') ], $shifts_table), - form_submit('submit', _("Save")) - ]) + form_submit('submit', _("Save")) + ]) ]); } - } elseif (isset($_REQUEST['submit'])) { - if (! is_array($_SESSION['admin_shifts_shifts']) || ! is_array($_SESSION['admin_shifts_types'])) { - redirect(page_link_to('admin_shifts')); - } + } elseif (isset($_REQUEST['submit'])) { + if (! is_array($_SESSION['admin_shifts_shifts']) || ! is_array($_SESSION['admin_shifts_types'])) { + redirect(page_link_to('admin_shifts')); + } - foreach ($_SESSION['admin_shifts_shifts'] as $shift) { - $shift['URL'] = null; - $shift['PSID'] = null; - $shift_id = Shift_create($shift); - if ($shift_id === false) { - engelsystem_error('Unable to create shift.'); - } + foreach ($_SESSION['admin_shifts_shifts'] as $shift) { + $shift['URL'] = null; + $shift['PSID'] = null; + $shift_id = Shift_create($shift); + if ($shift_id === false) { + engelsystem_error('Unable to create shift.'); + } - engelsystem_log("Shift created: " . $shifttypes[$shift['shifttype_id']] . " with title " . $shift['title'] . " from " . date("Y-m-d H:i", $shift['start']) . " to " . date("Y-m-d H:i", $shift['end'])); - $needed_angel_types_info = []; - foreach ($_SESSION['admin_shifts_types'] as $type_id => $count) { - $angel_type_source = sql_select("SELECT * FROM `AngelTypes` WHERE `id`='" . sql_escape($type_id) . "' LIMIT 1"); - if (count($angel_type_source) > 0) { - sql_query("INSERT INTO `NeededAngelTypes` SET `shift_id`='" . sql_escape($shift_id) . "', `angel_type_id`='" . sql_escape($type_id) . "', `count`='" . sql_escape($count) . "'"); - $needed_angel_types_info[] = $angel_type_source[0]['name'] . ": " . $count; + engelsystem_log("Shift created: " . $shifttypes[$shift['shifttype_id']] . " with title " . $shift['title'] . " from " . date("Y-m-d H:i", $shift['start']) . " to " . date("Y-m-d H:i", $shift['end'])); + $needed_angel_types_info = []; + foreach ($_SESSION['admin_shifts_types'] as $type_id => $count) { + $angel_type_source = sql_select("SELECT * FROM `AngelTypes` WHERE `id`='" . sql_escape($type_id) . "' LIMIT 1"); + if (count($angel_type_source) > 0) { + sql_query("INSERT INTO `NeededAngelTypes` SET `shift_id`='" . sql_escape($shift_id) . "', `angel_type_id`='" . sql_escape($type_id) . "', `count`='" . sql_escape($count) . "'"); + $needed_angel_types_info[] = $angel_type_source[0]['name'] . ": " . $count; + } + } } - } - } - engelsystem_log("Shift needs following angel types: " . join(", ", $needed_angel_types_info)); - success("Schichten angelegt."); - redirect(page_link_to('admin_shifts')); - } else { - unset($_SESSION['admin_shifts_shifts']); - unset($_SESSION['admin_shifts_types']); - } + engelsystem_log("Shift needs following angel types: " . join(", ", $needed_angel_types_info)); + success("Schichten angelegt."); + redirect(page_link_to('admin_shifts')); + } else { + unset($_SESSION['admin_shifts_shifts']); + unset($_SESSION['admin_shifts_types']); + } - if (! isset($_REQUEST['rid'])) { - $_REQUEST['rid'] = null; - } - $angel_types = ""; - foreach ($types as $type) { - $angel_types .= '
' . form_spinner('type_' . $type['id'], $type['name'], $needed_angel_types[$type['id']]) . '
'; - } + if (! isset($_REQUEST['rid'])) { + $_REQUEST['rid'] = null; + } + $angel_types = ""; + foreach ($types as $type) { + $angel_types .= '
' . form_spinner('type_' . $type['id'], $type['name'], $needed_angel_types[$type['id']]) . '
'; + } - return page_with_title(admin_shifts_title(), [ + return page_with_title(admin_shifts_title(), [ msg(), form([ form_select('shifttype_id', _('Shifttype'), $shifttypes, $shifttype_id), @@ -328,19 +330,18 @@ function admin_shifts() { form_radio('mode', _("Create multiple shifts"), $mode == 'multi', 'multi'), form_text('length', _("Length"), ! empty($_REQUEST['length']) ? $_REQUEST['length'] : '120'), form_radio('mode', _("Create multiple shifts with variable length"), $mode == 'variable', 'variable'), - form_text('change_hours', _("Shift change hours"), ! empty($_REQUEST['change_hours']) ? $_REQUEST['change_hours'] : '00, 04, 08, 10, 12, 14, 16, 18, 20, 22') + form_text('change_hours', _("Shift change hours"), ! empty($_REQUEST['change_hours']) ? $_REQUEST['change_hours'] : '00, 04, 08, 10, 12, 14, 16, 18, 20, 22') ]), div('col-md-6', [ form_info(_("Needed angels"), ''), form_radio('angelmode', _("Take needed angels from room settings"), $angelmode == 'location', 'location'), form_radio('angelmode', _("The following angels are needed"), $angelmode == 'manually', 'manually'), div('row', [ - $angel_types - ]) - ]) + $angel_types + ]) + ]) ]), - form_submit('preview', _("Preview")) - ]) + form_submit('preview', _("Preview")) + ]) ]); } -?> diff --git a/includes/pages/admin_user.php b/includes/pages/admin_user.php index 737bd91f..e84e3089 100644 --- a/includes/pages/admin_user.php +++ b/includes/pages/admin_user.php @@ -1,169 +1,171 @@ " . "hier kannst du den Eintrag ändern. Unter dem Punkt 'Gekommen' " . "wird der Engel als anwesend markiert, ein Ja bei Aktiv bedeutet, " . "dass der Engel aktiv war und damit ein Anspruch auf ein T-Shirt hat. " . "Wenn T-Shirt ein 'Ja' enthält, bedeutet dies, dass der Engel " . "bereits sein T-Shirt erhalten hat.

\n"; - - $html .= "
\n"; - $html .= "\n"; - $html .= "\n"; - $html .= ""; - $html .= "\n"; - $html .= "
\n"; - $html .= "\n"; - $html .= " \n"; - $html .= " \n"; - $html .= " \n"; - $html .= " \n"; - $html .= " \n"; - $html .= " \n"; - $html .= " \n"; - $html .= " \n"; - if ($user_source['email_by_human_allowed']) { - $html .= " \n"; - } - $html .= " \n"; - $html .= " \n"; + $html .= "Hallo,
" . "hier kannst du den Eintrag ändern. Unter dem Punkt 'Gekommen' " . "wird der Engel als anwesend markiert, ein Ja bei Aktiv bedeutet, " . "dass der Engel aktiv war und damit ein Anspruch auf ein T-Shirt hat. " . "Wenn T-Shirt ein 'Ja' enthält, bedeutet dies, dass der Engel " . "bereits sein T-Shirt erhalten hat.

\n"; + + $html .= "\n"; + $html .= "
Nick" . "
lastLogIn" . date("Y-m-d H:i", $user_source['lastLogIn']) . "
Name" . "
Vorname" . "
Alter" . "
Telefon" . "
Handy" . "
DECT" . "
email" . "
jabber" . "
Size" . html_select_key('size', 'eSize', $tshirt_sizes, $user_source['Size']) . "
\n"; + $html .= "\n"; + $html .= ""; + $html .= "
\n"; + $html .= "\n"; + $html .= " \n"; + $html .= " \n"; + $html .= " \n"; + $html .= " \n"; + $html .= " \n"; + $html .= " \n"; + $html .= " \n"; + $html .= " \n"; + if ($user_source['email_by_human_allowed']) { + $html .= " \n"; + } + $html .= " \n"; + $html .= " \n"; - $options = [ + $options = [ '1' => _("Yes"), - '0' => _("No") + '0' => _("No") ]; // Gekommen? $html .= " \n"; + $html .= html_options('eGekommen', $options, $user_source['Gekommen']) . "\n"; // Aktiv? $html .= " \n"; + $html .= html_options('eAktiv', $options, $user_source['Aktiv']) . "\n"; // Aktiv erzwingen if (in_array('admin_active', $privileges)) { - $html .= " \n"; + $html .= " \n"; } // T-Shirt bekommen? $html .= " \n"; + $html .= html_options('eTshirt', $options, $user_source['Tshirt']) . "\n"; - $html .= " \n"; + $html .= " \n"; - $html .= "
Nick" . "
lastLogIn" . date("Y-m-d H:i", $user_source['lastLogIn']) . "
Name" . "
Vorname" . "
Alter" . "
Telefon" . "
Handy" . "
DECT" . "
email" . "
jabber" . "
Size" . html_select_key('size', 'eSize', $tshirt_sizes, $user_source['Size']) . "
Gekommen\n"; - $html .= html_options('eGekommen', $options, $user_source['Gekommen']) . "
Aktiv\n"; - $html .= html_options('eAktiv', $options, $user_source['Aktiv']) . "
" . _("Force active") . "\n"; - $html .= html_options('force_active', $options, $user_source['force_active']) . "
" . _("Force active") . "\n"; + $html .= html_options('force_active', $options, $user_source['force_active']) . "
T-Shirt\n"; - $html .= html_options('eTshirt', $options, $user_source['Tshirt']) . "
Hometown" . "
Hometown" . "
\n
\n
\n
\n"; - $html .= "\n"; - $html .= "
"; + $html .= "\n"; + $html .= "\n
\n"; + $html .= "\n"; + $html .= ""; - $html .= "
"; + $html .= "
"; - $html .= form_info('', _('Please visit the angeltypes page or the users profile to manage users angeltypes.')); + $html .= form_info('', _('Please visit the angeltypes page or the users profile to manage users angeltypes.')); - $html .= "Hier kannst Du das Passwort dieses Engels neu setzen:
\n"; - $html .= "\n"; - $html .= " \n"; - $html .= " \n"; + $html .= "Hier kannst Du das Passwort dieses Engels neu setzen:\n"; + $html .= "
Passwort" . "
Wiederholung" . "
\n"; + $html .= " \n"; + $html .= " \n"; - $html .= "
Passwort" . "
Wiederholung" . "
"; - $html .= "\n"; - $html .= "
"; + $html .= ""; + $html .= "\n"; + $html .= ""; - $html .= "
"; + $html .= "
"; - $my_highest_group = sql_select("SELECT * FROM `UserGroups` WHERE `uid`='" . sql_escape($user['UID']) . "' ORDER BY `group_id` LIMIT 1"); - if (count($my_highest_group) > 0) { - $my_highest_group = $my_highest_group[0]['group_id']; - } + $my_highest_group = sql_select("SELECT * FROM `UserGroups` WHERE `uid`='" . sql_escape($user['UID']) . "' ORDER BY `group_id` LIMIT 1"); + if (count($my_highest_group) > 0) { + $my_highest_group = $my_highest_group[0]['group_id']; + } - $his_highest_group = sql_select("SELECT * FROM `UserGroups` WHERE `uid`='" . sql_escape($user_id) . "' ORDER BY `group_id` LIMIT 1"); - if (count($his_highest_group) > 0) { - $his_highest_group = $his_highest_group[0]['group_id']; - } + $his_highest_group = sql_select("SELECT * FROM `UserGroups` WHERE `uid`='" . sql_escape($user_id) . "' ORDER BY `group_id` LIMIT 1"); + if (count($his_highest_group) > 0) { + $his_highest_group = $his_highest_group[0]['group_id']; + } - if ($user_id != $user['UID'] && $my_highest_group <= $his_highest_group) { - $html .= "Hier kannst Du die Benutzergruppen des Engels festlegen:
\n"; - $html .= ''; + if ($user_id != $user['UID'] && $my_highest_group <= $his_highest_group) { + $html .= "Hier kannst Du die Benutzergruppen des Engels festlegen:\n"; + $html .= '
'; - $groups = sql_select("SELECT * FROM `Groups` LEFT OUTER JOIN `UserGroups` ON (`UserGroups`.`group_id` = `Groups`.`UID` AND `UserGroups`.`uid` = '" . sql_escape($user_id) . "') WHERE `Groups`.`UID` >= '" . sql_escape($my_highest_group) . "' ORDER BY `Groups`.`Name`"); - foreach ($groups as $group) { - $html .= ''; - } + $groups = sql_select("SELECT * FROM `Groups` LEFT OUTER JOIN `UserGroups` ON (`UserGroups`.`group_id` = `Groups`.`UID` AND `UserGroups`.`uid` = '" . sql_escape($user_id) . "') WHERE `Groups`.`UID` >= '" . sql_escape($my_highest_group) . "' ORDER BY `Groups`.`Name`"); + foreach ($groups as $group) { + $html .= ''; + } - $html .= '
' . $group['Name'] . '
' . $group['Name'] . '
'; + $html .= ''; - $html .= "\n"; - $html .= "
"; + $html .= "\n"; + $html .= ""; - $html .= "
"; - } + $html .= "
"; + } - $html .= buttons([ - button(user_delete_link($user_source), glyph('lock') . _("delete"), 'btn-danger') + $html .= buttons([ + button(user_delete_link($user_source), glyph('lock') . _("delete"), 'btn-danger') ]); - $html .= "
"; - } else { - switch ($_REQUEST['action']) { + $html .= "
"; + } else { + switch ($_REQUEST['action']) { case 'save_groups': if ($user_id != $user['UID']) { - $my_highest_group = sql_select("SELECT * FROM `UserGroups` WHERE `uid`='" . sql_escape($user['UID']) . "' ORDER BY `group_id`"); - $his_highest_group = sql_select("SELECT * FROM `UserGroups` WHERE `uid`='" . sql_escape($user_id) . "' ORDER BY `group_id`"); + $my_highest_group = sql_select("SELECT * FROM `UserGroups` WHERE `uid`='" . sql_escape($user['UID']) . "' ORDER BY `group_id`"); + $his_highest_group = sql_select("SELECT * FROM `UserGroups` WHERE `uid`='" . sql_escape($user_id) . "' ORDER BY `group_id`"); - if (count($my_highest_group) > 0 && (count($his_highest_group) == 0 || ($my_highest_group[0]['group_id'] <= $his_highest_group[0]['group_id']))) { - $groups_source = sql_select("SELECT * FROM `Groups` LEFT OUTER JOIN `UserGroups` ON (`UserGroups`.`group_id` = `Groups`.`UID` AND `UserGroups`.`uid` = '" . sql_escape($user_id) . "') WHERE `Groups`.`UID` >= '" . sql_escape($my_highest_group[0]['group_id']) . "' ORDER BY `Groups`.`Name`"); - $groups = []; - $grouplist = []; - foreach ($groups_source as $group) { - $groups[$group['UID']] = $group; - $grouplist[] = $group['UID']; - } + if (count($my_highest_group) > 0 && (count($his_highest_group) == 0 || ($my_highest_group[0]['group_id'] <= $his_highest_group[0]['group_id']))) { + $groups_source = sql_select("SELECT * FROM `Groups` LEFT OUTER JOIN `UserGroups` ON (`UserGroups`.`group_id` = `Groups`.`UID` AND `UserGroups`.`uid` = '" . sql_escape($user_id) . "') WHERE `Groups`.`UID` >= '" . sql_escape($my_highest_group[0]['group_id']) . "' ORDER BY `Groups`.`Name`"); + $groups = []; + $grouplist = []; + foreach ($groups_source as $group) { + $groups[$group['UID']] = $group; + $grouplist[] = $group['UID']; + } - if (! is_array($_REQUEST['groups'])) { - $_REQUEST['groups'] = []; - } + if (! is_array($_REQUEST['groups'])) { + $_REQUEST['groups'] = []; + } - sql_query("DELETE FROM `UserGroups` WHERE `uid`='" . sql_escape($user_id) . "'"); - $user_groups_info = []; - foreach ($_REQUEST['groups'] as $group) { - if (in_array($group, $grouplist)) { - sql_query("INSERT INTO `UserGroups` SET `uid`='" . sql_escape($user_id) . "', `group_id`='" . sql_escape($group) . "'"); - $user_groups_info[] = $groups[$group]['Name']; - } + sql_query("DELETE FROM `UserGroups` WHERE `uid`='" . sql_escape($user_id) . "'"); + $user_groups_info = []; + foreach ($_REQUEST['groups'] as $group) { + if (in_array($group, $grouplist)) { + sql_query("INSERT INTO `UserGroups` SET `uid`='" . sql_escape($user_id) . "', `group_id`='" . sql_escape($group) . "'"); + $user_groups_info[] = $groups[$group]['Name']; + } + } + $user_source = User($user_id); + engelsystem_log("Set groups of " . User_Nick_render($user_source) . " to: " . join(", ", $user_groups_info)); + $html .= success("Benutzergruppen gespeichert.", true); + } else { + $html .= error("Du kannst keine Engel mit mehr Rechten bearbeiten.", true); } - $user_source = User($user_id); - engelsystem_log("Set groups of " . User_Nick_render($user_source) . " to: " . join(", ", $user_groups_info)); - $html .= success("Benutzergruppen gespeichert.", true); - } else { - $html .= error("Du kannst keine Engel mit mehr Rechten bearbeiten.", true); - } } else { - $html .= error("Du kannst Deine eigenen Rechte nicht bearbeiten.", true); + $html .= error("Du kannst Deine eigenen Rechte nicht bearbeiten.", true); } break; case 'save': $force_active = $user['force_active']; if (in_array('admin_active', $privileges)) { - $force_active = $_REQUEST['force_active']; + $force_active = $_REQUEST['force_active']; } $SQL = "UPDATE `User` SET `Nick` = '" . sql_escape($_POST["eNick"]) . "', @@ -190,19 +192,18 @@ function admin_user() { case 'change_pw': if ($_REQUEST['new_pw'] != "" && $_REQUEST['new_pw'] == $_REQUEST['new_pw2']) { - set_password($user_id, $_REQUEST['new_pw']); - $user_source = User($user_id); - engelsystem_log("Set new password for " . User_Nick_render($user_source)); - $html .= success("Passwort neu gesetzt.", true); + set_password($user_id, $_REQUEST['new_pw']); + $user_source = User($user_id); + engelsystem_log("Set new password for " . User_Nick_render($user_source)); + $html .= success("Passwort neu gesetzt.", true); } else { - $html .= error("Die Eingaben müssen übereinstimmen und dürfen nicht leer sein!", true); + $html .= error("Die Eingaben müssen übereinstimmen und dürfen nicht leer sein!", true); } break; } - } + } - return page_with_title(_("Edit user"), [ - $html + return page_with_title(_("Edit user"), [ + $html ]); } -?> diff --git a/includes/pages/guest_credits.php b/includes/pages/guest_credits.php index cbdc3133..00b12f73 100644 --- a/includes/pages/guest_credits.php +++ b/includes/pages/guest_credits.php @@ -1,9 +1,10 @@ \ No newline at end of file diff --git a/includes/pages/guest_login.php b/includes/pages/guest_login.php index 54abe5ca..293fb891 100644 --- a/includes/pages/guest_login.php +++ b/includes/pages/guest_login.php @@ -1,156 +1,160 @@ 1) { - $nick = User_validate_Nick($_REQUEST['nick']); - if (sql_num_query("SELECT * FROM `User` WHERE `Nick`='" . sql_escape($nick) . "' LIMIT 1") > 0) { - $valid = false; - $msg .= error(sprintf(_("Your nick "%s" already exists."), $nick), true); - } - } else { - $valid = false; - $msg .= error(sprintf(_("Your nick "%s" is too short (min. 2 characters)."), User_validate_Nick($_REQUEST['nick'])), true); - } + if (isset($_REQUEST['nick']) && strlen(User_validate_Nick($_REQUEST['nick'])) > 1) { + $nick = User_validate_Nick($_REQUEST['nick']); + if (sql_num_query("SELECT * FROM `User` WHERE `Nick`='" . sql_escape($nick) . "' LIMIT 1") > 0) { + $valid = false; + $msg .= error(sprintf(_("Your nick "%s" already exists."), $nick), true); + } + } else { + $valid = false; + $msg .= error(sprintf(_("Your nick "%s" is too short (min. 2 characters)."), User_validate_Nick($_REQUEST['nick'])), true); + } - if (isset($_REQUEST['mail']) && strlen(strip_request_item('mail')) > 0) { - $mail = strip_request_item('mail'); - if (! check_email($mail)) { - $valid = false; - $msg .= error(_("E-mail address is not correct."), true); - } - } else { - $valid = false; - $msg .= error(_("Please enter your e-mail."), true); - } + if (isset($_REQUEST['mail']) && strlen(strip_request_item('mail')) > 0) { + $mail = strip_request_item('mail'); + if (! check_email($mail)) { + $valid = false; + $msg .= error(_("E-mail address is not correct."), true); + } + } else { + $valid = false; + $msg .= error(_("Please enter your e-mail."), true); + } - if (isset($_REQUEST['email_shiftinfo'])) { - $email_shiftinfo = true; - } + if (isset($_REQUEST['email_shiftinfo'])) { + $email_shiftinfo = true; + } - if (isset($_REQUEST['email_by_human_allowed'])) { - $email_by_human_allowed = true; - } + if (isset($_REQUEST['email_by_human_allowed'])) { + $email_by_human_allowed = true; + } - if (isset($_REQUEST['jabber']) && strlen(strip_request_item('jabber')) > 0) { - $jabber = strip_request_item('jabber'); - if (! check_email($jabber)) { - $valid = false; - $msg .= error(_("Please check your jabber account information."), true); - } - } + if (isset($_REQUEST['jabber']) && strlen(strip_request_item('jabber')) > 0) { + $jabber = strip_request_item('jabber'); + if (! check_email($jabber)) { + $valid = false; + $msg .= error(_("Please check your jabber account information."), true); + } + } - if ($enable_tshirt_size) { - if (isset($_REQUEST['tshirt_size']) && isset($tshirt_sizes[$_REQUEST['tshirt_size']]) && $_REQUEST['tshirt_size'] != '') { - $tshirt_size = $_REQUEST['tshirt_size']; - } else { - $valid = false; - $msg .= error(_("Please select your shirt size."), true); - } - } + if ($enable_tshirt_size) { + if (isset($_REQUEST['tshirt_size']) && isset($tshirt_sizes[$_REQUEST['tshirt_size']]) && $_REQUEST['tshirt_size'] != '') { + $tshirt_size = $_REQUEST['tshirt_size']; + } else { + $valid = false; + $msg .= error(_("Please select your shirt size."), true); + } + } - if (isset($_REQUEST['password']) && strlen($_REQUEST['password']) >= $min_password_length) { - if ($_REQUEST['password'] != $_REQUEST['password2']) { - $valid = false; - $msg .= error(_("Your passwords don't match."), true); - } - } else { - $valid = false; - $msg .= error(sprintf(_("Your password is too short (please use at least %s characters)."), $min_password_length), true); - } + if (isset($_REQUEST['password']) && strlen($_REQUEST['password']) >= $min_password_length) { + if ($_REQUEST['password'] != $_REQUEST['password2']) { + $valid = false; + $msg .= error(_("Your passwords don't match."), true); + } + } else { + $valid = false; + $msg .= error(sprintf(_("Your password is too short (please use at least %s characters)."), $min_password_length), true); + } - if (isset($_REQUEST['planned_arrival_date'])) { - $tmp = parse_date("Y-m-d H:i", $_REQUEST['planned_arrival_date'] . " 00:00"); - $result = User_validate_planned_arrival_date($tmp); - $planned_arrival_date = $result->getValue(); - if (! $result->isValid()) { - $valid = false; - error(_("Please enter your planned date of arrival. It should be after the buildup start date and before teardown end date.")); - } - } + if (isset($_REQUEST['planned_arrival_date'])) { + $tmp = parse_date("Y-m-d H:i", $_REQUEST['planned_arrival_date'] . " 00:00"); + $result = User_validate_planned_arrival_date($tmp); + $planned_arrival_date = $result->getValue(); + if (! $result->isValid()) { + $valid = false; + error(_("Please enter your planned date of arrival. It should be after the buildup start date and before teardown end date.")); + } + } - $selected_angel_types = []; - foreach (array_keys($angel_types) as $angel_type_id) { - if (isset($_REQUEST['angel_types_' . $angel_type_id])) { - $selected_angel_types[] = $angel_type_id; - } - } + $selected_angel_types = []; + foreach (array_keys($angel_types) as $angel_type_id) { + if (isset($_REQUEST['angel_types_' . $angel_type_id])) { + $selected_angel_types[] = $angel_type_id; + } + } // Trivia if (isset($_REQUEST['lastname'])) { - $lastname = strip_request_item('lastname'); - } - if (isset($_REQUEST['prename'])) { - $prename = strip_request_item('prename'); - } - if (isset($_REQUEST['age']) && preg_match("/^[0-9]{0,4}$/", $_REQUEST['age'])) { - $age = strip_request_item('age'); - } - if (isset($_REQUEST['tel'])) { - $tel = strip_request_item('tel'); - } - if (isset($_REQUEST['dect'])) { - $dect = strip_request_item('dect'); - } - if (isset($_REQUEST['mobile'])) { - $mobile = strip_request_item('mobile'); - } - if (isset($_REQUEST['hometown'])) { - $hometown = strip_request_item('hometown'); - } - if (isset($_REQUEST['comment'])) { - $comment = strip_request_item_nl('comment'); + $lastname = strip_request_item('lastname'); } + if (isset($_REQUEST['prename'])) { + $prename = strip_request_item('prename'); + } + if (isset($_REQUEST['age']) && preg_match("/^[0-9]{0,4}$/", $_REQUEST['age'])) { + $age = strip_request_item('age'); + } + if (isset($_REQUEST['tel'])) { + $tel = strip_request_item('tel'); + } + if (isset($_REQUEST['dect'])) { + $dect = strip_request_item('dect'); + } + if (isset($_REQUEST['mobile'])) { + $mobile = strip_request_item('mobile'); + } + if (isset($_REQUEST['hometown'])) { + $hometown = strip_request_item('hometown'); + } + if (isset($_REQUEST['comment'])) { + $comment = strip_request_item_nl('comment'); + } - if ($valid) { - sql_query(" + if ($valid) { + sql_query(" INSERT INTO `User` SET `color`='" . sql_escape($default_theme) . "', `Nick`='" . sql_escape($nick) . "', @@ -175,45 +179,45 @@ function guest_register() { // Assign user-group and set password $user_id = sql_id(); - sql_query("INSERT INTO `UserGroups` SET `uid`='" . sql_escape($user_id) . "', `group_id`=-2"); - set_password($user_id, $_REQUEST['password']); + sql_query("INSERT INTO `UserGroups` SET `uid`='" . sql_escape($user_id) . "', `group_id`=-2"); + set_password($user_id, $_REQUEST['password']); // Assign angel-types $user_angel_types_info = []; - foreach ($selected_angel_types as $selected_angel_type_id) { - sql_query("INSERT INTO `UserAngelTypes` SET `user_id`='" . sql_escape($user_id) . "', `angeltype_id`='" . sql_escape($selected_angel_type_id) . "'"); - $user_angel_types_info[] = $angel_types[$selected_angel_type_id]; - } + foreach ($selected_angel_types as $selected_angel_type_id) { + sql_query("INSERT INTO `UserAngelTypes` SET `user_id`='" . sql_escape($user_id) . "', `angeltype_id`='" . sql_escape($selected_angel_type_id) . "'"); + $user_angel_types_info[] = $angel_types[$selected_angel_type_id]; + } - engelsystem_log("User " . User_Nick_render(User($user_id)) . " signed up as: " . join(", ", $user_angel_types_info)); - success(_("Angel registration successful!")); + engelsystem_log("User " . User_Nick_render(User($user_id)) . " signed up as: " . join(", ", $user_angel_types_info)); + success(_("Angel registration successful!")); // User is already logged in - that means a supporter has registered an angel. Return to register page. if (isset($user)) { - redirect(page_link_to('register')); + redirect(page_link_to('register')); } // If a welcome message is present, display registration success page. if ($event_config != null && $event_config['event_welcome_msg'] != null) { - return User_registration_success_view($event_config['event_welcome_msg']); + return User_registration_success_view($event_config['event_welcome_msg']); } - redirect('?'); + redirect('?'); + } } - } - $buildup_start_date = time(); - $teardown_end_date = null; - if ($event_config != null) { - if (isset($event_config['buildup_start_date'])) { - $buildup_start_date = $event_config['buildup_start_date']; - } - if(isset($event_config['teardown_end_date'])) { - $teardown_end_date = $event_config['teardown_end_date']; + $buildup_start_date = time(); + $teardown_end_date = null; + if ($event_config != null) { + if (isset($event_config['buildup_start_date'])) { + $buildup_start_date = $event_config['buildup_start_date']; + } + if (isset($event_config['teardown_end_date'])) { + $teardown_end_date = $event_config['teardown_end_date']; + } } - } - return page_with_title(register_title(), [ + return page_with_title(register_title(), [ _("By completing this form you're registering as a Chaos-Angel. This script will create you an account in the angel task scheduler."), $msg, msg(), @@ -222,131 +226,133 @@ function guest_register() { div('col-md-6', [ div('row', [ div('col-sm-4', [ - form_text('nick', _("Nick") . ' ' . entry_required(), $nick) + form_text('nick', _("Nick") . ' ' . entry_required(), $nick) ]), div('col-sm-8', [ form_email('mail', _("E-Mail") . ' ' . entry_required(), $mail), form_checkbox('email_shiftinfo', _("The engelsystem is allowed to send me an email (e.g. when my shifts change)"), $email_shiftinfo), - form_checkbox('email_by_human_allowed', _("Humans are allowed to send me an email (e.g. for ticket vouchers)"), $email_by_human_allowed) - ]) + form_checkbox('email_by_human_allowed', _("Humans are allowed to send me an email (e.g. for ticket vouchers)"), $email_by_human_allowed) + ]) ]), div('row', [ div('col-sm-6', [ - form_date('planned_arrival_date', _("Planned date of arrival") . ' ' . entry_required(), $planned_arrival_date, $buildup_start_date, $teardown_end_date) + form_date('planned_arrival_date', _("Planned date of arrival") . ' ' . entry_required(), $planned_arrival_date, $buildup_start_date, $teardown_end_date) ]), div('col-sm-6', [ - $enable_tshirt_size ? form_select('tshirt_size', _("Shirt size") . ' ' . entry_required(), $tshirt_sizes, $tshirt_size) : '' - ]) + $enable_tshirt_size ? form_select('tshirt_size', _("Shirt size") . ' ' . entry_required(), $tshirt_sizes, $tshirt_size) : '' + ]) ]), div('row', [ div('col-sm-6', [ - form_password('password', _("Password") . ' ' . entry_required()) + form_password('password', _("Password") . ' ' . entry_required()) ]), div('col-sm-6', [ - form_password('password2', _("Confirm password") . ' ' . entry_required()) - ]) + form_password('password2', _("Confirm password") . ' ' . entry_required()) + ]) ]), form_checkboxes('angel_types', _("What do you want to do?") . sprintf(" (%s)", page_link_to('angeltypes') . '&action=about', _("Description of job types")), $angel_types, $selected_angel_types), - form_info("", _("Restricted angel types need will be confirmed later by a supporter. You can change your selection in the options section.")) + form_info("", _("Restricted angel types need will be confirmed later by a supporter. You can change your selection in the options section.")) ]), div('col-md-6', [ div('row', [ div('col-sm-4', [ - form_text('dect', _("DECT"), $dect) + form_text('dect', _("DECT"), $dect) ]), div('col-sm-4', [ - form_text('mobile', _("Mobile"), $mobile) + form_text('mobile', _("Mobile"), $mobile) ]), div('col-sm-4', [ - form_text('tel', _("Phone"), $tel) - ]) + form_text('tel', _("Phone"), $tel) + ]) ]), form_text('jabber', _("Jabber"), $jabber), div('row', [ div('col-sm-6', [ - form_text('prename', _("First name"), $prename) + form_text('prename', _("First name"), $prename) ]), div('col-sm-6', [ - form_text('lastname', _("Last name"), $lastname) - ]) + form_text('lastname', _("Last name"), $lastname) + ]) ]), div('row', [ div('col-sm-3', [ - form_text('age', _("Age"), $age) + form_text('age', _("Age"), $age) ]), div('col-sm-9', [ - form_text('hometown', _("Hometown"), $hometown) - ]) + form_text('hometown', _("Hometown"), $hometown) + ]) ]), - form_info(entry_required() . ' = ' . _("Entry required!")) - ]) + form_info(entry_required() . ' = ' . _("Entry required!")) + ]) ]), // form_textarea('comment', _("Did you help at former CCC events and which tasks have you performed then?"), $comment), - form_submit('submit', _("Register")) - ]) + form_submit('submit', _("Register")) + ]) ]); } -function entry_required() { - return ''; +function entry_required() +{ + return ''; } -function guest_logout() { - session_destroy(); - redirect(page_link_to("start")); +function guest_logout() +{ + session_destroy(); + redirect(page_link_to("start")); } -function guest_login() { - $nick = ""; +function guest_login() +{ + $nick = ""; - unset($_SESSION['uid']); - $valid = true; + unset($_SESSION['uid']); + $valid = true; - if (isset($_REQUEST['submit'])) { - - if (isset($_REQUEST['nick']) && strlen(User_validate_Nick($_REQUEST['nick'])) > 0) { - $nick = User_validate_Nick($_REQUEST['nick']); - $login_user = sql_select("SELECT * FROM `User` WHERE `Nick`='" . sql_escape($nick) . "'"); - if (count($login_user) > 0) { - $login_user = $login_user[0]; - if (isset($_REQUEST['password'])) { - if (! verify_password($_REQUEST['password'], $login_user['Passwort'], $login_user['UID'])) { - $valid = false; - error(_("Your password is incorrect. Please try it again.")); - } + if (isset($_REQUEST['submit'])) { + if (isset($_REQUEST['nick']) && strlen(User_validate_Nick($_REQUEST['nick'])) > 0) { + $nick = User_validate_Nick($_REQUEST['nick']); + $login_user = sql_select("SELECT * FROM `User` WHERE `Nick`='" . sql_escape($nick) . "'"); + if (count($login_user) > 0) { + $login_user = $login_user[0]; + if (isset($_REQUEST['password'])) { + if (! verify_password($_REQUEST['password'], $login_user['Passwort'], $login_user['UID'])) { + $valid = false; + error(_("Your password is incorrect. Please try it again.")); + } + } else { + $valid = false; + error(_("Please enter a password.")); + } + } else { + $valid = false; + error(_("No user was found with that Nickname. Please try again. If you are still having problems, ask a Dispatcher.")); + } } else { - $valid = false; - error(_("Please enter a password.")); + $valid = false; + error(_("Please enter a nickname.")); } - } else { - $valid = false; - error(_("No user was found with that Nickname. Please try again. If you are still having problems, ask a Dispatcher.")); - } - } else { - $valid = false; - error(_("Please enter a nickname.")); - } - if ($valid) { - $_SESSION['uid'] = $login_user['UID']; - $_SESSION['locale'] = $login_user['Sprache']; + if ($valid) { + $_SESSION['uid'] = $login_user['UID']; + $_SESSION['locale'] = $login_user['Sprache']; - redirect(page_link_to('news')); + redirect(page_link_to('news')); + } } - } - $event_config = EventConfig(); + $event_config = EventConfig(); - return page([ + return page([ div('col-md-12', [ div('row', [ - EventConfig_countdown_page($event_config) + EventConfig_countdown_page($event_config) ]), div('row', [ div('col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4', [ div('panel panel-primary first', [ div('panel-heading', [ - ' ' . _("Login") + ' ' . _("Login") ]), div('panel-body', [ msg(), @@ -355,46 +361,46 @@ function guest_login() { form_password_placeholder('password', _("Password")), form_submit('submit', _("Login")), ! $valid ? buttons([ - button(page_link_to('user_password_recovery'), _("I forgot my password")) - ]) : '' - ]) + button(page_link_to('user_password_recovery'), _("I forgot my password")) + ]) : '' + ]) ]), div('panel-footer', [ - glyph('info-sign') . _("Please note: You have to activate cookies!") - ]) - ]) - ]) + glyph('info-sign') . _("Please note: You have to activate cookies!") + ]) + ]) + ]) ]), div('row', [ div('col-sm-6 text-center', [ heading(register_title(), 2), - get_register_hint() + get_register_hint() ]), div('col-sm-6 text-center', [ heading(_("What can I do?"), 2), '

' . _("Please read about the jobs you can do to help us.") . '

', buttons([ - button(page_link_to('angeltypes') . '&action=about', _("Teams/Job description") . ' »') - ]) - ]) - ]) - ]) + button(page_link_to('angeltypes') . '&action=about', _("Teams/Job description") . ' »') + ]) + ]) + ]) + ]) ]); } -function get_register_hint() { - global $privileges; +function get_register_hint() +{ + global $privileges; - if (in_array('register', $privileges)) { - return join('', [ + if (in_array('register', $privileges)) { + return join('', [ '

' . _("Please sign up, if you want to help us!") . '

', buttons([ - button(page_link_to('register'), register_title() . ' »') - ]) + button(page_link_to('register'), register_title() . ' »') + ]) ]); - } + } //FIXME: return error(_("Registration is disabled."), true); return error("Registration is disabled.", true); } -?> diff --git a/includes/pages/guest_start.php b/includes/pages/guest_start.php index 8f008a8d..c89f680e 100644 --- a/includes/pages/guest_start.php +++ b/includes/pages/guest_start.php @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/includes/pages/guest_stats.php b/includes/pages/guest_stats.php index 71fde137..2559dd4d 100644 --- a/includes/pages/guest_stats.php +++ b/includes/pages/guest_stats.php @@ -1,35 +1,34 @@ "Wrong api_key." + ])); } raw_output(json_encode([ - 'error' => "Wrong api_key." - ])); - } - raw_output(json_encode([ - 'error' => "Missing parameter api_key." + 'error' => "Missing parameter api_key." ])); } - -?> diff --git a/includes/pages/user_atom.php b/includes/pages/user_atom.php index 9a765634..88e8f201 100644 --- a/includes/pages/user_atom.php +++ b/includes/pages/user_atom.php @@ -1,46 +1,49 @@ +function make_atom_entries_from_news($news_entries) +{ + $html = ' Engelsystem ' . $_SERVER['HTTP_HOST'] . htmlspecialchars(preg_replace('#[&?]key=[a-f0-9]{32}#', '', $_SERVER['REQUEST_URI'])) . ' ' . date('Y-m-d\TH:i:sP', $news_entries[0]['Datum']) . "\n"; - foreach ($news_entries as $news_entry) { - $html .= make_atom_entry_from_news($news_entry); - } - $html .= ""; - return $html; + foreach ($news_entries as $news_entry) { + $html .= make_atom_entry_from_news($news_entry); + } + $html .= ""; + return $html; } -function make_atom_entry_from_news($news_entry) { - return " +function make_atom_entry_from_news($news_entry) +{ + return " " . htmlspecialchars($news_entry['Betreff']) . " " . preg_replace('#^https?://#', '', page_link_to_absolute("news")) . "-${news_entry['ID']} @@ -48,4 +51,3 @@ function make_atom_entry_from_news($news_entry) { " . htmlspecialchars($news_entry['Text']) . " \n"; } -?> diff --git a/includes/pages/user_ical.php b/includes/pages/user_ical.php index 34860b70..49546e58 100644 --- a/includes/pages/user_ical.php +++ b/includes/pages/user_ical.php @@ -3,61 +3,63 @@ /** * Controller for ical output of users own shifts or any user_shifts filter. */ -function user_ical() { - global $user; +function user_ical() +{ + global $user; - if (! isset($_REQUEST['key']) || ! preg_match("/^[0-9a-f]{32}$/", $_REQUEST['key'])) { - engelsystem_error("Missing key."); - } - $key = $_REQUEST['key']; + if (! isset($_REQUEST['key']) || ! preg_match("/^[0-9a-f]{32}$/", $_REQUEST['key'])) { + engelsystem_error("Missing key."); + } + $key = $_REQUEST['key']; - $user = User_by_api_key($key); - if ($user == null) { - engelsystem_error("Key invalid."); - } + $user = User_by_api_key($key); + if ($user == null) { + engelsystem_error("Key invalid."); + } - if (! in_array('ical', privileges_for_user($user['UID']))) { - engelsystem_error("No privilege for ical."); - } + if (! in_array('ical', privileges_for_user($user['UID']))) { + engelsystem_error("No privilege for ical."); + } - $ical_shifts = load_ical_shifts(); + $ical_shifts = load_ical_shifts(); - send_ical_from_shifts($ical_shifts); + send_ical_from_shifts($ical_shifts); } /** * Renders an ical calender from given shifts array. * - * @param array $shifts + * @param array $shifts */ -function send_ical_from_shifts($shifts) { - header("Content-Type: text/calendar; charset=utf-8"); - $output = "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//-//Engelsystem//DE\r\nCALSCALE:GREGORIAN\r\n"; - foreach ($shifts as $shift) { - $output .= make_ical_entry_from_shift($shift); - } - $output .= "END:VCALENDAR\r\n"; - $output = trim($output, "\x0A"); - header("Content-Length: " . strlen($output)); - raw_output($output); +function send_ical_from_shifts($shifts) +{ + header("Content-Type: text/calendar; charset=utf-8"); + $output = "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//-//Engelsystem//DE\r\nCALSCALE:GREGORIAN\r\n"; + foreach ($shifts as $shift) { + $output .= make_ical_entry_from_shift($shift); + } + $output .= "END:VCALENDAR\r\n"; + $output = trim($output, "\x0A"); + header("Content-Length: " . strlen($output)); + raw_output($output); } /** * Renders an ical vevent from given shift. * - * @param Shift $shift + * @param Shift $shift */ -function make_ical_entry_from_shift($shift) { - $output = "BEGIN:VEVENT\r\n"; - $output .= "UID:" . md5($shift['start'] . $shift['end'] . $shift['name']) . "\r\n"; - $output .= "SUMMARY:" . str_replace("\n", "\\n", $shift['name']) . " (" . str_replace("\n", "\\n", $shift['title']) . ")\r\n"; - if (isset($shift['Comment'])) { - $output .= "DESCRIPTION:" . str_replace("\n", "\\n", $shift['Comment']) . "\r\n"; - } - $output .= "DTSTART;TZID=Europe/Berlin:" . date("Ymd\THis", $shift['start']) . "\r\n"; - $output .= "DTEND;TZID=Europe/Berlin:" . date("Ymd\THis", $shift['end']) . "\r\n"; - $output .= "LOCATION:" . $shift['Name'] . "\r\n"; - $output .= "END:VEVENT\r\n"; - return $output; +function make_ical_entry_from_shift($shift) +{ + $output = "BEGIN:VEVENT\r\n"; + $output .= "UID:" . md5($shift['start'] . $shift['end'] . $shift['name']) . "\r\n"; + $output .= "SUMMARY:" . str_replace("\n", "\\n", $shift['name']) . " (" . str_replace("\n", "\\n", $shift['title']) . ")\r\n"; + if (isset($shift['Comment'])) { + $output .= "DESCRIPTION:" . str_replace("\n", "\\n", $shift['Comment']) . "\r\n"; + } + $output .= "DTSTART;TZID=Europe/Berlin:" . date("Ymd\THis", $shift['start']) . "\r\n"; + $output .= "DTEND;TZID=Europe/Berlin:" . date("Ymd\THis", $shift['end']) . "\r\n"; + $output .= "LOCATION:" . $shift['Name'] . "\r\n"; + $output .= "END:VEVENT\r\n"; + return $output; } -?> diff --git a/includes/pages/user_messages.php b/includes/pages/user_messages.php index eb07deea..f9278828 100644 --- a/includes/pages/user_messages.php +++ b/includes/pages/user_messages.php @@ -1,73 +1,76 @@ 0) { - return ' ' . $new_messages . ''; + if (isset($user)) { + $new_messages = sql_num_query("SELECT * FROM `Messages` WHERE isRead='N' AND `RUID`='" . sql_escape($user['UID']) . "'"); + if ($new_messages > 0) { + return ' ' . $new_messages . ''; + } } - } - return ''; + return ''; } -function user_messages() { - global $user; +function user_messages() +{ + global $user; - if (! isset($_REQUEST['action'])) { - $users = sql_select("SELECT * FROM `User` WHERE NOT `UID`='" . sql_escape($user['UID']) . "' ORDER BY `Nick`"); + if (! isset($_REQUEST['action'])) { + $users = sql_select("SELECT * FROM `User` WHERE NOT `UID`='" . sql_escape($user['UID']) . "' ORDER BY `Nick`"); - $to_select_data = [ - "" => _("Select recipient...") + $to_select_data = [ + "" => _("Select recipient...") ]; - foreach ($users as $u) { - $to_select_data[$u['UID']] = $u['Nick']; - } + foreach ($users as $u) { + $to_select_data[$u['UID']] = $u['Nick']; + } - $to_select = html_select_key('to', 'to', $to_select_data, ''); + $to_select = html_select_key('to', 'to', $to_select_data, ''); - $messages = sql_select("SELECT * FROM `Messages` WHERE `SUID`='" . sql_escape($user['UID']) . "' OR `RUID`='" . sql_escape($user['UID']) . "' ORDER BY `isRead`,`Datum` DESC"); + $messages = sql_select("SELECT * FROM `Messages` WHERE `SUID`='" . sql_escape($user['UID']) . "' OR `RUID`='" . sql_escape($user['UID']) . "' ORDER BY `isRead`,`Datum` DESC"); - $messages_table = [ + $messages_table = [ [ 'news' => '', 'timestamp' => date("Y-m-d H:i"), 'from' => User_Nick_render($user), 'to' => $to_select, 'text' => form_textarea('text', '', ''), - 'actions' => form_submit('submit', _("Save")) - ] + 'actions' => form_submit('submit', _("Save")) + ] ]; - foreach ($messages as $message) { - $sender_user_source = User($message['SUID']); - $receiver_user_source = User($message['RUID']); + foreach ($messages as $message) { + $sender_user_source = User($message['SUID']); + $receiver_user_source = User($message['RUID']); - $messages_table_entry = [ + $messages_table_entry = [ 'new' => $message['isRead'] == 'N' ? '' : '', 'timestamp' => date("Y-m-d H:i", $message['Datum']), 'from' => User_Nick_render($sender_user_source), 'to' => User_Nick_render($receiver_user_source), - 'text' => str_replace("\n", '
', $message['Text']) + 'text' => str_replace("\n", '
', $message['Text']) ]; - if ($message['RUID'] == $user['UID']) { - if ($message['isRead'] == 'N') { - $messages_table_entry['actions'] = button(page_link_to("user_messages") . '&action=read&id=' . $message['id'], _("mark as read"), 'btn-xs'); + if ($message['RUID'] == $user['UID']) { + if ($message['isRead'] == 'N') { + $messages_table_entry['actions'] = button(page_link_to("user_messages") . '&action=read&id=' . $message['id'], _("mark as read"), 'btn-xs'); + } + } else { + $messages_table_entry['actions'] = button(page_link_to("user_messages") . '&action=delete&id=' . $message['id'], _("delete message"), 'btn-xs'); + } + $messages_table[] = $messages_table_entry; } - } else { - $messages_table_entry['actions'] = button(page_link_to("user_messages") . '&action=delete&id=' . $message['id'], _("delete message"), 'btn-xs'); - } - $messages_table[] = $messages_table_entry; - } - return page_with_title(messages_title(), [ + return page_with_title(messages_title(), [ msg(), sprintf(_("Hello %s, here can you leave messages for other angels"), User_Nick_render($user)), form([ @@ -77,55 +80,54 @@ function user_messages() { 'from' => _("Transmitted"), 'to' => _("Recipient"), 'text' => _("Message"), - 'actions' => '' - ], $messages_table) - ], page_link_to('user_messages') . '&action=send') + 'actions' => '' + ], $messages_table) + ], page_link_to('user_messages') . '&action=send') ]); - } else { - switch ($_REQUEST['action']) { + } else { + switch ($_REQUEST['action']) { case "read": if (isset($_REQUEST['id']) && preg_match("/^[0-9]{1,11}$/", $_REQUEST['id'])) { - $message_id = $_REQUEST['id']; + $message_id = $_REQUEST['id']; } else { - return error(_("Incomplete call, missing Message ID."), true); + return error(_("Incomplete call, missing Message ID."), true); } $message = sql_select("SELECT * FROM `Messages` WHERE `id`='" . sql_escape($message_id) . "' LIMIT 1"); if (count($message) > 0 && $message[0]['RUID'] == $user['UID']) { - sql_query("UPDATE `Messages` SET `isRead`='Y' WHERE `id`='" . sql_escape($message_id) . "' LIMIT 1"); - redirect(page_link_to("user_messages")); + sql_query("UPDATE `Messages` SET `isRead`='Y' WHERE `id`='" . sql_escape($message_id) . "' LIMIT 1"); + redirect(page_link_to("user_messages")); } else { - return error(_("No Message found."), true); + return error(_("No Message found."), true); } break; case "delete": if (isset($_REQUEST['id']) && preg_match("/^[0-9]{1,11}$/", $_REQUEST['id'])) { - $message_id = $_REQUEST['id']; + $message_id = $_REQUEST['id']; } else { - return error(_("Incomplete call, missing Message ID."), true); + return error(_("Incomplete call, missing Message ID."), true); } $message = sql_select("SELECT * FROM `Messages` WHERE `id`='" . sql_escape($message_id) . "' LIMIT 1"); if (count($message) > 0 && $message[0]['SUID'] == $user['UID']) { - sql_query("DELETE FROM `Messages` WHERE `id`='" . sql_escape($message_id) . "' LIMIT 1"); - redirect(page_link_to("user_messages")); + sql_query("DELETE FROM `Messages` WHERE `id`='" . sql_escape($message_id) . "' LIMIT 1"); + redirect(page_link_to("user_messages")); } else { - return error(_("No Message found."), true); + return error(_("No Message found."), true); } break; case "send": if (Message_send($_REQUEST['to'], $_REQUEST['text']) === true) { - redirect(page_link_to("user_messages")); + redirect(page_link_to("user_messages")); } else { - return error(_("Transmitting was terminated with an Error."), true); + return error(_("Transmitting was terminated with an Error."), true); } break; default: return error(_("Wrong action."), true); } - } + } } -?> diff --git a/includes/pages/user_myshifts.php b/includes/pages/user_myshifts.php index 3cf0c571..fbfe3f33 100644 --- a/includes/pages/user_myshifts.php +++ b/includes/pages/user_myshifts.php @@ -1,35 +1,37 @@ 0) { - $user_id = $_REQUEST['id']; - } else { - $user_id = $user['UID']; - } + if (isset($_REQUEST['id']) && in_array("user_shifts_admin", $privileges) && preg_match("/^[0-9]{1,}$/", $_REQUEST['id']) && sql_num_query("SELECT * FROM `User` WHERE `UID`='" . sql_escape($_REQUEST['id']) . "'") > 0) { + $user_id = $_REQUEST['id']; + } else { + $user_id = $user['UID']; + } - list($shifts_user) = sql_select("SELECT * FROM `User` WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); + list($shifts_user) = sql_select("SELECT * FROM `User` WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); - if (isset($_REQUEST['reset'])) { - if ($_REQUEST['reset'] == "ack") { - User_reset_api_key($user); - success(_("Key changed.")); - redirect(page_link_to('users') . '&action=view&user_id=' . $shifts_user['UID']); - } - return page_with_title(_("Reset API key"), [ + if (isset($_REQUEST['reset'])) { + if ($_REQUEST['reset'] == "ack") { + User_reset_api_key($user); + success(_("Key changed.")); + redirect(page_link_to('users') . '&action=view&user_id=' . $shifts_user['UID']); + } + return page_with_title(_("Reset API key"), [ error(_("If you reset the key, the url to your iCal- and JSON-export and your atom feed changes! You have to update it in every application using one of these exports."), true), - button(page_link_to('user_myshifts') . '&reset=ack', _("Continue"), 'btn-danger') + button(page_link_to('user_myshifts') . '&reset=ack', _("Continue"), 'btn-danger') ]); - } elseif (isset($_REQUEST['edit']) && preg_match("/^[0-9]*$/", $_REQUEST['edit'])) { - $user_id = $_REQUEST['edit']; - $shift = sql_select("SELECT + } elseif (isset($_REQUEST['edit']) && preg_match("/^[0-9]*$/", $_REQUEST['edit'])) { + $user_id = $_REQUEST['edit']; + $shift = sql_select("SELECT `ShiftEntry`.`freeloaded`, `ShiftEntry`.`freeload_comment`, `ShiftEntry`.`Comment`, @@ -45,74 +47,73 @@ function user_myshifts() { JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `ShiftEntry`.`id`='" . sql_escape($user_id) . "' AND `UID`='" . sql_escape($shifts_user['UID']) . "' LIMIT 1"); - if (count($shift) > 0) { - $shift = $shift[0]; - $freeloaded = $shift['freeloaded']; - $freeload_comment = $shift['freeload_comment']; + if (count($shift) > 0) { + $shift = $shift[0]; + $freeloaded = $shift['freeloaded']; + $freeload_comment = $shift['freeload_comment']; - if (isset($_REQUEST['submit'])) { - $valid = true; - if (in_array("user_shifts_admin", $privileges)) { - $freeloaded = isset($_REQUEST['freeloaded']); - $freeload_comment = strip_request_item_nl('freeload_comment'); - if ($freeloaded && $freeload_comment == '') { - $valid = false; - error(_("Please enter a freeload comment!")); - } - } + if (isset($_REQUEST['submit'])) { + $valid = true; + if (in_array("user_shifts_admin", $privileges)) { + $freeloaded = isset($_REQUEST['freeloaded']); + $freeload_comment = strip_request_item_nl('freeload_comment'); + if ($freeloaded && $freeload_comment == '') { + $valid = false; + error(_("Please enter a freeload comment!")); + } + } - $comment = strip_request_item_nl('comment'); - $user_source = User($shift['UID']); + $comment = strip_request_item_nl('comment'); + $user_source = User($shift['UID']); - if ($valid) { - $result = ShiftEntry_update([ + if ($valid) { + $result = ShiftEntry_update([ 'id' => $user_id, 'Comment' => $comment, 'freeloaded' => $freeloaded, - 'freeload_comment' => $freeload_comment + 'freeload_comment' => $freeload_comment ]); - if ($result === false) { - engelsystem_error('Unable to update shift entry.'); - } + if ($result === false) { + engelsystem_error('Unable to update shift entry.'); + } - engelsystem_log("Updated " . User_Nick_render($user_source) . "'s shift " . $shift['name'] . " from " . date("Y-m-d H:i", $shift['start']) . " to " . date("Y-m-d H:i", $shift['end']) . " with comment " . $comment . ". Freeloaded: " . ($freeloaded ? "YES Comment: " . $freeload_comment : "NO")); - success(_("Shift saved.")); - redirect(page_link_to('users') . '&action=view&user_id=' . $shifts_user['UID']); - } - } + engelsystem_log("Updated " . User_Nick_render($user_source) . "'s shift " . $shift['name'] . " from " . date("Y-m-d H:i", $shift['start']) . " to " . date("Y-m-d H:i", $shift['end']) . " with comment " . $comment . ". Freeloaded: " . ($freeloaded ? "YES Comment: " . $freeload_comment : "NO")); + success(_("Shift saved.")); + redirect(page_link_to('users') . '&action=view&user_id=' . $shifts_user['UID']); + } + } - return ShiftEntry_edit_view(User_Nick_render($shifts_user), date("Y-m-d H:i", $shift['start']) . ', ' . shift_length($shift), $shift['Name'], $shift['name'], $shift['angel_type'], $shift['Comment'], $shift['freeloaded'], $shift['freeload_comment'], in_array("user_shifts_admin", $privileges)); - } else { - redirect(page_link_to('user_myshifts')); - } - } elseif (isset($_REQUEST['cancel']) && preg_match("/^[0-9]*$/", $_REQUEST['cancel'])) { - $user_id = $_REQUEST['cancel']; - $shift = sql_select(" + return ShiftEntry_edit_view(User_Nick_render($shifts_user), date("Y-m-d H:i", $shift['start']) . ', ' . shift_length($shift), $shift['Name'], $shift['name'], $shift['angel_type'], $shift['Comment'], $shift['freeloaded'], $shift['freeload_comment'], in_array("user_shifts_admin", $privileges)); + } else { + redirect(page_link_to('user_myshifts')); + } + } elseif (isset($_REQUEST['cancel']) && preg_match("/^[0-9]*$/", $_REQUEST['cancel'])) { + $user_id = $_REQUEST['cancel']; + $shift = sql_select(" SELECT * FROM `Shifts` INNER JOIN `ShiftEntry` USING (`SID`) WHERE `ShiftEntry`.`id`='" . sql_escape($user_id) . "' AND `UID`='" . sql_escape($shifts_user['UID']) . "'"); - if (count($shift) > 0) { - $shift = $shift[0]; - if (($shift['start'] > time() + $LETZTES_AUSTRAGEN * 3600) || in_array('user_shifts_admin', $privileges)) { - $result = ShiftEntry_delete($user_id); - if ($result === false) { - engelsystem_error('Unable to delete shift entry.'); - } - $room = Room($shift['RID']); - $angeltype = AngelType($shift['TID']); - $shifttype = ShiftType($shift['shifttype_id']); + if (count($shift) > 0) { + $shift = $shift[0]; + if (($shift['start'] > time() + $LETZTES_AUSTRAGEN * 3600) || in_array('user_shifts_admin', $privileges)) { + $result = ShiftEntry_delete($user_id); + if ($result === false) { + engelsystem_error('Unable to delete shift entry.'); + } + $room = Room($shift['RID']); + $angeltype = AngelType($shift['TID']); + $shifttype = ShiftType($shift['shifttype_id']); - engelsystem_log("Deleted own shift: " . $shifttype['name'] . " at " . $room['Name'] . " from " . date("Y-m-d H:i", $shift['start']) . " to " . date("Y-m-d H:i", $shift['end']) . " as " . $angeltype['name']); - success(_("Shift canceled.")); - } else { - error(_("It's too late to sign yourself off the shift. If neccessary, ask the dispatcher to do so.")); - } - } else { - redirect(user_link($shifts_user)); + engelsystem_log("Deleted own shift: " . $shifttype['name'] . " at " . $room['Name'] . " from " . date("Y-m-d H:i", $shift['start']) . " to " . date("Y-m-d H:i", $shift['end']) . " as " . $angeltype['name']); + success(_("Shift canceled.")); + } else { + error(_("It's too late to sign yourself off the shift. If neccessary, ask the dispatcher to do so.")); + } + } else { + redirect(user_link($shifts_user)); + } } - } - redirect(page_link_to('users') . '&action=view&user_id=' . $shifts_user['UID']); + redirect(page_link_to('users') . '&action=view&user_id=' . $shifts_user['UID']); } -?> diff --git a/includes/pages/user_news.php b/includes/pages/user_news.php index 97f7ec83..a26b4d8d 100644 --- a/includes/pages/user_news.php +++ b/includes/pages/user_news.php @@ -1,169 +1,175 @@

' . meetings_title() . '

' . msg(); - - if (isset($_REQUEST['page']) && preg_match("/^[0-9]{1,}$/", $_REQUEST['page'])) { - $page = $_REQUEST['page']; - } else { - $page = 0; - } - - $news = sql_select("SELECT * FROM `News` WHERE `Treffen`=1 ORDER BY `Datum` DESC LIMIT " . sql_escape($page * $DISPLAY_NEWS) . ", " . sql_escape($DISPLAY_NEWS)); - foreach ($news as $entry) { - $html .= display_news($entry); - } - - $dis_rows = ceil(sql_num_query("SELECT * FROM `News`") / $DISPLAY_NEWS); - $html .= '
' . '
    '; - for ($i = 0; $i < $dis_rows; $i ++) { - if (isset($_REQUEST['page']) && $i == $_REQUEST['page']) { - $html .= '
  • '; - } elseif (! isset($_REQUEST['page']) && $i == 0) { - $html .= '
  • '; +function user_meetings() +{ + global $DISPLAY_NEWS; + + $html = '

    ' . meetings_title() . '

    ' . msg(); + + if (isset($_REQUEST['page']) && preg_match("/^[0-9]{1,}$/", $_REQUEST['page'])) { + $page = $_REQUEST['page']; } else { - $html .= '
  • '; + $page = 0; + } + + $news = sql_select("SELECT * FROM `News` WHERE `Treffen`=1 ORDER BY `Datum` DESC LIMIT " . sql_escape($page * $DISPLAY_NEWS) . ", " . sql_escape($DISPLAY_NEWS)); + foreach ($news as $entry) { + $html .= display_news($entry); + } + + $dis_rows = ceil(sql_num_query("SELECT * FROM `News`") / $DISPLAY_NEWS); + $html .= '
    ' . '
      '; + for ($i = 0; $i < $dis_rows; $i ++) { + if (isset($_REQUEST['page']) && $i == $_REQUEST['page']) { + $html .= '
    • '; + } elseif (! isset($_REQUEST['page']) && $i == 0) { + $html .= '
    • '; + } else { + $html .= '
    • '; + } + $html .= '' . ($i + 1) . '
    • '; } - $html .= '' . ($i + 1) . ''; - } - $html .= '
'; + $html .= ''; - return $html; + return $html; } -function display_news($news) { - global $privileges, $page; - - $html = ''; - $html .= '
'; - $html .= '
'; - $html .= '

' . ($news['Treffen'] == 1 ? '[Meeting] ' : '') . ReplaceSmilies($news['Betreff']) . '

'; - $html .= '
'; - $html .= '
' . ReplaceSmilies(nl2br($news['Text'])) . '
'; - - $html .= ''; - $html .= '
'; - return $html; +function display_news($news) +{ + global $privileges, $page; + + $html = ''; + $html .= '
'; + $html .= '
'; + $html .= '

' . ($news['Treffen'] == 1 ? '[Meeting] ' : '') . ReplaceSmilies($news['Betreff']) . '

'; + $html .= '
'; + $html .= '
' . ReplaceSmilies(nl2br($news['Text'])) . '
'; + + $html .= ''; + $html .= '
'; + return $html; } -function user_news_comments() { - global $user; - - $html = '

' . user_news_comments_title() . '

'; - if (isset($_REQUEST["nid"]) && preg_match("/^[0-9]{1,}$/", $_REQUEST['nid']) && sql_num_query("SELECT * FROM `News` WHERE `ID`='" . sql_escape($_REQUEST['nid']) . "' LIMIT 1") > 0) { - $nid = $_REQUEST["nid"]; - list($news) = sql_select("SELECT * FROM `News` WHERE `ID`='" . sql_escape($nid) . "' LIMIT 1"); - if (isset($_REQUEST["text"])) { - $text = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', strip_tags($_REQUEST['text'])); - sql_query("INSERT INTO `NewsComments` (`Refid`, `Datum`, `Text`, `UID`) VALUES ('" . sql_escape($nid) . "', '" . date("Y-m-d H:i:s") . "', '" . sql_escape($text) . "', '" . sql_escape($user["UID"]) . "')"); - engelsystem_log("Created news_comment: " . $text); - $html .= success(_("Entry saved."), true); - } +function user_news_comments() +{ + global $user; + + $html = '

' . user_news_comments_title() . '

'; + if (isset($_REQUEST["nid"]) && preg_match("/^[0-9]{1,}$/", $_REQUEST['nid']) && sql_num_query("SELECT * FROM `News` WHERE `ID`='" . sql_escape($_REQUEST['nid']) . "' LIMIT 1") > 0) { + $nid = $_REQUEST["nid"]; + list($news) = sql_select("SELECT * FROM `News` WHERE `ID`='" . sql_escape($nid) . "' LIMIT 1"); + if (isset($_REQUEST["text"])) { + $text = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', strip_tags($_REQUEST['text'])); + sql_query("INSERT INTO `NewsComments` (`Refid`, `Datum`, `Text`, `UID`) VALUES ('" . sql_escape($nid) . "', '" . date("Y-m-d H:i:s") . "', '" . sql_escape($text) . "', '" . sql_escape($user["UID"]) . "')"); + engelsystem_log("Created news_comment: " . $text); + $html .= success(_("Entry saved."), true); + } - $html .= display_news($news); + $html .= display_news($news); - $comments = sql_select("SELECT * FROM `NewsComments` WHERE `Refid`='" . sql_escape($nid) . "' ORDER BY 'ID'"); - foreach ($comments as $comment) { - $user_source = User($comment['UID']); + $comments = sql_select("SELECT * FROM `NewsComments` WHERE `Refid`='" . sql_escape($nid) . "' ORDER BY 'ID'"); + foreach ($comments as $comment) { + $user_source = User($comment['UID']); - $html .= '
'; - $html .= '
' . nl2br($comment['Text']) . '
'; - $html .= ''; - $html .= '
'; - } + $html .= '
'; + $html .= '
' . nl2br($comment['Text']) . '
'; + $html .= ''; + $html .= '
'; + } - $html .= '

' . _("New Comment:") . '

'; - $html .= form([ + $html .= '

' . _("New Comment:") . '

'; + $html .= form([ form_textarea('text', _("Message"), ''), - form_submit('submit', _("Save")) + form_submit('submit', _("Save")) ], page_link_to('news_comments') . '&nid=' . $news['ID']); - } else { - $html .= _("Invalid request."); - } + } else { + $html .= _("Invalid request."); + } - return $html . '
'; + return $html . '
'; } -function user_news() { - global $DISPLAY_NEWS, $privileges, $user; +function user_news() +{ + global $DISPLAY_NEWS, $privileges, $user; + + $html = '

' . news_title() . '

' . msg(); + + if (isset($_POST["text"]) && isset($_POST["betreff"]) && in_array("admin_news", $privileges)) { + if (! isset($_POST["treffen"]) || ! in_array("admin_news", $privileges)) { + $_POST["treffen"] = 0; + } + sql_query("INSERT INTO `News` (`Datum`, `Betreff`, `Text`, `UID`, `Treffen`) " . "VALUES ('" . sql_escape(time()) . "', '" . sql_escape($_POST["betreff"]) . "', '" . sql_escape($_POST["text"]) . "', '" . sql_escape($user['UID']) . "', '" . sql_escape($_POST["treffen"]) . "');"); + engelsystem_log("Created news: " . $_POST["betreff"] . ", treffen: " . $_POST["treffen"]); + success(_("Entry saved.")); + redirect(page_link_to('news')); + } - $html = '

' . news_title() . '

' . msg(); + if (isset($_REQUEST['page']) && preg_match("/^[0-9]{1,}$/", $_REQUEST['page'])) { + $page = $_REQUEST['page']; + } else { + $page = 0; + } - if (isset($_POST["text"]) && isset($_POST["betreff"]) && in_array("admin_news", $privileges)) { - if (! isset($_POST["treffen"]) || ! in_array("admin_news", $privileges)) { - $_POST["treffen"] = 0; + $news = sql_select("SELECT * FROM `News` ORDER BY `Datum` DESC LIMIT " . sql_escape($page * $DISPLAY_NEWS) . ", " . sql_escape($DISPLAY_NEWS)); + foreach ($news as $entry) { + $html .= display_news($entry); } - sql_query("INSERT INTO `News` (`Datum`, `Betreff`, `Text`, `UID`, `Treffen`) " . "VALUES ('" . sql_escape(time()) . "', '" . sql_escape($_POST["betreff"]) . "', '" . sql_escape($_POST["text"]) . "', '" . sql_escape($user['UID']) . "', '" . sql_escape($_POST["treffen"]) . "');"); - engelsystem_log("Created news: " . $_POST["betreff"] . ", treffen: " . $_POST["treffen"]); - success(_("Entry saved.")); - redirect(page_link_to('news')); - } - - if (isset($_REQUEST['page']) && preg_match("/^[0-9]{1,}$/", $_REQUEST['page'])) { - $page = $_REQUEST['page']; - } else { - $page = 0; - } - - $news = sql_select("SELECT * FROM `News` ORDER BY `Datum` DESC LIMIT " . sql_escape($page * $DISPLAY_NEWS) . ", " . sql_escape($DISPLAY_NEWS)); - foreach ($news as $entry) { - $html .= display_news($entry); - } - - $dis_rows = ceil(sql_num_query("SELECT * FROM `News`") / $DISPLAY_NEWS); - $html .= '
' . '
    '; - for ($i = 0; $i < $dis_rows; $i ++) { - if (isset($_REQUEST['page']) && $i == $_REQUEST['page']) { - $html .= '
  • '; - } elseif (! isset($_REQUEST['page']) && $i == 0) { - $html .= '
  • '; - } else { - $html .= '
  • '; + + $dis_rows = ceil(sql_num_query("SELECT * FROM `News`") / $DISPLAY_NEWS); + $html .= '
    ' . '
      '; + for ($i = 0; $i < $dis_rows; $i ++) { + if (isset($_REQUEST['page']) && $i == $_REQUEST['page']) { + $html .= '
    • '; + } elseif (! isset($_REQUEST['page']) && $i == 0) { + $html .= '
    • '; + } else { + $html .= '
    • '; + } + $html .= '' . ($i + 1) . '
    • '; } - $html .= '' . ($i + 1) . ''; - } - $html .= '
    '; + $html .= '
'; - if (in_array("admin_news", $privileges)) { - $html .= '
'; - $html .= '

' . _("Create news:") . '

'; + if (in_array("admin_news", $privileges)) { + $html .= '
'; + $html .= '

' . _("Create news:") . '

'; - $html .= form([ + $html .= form([ form_text('betreff', _("Subject"), ''), form_textarea('text', _("Message"), ''), form_checkbox('treffen', _("Meeting"), false, 1), - form_submit('submit', _("Save")) + form_submit('submit', _("Save")) ]); - } - return $html . '
'; + } + return $html . '
'; } -?> diff --git a/includes/pages/user_questions.php b/includes/pages/user_questions.php index 4abceb92..35231e1a 100644 --- a/includes/pages/user_questions.php +++ b/includes/pages/user_questions.php @@ -1,57 +1,58 @@ 0 && $question[0]['UID'] == $user['UID']) { - sql_query("DELETE FROM `Questions` WHERE `QID`='" . sql_escape($question_id) . "' LIMIT 1"); - redirect(page_link_to("user_questions")); + sql_query("DELETE FROM `Questions` WHERE `QID`='" . sql_escape($question_id) . "' LIMIT 1"); + redirect(page_link_to("user_questions")); } else { - return page_with_title(questions_title(), [ - error(_("No question found."), true) + return page_with_title(questions_title(), [ + error(_("No question found."), true) ]); } break; } - } + } } -?> \ No newline at end of file diff --git a/includes/pages/user_settings.php b/includes/pages/user_settings.php index e776320f..cfdbc7ab 100644 --- a/includes/pages/user_settings.php +++ b/includes/pages/user_settings.php @@ -1,7 +1,8 @@ getValue(); - if (! $result->isValid()) { - $valid = false; - error(_("E-mail address is not correct.")); +function user_settings_main($user_source, $enable_tshirt_size, $tshirt_sizes) +{ + $valid = true; + + if (isset($_REQUEST['mail'])) { + $result = User_validate_mail($_REQUEST['mail']); + $user_source['email'] = $result->getValue(); + if (! $result->isValid()) { + $valid = false; + error(_("E-mail address is not correct.")); + } + } else { + $valid = false; + error(_("Please enter your e-mail.")); } - } else { - $valid = false; - error(_("Please enter your e-mail.")); - } - - $user_source['email_shiftinfo'] = isset($_REQUEST['email_shiftinfo']); - $user_source['email_by_human_allowed'] = isset($_REQUEST['email_by_human_allowed']); - - if (isset($_REQUEST['jabber'])) { - $result = User_validate_jabber($_REQUEST['jabber']); - $user_source['jabber'] = $result->getValue(); - if (! $result->isValid()) { - $valid = false; - error(_("Please check your jabber account information.")); + + $user_source['email_shiftinfo'] = isset($_REQUEST['email_shiftinfo']); + $user_source['email_by_human_allowed'] = isset($_REQUEST['email_by_human_allowed']); + + if (isset($_REQUEST['jabber'])) { + $result = User_validate_jabber($_REQUEST['jabber']); + $user_source['jabber'] = $result->getValue(); + if (! $result->isValid()) { + $valid = false; + error(_("Please check your jabber account information.")); + } } - } - - if (isset($_REQUEST['tshirt_size']) && isset($tshirt_sizes[$_REQUEST['tshirt_size']])) { - $user_source['Size'] = $_REQUEST['tshirt_size']; - } elseif ($enable_tshirt_size) { - $valid = false; - } - - if (isset($_REQUEST['planned_arrival_date'])) { - $tmp = parse_date("Y-m-d H:i", $_REQUEST['planned_arrival_date'] . " 00:00"); - $result = User_validate_planned_arrival_date($tmp); - $user_source['planned_arrival_date'] = $result->getValue(); - if (! $result->isValid()) { - $valid = false; - error(_("Please enter your planned date of arrival. It should be after the buildup start date and before teardown end date.")); + + if (isset($_REQUEST['tshirt_size']) && isset($tshirt_sizes[$_REQUEST['tshirt_size']])) { + $user_source['Size'] = $_REQUEST['tshirt_size']; + } elseif ($enable_tshirt_size) { + $valid = false; + } + + if (isset($_REQUEST['planned_arrival_date'])) { + $tmp = parse_date("Y-m-d H:i", $_REQUEST['planned_arrival_date'] . " 00:00"); + $result = User_validate_planned_arrival_date($tmp); + $user_source['planned_arrival_date'] = $result->getValue(); + if (! $result->isValid()) { + $valid = false; + error(_("Please enter your planned date of arrival. It should be after the buildup start date and before teardown end date.")); + } } - } - - if (isset($_REQUEST['planned_departure_date'])) { - $tmp = parse_date("Y-m-d H:i", $_REQUEST['planned_departure_date'] . " 00:00"); - $result = User_validate_planned_departure_date($user_source['planned_arrival_date'], $tmp); - $user_source['planned_departure_date'] = $result->getValue(); - if (! $result->isValid()) { - $valid = false; - error(_("Please enter your planned date of departure. It should be after your planned arrival date and after buildup start date and before teardown end date.")); + + if (isset($_REQUEST['planned_departure_date'])) { + $tmp = parse_date("Y-m-d H:i", $_REQUEST['planned_departure_date'] . " 00:00"); + $result = User_validate_planned_departure_date($user_source['planned_arrival_date'], $tmp); + $user_source['planned_departure_date'] = $result->getValue(); + if (! $result->isValid()) { + $valid = false; + error(_("Please enter your planned date of departure. It should be after your planned arrival date and after buildup start date and before teardown end date.")); + } } - } // Trivia $user_source['Name'] = strip_request_item('lastname', $user_source['Name']); - $user_source['Vorname'] = strip_request_item('prename', $user_source['Vorname']); - $user_source['Alter'] = strip_request_item('age', $user_source['Alter']); - $user_source['Telefon'] = strip_request_item('tel', $user_source['Telefon']); - $user_source['DECT'] = strip_request_item('dect', $user_source['DECT']); - $user_source['Handy'] = strip_request_item('mobile', $user_source['Handy']); - $user_source['Hometown'] = strip_request_item('hometown', $user_source['Hometown']); - - if ($valid) { - User_update($user_source); - success(_("Settings saved.")); - redirect(page_link_to('user_settings')); - } + $user_source['Vorname'] = strip_request_item('prename', $user_source['Vorname']); + $user_source['Alter'] = strip_request_item('age', $user_source['Alter']); + $user_source['Telefon'] = strip_request_item('tel', $user_source['Telefon']); + $user_source['DECT'] = strip_request_item('dect', $user_source['DECT']); + $user_source['Handy'] = strip_request_item('mobile', $user_source['Handy']); + $user_source['Hometown'] = strip_request_item('hometown', $user_source['Hometown']); + + if ($valid) { + User_update($user_source); + success(_("Settings saved.")); + redirect(page_link_to('user_settings')); + } - return $user_source; + return $user_source; } /** @@ -87,20 +89,21 @@ function user_settings_main($user_source, $enable_tshirt_size, $tshirt_sizes) { * @param User $user_source * The user */ -function user_settings_password($user_source) { - global $min_password_length; - if (! isset($_REQUEST['password']) || ! verify_password($_REQUEST['password'], $user_source['Passwort'], $user_source['UID'])) { - error(_("-> not OK. Please try again.")); - } elseif (strlen($_REQUEST['new_password']) < $min_password_length) { - error(_("Your password is to short (please use at least 6 characters).")); - } elseif ($_REQUEST['new_password'] != $_REQUEST['new_password2']) { - error(_("Your passwords don't match.")); - } elseif (set_password($user_source['UID'], $_REQUEST['new_password'])) { - success(_("Password saved.")); - } else { - error(_("Failed setting password.")); - } - redirect(page_link_to('user_settings')); +function user_settings_password($user_source) +{ + global $min_password_length; + if (! isset($_REQUEST['password']) || ! verify_password($_REQUEST['password'], $user_source['Passwort'], $user_source['UID'])) { + error(_("-> not OK. Please try again.")); + } elseif (strlen($_REQUEST['new_password']) < $min_password_length) { + error(_("Your password is to short (please use at least 6 characters).")); + } elseif ($_REQUEST['new_password'] != $_REQUEST['new_password2']) { + error(_("Your passwords don't match.")); + } elseif (set_password($user_source['UID'], $_REQUEST['new_password'])) { + success(_("Password saved.")); + } else { + error(_("Failed setting password.")); + } + redirect(page_link_to('user_settings')); } /** @@ -111,23 +114,24 @@ function user_settings_password($user_source) { * @param array $themes * List of available themes */ -function user_settings_theme($user_source, $themes) { - $valid = true; - - if (isset($_REQUEST['theme']) && isset($themes[$_REQUEST['theme']])) { - $user_source['color'] = $_REQUEST['theme']; - } else { - $valid = false; - } +function user_settings_theme($user_source, $themes) +{ + $valid = true; + + if (isset($_REQUEST['theme']) && isset($themes[$_REQUEST['theme']])) { + $user_source['color'] = $_REQUEST['theme']; + } else { + $valid = false; + } - if ($valid) { - sql_query("UPDATE `User` SET `color`='" . sql_escape($user_source['color']) . "' WHERE `UID`='" . sql_escape($user_source['UID']) . "'"); + if ($valid) { + sql_query("UPDATE `User` SET `color`='" . sql_escape($user_source['color']) . "' WHERE `UID`='" . sql_escape($user_source['UID']) . "'"); - success(_("Theme changed.")); - redirect(page_link_to('user_settings')); - } + success(_("Theme changed.")); + redirect(page_link_to('user_settings')); + } - return $user_source; + return $user_source; } /** @@ -138,57 +142,58 @@ function user_settings_theme($user_source, $themes) { * @param array $locales * List of available locales */ -function user_settings_locale($user_source, $locales) { - $valid = true; - - if (isset($_REQUEST['language']) && isset($locales[$_REQUEST['language']])) { - $user_source['Sprache'] = $_REQUEST['language']; - } else { - $valid = false; - } - - if ($valid) { - sql_query("UPDATE `User` SET `Sprache`='" . sql_escape($user_source['Sprache']) . "' WHERE `UID`='" . sql_escape($user_source['UID']) . "'"); - $_SESSION['locale'] = $user_source['Sprache']; +function user_settings_locale($user_source, $locales) +{ + $valid = true; + + if (isset($_REQUEST['language']) && isset($locales[$_REQUEST['language']])) { + $user_source['Sprache'] = $_REQUEST['language']; + } else { + $valid = false; + } + + if ($valid) { + sql_query("UPDATE `User` SET `Sprache`='" . sql_escape($user_source['Sprache']) . "' WHERE `UID`='" . sql_escape($user_source['UID']) . "'"); + $_SESSION['locale'] = $user_source['Sprache']; - success("Language changed."); - redirect(page_link_to('user_settings')); - } + success("Language changed."); + redirect(page_link_to('user_settings')); + } - return $user_source; + return $user_source; } /** * Main user settings page/controller */ -function user_settings() { - global $enable_tshirt_size, $tshirt_sizes, $themes, $locales; - global $user; - - $buildup_start_date = null; - $teardown_end_date = null; - $event_config = EventConfig(); - if ($event_config != null) { - if (isset($event_config['buildup_start_date'])) { - $buildup_start_date = $event_config['buildup_start_date']; +function user_settings() +{ + global $enable_tshirt_size, $tshirt_sizes, $themes, $locales; + global $user; + + $buildup_start_date = null; + $teardown_end_date = null; + $event_config = EventConfig(); + if ($event_config != null) { + if (isset($event_config['buildup_start_date'])) { + $buildup_start_date = $event_config['buildup_start_date']; + } + if (isset($event_config['teardown_end_date'])) { + $teardown_end_date = $event_config['teardown_end_date']; + } } - if (isset($event_config['teardown_end_date'])) { - $teardown_end_date = $event_config['teardown_end_date']; - } - } - $user_source = $user; + $user_source = $user; - if (isset($_REQUEST['submit'])) { - $user_source = user_settings_main($user_source, $enable_tshirt_size, $tshirt_sizes); - } elseif (isset($_REQUEST['submit_password'])) { - user_settings_password($user_source); - } elseif (isset($_REQUEST['submit_theme'])) { - $user_source = user_settings_theme($user_source, $themes); - } elseif (isset($_REQUEST['submit_language'])) { - $user_source = user_settings_locale($user_source, $locales); - } + if (isset($_REQUEST['submit'])) { + $user_source = user_settings_main($user_source, $enable_tshirt_size, $tshirt_sizes); + } elseif (isset($_REQUEST['submit_password'])) { + user_settings_password($user_source); + } elseif (isset($_REQUEST['submit_theme'])) { + $user_source = user_settings_theme($user_source, $themes); + } elseif (isset($_REQUEST['submit_language'])) { + $user_source = user_settings_locale($user_source, $locales); + } - return User_settings_view($user_source, $locales, $themes, $buildup_start_date, $teardown_end_date, $enable_tshirt_size, $tshirt_sizes); + return User_settings_view($user_source, $locales, $themes, $buildup_start_date, $teardown_end_date, $enable_tshirt_size, $tshirt_sizes); } -?> diff --git a/includes/pages/user_shifts.php b/includes/pages/user_shifts.php index c990ee4a..0a8ddf4f 100644 --- a/includes/pages/user_shifts.php +++ b/includes/pages/user_shifts.php @@ -1,8 +1,9 @@ getStartTime(); - if ($start_time == null) { - $start_time = time(); - } +function update_ShiftsFilter_timerange(ShiftsFilter $shiftsFilter, $days) +{ + $start_time = $shiftsFilter->getStartTime(); + if ($start_time == null) { + $start_time = time(); + } - $end_time = $shiftsFilter->getEndTime(); - if ($end_time == null) { - $end_time = $start_time + 24 * 60 * 60; - } + $end_time = $shiftsFilter->getEndTime(); + if ($end_time == null) { + $end_time = $start_time + 24 * 60 * 60; + } - $shiftsFilter->setStartTime(check_request_datetime('start_day', 'start_time', $days, $start_time)); - $shiftsFilter->setEndTime(check_request_datetime('end_day', 'end_time', $days, $end_time)); + $shiftsFilter->setStartTime(check_request_datetime('start_day', 'start_time', $days, $start_time)); + $shiftsFilter->setEndTime(check_request_datetime('end_day', 'end_time', $days, $end_time)); - if ($shiftsFilter->getStartTime() > $shiftsFilter->getEndTime()) { - $shiftsFilter->setEndTime($shiftsFilter->getStartTime() + 24 * 60 * 60); - } + if ($shiftsFilter->getStartTime() > $shiftsFilter->getEndTime()) { + $shiftsFilter->setEndTime($shiftsFilter->getStartTime() + 24 * 60 * 60); + } } /** @@ -68,90 +71,95 @@ function update_ShiftsFilter_timerange(ShiftsFilter $shiftsFilter, $days) { * @param string[] $days * An array of available filter days */ -function update_ShiftsFilter(ShiftsFilter $shiftsFilter, $user_shifts_admin, $days) { - $shiftsFilter->setUserShiftsAdmin($user_shifts_admin); - $shiftsFilter->setFilled(check_request_int_array('filled', $shiftsFilter->getFilled())); - $shiftsFilter->setRooms(check_request_int_array('rooms', $shiftsFilter->getRooms())); - $shiftsFilter->setTypes(check_request_int_array('types', $shiftsFilter->getTypes())); - update_ShiftsFilter_timerange($shiftsFilter, $days); +function update_ShiftsFilter(ShiftsFilter $shiftsFilter, $user_shifts_admin, $days) +{ + $shiftsFilter->setUserShiftsAdmin($user_shifts_admin); + $shiftsFilter->setFilled(check_request_int_array('filled', $shiftsFilter->getFilled())); + $shiftsFilter->setRooms(check_request_int_array('rooms', $shiftsFilter->getRooms())); + $shiftsFilter->setTypes(check_request_int_array('types', $shiftsFilter->getTypes())); + update_ShiftsFilter_timerange($shiftsFilter, $days); } -function load_rooms() { - $rooms = sql_select("SELECT `RID` AS `id`, `Name` AS `name` FROM `Room` WHERE `show`='Y' ORDER BY `Name`"); - if (count($rooms) == 0) { - error(_("The administration has not configured any rooms yet.")); - redirect('?'); - } - return $rooms; +function load_rooms() +{ + $rooms = sql_select("SELECT `RID` AS `id`, `Name` AS `name` FROM `Room` WHERE `show`='Y' ORDER BY `Name`"); + if (count($rooms) == 0) { + error(_("The administration has not configured any rooms yet.")); + redirect('?'); + } + return $rooms; } -function load_days() { - $days = sql_select_single_col(" +function load_days() +{ + $days = sql_select_single_col(" SELECT DISTINCT DATE(FROM_UNIXTIME(`start`)) AS `id`, DATE(FROM_UNIXTIME(`start`)) AS `name` FROM `Shifts` ORDER BY `start`"); - if (count($days) == 0) { - error(_("The administration has not configured any shifts yet.")); - redirect('?'); - } - return $days; + if (count($days) == 0) { + error(_("The administration has not configured any shifts yet.")); + redirect('?'); + } + return $days; } -function load_types() { - global $user; +function load_types() +{ + global $user; - if (sql_num_query("SELECT `id`, `name` FROM `AngelTypes` WHERE `restricted` = 0") == 0) { - error(_("The administration has not configured any angeltypes yet - or you are not subscribed to any angeltype.")); - redirect('?'); - } - $types = sql_select("SELECT `AngelTypes`.`id`, `AngelTypes`.`name`, (`AngelTypes`.`restricted`=0 OR (NOT `UserAngelTypes`.`confirm_user_id` IS NULL OR `UserAngelTypes`.`id` IS NULL)) as `enabled` FROM `AngelTypes` LEFT JOIN `UserAngelTypes` ON (`UserAngelTypes`.`angeltype_id`=`AngelTypes`.`id` AND `UserAngelTypes`.`user_id`='" . sql_escape($user['UID']) . "') ORDER BY `AngelTypes`.`name`"); - if (empty($types)) { - return sql_select("SELECT `id`, `name` FROM `AngelTypes` WHERE `restricted` = 0"); - } - return $types; + if (sql_num_query("SELECT `id`, `name` FROM `AngelTypes` WHERE `restricted` = 0") == 0) { + error(_("The administration has not configured any angeltypes yet - or you are not subscribed to any angeltype.")); + redirect('?'); + } + $types = sql_select("SELECT `AngelTypes`.`id`, `AngelTypes`.`name`, (`AngelTypes`.`restricted`=0 OR (NOT `UserAngelTypes`.`confirm_user_id` IS NULL OR `UserAngelTypes`.`id` IS NULL)) as `enabled` FROM `AngelTypes` LEFT JOIN `UserAngelTypes` ON (`UserAngelTypes`.`angeltype_id`=`AngelTypes`.`id` AND `UserAngelTypes`.`user_id`='" . sql_escape($user['UID']) . "') ORDER BY `AngelTypes`.`name`"); + if (empty($types)) { + return sql_select("SELECT `id`, `name` FROM `AngelTypes` WHERE `restricted` = 0"); + } + return $types; } -function view_user_shifts() { - global $user, $privileges; - global $ical_shifts; +function view_user_shifts() +{ + global $user, $privileges; + global $ical_shifts; - $ical_shifts = []; - $days = load_days(); - $rooms = load_rooms(); - $types = load_types(); + $ical_shifts = []; + $days = load_days(); + $rooms = load_rooms(); + $types = load_types(); - if (! isset($_SESSION['ShiftsFilter'])) { - $room_ids = [ - $rooms[0]['id'] + if (! isset($_SESSION['ShiftsFilter'])) { + $room_ids = [ + $rooms[0]['id'] ]; - $type_ids = array_map('get_ids_from_array', $types); - $_SESSION['ShiftsFilter'] = new ShiftsFilter(in_array('user_shifts_admin', $privileges), $room_ids, $type_ids); - } - update_ShiftsFilter($_SESSION['ShiftsFilter'], in_array('user_shifts_admin', $privileges), $days); - $shiftsFilter = $_SESSION['ShiftsFilter']; + $type_ids = array_map('get_ids_from_array', $types); + $_SESSION['ShiftsFilter'] = new ShiftsFilter(in_array('user_shifts_admin', $privileges), $room_ids, $type_ids); + } + update_ShiftsFilter($_SESSION['ShiftsFilter'], in_array('user_shifts_admin', $privileges), $days); + $shiftsFilter = $_SESSION['ShiftsFilter']; - $shiftCalendarRenderer = shiftCalendarRendererByShiftFilter($shiftsFilter); + $shiftCalendarRenderer = shiftCalendarRendererByShiftFilter($shiftsFilter); - if ($user['api_key'] == "") { - User_reset_api_key($user, false); - } + if ($user['api_key'] == "") { + User_reset_api_key($user, false); + } - $filled = [ + $filled = [ [ 'id' => '1', - 'name' => _("occupied") + 'name' => _("occupied") ], [ 'id' => '0', - 'name' => _("free") - ] + 'name' => _("free") + ] ]; - $start_day = date("Y-m-d", $shiftsFilter->getStartTime()); - $start_time = date("H:i", $shiftsFilter->getStartTime()); - $end_day = date("Y-m-d", $shiftsFilter->getEndTime()); - $end_time = date("H:i", $shiftsFilter->getEndTime()); + $start_day = date("Y-m-d", $shiftsFilter->getStartTime()); + $start_time = date("H:i", $shiftsFilter->getStartTime()); + $end_day = date("Y-m-d", $shiftsFilter->getEndTime()); + $end_time = date("H:i", $shiftsFilter->getEndTime()); - return page([ + return page([ div('col-md-12', [ msg(), template_render(__DIR__ . '/../../templates/user_shifts.html', [ @@ -166,32 +174,33 @@ function view_user_shifts() { 'task_notice' => '1' . _("The tasks shown here are influenced by the angeltypes you joined already!") . " " . _("Description of the jobs.") . "", 'shifts_table' => msg() . $shiftCalendarRenderer->render(), 'ical_text' => '

' . _("iCal export") . '

' . sprintf(_("Export of shown shifts. iCal format or JSON format available (please keep secret, otherwise reset the api key)."), page_link_to_absolute('ical') . '&key=' . $user['api_key'], page_link_to_absolute('shifts_json_export') . '&key=' . $user['api_key'], page_link_to('user_myshifts') . '&reset') . '

', - 'filter' => _("Filter") - ]) - ]) + 'filter' => _("Filter") + ]) + ]) ]); } -function get_ids_from_array($array) { - return $array["id"]; +function get_ids_from_array($array) +{ + return $array["id"]; } -function make_select($items, $selected, $name, $title = null) { - $html_items = []; - if (isset($title)) { - $html_items[] = '

' . $title . '

' . "\n"; - } +function make_select($items, $selected, $name, $title = null) +{ + $html_items = []; + if (isset($title)) { + $html_items[] = '

' . $title . '

' . "\n"; + } - foreach ($items as $i) { - $html_items[] = '
' . (! isset($i['enabled']) || $i['enabled'] ? '' : glyph("lock")) . '

'; - } - $html = '
' . "\n"; - $html .= implode("\n", $html_items); - $html .= buttons([ + foreach ($items as $i) { + $html_items[] = '
' . (! isset($i['enabled']) || $i['enabled'] ? '' : glyph("lock")) . '

'; + } + $html = '
' . "\n"; + $html .= implode("\n", $html_items); + $html .= buttons([ button("javascript: checkAll('selection_" . $name . "', true)", _("All"), ""), - button("javascript: checkAll('selection_" . $name . "', false)", _("None"), "") + button("javascript: checkAll('selection_" . $name . "', false)", _("None"), "") ]); - $html .= '
' . "\n"; - return $html; + $html .= '
' . "\n"; + return $html; } -?> -- cgit v1.3.1