function getContent() { require_once 'www/forum/forum_utils.php'; require_once 'www/project/admin/ugroup_utils.php'; $html_my_admin = ''; // Get the number of pending users and projects db_query("SELECT count(*) AS count FROM groups WHERE status='P'"); $row = db_fetch_array(); $pending_projects = $row['count']; if ($GLOBALS['sys_user_approval'] == 1) { db_query("SELECT count(*) AS count FROM user WHERE status='P'"); $row = db_fetch_array(); $pending_users = $row['count']; } else { db_query("SELECT count(*) AS count FROM user WHERE status='P' OR status='V' OR status='W'"); $row = db_fetch_array(); $pending_users = $row['count']; } db_query("SELECT count(*) AS count FROM user WHERE status='V' OR status='W'"); $row = db_fetch_array(); $validated_users = $row['count']; $sql = "SELECT * FROM news_bytes WHERE is_approved=0 OR is_approved=3"; $result = db_query($sql); $pending_news = 0; $rows = db_numrows($result); for ($i = 0; $i < $rows; $i++) { //if the news is private, not display it in the list of news to be approved $forum_id = db_result($result, $i, 'forum_id'); $res = news_read_permissions($forum_id); // check on db_result($res,0,'ugroup_id') == $UGROUP_ANONYMOUS only to be consistent // with ST DB state if (db_numrows($res) < 1 || db_result($res, 0, 'ugroup_id') == $GLOBALS['UGROUP_ANONYMOUS']) { $pending_news++; } } $i = 0; $html_my_admin .= '<table width="100%">'; $html_my_admin .= $this->_get_admin_row($i++, $GLOBALS['Language']->getText('admin_main', 'pending_user', array("/admin/approve_pending_users.php?page=pending")), $pending_users, $this->_get_color($pending_users)); if ($GLOBALS['sys_user_approval'] == 1) { $html_my_admin .= $this->_get_admin_row($i++, $GLOBALS['Language']->getText('admin_main', 'validated_user', array("/admin/approve_pending_users.php?page=validated")), $validated_users, $this->_get_color($validated_users)); } $html_my_admin .= $this->_get_admin_row($i++, $GLOBALS['Language']->getText('admin_main', 'pending_group', array("/admin/approve-pending.php")), $pending_projects, $this->_get_color($pending_projects)); $html_my_admin .= $this->_get_admin_row($i++, '<a href="/news/admin">' . $GLOBALS['Language']->getText('admin_main', 'site_news_approval') . '</a>', $pending_news, $this->_get_color($pending_news)); $result = array(); $em =& EventManager::instance(); $em->processEvent('widget_myadmin', array('result' => &$result)); foreach ($result as $entry) { $html_my_admin .= $this->_get_admin_row($i++, $entry['text'], $entry['value'], $entry['bgcolor'], isset($entry['textcolor']) ? $entry['textcolor'] : 'white'); } $html_my_admin .= '</table>'; return $html_my_admin; }
} $sql = "SELECT * FROM news_bytes WHERE is_approved=0 OR is_approved=3"; $result = db_query($sql); $rows = db_numrows($result); if ($rows < 1) { echo ' <H4>' . $Language->getText('news_admin_index', 'no_queued_item_found') . '</H4>'; } else { echo ' <H4>' . $Language->getText('news_admin_index', 'need_approve') . '</H4> <P><ul><li><strong>' . $Language->getText('news_admin_index', 'approve_legend', $GLOBALS['sys_name']) . ' </strong></ul><P>'; for ($i = 0; $i < $rows; $i++) { //if the news is private, not display it in the list of news to be approved $forum_id = db_result($result, $i, 'forum_id'); $res = news_read_permissions($forum_id); // check on db_result($res,0,'ugroup_id') == $UGROUP_ANONYMOUS only to be consistent // with ST DB state if (db_numrows($res) < 1 || db_result($res, 0, 'ugroup_id') == $UGROUP_ANONYMOUS) { $is_approved = db_result($result, $i, 'is_approved'); if ($is_approved == '3') { //the submitter of this news asked to promote it ==> display an icon echo ' <IMG SRC="' . util_get_image_theme("ic/p_news.png") . '" alt="' . $Language->getText('news_admin_index', 'approve_alt', $GLOBALS['sys_name']) . '" title="' . $Language->getText('news_admin_index', 'approve_alt', $GLOBALS['sys_name']) . '" /> <A HREF="/news/admin/?approve=1&id=' . db_result($result, $i, 'id') . '">' . db_result($result, $i, 'summary') . '</A><BR>'; } else { echo ' <A HREF="/news/admin/?approve=1&id=' . db_result($result, $i, 'id') . '">' . db_result($result, $i, 'summary') . '</A><BR>'; } } } }
function handle_monitoring($forum_id, $thread_id, $msg_id) { global $feedback, $sys_lf, $Language; /* Checks to see if anyone is monitoring this forum If someone is, it sends them the message in email format */ $res = news_read_permissions($forum_id); if (db_numrows($res) < 1) { //check if there are users monitoring specific threads $sql = sprintf('(SELECT user.email FROM forum_monitored_forums,user' . ' WHERE forum_monitored_forums.user_id=user.user_id' . ' AND forum_monitored_forums.forum_id=%d' . ' AND ( user.status="A" OR user.status="R" ))' . ' UNION (SELECT user.email FROM forum_monitored_threads,user' . ' WHERE forum_monitored_threads.user_id=user.user_id' . ' AND forum_monitored_threads.forum_id=%d' . ' AND forum_monitored_threads.thread_id=%d' . ' AND ( user.status="A" OR user.status="R" ))', db_ei($forum_id), db_ei($forum_id), db_ei($thread_id)); } else { //we are dealing with private news, only project members are allowed to monitor $qry1 = "SELECT group_id FROM news_bytes WHERE forum_id=" . db_ei($forum_id); $res1 = db_query($qry1); $gr_id = db_result($res1, 0, 'group_id'); $sql = "SELECT user.email from forum_monitored_forums,user_group,user" . " WHERE forum_monitored_forums.forum_id=" . db_ei($forum_id) . " AND user_group.group_id=" . db_ei($gr_id) . " AND forum_monitored_forums.user_id=user_group.user_id AND user_group.user_id=user.user_id"; } $result = db_query($sql); $rows = db_numrows($result); if ($result && $rows > 0) { $tolist = implode(result_column_to_array($result), ', '); $sql = "SELECT groups.unix_group_name,user.user_name,user.realname,forum_group_list.forum_name," . "forum.group_forum_id,forum.thread_id,forum.subject,forum.date,forum.body " . "FROM forum,user,forum_group_list,groups " . "WHERE user.user_id=forum.posted_by " . "AND forum_group_list.group_forum_id=forum.group_forum_id " . "AND groups.group_id=forum_group_list.group_id " . "AND forum.msg_id=" . db_ei($msg_id); $result = db_query($sql); if ($result && db_numrows($result) > 0) { list($host, $port) = explode(':', $GLOBALS['sys_default_domain']); $mail = new Mail(); $mail->setFrom($GLOBALS['sys_noreply']); $mail->setSubject("[" . db_result($result, 0, 'unix_group_name') . " - " . util_unconvert_htmlspecialchars(db_result($result, 0, 'forum_name')) . " - " . db_result($result, 0, 'user_name') . "] " . util_unconvert_htmlspecialchars(db_result($result, 0, 'subject'))); $mail->setBcc($tolist); $url1 = get_server_url() . "/forum/monitor.php?forum_id=" . $forum_id; $url2 = get_server_url() . "/forum/monitor_thread.php?forum_id=" . $forum_id; $body = $Language->getText('forum_forum_utils', 'read_and_respond') . ": " . "\n" . get_server_url() . "/forum/message.php?msg_id=" . $msg_id . "\n" . $Language->getText('global', 'by') . ' ' . db_result($result, 0, 'user_name') . ' (' . db_result($result, 0, 'realname') . ')' . "\n\n" . util_unconvert_htmlspecialchars(db_result($result, 0, 'body')) . "\n\n______________________________________________________________________" . "\n" . $Language->getText('forum_forum_utils', 'stop_monitor_explain', array($url1, $url2)); $mail->setBody($body); if ($mail->send()) { $feedback .= ' - ' . $Language->getText('forum_forum_utils', 'mail_sent'); } else { //ERROR $feedback .= ' - ' . $GLOBALS['Language']->getText('global', 'mail_failed', array($GLOBALS['sys_email_admin'])); } if (forum_is_monitored($forum_id) || forum_thread_is_monitored($thread_id)) { $feedback .= ' - ' . $Language->getText('forum_forum_utils', 'people_monitoring'); } } else { $feedback .= ' ' . $Language->getText('forum_forum_utils', 'mail_not_sent') . ' '; echo db_error(); } } else { $feedback .= ' ' . $Language->getText('forum_forum_utils', 'mail_not_sent') . ' - ' . $Language->getText('forum_forum_utils', 'no_one_monitoring') . ' '; echo db_error(); } }