isError()) { exit_no_group(); } if (!$g->usesForum()) { exit_error(sprintf(_('%s does not use the Forum tool'), $g->getPublicName()), 'forums'); } session_require_perm ('forum_admin', $group_id) ; if (getStringFromRequest('post_changes')) { /* Update the DB to reflect the changes */ if ($deleteforum) { /* Deleting entire forum */ $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('forums'); } if (check_email_available($g, $g->getUnixName() . '-' . getStringFromRequest('forum_name'), $error_msg)) { $fa = new ForumAdmin($group_id); $feedback .= $fa->ExecuteAction("add_forum"); $g->normalizeAllRoles () ; } } else if (getStringFromRequest('change_status')) { $fa = new ForumAdmin($group_id); $feedback .= $fa->ExecuteAction("change_status"); } } if (getStringFromRequest('add_forum')) { /* Show the form for adding forums */ forum_header(array('title'=>_('Add forum'))); echo '

'._('Forum Name').':

'._('Description').':

'._('Email All Posts To:').'

'; forum_footer(array()); } else if (getStringFromRequest('change_status')) { /* Change a forum */ $f = new Forum ($g,$group_forum_id); forum_header(array('title'=>_('Change forum status'))); echo '

'._('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.').'

'; $fa = new ForumAdmin($f->Group->getID()); $fa->PrintAdminPendingOption($group_forum_id); echo '

'._('Forum Name').':

'._('Email All Posts To:').'

'._('Description').':

'; //echo ''._('Delete Message').'
'; echo ''._('Delete entire forum and all content').'

'; forum_footer(array()); } elseif ($deleteforum && $group_forum_id) { $f = new Forum ($g,$group_forum_id); forum_header(array('title'=>_('Delete'))); echo '

'._('You are about to permanently and irretrievably delete this entire forum and all its contents!').'

'._('I\'m Sure').'
'._('I\'m Really Sure').'
'; forum_footer(array()); } elseif ( getStringFromRequest("deletemsg") ) { // delete message handling $forum_id = getIntFromRequest("forum_id"); $thread_id = getIntFromRequest("thread_id"); $msg_id = getIntFromRequest("deletemsg"); $f = forum_get_object ($forum_id) ; $fa = new ForumAdmin($f->Group->getID()); if (getStringFromRequest("ok")) { //actually delete the message $feedback .= $fa->ExecuteAction("delete"); forum_header(array('title'=>_('Delete a Message'))); echo '

'.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) { session_redirect('/forum/message.php?msg_id='.$msg_id); } else { session_redirect('/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 '

' . _('WARNING! You are about to permanently delete a message and all of its followups!!') . '

'; forum_footer(array()); } } elseif (getStringFromRequest("editmsg")) { // edit message handling $forum_id = getIntFromRequest("forum_id"); $thread_id = getIntFromRequest("thread_id"); $msg_id = getIntFromRequest("editmsg"); $f = forum_get_object ($forum_id) ; $fa = new ForumAdmin($f->Group->getID()); 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 Getting Forum'),'forums'); } elseif ($f->isError()) { exit_error($f->getErrorMessage(),'forums'); } $fm=new ForumMessage($f,$msg_id,false,false); if (!$fm || !is_object($fm)) { exit_error(_('Error getting new forum message'),'forums'); } elseif ($fm->isError()) { exit_error($fm->getErrorMessage(),'forums'); } $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 { $error_msg .= $fm->getErrorMessage(); } forum_header(array('title'=>_('Edit a Message'))); echo '

