Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
            }
            $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>';
                        }
                    }
                }
            }
Ejemplo n.º 3
0
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();
    }
}