' . '
';
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;
$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::select('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$nid]);
$news = array_shift($news);
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($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->post('treffen');
if ($request->has('text') && $request->has('betreff') && in_array('admin_news', $privileges)) {
if (!$request->has('treffen') || !in_array('admin_news', $privileges)) {
$isMeeting = 0;
}
DB::insert('
INSERT INTO `News` (`Datum`, `Betreff`, `Text`, `UID`, `Treffen`)
VALUES (?, ?, ?, ?, ?)
',
[
time(),
$request->post('betreff'),
$request->post('text'),
$user['UID'],
$isMeeting,
]
);
engelsystem_log('Created news: ' . $_POST['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 . '
';
}