diff --git a/config/config.default.php b/config/config.default.php
index ffa030db..c3a939cd 100644
--- a/config/config.default.php
+++ b/config/config.default.php
@@ -20,6 +20,9 @@ return [
// Set to development to enable debugging messages
'environment' => 'production',
+ // Site URL, used to generate links on page (https://example.com/[sub-dir/])
+ 'url' => null,
+
// URL to the angel faq and job description
'faq_url' => 'https://events.ccc.de/congress/2013/wiki/Static:Volunteers',
diff --git a/includes/autoload.php b/includes/autoload.php
new file mode 100644
index 00000000..f51f89e4
--- /dev/null
+++ b/includes/autoload.php
@@ -0,0 +1,9 @@
+ 'view', 'angeltype_id' => $angeltype_id]);
}
/**
@@ -211,17 +211,21 @@ function angeltypes_list_controller()
foreach ($angeltypes as &$angeltype) {
$actions = [
- button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _('view'), 'btn-xs')
+ button(
+ page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype['id']]),
+ _('view'),
+ 'btn-xs'
+ )
];
if (in_array('admin_angel_types', $privileges)) {
$actions[] = button(
- page_link_to('angeltypes') . '&action=edit&angeltype_id=' . $angeltype['id'],
+ page_link_to('angeltypes', ['action' => 'edit', 'angeltype_id' => $angeltype['id']]),
_('edit'),
'btn-xs'
);
$actions[] = button(
- page_link_to('angeltypes') . '&action=delete&angeltype_id=' . $angeltype['id'],
+ page_link_to('angeltypes', ['action' => 'delete', 'angeltype_id' => $angeltype['id']]),
_('delete'),
'btn-xs'
);
@@ -230,13 +234,15 @@ function angeltypes_list_controller()
$angeltype['membership'] = AngelType_render_membership($angeltype);
if ($angeltype['user_angeltype_id'] != null) {
$actions[] = button(
- page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $angeltype['user_angeltype_id'],
+ page_link_to('user_angeltypes',
+ ['action' => 'delete', 'user_angeltype_id' => $angeltype['user_angeltype_id']]
+ ),
_('leave'),
'btn-xs'
);
} else {
$actions[] = button(
- page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'],
+ page_link_to('user_angeltypes', ['action' => 'add', 'angeltype_id' => $angeltype['id']]),
_('join'),
'btn-xs'
);
@@ -245,7 +251,11 @@ function angeltypes_list_controller()
$angeltype['restricted'] = $angeltype['restricted'] ? glyph('lock') : '';
$angeltype['no_self_signup'] = $angeltype['no_self_signup'] ? '' : glyph('share');
- $angeltype['name'] = '' . $angeltype['name'] . '';
+ $angeltype['name'] = ''
+ . $angeltype['name']
+ . '';
$angeltype['actions'] = table_buttons($actions);
}
diff --git a/includes/controller/rooms_controller.php b/includes/controller/rooms_controller.php
index 2d6f1a77..81b0113e 100644
--- a/includes/controller/rooms_controller.php
+++ b/includes/controller/rooms_controller.php
@@ -1,4 +1,5 @@
'view', 'room_id' => $room['RID']]);
}
/**
@@ -100,7 +101,7 @@ function room_link($room)
*/
function room_edit_link($room)
{
- return page_link_to('admin_rooms') . '&show=edit&id=' . $room['RID'];
+ return page_link_to('admin_rooms', ['show' => 'edit', 'id' => $room['RID']]);
}
/**
diff --git a/includes/controller/shifts_controller.php b/includes/controller/shifts_controller.php
index 21c6e160..f4f3f119 100644
--- a/includes/controller/shifts_controller.php
+++ b/includes/controller/shifts_controller.php
@@ -1,4 +1,5 @@
'view']);
if (isset($shift['SID'])) {
$link .= '&shift_id=' . $shift['SID'];
}
@@ -20,7 +21,7 @@ function shift_link($shift)
*/
function shift_delete_link($shift)
{
- return page_link_to('user_shifts') . '&delete_shift=' . $shift['SID'];
+ return page_link_to('user_shifts', ['delete_shift' => $shift['SID']]);
}
/**
@@ -29,7 +30,7 @@ function shift_delete_link($shift)
*/
function shift_edit_link($shift)
{
- return page_link_to('user_shifts') . '&edit_shift=' . $shift['SID'];
+ return page_link_to('user_shifts', ['edit_shift' => $shift['SID']]);
}
/**
@@ -228,7 +229,9 @@ function shift_delete_controller()
date('Y-m-d H:i', $shift['start']),
date('H:i', $shift['end'])
), true),
- '' . _('delete') . ''
+ '' . _('delete') . ''
]);
}
diff --git a/includes/controller/shifttypes_controller.php b/includes/controller/shifttypes_controller.php
index acdeb982..3ef2675f 100644
--- a/includes/controller/shifttypes_controller.php
+++ b/includes/controller/shifttypes_controller.php
@@ -6,7 +6,7 @@
*/
function shifttype_link($shifttype)
{
- return page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype['id'];
+ return page_link_to('shifttypes', ['action' => 'view', 'shifttype_id' => $shifttype['id']]);
}
/**
@@ -107,7 +107,7 @@ function shifttype_edit_controller()
engelsystem_log('Created shifttype ' . $name);
success(_('Created shifttype.'));
}
- redirect(page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype_id);
+ redirect(page_link_to('shifttypes', ['action' => 'view', 'shifttype_id' => $shifttype_id]));
}
}
diff --git a/includes/controller/user_angeltypes_controller.php b/includes/controller/user_angeltypes_controller.php
index 41185552..b427e868 100644
--- a/includes/controller/user_angeltypes_controller.php
+++ b/includes/controller/user_angeltypes_controller.php
@@ -17,8 +17,7 @@ function user_angeltypes_unconfirmed_hint()
$unconfirmed_links = [];
foreach ($unconfirmed_user_angeltypes as $user_angeltype) {
$unconfirmed_links[] = '' . $user_angeltype['name']
. ' (+' . $user_angeltype['count'] . ')'
. '';
@@ -61,7 +60,7 @@ function user_angeltypes_delete_all_controller()
engelsystem_log(sprintf('Denied all users for angeltype %s', AngelType_name_render($angeltype)));
success(sprintf(_('Denied all users for angeltype %s.'), AngelType_name_render($angeltype)));
- redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']);
+ redirect(page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype['id']]));
}
return [
@@ -107,7 +106,7 @@ function user_angeltypes_confirm_all_controller()
engelsystem_log(sprintf('Confirmed all users for angeltype %s', AngelType_name_render($angeltype)));
success(sprintf(_('Confirmed all users for angeltype %s.'), AngelType_name_render($angeltype)));
- redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']);
+ redirect(page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype['id']]));
}
return [
@@ -167,7 +166,7 @@ function user_angeltype_confirm_controller()
User_Nick_render($user_source),
AngelType_name_render($angeltype)
));
- redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']);
+ redirect(page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype['id']]));
}
return [
@@ -224,7 +223,7 @@ function user_angeltype_delete_controller()
engelsystem_log($success_message);
success($success_message);
- redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']);
+ redirect(page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype['id']]));
}
return [
@@ -290,7 +289,7 @@ function user_angeltype_update_controller()
engelsystem_log($success_message);
success($success_message);
- redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']);
+ redirect(page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype['id']]));
}
return [
@@ -344,7 +343,7 @@ function user_angeltype_add_controller()
AngelType_name_render($angeltype)
));
- redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']);
+ redirect(page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype['id']]));
}
}
@@ -386,7 +385,7 @@ function user_angeltype_join_controller($angeltype)
));
}
- redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']);
+ redirect(page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype['id']]));
}
return [
diff --git a/includes/controller/user_driver_licenses_controller.php b/includes/controller/user_driver_licenses_controller.php
index fef278dd..3db31eff 100644
--- a/includes/controller/user_driver_licenses_controller.php
+++ b/includes/controller/user_driver_licenses_controller.php
@@ -63,7 +63,7 @@ function user_driver_license_edit_link($user = null)
if ($user == null) {
return page_link_to('user_driver_licenses');
}
- return page_link_to('user_driver_licenses') . '&user_id=' . $user['UID'];
+ return page_link_to('user_driver_licenses', ['user_id' => $user['UID']]);
}
/**
diff --git a/includes/controller/users_controller.php b/includes/controller/users_controller.php
index b747cc83..6dc74d68 100644
--- a/includes/controller/users_controller.php
+++ b/includes/controller/users_controller.php
@@ -109,7 +109,7 @@ function users_link()
*/
function user_edit_link($user)
{
- return page_link_to('admin_user') . '&user_id=' . $user['UID'];
+ return page_link_to('admin_user', ['user_id' => $user['UID']]);
}
/**
@@ -118,7 +118,7 @@ function user_edit_link($user)
*/
function user_delete_link($user)
{
- return page_link_to('users') . '&action=delete&user_id=' . $user['UID'];
+ return page_link_to('users', ['action' => 'delete', 'user_id' => $user['UID']]);
}
/**
@@ -127,7 +127,7 @@ function user_delete_link($user)
*/
function user_link($user)
{
- return page_link_to('users') . '&action=view&user_id=' . $user['UID'];
+ return page_link_to('users', ['action' => 'view', 'user_id' => $user['UID']]);
}
/**
@@ -363,7 +363,7 @@ function user_password_recovery_start_controller()
_('Password recovery'),
sprintf(
_('Please visit %s to recover your password.'),
- page_link_to_absolute('user_password_recovery') . '&token=' . $token
+ page_link_to_absolute('user_password_recovery', ['token' => $token])
)
);
success(_('We sent an email containing your password recovery link.'));
diff --git a/includes/engelsystem_provider.php b/includes/engelsystem_provider.php
index ff682871..c065d332 100644
--- a/includes/engelsystem_provider.php
+++ b/includes/engelsystem_provider.php
@@ -11,11 +11,7 @@ use Engelsystem\Renderer\Renderer;
* This file includes all needed functions, connects to the db etc.
*/
-if (!is_readable(__DIR__ . '/../vendor/autoload.php')) {
- die('Please run composer.phar install');
-}
-require __DIR__ . '/../vendor/autoload.php';
-
+require_once __DIR__ . '/autoload.php';
/**
* Load configuration
@@ -38,7 +34,7 @@ date_default_timezone_set($config->get('timezone'));
* Initialize Request
*/
$request = new Request();
-$request->create();
+$request->create($_GET, $_POST, $_SERVER, config('url'));
$request::setInstance($request);
/**
diff --git a/includes/pages/admin_active.php b/includes/pages/admin_active.php
index 2e06f90d..5b91e413 100644
--- a/includes/pages/admin_active.php
+++ b/includes/pages/admin_active.php
@@ -82,9 +82,13 @@ function admin_active()
$limit = '';
$msg = success(_('Marked angels.'), true);
} else {
- $set_active = '« '
- . _('back') . ' | '
+ $set_active = '« '
+ . _('back')
+ . ' | '
. _('apply')
. '';
}
@@ -176,28 +180,46 @@ function admin_active()
$actions = [];
if ($usr['Aktiv'] == 0) {
- $actions[] = ''
+ $parameters = [
+ 'active' => $usr['UID'],
+ 'search' => $search,
+ ];
+ if ($show_all_shifts) {
+ $parameters['show_all_shifts'] = 1;
+ }
+ $actions[] = ''
. _('set active')
. '';
}
if ($usr['Aktiv'] == 1 && $usr['Tshirt'] == 0) {
- $actions[] = ''
+ $parametersRemove = [
+ 'not_active' => $usr['UID'],
+ 'search' => $search,
+ ];
+ $parametersShirt = [
+ 'tshirt' => $usr['UID'],
+ 'search' => $search,
+ ];
+ if ($show_all_shifts) {
+ $parametersRemove['show_all_shifts'] = 1;
+ $parametersShirt['show_all_shifts'] = 1;
+ }
+ $actions[] = ''
. _('remove active')
. '';
- $actions[] = ''
+ $actions[] = ''
. _('got t-shirt')
. '';
}
if ($usr['Tshirt'] == 1) {
- $actions[] = ''
+ $parameters = [
+ 'not_tshirt' => $usr['UID'],
+ 'search' => $search,
+ ];
+ if ($show_all_shifts) {
+ $parameters['show_all_shifts'] = 1;
+ }
+ $actions[] = ''
. _('remove t-shirt')
. '';
}
diff --git a/includes/pages/admin_arrive.php b/includes/pages/admin_arrive.php
index ebeccb8c..2f312b1f 100644
--- a/includes/pages/admin_arrive.php
+++ b/includes/pages/admin_arrive.php
@@ -92,8 +92,14 @@ function admin_arrive()
$usr['rendered_arrival_date'] = $usr['arrival_date'] > 0 ? date('Y-m-d', $usr['arrival_date']) : '-';
$usr['arrived'] = $usr['Gekommen'] == 1 ? _('yes') : '';
$usr['actions'] = $usr['Gekommen'] == 1
- ? '' . _('reset') . ''
- : '' . _('arrived') . '';
+ ? '' . _('reset') . ''
+ : '' . _('arrived') . '';
if ($usr['arrival_date'] > 0) {
$day = date('Y-m-d', $usr['arrival_date']);
diff --git a/includes/pages/admin_free.php b/includes/pages/admin_free.php
index ebf227a4..a3c0d17f 100644
--- a/includes/pages/admin_free.php
+++ b/includes/pages/admin_free.php
@@ -94,7 +94,7 @@ function admin_free()
'email' => $usr['email_by_human_allowed'] ? $usr['email'] : glyph('eye-close'),
'actions' =>
in_array('admin_user', $privileges)
- ? button(page_link_to('admin_user') . '&id=' . $usr['UID'], _('edit'), 'btn-xs')
+ ? button(page_link_to('admin_user', ['id' => $usr['UID']]), _('edit'), 'btn-xs')
: ''
];
}
diff --git a/includes/pages/admin_groups.php b/includes/pages/admin_groups.php
index c483a79d..d64afe76 100644
--- a/includes/pages/admin_groups.php
+++ b/includes/pages/admin_groups.php
@@ -38,7 +38,8 @@ function admin_groups()
'name' => $group['Name'],
'privileges' => join(', ', $privileges_html),
'actions' => button(
- page_link_to('admin_groups') . '&action=edit&id=' . $group['UID'],
+ page_link_to('admin_groups',
+ ['action' => 'edit', 'id' => $group['UID']]),
_('edit'),
'btn-xs'
)
@@ -93,7 +94,10 @@ function admin_groups()
$privileges_form[] = form_submit('submit', _('Save'));
$html .= page_with_title(_('Edit group'), [
- form($privileges_form, page_link_to('admin_groups') . '&action=save&id=' . $group_id)
+ form(
+ $privileges_form,
+ page_link_to('admin_groups', ['action' => 'save', 'id' => $group_id])
+ )
]);
} else {
return error('No Group found.', true);
diff --git a/includes/pages/admin_news.php b/includes/pages/admin_news.php
index 7f8ca1ba..a5354da7 100644
--- a/includes/pages/admin_news.php
+++ b/includes/pages/admin_news.php
@@ -31,16 +31,21 @@ function admin_news()
$news = array_shift($news);
$user_source = User($news['UID']);
- $html .= form([
- form_info(_('Date'), date('Y-m-d H:i', $news['Datum'])),
- form_info(_('Author'), User_Nick_render($user_source)),
- form_text('eBetreff', _('Subject'), $news['Betreff']),
- form_textarea('eText', _('Message'), $news['Text']),
- form_checkbox('eTreffen', _('Meeting'), $news['Treffen'] == 1, 1),
- form_submit('submit', _('Save'))
- ], page_link_to('admin_news&action=save&id=' . $news_id));
+ $html .= form(
+ [
+ form_info(_('Date'), date('Y-m-d H:i', $news['Datum'])),
+ form_info(_('Author'), User_Nick_render($user_source)),
+ form_text('eBetreff', _('Subject'), $news['Betreff']),
+ form_textarea('eText', _('Message'), $news['Text']),
+ form_checkbox('eTreffen', _('Meeting'), $news['Treffen'] == 1, 1),
+ form_submit('submit', _('Save'))
+ ],
+ page_link_to('admin_news', ['action' => 'save', 'id' => $news_id])
+ );
- $html .= ''
+ $html .= ''
. ' ' . _('Delete')
. '';
break;
diff --git a/includes/pages/admin_questions.php b/includes/pages/admin_questions.php
index d05bace6..938e63a9 100644
--- a/includes/pages/admin_questions.php
+++ b/includes/pages/admin_questions.php
@@ -52,9 +52,9 @@ function admin_questions()
'answer' => form([
form_textarea('answer', '', ''),
form_submit('submit', _('Save'))
- ], page_link_to('admin_questions') . '&action=answer&id=' . $question['QID']),
+ ], page_link_to('admin_questions', ['action' => 'answer', 'id' => $question['QID']])),
'actions' => button(
- page_link_to('admin_questions') . '&action=delete&id=' . $question['QID'],
+ page_link_to('admin_questions', ['action' => 'delete', 'id' => $question['QID']]),
_('delete'),
'btn-xs'
)
@@ -72,7 +72,7 @@ function admin_questions()
'answered_by' => User_Nick_render($answer_user_source),
'answer' => str_replace("\n", '
', $question['Answer']),
'actions' => button(
- page_link_to('admin_questions') . '&action=delete&id=' . $question['QID'],
+ page_link_to('admin_questions', ['action' => 'delete', 'id' => $question['QID']]),
_('delete'),
'btn-xs'
)
diff --git a/includes/pages/admin_rooms.php b/includes/pages/admin_rooms.php
index 3045242b..8a7720d8 100644
--- a/includes/pages/admin_rooms.php
+++ b/includes/pages/admin_rooms.php
@@ -25,8 +25,8 @@ function admin_rooms()
'from_pentabarf' => $room['FromPentabarf'] == 'Y' ? '✓' : '',
'public' => $room['show'] == 'Y' ? '✓' : '',
'actions' => table_buttons([
- button(page_link_to('admin_rooms') . '&show=edit&id=' . $room['RID'], _('edit'), 'btn-xs'),
- button(page_link_to('admin_rooms') . '&show=delete&id=' . $room['RID'], _('delete'), 'btn-xs')
+ button(page_link_to('admin_rooms', ['show' => 'edit', 'id' => $room['RID']]), _('edit'), 'btn-xs'),
+ button(page_link_to('admin_rooms', ['show' => 'delete', 'id' => $room['RID']]), _('delete'), 'btn-xs')
])
];
}
@@ -227,7 +227,7 @@ function admin_rooms()
sprintf(_('Do you want to delete room %s?'), $name),
buttons([
button(
- page_link_to('admin_rooms') . '&show=delete&id=' . $room_id . '&ack',
+ page_link_to('admin_rooms', ['show' => 'delete', 'id' => $room_id, 'ack' => 1]),
_('Delete'),
'delete btn-danger'
)
@@ -238,7 +238,7 @@ function admin_rooms()
return page_with_title(admin_rooms_title(), [
buttons([
- button(page_link_to('admin_rooms') . '&show=edit', _('add'))
+ button(page_link_to('admin_rooms', ['show' => 'edit']), _('add'))
]),
msg(),
table([
diff --git a/includes/pages/admin_user.php b/includes/pages/admin_user.php
index 510e2292..00113507 100644
--- a/includes/pages/admin_user.php
+++ b/includes/pages/admin_user.php
@@ -46,25 +46,27 @@ function admin_user()
. 'Wenn T-Shirt ein \'Ja\' enthält, bedeutet dies, dass der Engel '
. 'bereits sein T-Shirt erhalten hat.
' . "\n";
- $html .= '