' . meetings_title() . '

' . msg(); if (isset($_REQUEST['page']) && preg_match('/^\d{1,}$/', $_REQUEST['page'])) { $page = $_REQUEST['page']; } 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; } /** * @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 .= '
' . ReplaceSmilies(nl2br($news['Text'])) . '
'; $html .= ''; $html .= '
'; return $html; } /** * @return string */ function user_news_comments() { global $user; $html = '

' . user_news_comments_title() . '

'; if ( isset($_REQUEST['nid']) && preg_match('/^\d{1,}$/', $_REQUEST['nid']) && count(DB::select('SELECT `ID` FROM `News` WHERE `ID`=? LIMIT 1', [$_REQUEST['nid']])) > 0 ) { $nid = $_REQUEST['nid']; $news = DB::select('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$nid]); $news = array_shift($news); if (isset($_REQUEST['text'])) { $text = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', strip_tags($_REQUEST['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($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'); $html = '

' . news_title() . '

' . msg(); if (isset($_POST['text']) && isset($_POST['betreff']) && in_array('admin_news', $privileges)) { if (!isset($_POST['treffen']) || !in_array('admin_news', $privileges)) { $_POST['treffen'] = 0; } DB::insert(' INSERT INTO `News` (`Datum`, `Betreff`, `Text`, `UID`, `Treffen`) VALUES (?, ?, ?, ?, ?) ', [ time(), $_POST['betreff'], $_POST['text'], $user['UID'], $_POST['treffen'], ] ); engelsystem_log('Created news: ' . $_POST['betreff'] . ', treffen: ' . $_POST['treffen']); success(_('Entry saved.')); redirect(page_link_to('news')); } if (isset($_REQUEST['page']) && preg_match('/^\d{1,}$/', $_REQUEST['page'])) { $page = $_REQUEST['page']; } 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 . '
'; }