function display_news($news) { global $privileges, $p; $html = ''; $html .= '<div class="panel' . ($news['Treffen'] == 1 ? ' panel-info' : ' panel-default') . '">'; $html .= '<div class="panel-heading">'; $html .= '<h3 class="panel-title">' . ($news['Treffen'] == 1 ? '[Meeting] ' : '') . ReplaceSmilies($news['Betreff']) . '</h3>'; $html .= '</div>'; $html .= '<div class="panel-body">' . ReplaceSmilies(nl2br($news['Text'])) . '</div>'; $html .= '<div class="panel-footer text-muted">'; if (in_array("admin_news", $privileges)) { $html .= '<div class="pull-right">' . button_glyph(page_link_to("admin_news") . '&action=edit&id=' . $news['ID'], 'edit', 'btn-xs') . '</div>'; } $html .= '<span class="glyphicon glyphicon-time"></span> ' . date("Y-m-d H:i", $news['Datum']) . ' '; $user_source = User($news['UID']); if ($user_source === false) { engelsystem_error(_("Unable to load user.")); } $html .= User_Nick_render($user_source); if ($p != "news_comments") { $html .= ' <a href="' . page_link_to("news_comments") . '&nid=' . $news['ID'] . '"><span class="glyphicon glyphicon-comment"></span> ' . _("Comments") . ' »</a> <span class="badge">' . sql_num_query("SELECT * FROM `NewsComments` WHERE `Refid`='" . sql_escape($news['ID']) . "'") . '</span>'; } $html .= '</div>'; $html .= '</div>'; return $html; }
function Users_view($users, $order_by, $arrived_count, $active_count, $force_active_count, $freeloads_count, $tshirts_count, $voucher_count) { foreach ($users as &$user) { $user['Nick'] = User_Nick_render($user); $user['Gekommen'] = glyph_bool($user['Gekommen']); $user['Aktiv'] = glyph_bool($user['Aktiv']); $user['force_active'] = glyph_bool($user['force_active']); $user['lastLogIn'] = date(_('m/d/Y h:i a'), $user['lastLogIn']); $user['actions'] = table_buttons(array(button_glyph(page_link_to('admin_user') . '&id=' . $user['UID'], 'edit', 'btn-xs'))); } $users[] = array('Nick' => '<strong>' . _('Sum') . '</strong>', 'Gekommen' => $arrived_count, 'Aktiv' => $active_count, 'force_active' => $force_active_count, 'Tshirt' => $tshirts_count, 'actions' => '<strong>' . count($users) . '</strong>'); return page_with_title(_('All users'), array(msg(), buttons(array(button(page_link_to('register'), glyph('plus') . _('New user')))), table(array('Nick' => Users_table_header_link('Nick', _('Nick'), $order_by), 'Vorname' => Users_table_header_link('Vorname', _('First Name'), $order_by), 'Name' => Users_table_header_link('Name', _('Name'), $order_by), 'gender' => Users_table_header_link('gender', _('Gender'), $order_by), 'Handy' => Users_table_header_link('Mobile', _('Mobile'), $order_by), 'Telefon' => Users_table_header_link('Phone', _('Phone'), $order_by), 'Gekommen' => Users_table_header_link('Gekommen', _('Available'), $order_by), 'Aktiv' => Users_table_header_link('Aktiv', _('Active'), $order_by), 'force_active' => Users_table_header_link('force_active', _('Forced'), $order_by), 'kommentar' => Users_table_header_link('kommentar', _('Additional Info'), $order_by), 'lastLogIn' => Users_table_header_link('lastLogIn', _('Last login'), $order_by), 'actions' => ''), $users))); }
function Users_view($users, $order_by, $arrived_count, $active_count, $force_active_count, $freeloads_count, $tshirts_count, $voucher_count) { global $user; foreach ($users as &$user_item) { $user_item['Nick'] = User_Nick_render($user_item); $user_item['Gekommen'] = glyph_bool($user_item['Gekommen']); $user_item['got_voucher'] = $user_item['got_voucher']; $user_item['kiffel'] = glyph_bool($user_item['kiffel']); $user_item['Aktiv'] = glyph_bool($user_item['Aktiv']); $user_item['force_active'] = glyph_bool($user_item['force_active']); $user_item['Tshirt'] = glyph_bool($user_item['Tshirt']); $user_item['lastLogIn'] = date(_('m/d/Y h:i a'), $user_item['lastLogIn']); $user_item['actions'] = table_buttons(array(button_glyph(page_link_to('admin_user') . '&id=' . $user_item['UID'], 'edit', 'btn-xs'))); } $users[] = array('Nick' => '<strong>' . _('Sum') . '</strong>', 'Gekommen' => $arrived_count, 'got_voucher' => $voucher_count, 'Aktiv' => $active_count, 'force_active' => $force_active_count, 'freeloads' => $freeloads_count, 'Tshirt' => $tshirts_count, 'actions' => '<strong>' . count($users) . '</strong>'); return page_with_title(_('All users'), array(msg(), buttons(array(button(page_link_to('register'), glyph('plus') . _('New user')), button(page_link_to('admin_export_users') . "&type=csv&key=" . $user['api_key'], _('Export CSV')), button(page_link_to('admin_export_users') . "&type=mail&key=" . $user['api_key'], _('Export Mail')))), table(array('Nick' => Users_table_header_link('Nick', _('Nick'), $order_by), 'Vorname' => Users_table_header_link('Vorname', _('Prename'), $order_by), 'Name' => Users_table_header_link('Name', _('Name'), $order_by), 'Handy' => Users_table_header_link('Handy', _('Handy'), $order_by), 'Gekommen' => Users_table_header_link('Gekommen', _('Arrived'), $order_by), 'kiffel' => Users_table_header_link('kiffel', _('KIFfel'), $order_by), 'got_voucher' => Users_table_header_link('got_voucher', _('Voucher'), $order_by), 'freeloads' => _('Freeloads'), 'Aktiv' => Users_table_header_link('Aktiv', _('Active'), $order_by), 'force_active' => Users_table_header_link('force_active', _('Forced'), $order_by), 'Tshirt' => Users_table_header_link('Tshirt', _('T-Shirt'), $order_by), 'Size' => Users_table_header_link('Size', _('Size'), $order_by), 'lastLogIn' => Users_table_header_link('lastLogIn', _('Last login'), $order_by), 'actions' => ''), $users))); }
function Shift_view($shift, $shifttype, $room, $shift_admin, $angeltypes_source, $user_shift_admin, $admin_rooms, $admin_shifttypes, $user_shifts, $signed_up) { $parsedown = new Parsedown(); $angeltypes = []; foreach ($angeltypes_source as $angeltype) { $angeltypes[$angeltype['id']] = $angeltype; } $needed_angels = ''; foreach ($shift['NeedAngels'] as $needed_angeltype) { $class = 'progress-bar-warning'; if ($needed_angeltype['taken'] == 0) { $class = 'progress-bar-danger'; } if ($needed_angeltype['taken'] >= $needed_angeltype['count']) { $class = 'progress-bar-success'; } $needed_angels .= '<div class="list-group-item">'; $needed_angels .= '<div class="pull-right">' . Shift_signup_button_render($shift, $angeltypes[$needed_angeltype['TID']]) . '</div>'; $needed_angels .= '<h3>' . AngelType_name_render($angeltypes[$needed_angeltype['TID']]) . '</h3>'; $needed_angels .= progress_bar(0, $needed_angeltype['count'], min($needed_angeltype['taken'], $needed_angeltype['count']), $class, $needed_angeltype['taken'] . ' / ' . $needed_angeltype['count']); $angels = []; foreach ($shift['ShiftEntry'] as $shift_entry) { if ($shift_entry['TID'] == $needed_angeltype['TID']) { $entry = User_Nick_render(User($shift_entry['UID'])); if ($shift_entry['freeloaded']) { $entry = '<strike>' . $entry . '</strike>'; } if ($user_shift_admin) { $entry .= ' <div class="btn-group">'; $entry .= button_glyph(page_link_to('user_myshifts') . '&edit=' . $shift_entry['id'] . '&id=' . $shift_entry['UID'], 'pencil', 'btn-xs'); $entry .= button_glyph(page_link_to('user_shifts') . '&entry_id=' . $shift_entry['id'], 'trash', 'btn-xs'); $entry .= '</div>'; } $angels[] = $entry; } } $needed_angels .= join(', ', $angels); $needed_angels .= '</div>'; } $shiftManagers = getShiftManagers($shift['SID']); return page_with_title($shift['name'] . ' <small class="moment-countdown" data-timestamp="' . $shift['start'] . '">%c</small>', [msg(), Shift_collides($shift, $user_shifts) ? info(_('This shift collides with one of your shifts.'), true) : '', $signed_up ? info(_('You are signed up for this shift.'), true) : '', $shift_admin || $admin_shifttypes || $admin_rooms ? buttons([$shift_admin ? button(shift_edit_link($shift), glyph('pencil') . _('edit')) : '', $shift_admin ? button(shift_delete_link($shift), glyph('trash') . _('delete')) : '', $admin_shifttypes ? button(shifttype_link($shifttype), $shifttype['name']) : '', $admin_rooms ? button(room_link($room), glyph('map-marker') . $room['Name']) : '']) : '', div('row', [div('col-sm-3 col-xs-6', ['<h4>' . _('Title') . '</h4>', '<p class="lead">' . ($shift['URL'] != '' ? '<a href="' . $shift['URL'] . '">' . $shift['title'] . '</a>' : $shift['title']) . '</p>']), div('col-sm-3 col-xs-6', ['<h4>' . _('Start') . '</h4>', '<p class="lead' . (time() >= $shift['start'] ? ' text-success' : '') . '">', glyph('calendar') . date('Y-m-d', $shift['start']), '<br />', glyph('time') . date('H:i', $shift['start']), '</p>']), div('col-sm-3 col-xs-6', ['<h4>' . _('End') . '</h4>', '<p class="lead' . (time() >= $shift['end'] ? ' text-success' : '') . '">', glyph('calendar') . date('Y-m-d', $shift['end']), '<br />', glyph('time') . date('H:i', $shift['end']), '</p>']), div('col-sm-3 col-xs-6', ['<h4>' . _('Location') . '</h4>', '<p class="lead">' . glyph('map-marker') . $room['Name'] . '</p>'])]), div('row', [div('col-sm-6', ['<h2>' . _('Needed angels') . '</h2>', '<div class="list-group">' . $needed_angels . '</div>']), div('col-sm-6', [!empty($shiftManagers) ? '<h2>' . _('Shift Manager') . '</h2>' : '', !empty($shiftManagers) ? implode('<br>', array_map(function ($manager) { return $manager['Vorname'] . ' ' . $manager['Name']; }, $shiftManagers)) : '', '<h2>' . _('Description') . '</h2>', $parsedown->parse($shifttype['description'])])]), $shift_admin ? Shift_editor_info_render($shift) : '']); }