summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2017-08-29 23:06:46 +0200
committerIgor Scheller <igor.scheller@igorshp.de>2017-08-29 23:16:41 +0200
commitd0074cf0069322fe175fb385b91c974fc2771547 (patch)
tree713fcb1f426c8a693938e3c8bbfc685e57f79e69
parent50da458d8907cc7c05938565faa80b271bbf9b3d (diff)
parent581b81f1b25dc6b6f0a3b34810c293738fd40217 (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
-rw-r--r--includes/controller/event_config_controller.php6
-rw-r--r--includes/controller/rooms_controller.php3
-rw-r--r--includes/controller/shift_entries_controller.php19
-rw-r--r--includes/controller/shifts_controller.php9
-rw-r--r--includes/controller/shifttypes_controller.php18
-rw-r--r--includes/controller/user_angeltypes_controller.php6
-rw-r--r--includes/controller/users_controller.php14
-rw-r--r--includes/model/AngelType_model.php51
-rw-r--r--includes/model/EventConfig_model.php14
-rw-r--r--includes/model/Message_model.php6
-rw-r--r--includes/model/NeededAngelTypes_model.php17
-rw-r--r--includes/model/Room_model.php20
-rw-r--r--includes/model/ShiftEntry_model.php28
-rw-r--r--includes/model/ShiftTypes_model.php31
-rw-r--r--includes/model/Shifts_model.php90
-rw-r--r--includes/model/UserAngelTypes_model.php81
-rw-r--r--includes/model/UserDriverLicenses_model.php32
-rw-r--r--includes/model/User_model.php105
-rw-r--r--includes/pages/admin_active.php9
-rw-r--r--includes/pages/admin_groups.php6
-rw-r--r--includes/pages/admin_import.php22
-rw-r--r--includes/pages/admin_news.php4
-rw-r--r--includes/pages/admin_questions.php12
-rw-r--r--includes/pages/admin_rooms.php15
-rw-r--r--includes/pages/admin_shifts.php10
-rw-r--r--includes/pages/admin_user.php16
-rw-r--r--includes/pages/guest_login.php5
-rw-r--r--includes/pages/guest_stats.php3
-rw-r--r--includes/pages/user_messages.php8
-rw-r--r--includes/pages/user_myshifts.php20
-rw-r--r--includes/pages/user_news.php3
-rw-r--r--includes/pages/user_questions.php10
-rw-r--r--includes/pages/user_settings.php6
-rw-r--r--includes/sys_auth.php12
-rw-r--r--includes/sys_form.php2
-rw-r--r--includes/view/AngelTypes_view.php1
-rw-r--r--includes/view/ShiftCalendarLane.php8
-rw-r--r--includes/view/ShiftCalendarRenderer.php84
-rw-r--r--public/css/theme0.css7
-rw-r--r--public/css/theme1.css7
-rw-r--r--public/css/theme2.css7
-rw-r--r--public/css/theme3.css7
-rw-r--r--public/css/theme4.css7
-rw-r--r--src/Database/Db.php29
-rw-r--r--src/Exceptions/Handler.php6
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' ? '&#10003;' : '',
- 'public' => $room['show'] == 'Y' ? '&#10003;' : '',
+ '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',