2011-06-02 00:48:29 +02:00
< ? php
2013-10-13 00:52:44 +02:00
2011-06-02 00:48:29 +02:00
function page_link_to ( $page ) {
2014-08-22 22:34:13 +02:00
if ( $page == " " )
return '?' ;
2013-10-13 00:52:44 +02:00
return '?p=' . $page ;
2011-06-02 00:48:29 +02:00
}
2011-10-11 22:18:36 +02:00
function page_link_to_absolute ( $page ) {
2013-10-13 00:52:44 +02:00
return ( isset ( $_SERVER [ 'HTTPS' ]) ? 'https' : 'http' ) . '://' . $_SERVER [ 'HTTP_HOST' ] . preg_replace ( " / \ ?.* $ / " , '' , $_SERVER [ 'REQUEST_URI' ]) . page_link_to ( $page );
}
/**
* Renders the header toolbar containing search , login / logout , user and settings links .
*/
function header_toolbar () {
2014-12-19 22:41:55 +01:00
global $p , $privileges , $user , $enable_tshirt_size , $max_freeloadable_shifts ;
2014-12-16 09:25:36 +01:00
2014-08-23 14:30:45 +02:00
$toolbar_items = array ();
2014-12-16 09:25:36 +01:00
2014-08-23 14:30:45 +02:00
if ( isset ( $user ))
2014-12-19 22:59:18 +01:00
$toolbar_items [] = toolbar_item_link ( page_link_to ( 'shifts' ) . '&action=next' , 'time' , User_shift_state_render ( $user ));
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
if ( ! isset ( $user ) && in_array ( 'register' , $privileges ))
2014-08-22 22:34:13 +02:00
$toolbar_items [] = toolbar_item_link ( page_link_to ( 'register' ), 'plus' , register_title (), $p == 'register' );
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
if ( in_array ( 'login' , $privileges ))
$toolbar_items [] = toolbar_item_link ( page_link_to ( 'login' ), 'log-in' , login_title (), $p == 'login' );
2014-12-16 09:25:36 +01:00
2014-12-06 22:31:42 +01:00
if ( isset ( $user ) && in_array ( 'user_messages' , $privileges ))
2014-09-24 15:24:32 +02:00
$toolbar_items [] = toolbar_item_link ( page_link_to ( 'user_messages' ), 'envelope' , user_unread_messages ());
2014-12-16 09:25:36 +01:00
2014-12-06 22:26:56 +01:00
$hints = [];
if ( isset ( $user )) {
2014-12-06 22:31:42 +01:00
$hint_class = 'info' ;
2014-12-07 00:10:09 +01:00
$glyphicon = 'info-sign' ;
2014-12-06 22:31:42 +01:00
// Erzengel Hinweis für unbeantwortete Fragen
if ( $p != " admin_questions " ) {
$new_questions = admin_new_questions ();
if ( $new_questions != " " )
$hints [] = $new_questions ;
}
2014-12-16 09:25:36 +01:00
2014-12-06 22:31:42 +01:00
$unconfirmed_hint = user_angeltypes_unconfirmed_hint ();
if ( $unconfirmed_hint != '' )
$hints [] = $unconfirmed_hint ;
2014-12-16 09:25:36 +01:00
2015-08-15 14:54:25 +02:00
if ( ! isset ( $user [ 'planned_departure_date' ]) || $user [ 'planned_departure_date' ] == null )
$hints [] = info ( _ ( " Please enter your planned date of departure on your settings page to give us a feeling for teardown capacities. " ), true );
2015-12-20 11:36:12 +01:00
$driver_license_required = user_driver_license_required_hint ();
if ( $driver_license_required != '' )
$hints [] = $driver_license_required ;
2014-12-06 22:31:42 +01:00
if ( User_is_freeloader ( $user )) {
2014-12-06 22:26:56 +01:00
$hints [] = error ( sprintf ( _ ( " You freeloaded at least %s shifts. Shift signup is locked. Please go to heavens desk to be unlocked again. " ), $max_freeloadable_shifts ), true );
2014-12-06 22:31:42 +01:00
$hint_class = 'danger' ;
2014-12-07 00:10:09 +01:00
$glyphicon = 'warning-sign' ;
2014-12-06 22:31:42 +01:00
}
2014-12-16 09:25:36 +01:00
2014-12-06 22:31:42 +01:00
// Hinweis für Engel, die noch nicht angekommen sind
if ( $user [ 'Gekommen' ] == 0 ) {
2014-12-06 22:26:56 +01:00
$hints [] = error ( _ ( " You are not marked as arrived. Please go to heaven's desk, get your angel badge and/or tell them that you arrived already. " ), true );
2014-12-06 22:31:42 +01:00
$hint_class = 'danger' ;
2014-12-07 00:10:09 +01:00
$glyphicon = 'warning-sign' ;
2014-12-06 22:31:42 +01:00
}
2014-12-16 09:25:36 +01:00
2014-12-06 22:31:42 +01:00
if ( $enable_tshirt_size && $user [ 'Size' ] == " " ) {
2014-12-06 22:26:56 +01:00
$hints [] = error ( _ ( " You need to specify a tshirt size in your settings! " ), true );
2014-12-06 22:31:42 +01:00
$hint_class = 'danger' ;
2014-12-07 00:10:09 +01:00
$glyphicon = 'warning-sign' ;
2014-12-06 22:31:42 +01:00
}
2014-12-16 09:25:36 +01:00
2014-12-06 22:31:42 +01:00
if ( $user [ 'DECT' ] == " " ) {
2014-12-06 22:26:56 +01:00
$hints [] = error ( _ ( " You need to specify a DECT phone number in your settings! If you don't have a DECT phone, just enter \" - \" . " ), true );
2014-12-06 22:31:42 +01:00
$hint_class = 'danger' ;
2014-12-07 00:10:09 +01:00
$glyphicon = 'warning-sign' ;
2014-12-06 22:26:56 +01:00
}
}
2014-12-06 22:31:42 +01:00
if ( count ( $hints ) > 0 )
2014-12-07 00:10:09 +01:00
$toolbar_items [] = toolbar_popover ( $glyphicon . ' text-' . $hint_class , '' , $hints , 'bg-' . $hint_class );
2014-12-16 09:25:36 +01:00
2014-09-24 15:11:50 +02:00
$user_submenu = make_langselect ();
$user_submenu [] = toolbar_item_divider ();
2013-11-25 19:12:19 +01:00
if ( in_array ( 'user_myshifts' , $privileges ))
2014-08-23 02:47:06 +02:00
$toolbar_items [] = toolbar_item_link ( page_link_to ( 'users' ) . '&action=view' , ' icon-icon_angel' , $user [ 'Nick' ], $p == 'users' );
2014-12-16 09:25:36 +01:00
2013-11-25 19:12:19 +01:00
if ( in_array ( 'user_settings' , $privileges ))
2014-09-08 14:45:41 +02:00
$user_submenu [] = toolbar_item_link ( page_link_to ( 'user_settings' ), 'list-alt' , settings_title (), $p == 'user_settings' );
2014-12-16 09:25:36 +01:00
2013-11-25 19:12:19 +01:00
if ( in_array ( 'logout' , $privileges ))
2014-09-08 14:45:41 +02:00
$user_submenu [] = toolbar_item_link ( page_link_to ( 'logout' ), 'log-out' , logout_title (), $p == 'logout' );
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
if ( count ( $user_submenu ) > 0 )
$toolbar_items [] = toolbar_dropdown ( '' , '' , $user_submenu );
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
return toolbar ( $toolbar_items , true );
2011-10-11 22:18:36 +02:00
}
2011-06-02 00:48:29 +02:00
function make_navigation () {
2014-09-08 14:45:41 +02:00
global $p , $privileges ;
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
$menu = array ();
2013-10-13 00:52:44 +02:00
$pages = array (
2013-11-25 21:04:58 +01:00
" news " => news_title (),
" user_meetings " => meetings_title (),
" user_shifts " => shifts_title (),
2014-01-05 19:30:06 +01:00
" angeltypes " => angeltypes_title (),
2014-12-16 09:25:36 +01:00
" user_questions " => questions_title ()
2014-09-08 14:45:41 +02:00
);
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
foreach ( $pages as $page => $title )
if ( in_array ( $page , $privileges ))
$menu [] = toolbar_item_link ( page_link_to ( $page ), '' , $title , $page == $p );
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
$admin_menu = array ();
$admin_pages = array (
2013-11-25 21:04:58 +01:00
" admin_arrive " => admin_arrive_title (),
" admin_active " => admin_active_title (),
" admin_user " => admin_user_title (),
" admin_free " => admin_free_title (),
" admin_questions " => admin_questions_title (),
2014-12-16 09:25:36 +01:00
" shifttypes " => shifttypes_title (),
2013-11-25 21:04:58 +01:00
" admin_shifts " => admin_shifts_title (),
" admin_rooms " => admin_rooms_title (),
" admin_groups " => admin_groups_title (),
" admin_import " => admin_import_title (),
2016-07-14 10:19:38 +02:00
" admin_log " => admin_log_title (),
" admin_settings " => admin_settings_title ()
2013-10-13 00:52:44 +02:00
);
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
foreach ( $admin_pages as $page => $title )
2013-12-03 16:28:37 +01:00
if ( in_array ( $page , $privileges ))
2014-09-08 14:45:41 +02:00
$admin_menu [] = toolbar_item_link ( page_link_to ( $page ), '' , $title , $page == $p );
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
if ( count ( $admin_menu ) > 0 )
$menu [] = toolbar_dropdown ( '' , _ ( " Admin " ), $admin_menu );
2014-12-16 09:25:36 +01:00
2014-09-08 14:45:41 +02:00
return toolbar ( $menu );
2011-06-02 17:15:03 +02:00
}
2011-06-02 00:48:29 +02:00
function make_menu () {
2014-08-23 02:16:12 +02:00
return make_navigation ();
2011-06-02 00:48:29 +02:00
}
2011-07-12 16:03:07 +02:00
?>