' . meetings_title() . '

' . msg(); $request = request(); if (preg_match('/^\d{1,}$/', $request->input('page', 0))) { $page = $request->input('page', 0); } else { $page = 0; } $news = DB::select(sprintf(' SELECT * FROM `News` WHERE `Treffen`=1 ORDER BY `Datum`DESC LIMIT %u, %u', $page * $display_news, $display_news )); foreach ($news as $entry) { $html .= display_news($entry); } $dis_rows = ceil(count(DB::select('SELECT `ID` FROM `News`')) / $display_news); $html .= '
' . '
'; return $html; } /** * Renders the text content of a news entry * * @param array $news * @return string HTML */ function news_text($news) { $text = ReplaceSmilies($news['Text']); $text = preg_replace("/\r\n\r\n/m", '

', $text); return $text; } /** * @param array $news * @return string */ function display_news($news) { global $privileges, $page; $html = ''; $html .= '
'; $html .= '
'; $html .= '

' . ($news['Treffen'] == 1 ? '[Meeting] ' : '') . ReplaceSmilies($news['Betreff']) . '

'; $html .= '
'; $html .= '
' . news_text($news) . '
'; $html .= ''; $html .= '
'; return $html; } /** * @return string */ function user_news_comments() { global $user; $request = request(); $html = '

' . user_news_comments_title() . '

'; if ( $request->has('nid') && preg_match('/^\d{1,}$/', $request->input('nid')) && count(DB::select('SELECT `ID` FROM `News` WHERE `ID`=? LIMIT 1', [$request->input('nid')])) > 0 ) { $nid = $request->input('nid'); $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(' INSERT INTO `NewsComments` (`Refid`, `Datum`, `Text`, `UID`) VALUES (?, ?, ?, ?) ', [ $nid, date('Y-m-d H:i:s'), $text, $user["UID"], ] ); engelsystem_log('Created news_comment: ' . $text); $html .= success(_('Entry saved.'), true); } $html .= display_news($news); $comments = DB::select( 'SELECT * FROM `NewsComments` WHERE `Refid`=? ORDER BY \'ID\'', [$nid] ); foreach ($comments as $comment) { $user_source = User($comment['UID']); $html .= '
'; $html .= '
' . nl2br(htmlspecialchars($comment['Text'])) . '
'; $html .= ''; $html .= '
'; } $html .= '

' . _('New Comment:') . '

'; $html .= form([ form_textarea('text', _('Message'), ''), form_submit('submit', _('Save')) ], page_link_to('news_comments', ['nid' => $news['ID']])); } else { $html .= _('Invalid request.'); } return $html . '
'; } /** * @return string */ function user_news() { global $privileges, $user; $display_news = config('display_news'); $request = request(); $html = '

' . news_title() . '

' . msg(); $isMeeting = $request->postData('treffen'); if ($request->has('text') && $request->has('betreff') && in_array('admin_news', $privileges)) { if (!$request->has('treffen')) { $isMeeting = 0; } $text = $request->postData('text'); if (!in_array('admin_news_html', $privileges)) { $text = strip_tags($text); } DB::insert(' INSERT INTO `News` (`Datum`, `Betreff`, `Text`, `UID`, `Treffen`) VALUES (?, ?, ?, ?, ?) ', [ time(), strip_tags($request->postData('betreff')), $text, $user['UID'], $isMeeting, ] ); engelsystem_log('Created news: ' . $request->postData('betreff') . ', treffen: ' . $isMeeting); success(_('Entry saved.')); redirect(page_link_to('news')); } if (preg_match('/^\d{1,}$/', $request->input('page', 0))) { $page = $request->input('page', 0); } else { $page = 0; } $news = DB::select(sprintf(' SELECT * FROM `News` ORDER BY `Datum` DESC LIMIT %u, %u ', $page * $display_news, $display_news )); foreach ($news as $entry) { $html .= display_news($entry); } $dis_rows = ceil(count(DB::select('SELECT `ID` FROM `News`')) / $display_news); $html .= '
' . '
'; if (in_array('admin_news', $privileges)) { $html .= '
'; $html .= '

' . _('Create news:') . '

'; $html .= form([ form_text('betreff', _('Subject'), ''), form_textarea('text', _('Message'), ''), form_checkbox('treffen', _('Meeting'), false, 1), form_submit('submit', _('Save')) ]); } return $html . '
'; }