diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2017-08-29 23:06:46 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2017-08-29 23:16:41 +0200 |
commit | d0074cf0069322fe175fb385b91c974fc2771547 (patch) | |
tree | 713fcb1f426c8a693938e3c8bbfc685e57f79e69 | |
parent | 50da458d8907cc7c05938565faa80b271bbf9b3d (diff) | |
parent | 581b81f1b25dc6b6f0a3b34810c293738fd40217 (diff) |
Merge remote-tracking branch 'engelsystem/feature-igel-rewrite'
# Conflicts:
# includes/controller/angeltypes_controller.php
# includes/pages/admin_groups.php
# includes/pages/user_settings.php
# includes/sys_page.php
# src/Exceptions/Handler.php
# src/Http/Request.php
45 files changed, 232 insertions, 644 deletions
diff --git a/includes/controller/event_config_controller.php b/includes/controller/event_config_controller.php index dcdcf54a..7d11ecb4 100644 --- a/includes/controller/event_config_controller.php +++ b/includes/controller/event_config_controller.php @@ -91,7 +91,7 @@ function event_config_edit_controller() } if ($valid) { - $result = EventConfig_update( + EventConfig_update( $event_name, $buildup_start_date, $event_start_date, @@ -100,10 +100,6 @@ function event_config_edit_controller() $event_welcome_msg ); - if ($result === false) { - engelsystem_error('Unable to update event config.'); - } - engelsystem_log( 'Changed event config: $event_name, $event_welcome_msg, ' . date('Y-m-d', $buildup_start_date) . ', ' . date('Y-m-d', $event_start_date) . ', ' diff --git a/includes/controller/rooms_controller.php b/includes/controller/rooms_controller.php index 81b0113e..d6da9709 100644 --- a/includes/controller/rooms_controller.php +++ b/includes/controller/rooms_controller.php @@ -80,10 +80,7 @@ function rooms_controller() case 'list': default: redirect(page_link_to('admin_rooms')); - break; } - - exit; } /** diff --git a/includes/controller/shift_entries_controller.php b/includes/controller/shift_entries_controller.php index 3890241d..148b19fb 100644 --- a/includes/controller/shift_entries_controller.php +++ b/includes/controller/shift_entries_controller.php @@ -43,7 +43,7 @@ function shift_entry_add_controller() $type = AngelType($type_id); } else { // TODO: Move queries to model - $type = DB::select(' + $type = DB::selectOne(' SELECT * FROM `UserAngelTypes` JOIN `AngelTypes` ON (`UserAngelTypes`.`angeltype_id` = `AngelTypes`.`id`) @@ -56,7 +56,6 @@ function shift_entry_add_controller() ) ) ', [$type_id, $user['UID']]); - $type = array_shift($type); } if (empty($type)) { @@ -130,7 +129,7 @@ function shift_entry_add_controller() } $comment = strip_request_item_nl('comment'); - $result = ShiftEntry_create([ + ShiftEntry_create([ 'SID' => $shift_id, 'TID' => $selected_type_id, 'UID' => $user_id, @@ -138,9 +137,6 @@ function shift_entry_add_controller() 'freeloaded' => $freeloaded, 'freeload_comment' => $freeload_comment ]); - if ($result === false) { - engelsystem_error('Unable to create shift entry.'); - } if ( $type['restricted'] == 0 @@ -244,7 +240,7 @@ function shift_entry_delete_controller() } $entry_id = $request->input('entry_id'); - $shift_entry_source = DB::select(' + $shift_entry_source = DB::selectOne(' SELECT `User`.`Nick`, `ShiftEntry`.`Comment`, @@ -263,19 +259,14 @@ function shift_entry_delete_controller() WHERE `ShiftEntry`.`id`=?', [$entry_id] ); - if (count($shift_entry_source) > 0) { - $shift_entry_source = array_shift($shift_entry_source); - + if (!empty($shift_entry_source)) { if (!in_array('user_shifts_admin', $privileges) && (!in_array('shiftentry_edit_angeltype_supporter', $privileges) || !User_is_AngelType_supporter($user, AngelType($shift_entry_source['angeltype_id']))) ) { redirect(page_link_to('user_shifts')); } - $result = ShiftEntry_delete($entry_id); - if ($result === false) { - engelsystem_error('Unable to delete shift entry.'); - } + ShiftEntry_delete($entry_id); engelsystem_log( 'Deleted ' . User_Nick_render($shift_entry_source) . '\'s shift: ' . $shift_entry_source['name'] diff --git a/includes/controller/shifts_controller.php b/includes/controller/shifts_controller.php index f68f64fe..c359850f 100644 --- a/includes/controller/shifts_controller.php +++ b/includes/controller/shifts_controller.php @@ -141,10 +141,7 @@ function shift_edit_controller() $shift['start'] = $start; $shift['end'] = $end; - $result = Shift_update($shift); - if ($result === false) { - engelsystem_error('Unable to update shift.'); - } + Shift_update($shift); NeededAngelTypes_delete_by_shift($shift_id); $needed_angel_types_info = []; foreach ($needed_angel_types as $type_id => $count) { @@ -337,7 +334,6 @@ function shift_next_controller() } redirect(page_link_to('user_shifts')); - exit; } /** @@ -361,9 +357,6 @@ function shifts_json_export_all_controller() } $shifts_source = Shifts(); - if ($shifts_source === false) { - engelsystem_error('Unable to load shifts.'); - } header('Content-Type: application/json; charset=utf-8'); raw_output(json_encode($shifts_source)); diff --git a/includes/controller/shifttypes_controller.php b/includes/controller/shifttypes_controller.php index 3ef2675f..4e7cd92c 100644 --- a/includes/controller/shifttypes_controller.php +++ b/includes/controller/shifttypes_controller.php @@ -28,10 +28,7 @@ function shifttype_delete_controller() } if ($request->has('confirmed')) { - $result = ShiftType_delete($shifttype['id']); - if (empty($result)) { - engelsystem_error('Unable to delete shifttype.'); - } + ShiftType_delete($shifttype['id']); engelsystem_log('Deleted shifttype ' . $shifttype['name']); success(sprintf(_('Shifttype %s deleted.'), $shifttype['name'])); @@ -93,17 +90,13 @@ function shifttype_edit_controller() if ($valid) { if ($shifttype_id) { - $result = ShiftType_update($shifttype_id, $name, $angeltype_id, $description); - if ($result === false) { - engelsystem_error('Unable to update shifttype.'); - } + ShiftType_update($shifttype_id, $name, $angeltype_id, $description); + engelsystem_log('Updated shifttype ' . $name); success(_('Updated shifttype.')); } else { $shifttype_id = ShiftType_create($name, $angeltype_id, $description); - if ($shifttype_id === false) { - engelsystem_error('Unable to create shifttype.'); - } + engelsystem_log('Created shifttype ' . $name); success(_('Created shifttype.')); } @@ -150,9 +143,6 @@ function shifttype_controller() function shifttypes_list_controller() { $shifttypes = ShiftTypes(); - if ($shifttypes === false) { - engelsystem_error('Unable to load shifttypes.'); - } return [ shifttypes_title(), diff --git a/includes/controller/user_angeltypes_controller.php b/includes/controller/user_angeltypes_controller.php index b427e868..fa4f5777 100644 --- a/includes/controller/user_angeltypes_controller.php +++ b/includes/controller/user_angeltypes_controller.php @@ -214,10 +214,7 @@ function user_angeltype_delete_controller() } if ($request->has('confirmed')) { - $result = UserAngelType_delete($user_angeltype); - if ($result === false) { - engelsystem_error('Unable to delete user angeltype.'); - } + UserAngelType_delete($user_angeltype); $success_message = sprintf(_('User %s removed from %s.'), User_Nick_render($user_source), $angeltype['name']); engelsystem_log($success_message); @@ -421,6 +418,5 @@ function user_angeltypes_controller() return user_angeltype_add_controller(); default: redirect(page_link_to('angeltypes')); - exit; } } diff --git a/includes/controller/users_controller.php b/includes/controller/users_controller.php index b8a1fdbd..e8cb1b27 100644 --- a/includes/controller/users_controller.php +++ b/includes/controller/users_controller.php @@ -76,10 +76,7 @@ function user_delete_controller() } if ($valid) { - $result = User_delete($user_source['UID']); - if ($result === false) { - engelsystem_error('Unable to delete user.'); - } + User_delete($user_source['UID']); mail_user_delete($user_source); success(_('User deleted.')); @@ -166,10 +163,7 @@ function user_edit_vouchers_controller() if ($valid) { $user_source['got_voucher'] = $vouchers; - $result = User_update($user_source); - if ($result === false) { - engelsystem_error('Unable to update user.'); - } + User_update($user_source); success(_('Saved the number of vouchers.')); engelsystem_log(User_Nick_render($user_source) . ': ' . sprintf('Got %s vouchers', @@ -265,10 +259,6 @@ function users_list_controller() } $users = Users($order_by); - if ($users === false) { - engelsystem_error('Unable to load users.'); - } - foreach ($users as &$user) { $user['freeloads'] = count(ShiftEntries_freeloaded_by_user($user)); } diff --git a/includes/model/AngelType_model.php b/includes/model/AngelType_model.php index d437f526..bc535667 100644 --- a/includes/model/AngelType_model.php +++ b/includes/model/AngelType_model.php @@ -77,31 +77,25 @@ function AngelType_contact_info($angeltype) * Delete an Angeltype. * * @param array $angeltype - * @return bool */ function AngelType_delete($angeltype) { - $result = DB::delete(' + DB::delete(' DELETE FROM `AngelTypes` WHERE `id`=? LIMIT 1 ', [$angeltype['id']]); - if (is_null($result)) { - engelsystem_error('Unable to delete angeltype.'); - } engelsystem_log('Deleted angeltype: ' . AngelType_name_render($angeltype)); - return true; } /** * Update Angeltype. * * @param array $angeltype The angeltype - * @return bool */ function AngelType_update($angeltype) { - $result = DB::update(' + DB::update(' UPDATE `AngelTypes` SET `name` = ?, `restricted` = ?, @@ -126,15 +120,12 @@ function AngelType_update($angeltype) $angeltype['id'], ] ); - if (is_null($result)) { - engelsystem_error('Unable to update angeltype.'); - } + engelsystem_log( 'Updated angeltype: ' . $angeltype['name'] . ($angeltype['restricted'] ? ', restricted' : '') . ($angeltype['no_self_signup'] ? ', no_self_signup' : '') . ($angeltype['requires_driver_license'] ? ', requires driver license' : '') ); - return true; } /** @@ -145,7 +136,7 @@ function AngelType_update($angeltype) */ function AngelType_create($angeltype) { - $result = DB::insert(' + DB::insert(' INSERT INTO `AngelTypes` ( `name`, `restricted`, @@ -171,9 +162,7 @@ function AngelType_create($angeltype) $angeltype['contact_email'], ] ); - if (is_null($result)) { - engelsystem_error('Unable to create angeltype.'); - } + $angeltype['id'] = DB::getPdo()->lastInsertId(); engelsystem_log( 'Created angeltype: ' . $angeltype['name'] @@ -224,7 +213,7 @@ function AngelType_validate_name($name, $angeltype) */ function AngelTypes_with_user($user) { - $result = DB::select(' + return DB::select(' SELECT `AngelTypes`.*, `UserAngelTypes`.`id` AS `user_angeltype_id`, `UserAngelTypes`.`confirm_user_id`, @@ -233,11 +222,6 @@ function AngelTypes_with_user($user) LEFT JOIN `UserAngelTypes` ON `AngelTypes`.`id`=`UserAngelTypes`.`angeltype_id` AND `UserAngelTypes`.`user_id` = ? ORDER BY `name`', [$user['UID']]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load angeltypes.'); - } - return $result; } /** @@ -247,15 +231,10 @@ function AngelTypes_with_user($user) */ function AngelTypes() { - $result = DB::select(' + return DB::select(' SELECT * FROM `AngelTypes` ORDER BY `name`'); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load angeltypes.'); - } - return $result; } /** @@ -266,10 +245,6 @@ function AngelTypes() function AngelType_ids() { $result = DB::select('SELECT `id` FROM `AngelTypes`'); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load angeltypes.'); - } return select_array($result, 'id', 'id'); } @@ -281,18 +256,8 @@ function AngelType_ids() */ function AngelType($angeltype_id) { - $angelType_source = DB::select( + return DB::selectOne( 'SELECT * FROM `AngelTypes` WHERE `id`=?', [$angeltype_id] ); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load angeltype.'); - } - - if (empty($angelType_source)) { - return null; - } - - return array_shift($angelType_source); } diff --git a/includes/model/EventConfig_model.php b/includes/model/EventConfig_model.php index 112ad457..646d19c5 100644 --- a/includes/model/EventConfig_model.php +++ b/includes/model/EventConfig_model.php @@ -9,17 +9,7 @@ use Engelsystem\Database\DB; */ function EventConfig() { - $event_config = DB::select('SELECT * FROM `EventConfig` LIMIT 1'); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load event config.'); - return null; - } - - if (empty($event_config)) { - return null; - } - - return array_shift($event_config); + return DB::selectOne('SELECT * FROM `EventConfig` LIMIT 1'); } /** @@ -31,7 +21,7 @@ function EventConfig() * @param int $event_end_date * @param int $teardown_end_date * @param string $event_welcome_msg - * @return bool + * @return int Rows updated */ function EventConfig_update( $event_name, diff --git a/includes/model/Message_model.php b/includes/model/Message_model.php index ebd4b37e..9bb037af 100644 --- a/includes/model/Message_model.php +++ b/includes/model/Message_model.php @@ -20,11 +20,7 @@ function Message_ids() */ function Message($message_id) { - $message_source = DB::select('SELECT * FROM `Messages` WHERE `id`=? LIMIT 1', [$message_id]); - if (empty($message_source)) { - return null; - } - return array_shift($message_source); + return DB::selectOne('SELECT * FROM `Messages` WHERE `id`=? LIMIT 1', [$message_id]); } /** diff --git a/includes/model/NeededAngelTypes_model.php b/includes/model/NeededAngelTypes_model.php index 97b085f0..d8de5e69 100644 --- a/includes/model/NeededAngelTypes_model.php +++ b/includes/model/NeededAngelTypes_model.php @@ -17,7 +17,7 @@ use Engelsystem\Database\DB; */ function NeededAngelType_add($shift_id, $angeltype_id, $room_id, $count) { - $result = DB::insert(' + DB::insert(' INSERT INTO `NeededAngelTypes` ( `shift_id`, `angel_type_id`, `room_id`, `count`) VALUES (?, ?, ?, ?) ', @@ -27,9 +27,6 @@ function NeededAngelType_add($shift_id, $angeltype_id, $room_id, $count) $room_id, $count, ]); - if ($result === false) { - return false; - } return DB::getPdo()->lastInsertId(); } @@ -38,22 +35,20 @@ function NeededAngelType_add($shift_id, $angeltype_id, $room_id, $count) * Deletes all needed angel types from given shift. * * @param int $shift_id id of the shift - * @return int count of affected rows */ function NeededAngelTypes_delete_by_shift($shift_id) { - return (int)DB::delete('DELETE FROM `NeededAngelTypes` WHERE `shift_id` = ?', [$shift_id]); + DB::delete('DELETE FROM `NeededAngelTypes` WHERE `shift_id` = ?', [$shift_id]); } /** * Deletes all needed angel types from given room. * * @param int $room_id id of the room - * @return int count of affected rows */ function NeededAngelTypes_delete_by_room($room_id) { - return (int)DB::delete( + DB::delete( 'DELETE FROM `NeededAngelTypes` WHERE `room_id` = ?', [$room_id] ); @@ -76,9 +71,6 @@ function NeededAngelTypes_by_shift($shiftId) ORDER BY `room_id` DESC', [$shiftId] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load needed angeltypes.'); - } // Use settings from room if (count($needed_angeltypes_source) == 0) { @@ -91,9 +83,6 @@ function NeededAngelTypes_by_shift($shiftId) AND `count` > 0 ORDER BY `room_id` DESC ', [$shiftId]); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load needed angeltypes.'); - } } $shift_entries = ShiftEntries_by_shift($shiftId); diff --git a/includes/model/Room_model.php b/includes/model/Room_model.php index 17617b39..8425e5ad 100644 --- a/includes/model/Room_model.php +++ b/includes/model/Room_model.php @@ -17,11 +17,10 @@ function Rooms($show_all = false) * Delete a room * * @param int $room_id - * @return bool */ function Room_delete($room_id) { - return DB::delete('DELETE FROM `Room` WHERE `RID` = ?', [$room_id]); + DB::delete('DELETE FROM `Room` WHERE `RID` = ?', [$room_id]); } /** @@ -35,7 +34,7 @@ function Room_delete($room_id) */ function Room_create($name, $from_frab, $public, $number = null) { - $result = DB::insert(' + DB::insert(' INSERT INTO `Room` (`Name`, `FromPentabarf`, `show`, `Number`) VALUES (?, ?, ?, ?) ', @@ -46,9 +45,6 @@ function Room_create($name, $from_frab, $public, $number = null) (int)$number, ] ); - if (!$result) { - return false; - } return DB::getPdo()->lastInsertId(); } @@ -62,21 +58,11 @@ function Room_create($name, $from_frab, $public, $number = null) */ function Room($room_id, $onlyVisible = true) { - $room_source = DB::select(' + return DB::selectOne(' SELECT * FROM `Room` WHERE `RID` = ? ' . ($onlyVisible ? 'AND `show` = \'Y\'' : ''), [$room_id] ); - - if (DB::getStm()->errorCode() != '00000') { - return false; - } - - if (empty($room_source)) { - return null; - } - - return array_shift($room_source); } diff --git a/includes/model/ShiftEntry_model.php b/includes/model/ShiftEntry_model.php index d7810feb..3a7254ad 100644 --- a/includes/model/ShiftEntry_model.php +++ b/includes/model/ShiftEntry_model.php @@ -28,10 +28,9 @@ function ShiftEntry_new() */ function ShiftEntries_freeleaded_count() { - $result = DB::select('SELECT COUNT(*) FROM `ShiftEntry` WHERE `freeloaded` = 1'); - $result = array_shift($result); + $result = DB::selectOne('SELECT COUNT(*) FROM `ShiftEntry` WHERE `freeloaded` = 1'); - if (!is_array($result)) { + if (empty($result)) { return 0; } @@ -102,7 +101,6 @@ function ShiftEntry_create($shift_entry) * Update a shift entry. * * @param array $shift_entry - * @return bool */ function ShiftEntry_update($shift_entry) { @@ -120,39 +118,29 @@ function ShiftEntry_update($shift_entry) $shift_entry['id'] ] ); - - return (DB::getStm()->errorCode() == '00000'); } /** * Get a shift entry. * * @param int $shift_entry_id - * @return array|false|null + * @return array|null */ function ShiftEntry($shift_entry_id) { - $shift_entry = DB::select('SELECT * FROM `ShiftEntry` WHERE `id` = ?', [$shift_entry_id]); - if (DB::getStm()->errorCode() != '00000') { - return false; - } - if (empty($shift_entry)) { - return null; - } - return $shift_entry[0]; + return DB::selectOne('SELECT * FROM `ShiftEntry` WHERE `id` = ?', [$shift_entry_id]); } /** * Delete a shift entry. * * @param int $shift_entry_id - * @return bool */ function ShiftEntry_delete($shift_entry_id) { $shift_entry = ShiftEntry($shift_entry_id); mail_shift_removed(User($shift_entry['UID']), Shift($shift_entry['SID'])); - return DB::delete('DELETE FROM `ShiftEntry` WHERE `id` = ?', [$shift_entry_id]); + DB::delete('DELETE FROM `ShiftEntry` WHERE `id` = ?', [$shift_entry_id]); } /** @@ -213,7 +201,7 @@ function ShiftEntries_finished_by_user($user) */ function ShiftEntries_by_shift_and_angeltype($shift_id, $angeltype_id) { - $result = DB::select(' + return DB::select(' SELECT * FROM `ShiftEntry` WHERE `SID` = ? @@ -224,10 +212,6 @@ function ShiftEntries_by_shift_and_angeltype($shift_id, $angeltype_id) $angeltype_id, ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load shift entries.'); - } - return $result; } /** diff --git a/includes/model/ShiftTypes_model.php b/includes/model/ShiftTypes_model.php index 96a823d4..227df367 100644 --- a/includes/model/ShiftTypes_model.php +++ b/includes/model/ShiftTypes_model.php @@ -6,11 +6,10 @@ use Engelsystem\Database\DB; * Delete a shift type. * * @param int $shifttype_id - * @return bool */ function ShiftType_delete($shifttype_id) { - return DB::delete('DELETE FROM `ShiftTypes` WHERE `id`=?', [$shifttype_id]); + DB::delete('DELETE FROM `ShiftTypes` WHERE `id`=?', [$shifttype_id]); } /** @@ -20,7 +19,6 @@ function ShiftType_delete($shifttype_id) * @param string $name * @param int $angeltype_id * @param string $description - * @return bool */ function ShiftType_update($shifttype_id, $name, $angeltype_id, $description) { @@ -38,8 +36,6 @@ function ShiftType_update($shifttype_id, $name, $angeltype_id, $description) $shifttype_id, ] ); - - return DB::getStm()->errorCode() == '00000'; } /** @@ -52,7 +48,7 @@ function ShiftType_update($shifttype_id, $name, $angeltype_id, $description) */ function ShiftType_create($name, $angeltype_id, $description) { - $result = DB::insert(' + DB::insert(' INSERT INTO `ShiftTypes` (`name`, `angeltype_id`, `description`) VALUES(?, ?, ?) ', @@ -63,10 +59,6 @@ function ShiftType_create($name, $angeltype_id, $description) ] ); - if ($result === false) { - return false; - } - return DB::getPdo()->lastInsertId(); } @@ -78,28 +70,15 @@ function ShiftType_create($name, $angeltype_id, $description) */ function ShiftType($shifttype_id) { - $shifttype = DB::select('SELECT * FROM `ShiftTypes` WHERE `id`=?', [$shifttype_id]); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load shift type.'); - } - if (empty($shifttype)) { - return null; - } - return array_shift($shifttype); + return DB::selectOne('SELECT * FROM `ShiftTypes` WHERE `id`=?', [$shifttype_id]); } /** * Get all shift types. * - * @return array|false + * @return array */ function ShiftTypes() { - $result = DB::select('SELECT * FROM `ShiftTypes` ORDER BY `name`'); - - if (DB::getStm()->errorCode() != '00000') { - return false; - } - - return $result; + return DB::select('SELECT * FROM `ShiftTypes` ORDER BY `name`'); } diff --git a/includes/model/Shifts_model.php b/includes/model/Shifts_model.php index 21abc888..88b28998 100644 --- a/includes/model/Shifts_model.php +++ b/includes/model/Shifts_model.php @@ -10,11 +10,7 @@ use Engelsystem\ShiftSignupState; */ function Shifts_by_room($room) { - $result = DB::select('SELECT * FROM `Shifts` WHERE `RID`=? ORDER BY `start`', [$room['RID']]); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load shifts.'); - } - return $result; + return DB::select('SELECT * FROM `Shifts` WHERE `RID`=? ORDER BY `start`', [$room['RID']]); } /** @@ -49,7 +45,8 @@ function Shifts_by_ShiftsFilter(ShiftsFilter $shiftsFilter) AND NOT `Shifts`.`PSID` IS NULL) AS tmp_shifts ORDER BY `start`'; - $result = DB::select( + + return DB::select( $sql, [ $shiftsFilter->getStartTime(), @@ -58,10 +55,6 @@ function Shifts_by_ShiftsFilter(ShiftsFilter $shiftsFilter) $shiftsFilter->getEndTime(), ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load shifts by filter.'); - } - return $result; } /** @@ -100,7 +93,8 @@ function NeededAngeltypes_by_ShiftsFilter(ShiftsFilter $shiftsFilter) WHERE `Shifts`.`RID` IN (' . implode(',', $shiftsFilter->getRooms()) . ') AND `start` BETWEEN ? AND ? AND NOT `Shifts`.`PSID` IS NULL'; - $result = DB::select( + + return DB::select( $sql, [ $shiftsFilter->getStartTime(), @@ -109,10 +103,6 @@ function NeededAngeltypes_by_ShiftsFilter(ShiftsFilter $shiftsFilter) $shiftsFilter->getEndTime(), ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load needed angeltypes by filter.'); - } - return $result; } /** @@ -122,7 +112,7 @@ function NeededAngeltypes_by_ShiftsFilter(ShiftsFilter $shiftsFilter) */ function NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype) { - $result = DB::select(' + return DB::selectOne(' SELECT `NeededAngelTypes`.*, `Shifts`.`SID`, @@ -160,13 +150,6 @@ function NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype) $angeltype['id'] ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load needed angeltypes by filter.'); - } - if (empty($result)) { - return null; - } - return $result[0]; } /** @@ -193,17 +176,13 @@ function ShiftEntries_by_ShiftsFilter(ShiftsFilter $shiftsFilter) WHERE `Shifts`.`RID` IN (' . implode(',', $shiftsFilter->getRooms()) . ') AND `start` BETWEEN ? AND ? ORDER BY `Shifts`.`start`'; - $result = DB::select( + return DB::select( $sql, [ $shiftsFilter->getStartTime(), $shiftsFilter->getEndTime(), ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load shift entries by filter.'); - } - return $result; } /** @@ -402,41 +381,29 @@ function Shift_signup_allowed( * Delete a shift by its external id. * * @param int $shift_psid - * @return bool */ function Shift_delete_by_psid($shift_psid) { DB::delete('DELETE FROM `Shifts` WHERE `PSID`=?', [$shift_psid]); - - if (DB::getStm()->errorCode() != '00000') { - return false; - } - - return true; } /** * Delete a shift. * * @param int $shift_id - * @return bool */ function Shift_delete($shift_id) { mail_shift_delete(Shift($shift_id)); - $result = DB::delete('DELETE FROM `Shifts` WHERE `SID`=?', [$shift_id]); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to delete shift.'); - } - return $result; + DB::delete('DELETE FROM `Shifts` WHERE `SID`=?', [$shift_id]); } /** * Update a shift. * * @param array $shift - * @return bool + * @return int Updated row count */ function Shift_update($shift) { @@ -444,7 +411,7 @@ function Shift_update($shift) $shift['name'] = ShiftType($shift['shifttype_id'])['name']; mail_shift_change(Shift($shift['SID']), $shift); - return (bool)DB::update(' + return DB::update(' UPDATE `Shifts` SET `shifttype_id` = ?, `start` = ?, @@ -480,16 +447,13 @@ function Shift_update($shift) */ function Shift_update_by_psid($shift) { - $shift_source = DB::select('SELECT `SID` FROM `Shifts` WHERE `PSID`=?', [$shift['PSID']]); - if (DB::getStm()->errorCode() != '00000') { - return false; - } + $shift_source = DB::selectOne('SELECT `SID` FROM `Shifts` WHERE `PSID`=?', [$shift['PSID']]); if (empty($shift_source)) { - return null; + throw new Exception('Shift not found.'); } - $shift['SID'] = $shift_source[0]['SID']; + $shift['SID'] = $shift_source['SID']; return Shift_update($shift); } @@ -497,7 +461,7 @@ function Shift_update_by_psid($shift) * Create a new shift. * * @param array $shift - * @return int|false shift id or false + * @return int ID of the new created shift */ function Shift_create($shift) { @@ -528,9 +492,7 @@ function Shift_create($shift) time(), ] ); - if (DB::getStm()->errorCode() != '00000') { - return false; - } + return DB::getPdo()->lastInsertId(); } @@ -543,7 +505,7 @@ function Shift_create($shift) */ function Shifts_by_user($user, $include_freeload_comments = false) { - $result = DB::select(' + return DB::select(' SELECT `ShiftTypes`.`id` AS `shifttype_id`, `ShiftTypes`.`name`, `ShiftEntry`.`id`, `ShiftEntry`.`SID`, `ShiftEntry`.`TID`, `ShiftEntry`.`UID`, `ShiftEntry`.`freeloaded`, `ShiftEntry`.`Comment`, ' . ($include_freeload_comments ? '`ShiftEntry`.`freeload_comment`, ' : '') . ' @@ -559,10 +521,6 @@ function Shifts_by_user($user, $include_freeload_comments = false) $user['UID'] ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load users shifts.'); - } - return $result; } /** @@ -573,22 +531,16 @@ function Shifts_by_user($user, $include_freeload_comments = false) */ function Shift($shift_id) { - $shifts_source = DB::select(' + $result = DB::selectOne(' SELECT `Shifts`.*, `ShiftTypes`.`name` FROM `Shifts` JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`) WHERE `SID`=?', [$shift_id]); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load shift.'); - } - - if (empty($shifts_source)) { + if (empty($result)) { return null; } - $result = $shifts_source[0]; - $shiftsEntry_source = DB::select(' SELECT `id`, `TID` , `UID` , `freeloaded` FROM `ShiftEntry` @@ -613,7 +565,7 @@ function Shift($shift_id) /** * Returns all shifts with needed angeltypes and count of subscribed jobs. * - * @return array|false + * @return array */ function Shifts() { @@ -624,10 +576,6 @@ function Shifts() JOIN `Room` ON `Room`.`RID` = `Shifts`.`RID` '); - if (DB::getStm()->errorCode() != '00000') { - return false; - } - foreach ($shifts_source as &$shift) { $needed_angeltypes = NeededAngelTypes_by_shift($shift['SID']); $shift['angeltypes'] = $needed_angeltypes; diff --git a/includes/model/UserAngelTypes_model.php b/includes/model/UserAngelTypes_model.php index 82f390ee..5b0caf98 100644 --- a/includes/model/UserAngelTypes_model.php +++ b/includes/model/UserAngelTypes_model.php @@ -27,23 +27,16 @@ function UserAngelType_exists($user, $angeltype) * List users angeltypes. * * @param array $user - * @return array|false + * @return array */ function User_angeltypes($user) { - $result = DB::select(' + return DB::select(' SELECT `AngelTypes`.*, `UserAngelTypes`.`confirm_user_id`, `UserAngelTypes`.`supporter` FROM `UserAngelTypes` JOIN `AngelTypes` ON `UserAngelTypes`.`angeltype_id` = `AngelTypes`.`id` WHERE `UserAngelTypes`.`user_id`=? ', [$user['UID']]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load user angeltypes.'); - return false; - } - - return $result; } /** @@ -54,7 +47,7 @@ function User_angeltypes($user) */ function User_unconfirmed_AngelTypes($user) { - $result = DB::select(' + return DB::select(' SELECT `UserAngelTypes`.*, `AngelTypes`.`name`, @@ -69,12 +62,6 @@ function User_unconfirmed_AngelTypes($user) GROUP BY `UserAngelTypes`.`angeltype_id` ORDER BY `AngelTypes`.`name` ', [$user['UID']]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load user angeltypes.'); - } - - return $result; } /** @@ -110,29 +97,21 @@ function User_is_AngelType_supporter(&$user, $angeltype) * * @param int $user_angeltype_id * @param bool $supporter - * @return int */ function UserAngelType_update($user_angeltype_id, $supporter) { - $result = DB::update(' + DB::update(' UPDATE `UserAngelTypes` SET `supporter`=? WHERE `id`=? LIMIT 1 ', [$supporter, $user_angeltype_id]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to update supporter rights.'); - } - - return $result; } /** * Delete all unconfirmed UserAngelTypes for given Angeltype. * * @param int $angeltype_id - * @return bool */ function UserAngelTypes_delete_all($angeltype_id) { @@ -141,12 +120,6 @@ function UserAngelTypes_delete_all($angeltype_id) WHERE `angeltype_id`=? AND `confirm_user_id` IS NULL ', [$angeltype_id]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to delete all unconfirmed users.'); - } - - return true; } /** @@ -154,22 +127,15 @@ function UserAngelTypes_delete_all($angeltype_id) * * @param int $angeltype_id * @param array $confirm_user - * @return bool */ function UserAngelTypes_confirm_all($angeltype_id, $confirm_user) { - $result = DB::update(' + DB::update(' UPDATE `UserAngelTypes` SET `confirm_user_id`=? WHERE `angeltype_id`=? AND `confirm_user_id` IS NULL ', [$confirm_user['UID'], $angeltype_id]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to confirm all users.'); - } - - return (bool)$result; } /** @@ -181,26 +147,21 @@ function UserAngelTypes_confirm_all($angeltype_id, $confirm_user) */ function UserAngelType_confirm($user_angeltype_id, $confirm_user) { - $result = DB::update(' + DB::update(' UPDATE `UserAngelTypes` SET `confirm_user_id`=? WHERE `id`=? LIMIT 1', [$confirm_user['UID'], $user_angeltype_id]); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to confirm user angeltype.'); - } - return (bool)$result; } /** * Delete an UserAngelType. * * @param array $user_angeltype - * @return bool */ function UserAngelType_delete($user_angeltype) { - return (bool)DB::delete(' + DB::delete(' DELETE FROM `UserAngelTypes` WHERE `id`=? LIMIT 1', [$user_angeltype['id']]); @@ -225,10 +186,6 @@ function UserAngelType_create($user, $angeltype) ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to create user angeltype.'); - } - return DB::getPdo()->lastInsertId(); } @@ -240,21 +197,11 @@ function UserAngelType_create($user, $angeltype) */ function UserAngelType($user_angeltype_id) { - $angeltype = DB::select(' + return DB::selectOne(' SELECT * FROM `UserAngelTypes` WHERE `id`=? LIMIT 1', [$user_angeltype_id]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load user angeltype.'); - } - - if (empty($angeltype)) { - return null; - } - - return $angeltype[0]; } /** @@ -266,7 +213,7 @@ function UserAngelType($user_angeltype_id) */ function UserAngelType_by_User_and_AngelType($user, $angeltype) { - $angeltype = DB::select(' + return DB::selectOne(' SELECT * FROM `UserAngelTypes` WHERE `user_id`=? @@ -278,14 +225,4 @@ function UserAngelType_by_User_and_AngelType($user, $angeltype) $angeltype['id'] ] ); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load user angeltype.'); - } - - if (empty($angeltype)) { - return null; - } - - return array_shift($angeltype); } diff --git a/includes/model/UserDriverLicenses_model.php b/includes/model/UserDriverLicenses_model.php index 525d2016..798aa6ab 100644 --- a/includes/model/UserDriverLicenses_model.php +++ b/includes/model/UserDriverLicenses_model.php @@ -41,25 +41,14 @@ function UserDriverLicense_valid($user_driver_license) * Get a users driver license information * * @param int $user_id The users id - * @return array|false|null + * @return array|null */ function UserDriverLicense($user_id) { - $user_driver_license = DB::select(' + return DB::selectOne(' SELECT * FROM `UserDriverLicenses` WHERE `user_id`=?', [$user_id]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load user driver license.'); - return false; - } - - if (empty($user_driver_license)) { - return null; - } - - return array_shift($user_driver_license); } /** @@ -94,9 +83,6 @@ function UserDriverLicenses_create($user_driver_license, $user) (bool)$user_driver_license['has_license_forklift'], ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to create user driver license'); - } return $user_driver_license; } @@ -105,11 +91,10 @@ function UserDriverLicenses_create($user_driver_license, $user) * Update a user's driver license entry * * @param array $user_driver_license The UserDriverLicense to update - * @return bool */ function UserDriverLicenses_update($user_driver_license) { - $result = DB::update(' + DB::update(' UPDATE `UserDriverLicenses` SET `has_car`=?, @@ -130,23 +115,14 @@ function UserDriverLicenses_update($user_driver_license) $user_driver_license['user_id'], ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to update user driver license information'); - } - return $result; } /** * Delete a user's driver license entry * * @param int $user_id - * @return bool */ function UserDriverLicenses_delete($user_id) { - $result = DB::delete('DELETE FROM `UserDriverLicenses` WHERE `user_id`=?', [$user_id]); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to remove user driver license information'); - } - return $result; + DB::delete('DELETE FROM `UserDriverLicenses` WHERE `user_id`=?', [$user_id]); } diff --git a/includes/model/User_model.php b/includes/model/User_model.php index 2913c1a1..4757ed3c 100644 --- a/includes/model/User_model.php +++ b/includes/model/User_model.php @@ -11,24 +11,20 @@ use Engelsystem\ValidationResult; * Delete a user * * @param int $user_id - * @return bool */ function User_delete($user_id) { DB::delete('DELETE FROM `User` WHERE `UID`=?', [$user_id]); - - return DB::getStm()->errorCode() == '00000'; } /** * Update user. * * @param array $user - * @return bool */ function User_update($user) { - return (bool)DB::update(' + DB::update(' UPDATE `User` SET `Nick`=?, `Name`=?, @@ -91,8 +87,7 @@ function User_update($user) */ function User_force_active_count() { - $result = DB::select('SELECT COUNT(*) FROM `User` WHERE `force_active` = 1'); - $result = array_shift($result); + $result = DB::selectOne('SELECT COUNT(*) FROM `User` WHERE `force_active` = 1'); if (empty($result)) { return 0; @@ -106,8 +101,7 @@ function User_force_active_count() */ function User_active_count() { - $result = DB::select('SELECT COUNT(*) FROM `User` WHERE `Aktiv` = 1'); - $result = array_shift($result); + $result = DB::selectOne('SELECT COUNT(*) FROM `User` WHERE `Aktiv` = 1'); if (empty($result)) { return 0; @@ -121,8 +115,7 @@ function User_active_count() */ function User_got_voucher_count() { - $result = DB::select('SELECT SUM(`got_voucher`) FROM `User`'); - $result = array_shift($result); + $result = DB::selectOne('SELECT SUM(`got_voucher`) FROM `User`'); if (empty($result)) { return 0; @@ -136,8 +129,7 @@ function User_got_voucher_count() */ function User_arrived_count() { - $result = DB::select('SELECT COUNT(*) FROM `User` WHERE `Gekommen` = 1'); - $result = array_shift($result); + $result = DB::selectOne('SELECT COUNT(*) FROM `User` WHERE `Gekommen` = 1'); if (empty($result)) { return 0; @@ -151,8 +143,7 @@ function User_arrived_count() */ function User_tshirts_count() { - $result = DB::select('SELECT COUNT(*) FROM `User` WHERE `Tshirt` = 1'); - $result = array_shift($result); + $result = DB::selectOne('SELECT COUNT(*) FROM `User` WHERE `Tshirt` = 1'); if (empty($result)) { return 0; @@ -188,23 +179,17 @@ function User_sortable_columns() * Get all users, ordered by Nick by default or by given param. * * @param string $order_by - * @return array|false + * @return array */ function Users($order_by = 'Nick') { - $result = DB::select(sprintf(' + return DB::select(sprintf(' SELECT * FROM `User` ORDER BY `%s` ASC ', trim(DB::getPdo()->quote($order_by), '\'') )); - - if (DB::getStm()->errorCode() != '00000') { - return false; - } - - return $result; } /** @@ -228,7 +213,7 @@ function User_is_freeloader($user) */ function Users_by_angeltype_inverted($angeltype) { - $result = DB::select(' + return DB::select(' SELECT `User`.* FROM `User` LEFT JOIN `UserAngelTypes` @@ -240,10 +225,6 @@ function Users_by_angeltype_inverted($angeltype) $angeltype['id'] ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load users.'); - } - return $result; } /** @@ -254,12 +235,13 @@ function Users_by_angeltype_inverted($angeltype) */ function Users_by_angeltype($angeltype) { - $result = DB::select(' + return DB::select(' SELECT `User`.*, `UserAngelTypes`.`id` AS `user_angeltype_id`, `UserAngelTypes`.`confirm_user_id`, `UserAngelTypes`.`supporter`, + (`UserDriverLicenses`.`user_id` IS NOT NULL) as `wants_to_drive`, `UserDriverLicenses`.* FROM `User` JOIN `UserAngelTypes` ON `User`.`UID`=`UserAngelTypes`.`user_id` @@ -271,10 +253,6 @@ function Users_by_angeltype($angeltype) $angeltype['id'] ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load members.'); - } - return $result; } /** @@ -399,17 +377,7 @@ function User_validate_planned_departure_date($planned_arrival_date, $planned_de */ function User($user_id) { - $user_source = DB::select('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$user_id]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load user.'); - } - - if (empty($user_source)) { - return null; - } - - return array_shift($user_source); + return DB::selectOne('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$user_id]); } /** @@ -417,21 +385,11 @@ function User($user_id) * * @param string $api_key * User api key - * @return array|null Matching user, null on error + * @return array|null Matching user, null if not found */ function User_by_api_key($api_key) { - $user = DB::select('SELECT * FROM `User` WHERE `api_key`=? LIMIT 1', [$api_key]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to find user by api key.'); - } - - if (empty($user)) { - return null; - } - - return $user[0]; + return DB::selectOne('SELECT * FROM `User` WHERE `api_key`=? LIMIT 1', [$api_key]); } /** @@ -442,38 +400,18 @@ function User_by_api_key($api_key) */ function User_by_email($email) { - $user = DB::select('SELECT * FROM `User` WHERE `email`=? LIMIT 1', [$email]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load user.'); - } - - if (empty($user)) { - return null; - } - - return array_shift($user); + return DB::selectOne('SELECT * FROM `User` WHERE `email`=? LIMIT 1', [$email]); } /** * Returns User by password token. * * @param string $token - * @return array|null Matching user, null or false on error + * @return array|null Matching user, null when not found */ function User_by_password_recovery_token($token) { - $user = DB::select('SELECT * FROM `User` WHERE `password_recovery_token`=? LIMIT 1', [$token]); - - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to load user.'); - } - - if (empty($user)) { - return null; - } - - return array_shift($user); + return DB::selectOne('SELECT * FROM `User` WHERE `password_recovery_token`=? LIMIT 1', [$token]); } /** @@ -481,7 +419,6 @@ function User_by_password_recovery_token($token) * * @param array $user * @param bool $log - * @return bool */ function User_reset_api_key(&$user, $log = true) { @@ -497,15 +434,10 @@ function User_reset_api_key(&$user, $log = true) $user['UID'] ] ); - if (DB::getStm()->errorCode() != '00000') { - return false; - } if ($log) { engelsystem_log(sprintf('API key resetted (%s).', User_Nick_render($user))); } - - return true; } /** @@ -528,9 +460,6 @@ function User_generate_password_recovery_token(&$user) $user['UID'], ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to generate password recovery token.'); - } engelsystem_log('Password recovery for ' . User_Nick_render($user) . ' started.'); return $user['password_recovery_token']; } diff --git a/includes/pages/admin_active.php b/includes/pages/admin_active.php index 5b91e413..d67af681 100644 --- a/includes/pages/admin_active.php +++ b/includes/pages/admin_active.php @@ -232,19 +232,17 @@ function admin_active() $shirt_statistics = []; foreach (array_keys($tshirt_sizes) as $size) { if (!empty($size)) { - $sc = DB::select( + $sc = DB::selectOne( 'SELECT count(*) FROM `User` WHERE `Size`=? AND `Gekommen`=1', [$size] ); $sc = array_shift($sc); - $sc = array_shift($sc); - $gc = DB::select( + $gc = DB::selectOne( 'SELECT count(*) FROM `User` WHERE `Size`=? AND `Tshirt`=1', [$size] ); $gc = array_shift($gc); - $gc = array_shift($gc); $shirt_statistics[] = [ 'size' => $size, @@ -254,8 +252,7 @@ function admin_active() } } - $uc = DB::select('SELECT count(*) FROM `User` WHERE `Tshirt`=1'); - $uc = array_shift($uc); + $uc = DB::selectOne('SELECT count(*) FROM `User` WHERE `Tshirt`=1'); $uc = array_shift($uc); $shirt_statistics[] = [ diff --git a/includes/pages/admin_groups.php b/includes/pages/admin_groups.php index 1de8bfb7..e0260320 100644 --- a/includes/pages/admin_groups.php +++ b/includes/pages/admin_groups.php @@ -112,23 +112,21 @@ function admin_groups() return error('Incomplete call, missing Groups ID.', true); } - $group = DB::select('SELECT * FROM `Groups` WHERE `UID`=? LIMIT 1', [$group_id]); + $group = DB::selectOne('SELECT * FROM `Groups` WHERE `UID`=? LIMIT 1', [$group_id]); $privileges = $request->postData('privileges'); if (!is_array($privileges)) { $privileges = []; } if (!empty($group)) { - $group = array_shift($group); DB::delete('DELETE FROM `GroupPrivileges` WHERE `group_id`=?', [$group_id]); $privilege_names = []; foreach ($privileges as $privilege) { if (preg_match('/^\d{1,}$/', $privilege)) { - $group_privileges_source = DB::select( + $group_privileges_source = DB::selectOne( 'SELECT `name` FROM `Privileges` WHERE `id`=? LIMIT 1', [$privilege] ); if (!empty($group_privileges_source)) { - $group_privileges_source = array_shift($group_privileges_source); DB::insert( 'INSERT INTO `GroupPrivileges` (`group_id`, `privilege_id`) VALUES (?, ?)', [$group_id, $privilege] diff --git a/includes/pages/admin_import.php b/includes/pages/admin_import.php index 3cbed9f9..bda5ba93 100644 --- a/includes/pages/admin_import.php +++ b/includes/pages/admin_import.php @@ -45,9 +45,6 @@ function admin_import() $add_minutes_end = 15; $shifttypes_source = ShiftTypes(); - if ($shifttypes_source === false) { - engelsystem_error('Unable to load shifttypes.'); - } $shifttypes = []; foreach ($shifttypes_source as $shifttype) { $shifttypes[$shifttype['id']] = $shifttype['name']; @@ -251,9 +248,7 @@ function 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)] = $result; } foreach ($rooms_deleted as $room) { @@ -267,24 +262,15 @@ function admin_import() $add_minutes_end ); foreach ($events_new as $event) { - $result = Shift_create($event); - if ($result === false) { - engelsystem_error('Unable to create shift.'); - } + Shift_create($event); } foreach ($events_updated as $event) { - $result = Shift_update_by_psid($event); - if ($result === false) { - engelsystem_error('Unable to update shift.'); - } + Shift_update_by_psid($event); } foreach ($events_deleted as $event) { - $result = Shift_delete_by_psid($event['PSID']); - if ($result === false) { - engelsystem_error('Unable to delete shift.'); - } + Shift_delete_by_psid($event['PSID']); } engelsystem_log('Frab import done'); diff --git a/includes/pages/admin_news.php b/includes/pages/admin_news.php index bc78a6b1..eb3a250e 100644 --- a/includes/pages/admin_news.php +++ b/includes/pages/admin_news.php @@ -21,14 +21,13 @@ function admin_news() return error('Incomplete call, missing News ID.', true); } - $news = DB::select('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$news_id]); + $news = DB::selectOne('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$news_id]); if (empty($news)) { return error('No News found.', true); } switch ($request->input('action')) { case 'edit': - $news = array_shift($news); $user_source = User($news['UID']); $html .= form( @@ -81,7 +80,6 @@ function admin_news() break; case 'delete': - $news = array_shift($news); DB::delete('DELETE FROM `News` WHERE `ID`=? LIMIT 1', [$news_id]); engelsystem_log('News deleted: ' . $news['Betreff']); success(_('News entry deleted.')); diff --git a/includes/pages/admin_questions.php b/includes/pages/admin_questions.php index 938e63a9..5f2e3a2b 100644 --- a/includes/pages/admin_questions.php +++ b/includes/pages/admin_questions.php @@ -105,11 +105,11 @@ function admin_questions() return error('Incomplete call, missing Question ID.', true); } - $question = DB::select( + $question = DB::selectOne( 'SELECT * FROM `Questions` WHERE `QID`=? LIMIT 1', [$question_id] ); - if (count($question) > 0 && $question[0]['AID'] == null) { + if (!empty($question) && $question['AID'] == null) { $answer = trim( preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', @@ -129,7 +129,7 @@ function admin_questions() $question_id, ] ); - engelsystem_log('Question ' . $question[0]['Question'] . ' answered: ' . $answer); + engelsystem_log('Question ' . $question['Question'] . ' answered: ' . $answer); redirect(page_link_to('admin_questions')); } else { return error('Enter an answer!', true); @@ -145,13 +145,13 @@ function admin_questions() return error('Incomplete call, missing Question ID.', true); } - $question = DB::select( + $question = DB::selectOne( 'SELECT * FROM `Questions` WHERE `QID`=? LIMIT 1', [$question_id] ); - if (count($question) > 0) { + if (!empty($question)) { DB::delete('DELETE FROM `Questions` WHERE `QID`=? LIMIT 1', [$question_id]); - engelsystem_log('Question deleted: ' . $question[0]['Question']); + engelsystem_log('Question deleted: ' . $question['Question']); redirect(page_link_to('admin_questions')); } else { return error('No question found.', true); diff --git a/includes/pages/admin_rooms.php b/includes/pages/admin_rooms.php index 457114a0..9e153bf1 100644 --- a/includes/pages/admin_rooms.php +++ b/includes/pages/admin_rooms.php @@ -22,8 +22,8 @@ function admin_rooms() foreach ($rooms_source as $room) { $rooms[] = [ 'name' => Room_name_render($room), - 'from_pentabarf' => $room['FromPentabarf'] == 'Y' ? '✓' : '', - 'public' => $room['show'] == 'Y' ? '✓' : '', + 'from_pentabarf' => glyph_bool($room['FromPentabarf'] == 'Y'), + 'public' => glyph_bool($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') @@ -50,9 +50,6 @@ function admin_rooms() if (test_request_int('id')) { $room = Room($request->input('id'), false); - if ($room === false) { - engelsystem_error('Unable to load room.'); - } if ($room == null) { redirect(page_link_to('admin_rooms')); } @@ -150,9 +147,7 @@ function admin_rooms() ); } 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: ' @@ -214,9 +209,7 @@ function admin_rooms() ]); } elseif ($request->input('show') == 'delete') { if ($request->has('ack')) { - if (!Room_delete($room_id)) { - engelsystem_error('Unable to delete room.'); - } + Room_delete($room_id); engelsystem_log('Room deleted: ' . $name); success(sprintf(_('Room %s deleted.'), $name)); diff --git a/includes/pages/admin_shifts.php b/includes/pages/admin_shifts.php index d36635f7..04d88a4f 100644 --- a/includes/pages/admin_shifts.php +++ b/includes/pages/admin_shifts.php @@ -44,9 +44,6 @@ function admin_shifts() // Load shift types $shifttypes_source = ShiftTypes(); - if ($shifttypes_source === false) { - engelsystem_error('Unable to load shift types.'); - } $shifttypes = []; foreach ($shifttypes_source as $shifttype) { $shifttypes[$shifttype['id']] = $shifttype['name']; @@ -317,9 +314,6 @@ function admin_shifts() $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']] @@ -329,7 +323,7 @@ function admin_shifts() ); foreach ($_SESSION['admin_shifts_types'] as $type_id => $count) { - $angel_type_source = DB::select(' + $angel_type_source = DB::selectOne(' SELECT * FROM `AngelTypes` WHERE `id` = ? @@ -345,7 +339,7 @@ function admin_shifts() $count ] ); - $needed_angel_types_info[] = $angel_type_source[0]['name'] . ': ' . $count; + $needed_angel_types_info[] = $angel_type_source['name'] . ': ' . $count; } } } diff --git a/includes/pages/admin_user.php b/includes/pages/admin_user.php index ca814b2e..9b3b0f44 100644 --- a/includes/pages/admin_user.php +++ b/includes/pages/admin_user.php @@ -119,20 +119,20 @@ function admin_user() $html .= '<hr />'; - $my_highest_group = DB::select( + $my_highest_group = DB::selectOne( 'SELECT group_id FROM `UserGroups` WHERE `uid`=? ORDER BY `group_id` LIMIT 1', [$user['UID']] ); - if (count($my_highest_group) > 0) { - $my_highest_group = $my_highest_group[0]['group_id']; + if (!empty($my_highest_group)) { + $my_highest_group = $my_highest_group['group_id']; } - $his_highest_group = DB::select( + $his_highest_group = DB::selectOne( 'SELECT `group_id` FROM `UserGroups` WHERE `uid`=? ORDER BY `group_id` LIMIT 1', [$user_id] ); - if (count($his_highest_group) > 0) { - $his_highest_group = $his_highest_group[0]['group_id']; + if (!empty($his_highest_group)) { + $his_highest_group = $his_highest_group['group_id']; } if ($user_id != $user['UID'] && $my_highest_group <= $his_highest_group) { @@ -192,7 +192,7 @@ function admin_user() count($my_highest_group) > 0 && ( count($his_highest_group) == 0 - || ($my_highest_group[0]['group_id'] <= $his_highest_group[0]['group_id']) + || ($my_highest_group['group_id'] <= $his_highest_group['group_id']) ) ) { $groups_source = DB::select(' @@ -207,7 +207,7 @@ function admin_user() ', [ $user_id, - $my_highest_group[0]['group_id'], + $my_highest_group['group_id'], ] ); $groups = []; diff --git a/includes/pages/guest_login.php b/includes/pages/guest_login.php index 9c706cfc..4a77b40c 100644 --- a/includes/pages/guest_login.php +++ b/includes/pages/guest_login.php @@ -399,9 +399,8 @@ function guest_login() if ($request->has('submit')) { if ($request->has('nick') && strlen(User_validate_Nick($request->input('nick'))) > 0) { $nick = User_validate_Nick($request->input('nick')); - $login_user = DB::select('SELECT * FROM `User` WHERE `Nick`=?', [$nick]); - if (count($login_user) > 0) { - $login_user = $login_user[0]; + $login_user = DB::selectOne('SELECT * FROM `User` WHERE `Nick`=?', [$nick]); + if (!empty($login_user)) { if ($request->has('password')) { if (!verify_password($request->postData('password'), $login_user['Passwort'], $login_user['UID'])) { $valid = false; diff --git a/includes/pages/guest_stats.php b/includes/pages/guest_stats.php index 8aa6f740..bf1814a3 100644 --- a/includes/pages/guest_stats.php +++ b/includes/pages/guest_stats.php @@ -17,13 +17,12 @@ function guest_stats() list($arrived_user_count) = DB::select('SELECT count(*) AS `user_count` FROM `User` WHERE `Gekommen`=1'); $stats['arrived_user_count'] = $arrived_user_count['user_count']; - $done_shifts_seconds = DB::select(' + $done_shifts_seconds = DB::selectOne(' SELECT SUM(`Shifts`.`end` - `Shifts`.`start`) FROM `ShiftEntry` JOIN `Shifts` USING (`SID`) WHERE `Shifts`.`end` < UNIX_TIMESTAMP() '); - $done_shifts_seconds = array_shift($done_shifts_seconds); $done_shifts_seconds = (int)array_shift($done_shifts_seconds); $stats['done_work_hours'] = round($done_shifts_seconds / (60 * 60), 0); diff --git a/includes/pages/user_messages.php b/includes/pages/user_messages.php index 320af9df..06ae7e75 100644 --- a/includes/pages/user_messages.php +++ b/includes/pages/user_messages.php @@ -130,11 +130,11 @@ function user_messages() return error(_('Incomplete call, missing Message ID.'), true); } - $message = DB::select( + $message = DB::selectOne( 'SELECT `RUID` FROM `Messages` WHERE `id`=? LIMIT 1', [$message_id] ); - if (count($message) > 0 && $message[0]['RUID'] == $user['UID']) { + if (!empty($message) && $message['RUID'] == $user['UID']) { DB::update( 'UPDATE `Messages` SET `isRead`=\'Y\' WHERE `id`=? LIMIT 1', [$message_id] @@ -152,11 +152,11 @@ function user_messages() return error(_('Incomplete call, missing Message ID.'), true); } - $message = DB::select( + $message = DB::selectOne( 'SELECT `SUID` FROM `Messages` WHERE `id`=? LIMIT 1', [$message_id] ); - if (count($message) > 0 && $message[0]['SUID'] == $user['UID']) { + if (!empty($message) && $message['SUID'] == $user['UID']) { DB::delete('DELETE FROM `Messages` WHERE `id`=? LIMIT 1', [$message_id]); redirect(page_link_to('user_messages')); } else { diff --git a/includes/pages/user_myshifts.php b/includes/pages/user_myshifts.php index 572b777a..60a26922 100644 --- a/includes/pages/user_myshifts.php +++ b/includes/pages/user_myshifts.php @@ -31,8 +31,7 @@ function user_myshifts() $user_id = $user['UID']; } - $shifts_user = DB::select('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$user_id]); - $shifts_user = array_shift($shifts_user); + $shifts_user = DB::selectOne('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$user_id]); if ($request->has('reset')) { if ($request->input('reset') == 'ack') { @@ -49,7 +48,7 @@ function user_myshifts() ]); } elseif ($request->has('edit') && preg_match('/^\d*$/', $request->input('edit'))) { $user_id = $request->input('edit'); - $shift = DB::select(' + $shift = DB::selectOne(' SELECT `ShiftEntry`.`freeloaded`, `ShiftEntry`.`freeload_comment`, @@ -74,7 +73,6 @@ function user_myshifts() ] ); if (count($shift) > 0) { - $shift = array_shift($shift); $freeloaded = $shift['freeloaded']; $freeload_comment = $shift['freeload_comment']; @@ -93,15 +91,12 @@ function user_myshifts() $user_source = User($shift['UID']); if ($valid) { - $result = ShiftEntry_update([ + ShiftEntry_update([ 'id' => $user_id, 'Comment' => $comment, 'freeloaded' => $freeloaded, 'freeload_comment' => $freeload_comment ]); - if ($result === false) { - engelsystem_error('Unable to update shift entry.'); - } engelsystem_log( 'Updated ' . User_Nick_render($user_source) . '\'s shift ' . $shift['name'] @@ -131,7 +126,7 @@ function user_myshifts() } } elseif ($request->has('cancel') && preg_match('/^\d*$/', $request->input('cancel'))) { $user_id = $request->input('cancel'); - $shift = DB::select(' + $shift = DB::selectOne(' SELECT * FROM `Shifts` INNER JOIN `ShiftEntry` USING (`SID`) @@ -143,15 +138,12 @@ function user_myshifts() ] ); if (count($shift) > 0) { - $shift = array_shift($shift); if ( ($shift['start'] > time() + config('last_unsubscribe') * 3600) || in_array('user_shifts_admin', $privileges) ) { - $result = ShiftEntry_delete($user_id); - if ($result === false) { - engelsystem_error('Unable to delete shift entry.'); - } + ShiftEntry_delete($user_id); + $room = Room($shift['RID']); $angeltype = AngelType($shift['TID']); $shifttype = ShiftType($shift['shifttype_id']); diff --git a/includes/pages/user_news.php b/includes/pages/user_news.php index 0e38e619..b51b0a4c 100644 --- a/includes/pages/user_news.php +++ b/includes/pages/user_news.php @@ -126,8 +126,7 @@ function user_news_comments() && count(DB::select('SELECT `ID` FROM `News` WHERE `ID`=? LIMIT 1', [$request->input('nid')])) > 0 ) { $nid = $request->input('nid'); - $news = DB::select('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$nid]); - $news = array_shift($news); + $news = DB::selectOne('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$nid]); if ($request->has('text')) { $text = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', strip_tags($request->input('text'))); DB::insert(' diff --git a/includes/pages/user_questions.php b/includes/pages/user_questions.php index 20f82eb1..41fbe64d 100644 --- a/includes/pages/user_questions.php +++ b/includes/pages/user_questions.php @@ -43,15 +43,13 @@ function user_questions() case 'ask': $question = strip_request_item_nl('question'); if ($question != '') { - $result = DB::insert(' + DB::insert(' INSERT INTO `Questions` (`UID`, `Question`) VALUES (?, ?) ', [$user['UID'], $question] ); - if (!$result) { - engelsystem_error(_('Unable to save question.')); - } + success(_('You question was saved.')); redirect(page_link_to('user_questions')); } else { @@ -67,11 +65,11 @@ function user_questions() return error(_('Incomplete call, missing Question ID.'), true); } - $question = DB::select( + $question = DB::selectOne( 'SELECT `UID` FROM `Questions` WHERE `QID`=? LIMIT 1', [$question_id] ); - if (count($question) > 0 && $question[0]['UID'] == $user['UID']) { + if (!empty($question) && $question['UID'] == $user['UID']) { DB::delete( 'DELETE FROM `Questions` WHERE `QID`=? LIMIT 1', [$question_id] diff --git a/includes/pages/user_settings.php b/includes/pages/user_settings.php index 9a43f5ce..03621a45 100644 --- a/includes/pages/user_settings.php +++ b/includes/pages/user_settings.php @@ -84,6 +84,7 @@ function user_settings_main($user_source, $enable_tshirt_size, $tshirt_sizes) if ($valid) { User_update($user_source); + success(_('Settings saved.')); redirect(page_link_to('user_settings')); } @@ -108,10 +109,9 @@ function user_settings_password($user_source) error(_('Your password is to short (please use at least 6 characters).')); } elseif ($request->postData('new_password') != $request->postData('new_password2')) { error(_('Your passwords don\'t match.')); - } elseif (set_password($user_source['UID'], $request->postData('new_password'))) { - success(_('Password saved.')); } else { - error(_('Failed setting password.')); + set_password($user_source['UID'], $request->postData('new_password')); + success(_('Password saved.')); } redirect(page_link_to('user_settings')); } diff --git a/includes/sys_auth.php b/includes/sys_auth.php index 607d180b..36f0f935 100644 --- a/includes/sys_auth.php +++ b/includes/sys_auth.php @@ -11,10 +11,9 @@ function load_auth() $user = null; if (isset($_SESSION['uid'])) { - $user = DB::select('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$_SESSION['uid']]); - if (count($user) > 0) { + $user = DB::selectOne('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$_SESSION['uid']]); + if (!empty($user)) { // User ist eingeloggt, Datensatz zur Verfügung stellen und Timestamp updaten - $user = array_shift($user); DB::update(' UPDATE `User` SET `lastLogIn` = ? @@ -55,11 +54,10 @@ function generate_salt($length = 16) * * @param int $uid * @param string $password - * @return bool */ function set_password($uid, $password) { - $result = DB::update(' + DB::update(' UPDATE `User` SET `Passwort` = ?, `password_recovery_token`=NULL @@ -71,10 +69,6 @@ function set_password($uid, $password) $uid ] ); - if (DB::getStm()->errorCode() != '00000') { - engelsystem_error('Unable to update password.'); - } - return $result; } /** diff --git a/includes/sys_form.php b/includes/sys_form.php index 148af965..7fa0682d 100644 --- a/includes/sys_form.php +++ b/includes/sys_form.php @@ -411,7 +411,7 @@ function html_select_key($dom_id, $name, $rows, $selected) { $html = '<select class="form-control" id="' . $dom_id . '" name="' . $name . '">'; foreach ($rows as $key => $row) { - if (($key == $selected) || ($row == $selected)) { + if (($key == $selected) || ($row === $selected)) { $html .= '<option value="' . $key . '" selected="selected">' . $row . '</option>'; } else { $html .= '<option value="' . $key . '">' . $row . '</option>'; diff --git a/includes/view/AngelTypes_view.php b/includes/view/AngelTypes_view.php index 32f58d4b..f75cc616 100644 --- a/includes/view/AngelTypes_view.php +++ b/includes/view/AngelTypes_view.php @@ -184,7 +184,6 @@ function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $a $members_unconfirmed = []; foreach ($members as $member) { $member['Nick'] = User_Nick_render($member); - if ($angeltype['requires_driver_license']) { $member['wants_to_drive'] = glyph_bool($member['wants_to_drive']); $member['has_car'] = glyph_bool($member['has_car']); diff --git a/includes/view/ShiftCalendarLane.php b/includes/view/ShiftCalendarLane.php index 774683bd..fd4c6f06 100644 --- a/includes/view/ShiftCalendarLane.php +++ b/includes/view/ShiftCalendarLane.php @@ -2,6 +2,8 @@ namespace Engelsystem; +use Exception; + /** * Represents a single lane in a shifts calendar. */ @@ -38,15 +40,15 @@ class ShiftCalendarLane * Returns true on success. * * @param array $shift The shift to add - * @return boolean true on success + * @throws Exception if the shift doesn't fit into the lane. */ public function addShift($shift) { if ($this->shiftFits($shift)) { $this->shifts[] = $shift; - return true; + return; } - return false; + throw new Exception('Unable to add shift to shift calendar lane.'); } /** diff --git a/includes/view/ShiftCalendarRenderer.php b/includes/view/ShiftCalendarRenderer.php index aad0d643..3269f338 100644 --- a/includes/view/ShiftCalendarRenderer.php +++ b/includes/view/ShiftCalendarRenderer.php @@ -1,9 +1,11 @@ <?php - namespace Engelsystem; +use Exception; + class ShiftCalendarRenderer { + /** * 15m * 60s/m = 900s */ @@ -49,10 +51,10 @@ class ShiftCalendarRenderer /** * ShiftCalendarRenderer constructor. * - * @param array[] $shifts - * @param array[] $needed_angeltypes - * @param array[] $shift_entries - * @param ShiftsFilter $shiftsFilter + * @param array[] $shifts + * @param array[] $needed_angeltypes + * @param array[] $shift_entries + * @param ShiftsFilter $shiftsFilter */ public function __construct($shifts, $needed_angeltypes, $shift_entries, ShiftsFilter $shiftsFilter) { @@ -67,22 +69,23 @@ class ShiftCalendarRenderer /** * Assigns the shifts to different lanes per room if they collide * - * @param array[] $shifts The shifts to assign - * + * @param array[] $shifts + * The shifts to assign + * * @return array Returns an array that assigns a room_id to an array of ShiftCalendarLane containing the shifts */ private function assignShiftsToLanes($shifts) { // array that assigns a room id to a list of lanes (per room) $lanes = []; - + foreach ($shifts as $shift) { $room_id = $shift['RID']; $header = Room_name_render([ - 'RID' => $room_id, + 'RID' => $room_id, 'Name' => $shift['room_name'] ]); - if (!isset($lanes[$room_id])) { + if (! isset($lanes[$room_id])) { // initialize room with one lane $lanes[$room_id] = [ new ShiftCalendarLane($header, $this->getFirstBlockStartTime(), $this->getBlocksPerSlot()) @@ -92,25 +95,25 @@ class ShiftCalendarRenderer $shift_added = false; foreach ($lanes[$room_id] as $lane) { /** @var ShiftCalendarLane $lane */ - $shift_added = $lane->addShift($shift); - if ($shift_added == true) { + if($lane->shiftFits($shift)) { + $lane->addShift($shift); + $shift_added = true; break; } } // If all lanes for this room are busy, create a new lane and add shift to it if ($shift_added == false) { $newLane = new ShiftCalendarLane($header, $this->getFirstBlockStartTime(), $this->getBlocksPerSlot()); - if (!$newLane->addShift($shift)) { - engelsystem_error('Unable to add shift to new lane.'); - } + $newLane->addShift($shift); $lanes[$room_id][] = $newLane; } } - + return $lanes; } /** + * * @return int */ public function getFirstBlockStartTime() @@ -119,6 +122,7 @@ class ShiftCalendarRenderer } /** + * * @return int */ public function getLastBlockEndTime() @@ -127,6 +131,7 @@ class ShiftCalendarRenderer } /** + * * @return float */ public function getBlocksPerSlot() @@ -148,9 +153,9 @@ class ShiftCalendarRenderer return ''; } return div('shift-calendar', [ - $this->renderTimeLane(), - $this->renderShiftLanes() - ]) . $this->renderLegend(); + $this->renderTimeLane(), + $this->renderShiftLanes() + ]) . $this->renderLegend(); } /** @@ -166,45 +171,41 @@ class ShiftCalendarRenderer $html .= $this->renderLane($lane); } } - + return $html; } /** * Renders a single lane * - * @param ShiftCalendarLane $lane The lane to render + * @param ShiftCalendarLane $lane + * The lane to render * @return string */ private function renderLane(ShiftCalendarLane $lane) { global $user; - + $shift_renderer = new ShiftCalendarShiftRenderer(); $html = ''; $rendered_until = $this->getFirstBlockStartTime(); - + foreach ($lane->getShifts() as $shift) { while ($rendered_until + ShiftCalendarRenderer::SECONDS_PER_ROW <= $shift['start']) { $html .= $this->renderTick($rendered_until); $rendered_until += ShiftCalendarRenderer::SECONDS_PER_ROW; } - - list($shift_height, $shift_html) = $shift_renderer->render( - $shift, - $this->needed_angeltypes[$shift['SID']], - $this->shift_entries[$shift['SID']], - $user - ); + + list ($shift_height, $shift_html) = $shift_renderer->render($shift, $this->needed_angeltypes[$shift['SID']], $this->shift_entries[$shift['SID']], $user); $html .= $shift_html; $rendered_until += $shift_height * ShiftCalendarRenderer::SECONDS_PER_ROW; } - + while ($rendered_until < $this->getLastBlockEndTime()) { $html .= $this->renderTick($rendered_until); $rendered_until += ShiftCalendarRenderer::SECONDS_PER_ROW; } - + return div('lane', [ div('header', $lane->getHeader()), $html @@ -214,21 +215,23 @@ class ShiftCalendarRenderer /** * Renders a tick/block for given time * - * @param int $time unix timestamp - * @param boolean $label Should time labels be generated? + * @param int $time + * unix timestamp + * @param boolean $label + * Should time labels be generated? * @return string rendered tick html */ private function renderTick($time, $label = false) { if ($time % (24 * 60 * 60) == 23 * 60 * 60) { - if (!$label) { + if (! $label) { return div('tick day'); } return div('tick day', [ date('m-d<b\r />H:i', $time) ]); } elseif ($time % (60 * 60) == 0) { - if (!$label) { + if (! $label) { return div('tick hour'); } return div('tick hour', [ @@ -250,7 +253,7 @@ class ShiftCalendarRenderer _('Time') ]) ]; - for ($block = 0; $block < $this->getBlocksPerSlot(); $block++) { + for ($block = 0; $block < $this->getBlocksPerSlot(); $block ++) { $thistime = $this->getFirstBlockStartTime() + ($block * ShiftCalendarRenderer::SECONDS_PER_ROW); $time_slot[] = $this->renderTick($thistime, true); } @@ -258,7 +261,8 @@ class ShiftCalendarRenderer } /** - * @param array[] $shifts + * + * @param array[] $shifts * @return int */ private function calcFirstBlockStartTime($shifts) @@ -273,7 +277,8 @@ class ShiftCalendarRenderer } /** - * @param array[] $shifts + * + * @param array[] $shifts * @return int */ private function calcLastBlockEndTime($shifts) @@ -288,6 +293,7 @@ class ShiftCalendarRenderer } /** + * * @return int */ private function calcBlocksPerSlot() diff --git a/public/css/theme0.css b/public/css/theme0.css index 4c09a094..050f689e 100644 --- a/public/css/theme0.css +++ b/public/css/theme0.css @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ @@ -1095,7 +1095,6 @@ a:focus { text-decoration: underline; } a:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -2524,7 +2523,6 @@ select[size] { input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -3015,7 +3013,6 @@ select[multiple].input-lg { .btn.focus, .btn:active.focus, .btn.active.focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } diff --git a/public/css/theme1.css b/public/css/theme1.css index 3b5201b6..06ce9907 100644 --- a/public/css/theme1.css +++ b/public/css/theme1.css @@ -22,8 +22,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ @@ -1118,7 +1118,6 @@ a:focus { text-decoration: underline; } a:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -2547,7 +2546,6 @@ select[size] { input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -3038,7 +3036,6 @@ select[multiple].input-lg { .btn.focus, .btn:active.focus, .btn.active.focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } diff --git a/public/css/theme2.css b/public/css/theme2.css index 07f2ea10..9ca9babb 100644 --- a/public/css/theme2.css +++ b/public/css/theme2.css @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ @@ -1095,7 +1095,6 @@ a:focus { text-decoration: underline; } a:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -2524,7 +2523,6 @@ select[size] { input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -3015,7 +3013,6 @@ select[multiple].input-lg { .btn.focus, .btn:active.focus, .btn.active.focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } diff --git a/public/css/theme3.css b/public/css/theme3.css index 2b5358be..abb90f23 100644 --- a/public/css/theme3.css +++ b/public/css/theme3.css @@ -8,8 +8,8 @@ color: #000; } /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ @@ -1104,7 +1104,6 @@ a:focus { text-decoration: underline; } a:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -2533,7 +2532,6 @@ select[size] { input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -3024,7 +3022,6 @@ select[multiple].input-lg { .btn.focus, .btn:active.focus, .btn.active.focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } diff --git a/public/css/theme4.css b/public/css/theme4.css index 7f80b411..24771afd 100644 --- a/public/css/theme4.css +++ b/public/css/theme4.css @@ -22,8 +22,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ @@ -1118,7 +1118,6 @@ a:focus { text-decoration: underline; } a:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -2547,7 +2546,6 @@ select[size] { input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -3038,7 +3036,6 @@ select[multiple].input-lg { .btn.focus, .btn:active.focus, .btn.active.focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } diff --git a/src/Database/Db.php b/src/Database/Db.php index 4116ffda..777b16a2 100644 --- a/src/Database/Db.php +++ b/src/Database/Db.php @@ -79,19 +79,36 @@ class Db return self::$stm->fetchAll(PDO::FETCH_ASSOC); } + + /** + * Run a select query and return only the first result or null if no result is found. + * @param string $query + * @param array $bindings + * @return array|null + */ + public static function selectOne($query, array $bindings = []) + { + $result = self::select($query, $bindings); + + if(empty($result)) { + return null; + } + + return array_shift($result); + } /** * Run an insert query * * @param string $query * @param array $bindings - * @return int|bool + * @return int Row count */ public static function insert($query, array $bindings = []) { self::query($query, $bindings); - return (self::$lastStatus ? self::$stm->rowCount() : false); + return self::$stm->rowCount(); } /** @@ -99,13 +116,13 @@ class Db * * @param string $query * @param array $bindings - * @return int|bool + * @return int */ public static function update($query, array $bindings = []) { self::query($query, $bindings); - return (self::$lastStatus ? self::$stm->rowCount() : false); + return self::$stm->rowCount(); } /** @@ -113,13 +130,13 @@ class Db * * @param string $query * @param array $bindings - * @return int|bool + * @return int */ public static function delete($query, array $bindings = []) { self::query($query, $bindings); - return (self::$lastStatus ? self::$stm->rowCount() : false); + return self::$stm->rowCount(); } /** diff --git a/src/Exceptions/Handler.php b/src/Exceptions/Handler.php index 6e5b4749..c4fb639c 100644 --- a/src/Exceptions/Handler.php +++ b/src/Exceptions/Handler.php @@ -2,7 +2,7 @@ namespace Engelsystem\Exceptions; -use Exception; +use Throwable; class Handler { @@ -40,9 +40,9 @@ class Handler } /** - * @param Exception $e + * @param Throwable $e */ - public function exceptionHandler(Exception $e) + public function exceptionHandler(Throwable $e) { $this->handle( 'exception', |