<?php
/**
- *
- * SourceForge Forums Facility
- *
- * SourceForge: Breaking Down the Barriers to Open Source Development
- * Copyright 1999-2001 (c) VA Linux Systems
- * http://sourceforge.net
- *
- * @version $Id$
- *
- */
+ * GForge Forums Facility
+ *
+ * Copyright 2002 GForge, LLC
+ * http://gforge.org/
+ *
+ */
-require_once('pre.php');
-require_once('../forum_utils.php');
-$is_admin_page='y';
+/*
+ Message Forums
+ By Tim Perdue, Sourceforge, 11/99
-if ($group_id && (user_ismember($group_id, 'F2'))) {
+ Massive rewrite by Tim Perdue 7/2000 (nested/views/save)
- if ($post_changes) {
- /*
- Update the DB to reflect the changes
- */
+ Complete OO rewrite by Tim Perdue 12/2002
- if ($delete) {
- /*
- Deleting messages or threads
- */
+ Heavy RBAC changes 3/17/2004
+*/
- /*
- Get this forum_id, checking to make sure this forum is in this group
- */
- $sql="SELECT forum.group_forum_id FROM forum,forum_group_list WHERE forum.group_forum_id=forum_group_list.group_forum_id ".
- "AND forum_group_list.group_id='$group_id' AND forum.msg_id='$msg_id'";
+require_once('../../env.inc.php');
+require_once $gfwww.'include/pre.php';
+require_once $gfwww.'forum/include/ForumHTML.class.php';
+require_once $gfcommon.'forum/Forum.class.php';
+require_once $gfwww.'forum/admin/ForumAdmin.class.php';
+require_once $gfcommon.'forum/ForumFactory.class.php';
+require_once $gfcommon.'forum/ForumMessageFactory.class.php';
+require_once $gfcommon.'forum/ForumMessage.class.php';
+require_once $gfcommon.'include/TextSanitizer.class.php'; // to make the HTML input by the user safe to store
- $result=db_query($sql);
+$group_id = getIntFromRequest('group_id');
+$group_forum_id = getIntFromRequest('group_forum_id');
+$deleteforum = getStringFromRequest('deleteforum');
+$feedback = getStringFromRequest('feedback');
- if (db_numrows($result) > 0) {
- $feedback .= recursive_delete($msg_id,db_result($result,0,'group_forum_id'))." messages deleted ";
- } else {
- $feedback .= " Message not found or message is not in your group ";
- }
+global $HTML;
- } else if ($add_forum) {
- /*
- Adding forums to this group
- */
- forum_create_forum($group_id,$forum_name,$is_public,1,$description);
+if ($group_id) {
+ //
+ // Set up local objects
+ //
+ $g =& group_get_object($group_id);
+ if (!$g || !is_object($g) || $g->isError()) {
+ exit_no_group();
+ }
+
+ $p =& $g->getPermission( session_get_user() );
+ if (!$p || !is_object($p) || $p->isError()) {
+ exit_permission_denied();
+ }
- } else if ($change_status) {
+ if (getStringFromRequest('post_changes')) {
+ /*
+ Update the DB to reflect the changes
+ */
+
+ if ($deleteforum) {
/*
- Change a forum to public/private
+ Deleting entire forum
*/
- if ($send_all_posts_to) {
- if (!validate_email($send_all_posts_to)) {
- $send_all_posts_to='';
- $feedback .= 'The Email Address You Provided Was Invalid';
- }
- }
- $sql="UPDATE forum_group_list ".
- "SET is_public='$is_public',".
- "forum_name='". htmlspecialchars($forum_name) ."',".
- "description='". htmlspecialchars($description) ."', ".
- "allow_anonymous='$allow_anonymous', ".
- "send_all_posts_to='$send_all_posts_to' ".
- "WHERE group_forum_id='$group_forum_id' AND group_id='$group_id'";
- $result=db_query($sql);
- if (!$result || db_affected_rows($result) < 1) {
- $feedback .= " Error Updating Forum Info ";
- } else {
- $feedback .= " Forum Info Updated Successfully ";
+ $fa = new ForumAdmin($group_id);
+ $feedback .= $fa->ExecuteAction("delete_forum");
+ $group_forum_id=0;
+ $deleteforum=0;
+ } else if (getStringFromRequest('add_forum')) {
+ if (!form_key_is_valid(getStringFromRequest('form_key'))) {
+ exit_form_double_submit();
}
+ $fa = new ForumAdmin($group_id);
+ $feedback .= $fa->ExecuteAction("add_forum");
+ } else if (getStringFromRequest('change_status')) {
+ $fa = new ForumAdmin($group_id);
+ $feedback .= $fa->ExecuteAction("change_status");
}
+ }
- }
-
- if ($delete) {
+ if (getStringFromRequest('add_forum')) {
/*
- Show page for deleting messages
+ Show the form for adding forums
*/
- forum_header(array('title'=>'Delete a message','pagename'=>'forum_admin_delete','sectionvals'=>group_getname($group_id)));
+ forum_header(array('title'=>_('Add forum')));
echo '
- <FONT COLOR="RED" SIZE="3">WARNING! You are about to permanently delete a
- message and all of its followups!!</FONT>
- <FORM METHOD="POST" ACTION="'.$PHP_SELF.'">
- <INPUT TYPE="HIDDEN" NAME="post_changes" VALUE="y">
- <INPUT TYPE="HIDDEN" NAME="delete" VALUE="y">
- <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="'.$group_id.'">
- <B>Enter the Message ID</B><BR>
- <INPUT TYPE="TEXT" NAME="msg_id" VALUE="">
- <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="SUBMIT">
- </FORM>';
+ <br />
+ <form method="post" action="'.getStringFromServer('PHP_SELF').'">
+ <input type="hidden" name="post_changes" value="y" />
+ <input type="hidden" name="add_forum" value="y" />
+ <input type="hidden" name="group_id" value="'.$group_id.'" />
+ <input type="hidden" name="form_key" value="' . form_generate_key() . '" />
+ <strong>'._('Forum Name').':</strong><br />
+ <input type="text" name="forum_name" value="" size="20" maxlength="30" /><br />
+ <strong>'._('Description').':</strong><br />
+ <input type="text" name="description" value="" size="40" maxlength="80" /><br />
+ <strong>'._('Is Public?').'</strong><br />
+ <input type="radio" name="is_public" value="1" checked="checked" />'._('Yes').' <br />
+ <input type="radio" name="is_public" value="0" />'._('No').'
+ <br /><br />
+ <strong>'._('Allow Anonymous Posts?').'</strong><br />
+ <input type="radio" name="allow_anonymous" value="1" />'._('Yes').'<br />
+ <input type="radio" name="allow_anonymous" value="0" checked="checked" />'._('No').'
+ <br /><br />' .
+ html_build_select_box_from_assoc(array("0" => _('No Moderation') ,"1" => _('Moderated Level 1'),"2" => _('Moderated Level 2') ),"moderation_level",0) . '
+ <br />' . _('Moderated Level 1') . ': ' . _('To moderate anonymous posts (if allowed in public forum) and posts from non-member users.') . '<br />' . _('Moderated Level 2') . ': ' . _('To moderate ALL posts.') . '<p>
+
+ <strong>'._('Email All Posts To:').'</strong><br />
+ <input type="text" name="send_all_posts_to" value="" size="60" />
+ <br />
+ <input type="submit" name="submit" value="'._('Add This Forum').'" />
+ </p>
+ </form>';
forum_footer(array());
- } else if ($add_forum) {
+ } else if (getStringFromRequest('change_status')) {
/*
- Show the form for adding forums
+ Change a forum
*/
- forum_header(array('title'=>'Add a Forum','pagename'=>'forum_admin_addforum','sectionvals'=>group_getname($group_id)));
- $sql="SELECT forum_name FROM forum_group_list WHERE group_id='$group_id'";
- $result=db_query($sql);
- ShowResultSet($result,'Existing Forums');
+ $f = new Forum ($g,$group_forum_id);
+ if (!$f || !is_object($f)) {
+ exit_error('Error','Could Not Get Forum Object');
+ } elseif ($f->isError()) {
+ exit_error('Error',$f->getErrorMessage());
+ } elseif (!$f->userIsAdmin()) {
+ exit_permission_denied();
+ }
+ forum_header(array('title'=>_('Change forum status')));
+ echo '<p>'._('You can adjust forum features from here. Please note that private forums can still be viewed by members of your project, not the general public.').'</p>';
+ $fa = new ForumAdmin();
+ if ($fa->Authorized($group_id)) {
+ if ($fa->isForumAdmin($group_forum_id)) {
+ $fa->PrintAdminPendingOption($group_forum_id);
+ }
+ }
+
echo '
+ <form action="'.getStringFromServer('PHP_SELF').'" method="post">
+ <input type="hidden" name="post_changes" value="y" />
+ <input type="hidden" name="change_status" value="y" />
+ <input type="hidden" name="group_forum_id" value="'. $f->getID() .'" />
+ <input type="hidden" name="group_id" value="'.$group_id.'" />
+
+ <strong>'._('Allow Anonymous Posts?').'</strong><br />
+ <input type="radio" name="allow_anonymous" value="1"'.(($f->AllowAnonymous() == 1)?' checked="checked"':'').' /> '._('Yes').'<br />
+ <input type="radio" name="allow_anonymous" value="0"'.(($f->AllowAnonymous() == 0)?' checked="checked"':'').'/> '._('No').'<br />
+
+ <p />
+ <strong>'._('Is Public?').'</strong><br />
+ <input type="radio" name="is_public" value="1"'.(($f->isPublic() == 1)?' checked="checked"':'').' /> '._('Yes').'<br />
+ <input type="radio" name="is_public" value="0"'.(($f->isPublic() == 0)?' checked="checked"':'').' /> '._('No').'<br />
+ <input type="radio" name="is_public" value="9"'.(($f->isPublic() == 9)?' checked="checked"':'').' />'._('Suspended').'<br />
+ <p>' .
+ html_build_select_box_from_assoc(array("0" => _('No Moderation') ,"1" => _('Moderated Level 1'),"2" => _('Moderated Level 2') ),"moderation_level",$f->getModerationLevel()) . '
+ <br />' . _('Moderated Level 1') . ': ' . _('To moderate anonymous posts (if allowed in public forum) and posts from non-member users.') . '<br />' . _('Moderated Level 2') . ': ' . _('To moderate ALL posts.') . '<p>
+
- <FORM METHOD="POST" ACTION="'.$PHP_SELF.'">
- <INPUT TYPE="HIDDEN" NAME="post_changes" VALUE="y">
- <INPUT TYPE="HIDDEN" NAME="add_forum" VALUE="y">
- <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="'.$group_id.'">
- <B>Forum Name:</B><BR>
- <INPUT TYPE="TEXT" NAME="forum_name" VALUE="" SIZE="20" MAXLENGTH="30"><BR>
- <B>Description:</B><BR>
- <INPUT TYPE="TEXT" NAME="description" VALUE="" SIZE="40" MAXLENGTH="80"><BR>
- <B>Is Public?</B><BR>
- <INPUT TYPE="RADIO" NAME="is_public" VALUE="1" CHECKED> Yes<BR>
- <INPUT TYPE="RADIO" NAME="is_public" VALUE="0"> No<P>
- <P>
- <B><FONT COLOR="RED">Once you add a forum, it cannot be modified or deleted!</FONT></B>
- <P>
- <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="Add This Forum">
- </FORM>';
-
+ <strong>'._('Forum Name').':</strong><br />
+ <input type="text" name="forum_name" value="'. $f->getName() .'" size="20" maxlength="30" />
+ <p>
+ <strong>'._('Email All Posts To:').'</strong><br />
+ <input type="text" name="send_all_posts_to" value="'. $f->getSendAllPostsTo() .'" size="60" />
+ <p>
+ <strong>'._('Description').':</strong><br />
+ <input type="text" name="description" value="'. $f->getDescription() .'" size="60" maxlength="80" /><br />
+ <p>
+ <input type="submit" name="submit" value="'._('Update').'" />
+ </form><p>';
+ //echo '<a href="'.getStringFromServer('PHP_SELF').'?group_id='.$group_id.'&group_forum_id='.$group_forum_id.'&delete=1">'._('Delete Message').'</a><br />';
+ echo '<a href="'.getStringFromServer('PHP_SELF').'?group_id='.$group_id.'&group_forum_id='.$group_forum_id.'&deleteforum=1">'._('Delete entire forum and all content').'</a><br />';
forum_footer(array());
- } else if ($change_status) {
- /*
- Change a forum to public/private
- */
- forum_header(array('title'=>'Change Forum Status','pagename'=>'forum_admin_changestatus','sectionvals'=>group_getname($group_id)));
+ } elseif ($deleteforum && $group_forum_id) {
- $sql="SELECT * FROM forum_group_list WHERE group_id='$group_id'";
- $result=db_query($sql);
- $rows=db_numrows($result);
+ $f = new Forum ($g,$group_forum_id);
+ if (!$f || !is_object($f)) {
+ exit_error('Error','Could Not Get Forum Object');
+ } elseif ($f->isError()) {
+ exit_error('Error',$f->getErrorMessage());
+ } elseif (!$f->userIsAdmin()) {
+ exit_permission_denied();
+ }
+ forum_header(array('title'=>_('Delete')));
+ echo '<p>
+ <strong>'._('You are about to permanently and irretrievably delete this entire forum and all its contents!').'</strong><br />
+ </p>
+ <form method="post" action="'.getStringFromServer('PHP_SELF').'">
+ <input type="hidden" name="post_changes" value="y" />
+ <input type="hidden" name="deleteforum" value="y" />
+ <input type="hidden" name="group_id" value="'.$group_id.'" />
+ <input type="hidden" name="group_forum_id" value="'.$group_forum_id.'" />
+ <input type="checkbox" name="sure" value="1" />'._('I\'m Sure').'<br />
+ <input type="checkbox" name="really_sure" value="1" />'._('I\'m Really Sure').'<br />
+ <input type="submit" name="submit" value="'._('Delete').'" />
+ </form>';
+ forum_footer(array());
- if (!$result || $rows < 1) {
- echo '
- <P>No forums found for this project';
- } else {
- echo '
- <P>
- You can adjust forum features from here. Please note that private forums
- can still be viewed by members of your project, not the general public.<P>';
-
- $title_arr=array();
- $title_arr[]='Forum';
- $title_arr[]='Status';
- $title_arr[]='Update';
+ } elseif ( getStringFromRequest("deletemsg") ) {
+ // delete message handling
- echo html_build_list_table_top ($title_arr);
-
- for ($i=0; $i<$rows; $i++) {
- echo '
- <TR BGCOLOR="'. html_get_alt_row_color($i) .'"><TD COLSPAN="3"><B>'.db_result($result,$i,'forum_name').'</B></TD></TR>';
- echo '
- <FORM ACTION="'.$PHP_SELF.'" METHOD="POST">
- <INPUT TYPE="HIDDEN" NAME="post_changes" VALUE="y">
- <INPUT TYPE="HIDDEN" NAME="change_status" VALUE="y">
- <INPUT TYPE="HIDDEN" NAME="group_forum_id" VALUE="'.db_result($result,$i,'group_forum_id').'">
- <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="'.$group_id.'">
- <TR BGCOLOR="'. html_get_alt_row_color($i) .'"><TD>
- <FONT SIZE="-1">
- <B>Allow Anonymous Posts?</B><BR>
- <INPUT TYPE="RADIO" NAME="allow_anonymous" VALUE="1"'.((db_result($result,$i,'allow_anonymous')=='1')?' CHECKED':'').'> Yes<BR>
- <INPUT TYPE="RADIO" NAME="allow_anonymous" VALUE="0"'.((db_result($result,$i,'allow_anonymous')=='0')?' CHECKED':'').'> No<BR>
- </FONT>
- </TD>
- <TD>
- <FONT SIZE="-1">
- <B>Is Public?</B><BR>
- <INPUT TYPE="RADIO" NAME="is_public" VALUE="1"'.((db_result($result,$i,'is_public')=='1')?' CHECKED':'').'> Yes<BR>
- <INPUT TYPE="RADIO" NAME="is_public" VALUE="0"'.((db_result($result,$i,'is_public')=='0')?' CHECKED':'').'> No<BR>
- <INPUT TYPE="RADIO" NAME="is_public" VALUE="9"'.((db_result($result,$i,'is_public')=='9')?' CHECKED':'').'> Deleted<BR>
- </TD><TD>
- <FONT SIZE="-1">
- <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="Update Info">
- </TD></TR>
- <TR BGCOLOR="'. html_get_alt_row_color($i) .'"><TD>
- <B>Forum Name:</B><BR>
- <INPUT TYPE="TEXT" NAME="forum_name" VALUE="'. db_result($result,$i,'forum_name').'" SIZE="20" MAXLENGTH="30">
- </TD><TD COLSPAN="2">
- <B>Email All Posts To:</B><BR>
- <INPUT TYPE="TEXT" NAME="send_all_posts_to" VALUE="'. db_result($result,$i,'send_all_posts_to').'" SIZE="30" MAXLENGTH="50">
- </TD></TR>
- <TR BGCOLOR="'. html_get_alt_row_color($i) .'"><TD COLSPAN="3">
- <B>Description:</B><BR>
- <INPUT TYPE="TEXT" NAME="description" VALUE="'. db_result($result,$i,'description') .'" SIZE="40" MAXLENGTH="80"><BR>
- </TD></TR></FORM>';
+ $fa = new ForumAdmin();
+ if ($fa->Authorized($group_id)) {
+ $forum_id = getStringFromRequest("forum_id");
+ $thread_id = getStringFromRequest("thread_id");
+ $msg_id = getStringFromRequest("deletemsg");
+ if ($fa->isForumAdmin($forum_id)) {
+ if (getStringFromRequest("ok")) {
+ //actually delete the message
+ $feedback .= $fa->ExecuteAction("delete");
+ forum_header(array('title'=>_('Delete a Message')));
+ echo '<p>'.util_make_link ('/forum/forum.php?forum_id=' . $forum_id, _("Return to the forum")) ;
+ forum_footer(array());
+ } elseif (getStringFromRequest("cancel")) {
+ // the user cancelled the request, go back to forum
+ //if thread_id is 0, then we came from message.php. else, we came from forum.php
+ if (!$thread_id) {
+ header("Location: /forum/message.php?msg_id=$msg_id");
+ } else {
+ header("Location: /forum/forum.php?thread_id=$thread_id&forum_id=$forum_id");
+ }
+ exit;
+ } else {
+ //print the delete message confirmation
+ forum_header(array('title'=>_('Delete a Message')));
+ echo '<center>
+ <form action="'.getStringFromServer('PHP_SELF').'" method="post">
+ <h3>' . _('WARNING! You are about to permanently delete a message and all of its followups!!') . '</h3><p>
+ <p>
+ <input type="submit" name="ok" value="' . _('Yes') . '" />
+ <input type="submit" name="cancel" value="' . _('No') . '" />
+ <input type="hidden" name="deletemsg" value="'.$msg_id.'" />
+ <input type="hidden" name="group_id" value="'.$group_id.'" />
+ <input type="hidden" name="forum_id" value="'.$forum_id.'" />
+ <input type="hidden" name="thread_id" value="'.$thread_id.'" />
+ </p>
+ </form>
+ </center>';
+ forum_footer(array());
+ }
+ } else {
+ exit_permission_denied();
+ }
+ } else {
+ //manage auth errors
+ if ($fa->isGroupIdError()) {
+ exit_no_group();
+ } elseif ($fa->isPermissionDeniedError()) {
+ exit_permission_denied();
+ }
+ }
+ } elseif (getStringFromRequest("editmsg")) {
+ // edit message handling
+ $forum_id = getStringFromRequest("forum_id");
+ $thread_id = getStringFromRequest("thread_id");
+ $msg_id = getStringFromRequest("editmsg");
+ $fa = new ForumAdmin();
+ if ($fa->Authorized($group_id)) {
+ if ($fa->isForumAdmin($forum_id)) {
+ if (getStringFromRequest("ok")) {
+ //actually finish editing the message and save the contents
+ $f = new Forum ($fa->GetGroupObject(),$forum_id);
+ if (!$f || !is_object($f)) {
+ exit_error('Error','Error Getting Forum');
+ } elseif ($f->isError()) {
+ exit_error('Error',$f->getErrorMessage());
+ }
+ $fm=new ForumMessage($f,$msg_id,false,false);
+ if (!$fm || !is_object($fm)) {
+ exit_error(_('Error'),_('Error getting new forum message'));
+ } elseif ($fm->isError()) {
+ exit_error(_('Error'),$fm->getErrorMessage());
+ }
+ $subject = getStringFromRequest('subject');
+ $body = getStringFromRequest('body');
+
+ $sanitizer = new TextSanitizer();
+ $body = $sanitizer->SanitizeHtml($body);
+
+ $is_followup_to = getStringFromRequest('is_followup_to');
+ $form_key = getStringFromRequest('form_key');
+ $posted_by = getStringFromRequest('posted_by');
+ $post_date = getStringFromRequest('post_date');
+ $is_followup_to = getStringFromRequest('is_followup_to');
+ $has_followups = getStringFromRequest('has_followups');
+ $most_recent_date = getStringFromRequest('most_recent_date');
+ if ($fm->updatemsg($forum_id,$posted_by,$subject,$body,$post_date,$is_followup_to,$thread_id,$has_followups,$most_recent_date)) {
+ $feedback .= _('Message Edited Successfully');
+ } else {
+ $feedback .= $fm->getErrorMessage();
+ }
+ forum_header(array('title'=>_('Edit a Message')));
+ echo '<p>'.util_make_link ('/forum/forum.php?forum_id=' . $forum_id, _("Return to the forum")) ;
+ forum_footer(array());
+ } elseif (getStringFromRequest("cancel")) {
+ // the user cancelled the request, go back to forum
+ header("Location: /forum/message.php?msg_id=$msg_id");
+ exit;
+ } else {
+ //print the edit message confirmation
+
+ $f = new Forum ($fa->GetGroupObject(),$forum_id);
+ if (!$f || !is_object($f)) {
+ exit_error('Error','Error Getting Forum');
+ } elseif ($f->isError()) {
+ exit_error('Error',$f->getErrorMessage());
+ }
+
+ $fm=new ForumMessage($f,$msg_id,false,false);
+ if (!$fm || !is_object($fm)) {
+ exit_error(_('Error'),_('Error Getting ForumMessage'));
+ } elseif ($fm->isError()) {
+ exit_error(_('Error'),$fm->getErrorMessage());
+ }
+
+ $fh = new ForumHTML($f);
+ if (!$fh || !is_object($fh)) {
+ exit_error(_('Error'),_('Error Getting ForumHTML'));
+ } elseif ($fh->isError()) {
+ exit_error(_('Error'),$fh->getErrorMessage());
+ }
+
+ forum_header(array('title'=>_('Edit a Message')));
+ $fh->showEditForm($fm);
+ forum_footer(array());
+ }
+ } else {
+ exit_permission_denied();
+ }
+ } else {
+ //manage auth errors
+ if ($fa->isGroupIdError()) {
+ exit_no_group();
+ } elseif ($fa->isPermissionDeniedError()) {
+ exit_permission_denied();
}
- echo '</TABLE>';
}
+ } else {
+ /*
+ Show main page for choosing
+ either moderator or delete
+ */
+ forum_header(array('title'=>_('Forums: Administration')));
- forum_footer(array());
+ //
+ // Add new forum
+ //
+ if ($p->isForumAdmin()) {
+ $fa = new ForumAdmin();
+ $fa->PrintAdminOptions();
+ }
+ //
+ // Get existing forums
+ //
+ $ff=new ForumFactory($g);
+ if (!$ff || !is_object($ff) || $ff->isError()) {
+ exit_error(_('Error'),$ff->getErrorMessage());
+ }
+
+ $farr =& $ff->getForumsAdmin();
+
+ if ($ff->isError()) {
+ echo '<h1>'.sprintf(_('No Forums Found For %1$s'), $g->getPublicName()) .'</h1>';
+ echo $ff->getErrorMessage();
+ forum_footer(array());
+ exit;
+ }
- } else {
/*
- Show main page for choosing
- either moderotor or delete
+ List the existing forums so they can be edited.
*/
- forum_header(array('title'=>'Forum Administration','pagename'=>'forum_admin','sectionvals'=>group_getname($group_id)));
- echo '
- <P>
- <A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&add_forum=1">Add Forum</A><BR>
- <A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&delete=1">Delete Message</A><BR>
- <A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&change_status=1">Update Forum Info/Status</A>';
+ for ($j = 0; $j < count($farr); $j++) {
+ if (!is_object($farr[$j])) {
+ //just skip it - this object should never have been placed here
+ } elseif ($farr[$j]->isError()) {
+ echo $farr[$j]->getErrorMessage();
+ } else {
+ echo '<p><a href="'.getStringFromServer('PHP_SELF').'?group_id='.$group_id.'&change_status=1&group_forum_id='. $farr[$j]->getID() .'">'.
+ $farr[$j]->getName() .'</a><br />'.$farr[$j]->getDescription().'<br /><a href="monitor.php?group_id='.$group_id.'&group_forum_id='. $farr[$j]->getID() .'">'.
+ _('Monitoring Users').'</a></p>';
+ }
+ }
forum_footer(array());
}