'.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 session_redirect('/forum/message.php?msg_id='.$msg_id); } else { //print the edit message confirmation $f = new Forum ($fa->GetGroupObject(),$forum_id); if (!$f || !is_object($f)) { exit_error(_('Error Getting Forum'),'forums'); } elseif ($f->isError()) { exit_error($f->getErrorMessage(),'forums'); } $fm=new ForumMessage($f,$msg_id,false,false); if (!$fm || !is_object($fm)) { exit_error(_('Error Getting ForumMessage'),'forums'); } elseif ($fm->isError()) { exit_error($fm->getErrorMessage(),'forums'); } $fh = new ForumHTML($f); if (!$fh || !is_object($fh)) { exit_error(_('Error Getting ForumHTML'),'forums'); } elseif ($fh->isError()) { exit_error($fh->getErrorMessage(),'forums'); } forum_header(array('title'=>_('Edit a Message'))); $fh->showEditForm($fm); forum_footer(array()); } } elseif (getStringFromRequest("movethread")) { $thread_id = getIntFromRequest("movethread"); $msg_id = getStringFromRequest("msg_id"); $forum_id = getIntFromRequest("forum_id"); $return_to_message = getIntFromRequest("return_to_message"); $new_forum_id = getIntFromRequest("new_forum_id"); $f = forum_get_object ($forum_id) ; $fa = new ForumAdmin($f->Group->getID()); if (getStringFromRequest("ok")) { if ($forum_id == $new_forum_id) { $feedback .= _('Thread not moved'); } else { // Move message in another forum $f_from = new Forum ($fa->GetGroupObject(),$forum_id); if (!$f_from || !is_object($f_from)) { exit_error(_('Could Not Get Forum Object'),'forums'); } elseif ($f_from->isError()) { exit_error($f_from->getErrorMessage(),'forums'); } $f_to = new Forum ($fa->GetGroupObject(),$new_forum_id); if (!$f_to || !is_object($f_to)) { exit_error(_('Could Not Get Forum Object'),'forums'); } elseif ($f_to->isError()) { exit_error($f_to->getErrorMessage(),'forums'); } $ff = new ForumFactory($g); if (!$ff || !is_object($ff) || $ff->isError()) { exit_error($ff->getErrorMessage(),'forums'); } if ($ff->moveThread($new_forum_id,$thread_id,$forum_id)) { $feedback .= sprintf(_('Thread successfully moved from %1$s forum to %2$s forum'), $f_from->getName(),$f_to->getName()); } else { $error_msg .= $ff->getErrorMessage(); } } forum_header(array('title'=>_('Edit a Message'))); echo '

Return to the forum

'; echo '

Return to the thread

'; forum_footer(array()); } elseif (getStringFromRequest("cancel")) { // the user cancelled the request, go back to forum if ($return_to_message) { session_redirect('/forum/message.php?msg_id='.$msg_id); } else { session_redirect('/forum/forum.php?thread_id='.$thread_id.'&forum_id='.$forum_id); } exit; } else { // Display select box to select new forum forum_header(array('title'=>_('Move Thread'))); $ff = new ForumFactory($g); if (!$ff || !is_object($ff) || $ff->isError()) { exit_error($ff->getErrorMessage(),'forums'); } $farr = $ff->getForums(); if ($ff->isError()) { echo '

'.sprintf(_('No Forums Found For %s'), $g->getPublicName()) . $ff->getErrorMessage().'

'; forum_footer(array()); exit; } /* List the existing forums so they can be edited. */ $forums = array(); 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 { $forums[$farr[$j]->getID()] = $farr[$j]->getName(); } } $f_from = new Forum ($fa->GetGroupObject(),$forum_id); if (!$f_from || !is_object($f_from)) { exit_error(_('Could Not Get Forum Object'),'forums'); } elseif ($f_from->isError()) { exit_error($f_from->getErrorMessage(),'forums'); } echo '

' . sprintf(_('Move thread from %s forum to the following forum:'), $f_from->getName()) . '

' . html_build_select_box_from_assoc($forums,'new_forum_id',$forum_id) . '

'; forum_footer(array()); } } else { /* Show main page for choosing either moderator or delete */ forum_header(array('title'=>_('Forums Administration'))); // // Add new forum // $fa = new ForumAdmin($g->getID()); $fa->PrintAdminOptions(); if ($f) plugin_hook ("blocks", "forum index"); // // Get existing forums // $ff=new ForumFactory($g); if (!$ff || !is_object($ff) || $ff->isError()) { exit_error($ff->getErrorMessage(),'forums'); } $farr = $ff->getForumsAdmin(); if ($ff->isError()) { echo '

'.sprintf(_('No Forums Found For %s'), $g->getPublicName()) . $ff->getErrorMessage().'

'; forum_footer(array()); exit; } /* List the existing forums so they can be edited. */ 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 '

'. $farr[$j]->getName() .'
'.$farr[$j]->getDescription().'
'. _('Monitoring Users').'

'; } } forum_footer(array()); } // Local Variables: // mode: php // c-file-style: "bsd" // End: ?>