isError()) {
exit_no_group();
}
$p =& $g->getPermission( session_get_user() );
if (!$p || !is_object($p) || $p->isError()) {
exit_permission_denied();
}
if (getStringFromRequest('post_changes')) {
/*
Update the DB to reflect the changes
*/
if ($deleteforum) {
/*
Deleting entire forum
*/
$f=new Forum($g,$group_forum_id);
if (!$f || !is_object($f)) {
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_getting_forum'));
} elseif ($f->isError()) {
exit_error($Language->getText('general','error'),$f->getErrorMessage());
}
if (!$f->userIsAdmin()) {
exit_permission_denied();
}
if (!$f->delete(getStringFromRequest('sure'),getStringFromRequest('really_sure'))) {
exit_error($Language->getText('general','error'),$f->getErrorMessage());
} else {
$feedback .= $Language->getText('forum_admin','deleted');
$group_forum_id=0;
$deleteforum=0;
}
} elseif (getStringFromRequest('delete')) {
$msg_id = getStringFromRequest('msg_id');
/*
Deleting messages or threads
*/
$f=new Forum($g,$group_forum_id);
if (!$f || !is_object($f)) {
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_getting_forum'));
} elseif ($f->isError()) {
exit_error($Language->getText('general','error'),$f->getErrorMessage());
}
if (!$f->userIsAdmin()) {
exit_permission_denied();
}
$fm=new ForumMessage($f,$msg_id);
if (!$fm || !is_object($fm)) {
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_getting_forum'));
} elseif ($fm->isError()) {
exit_error($Language->getText('general','error'),$fm->getErrorMessage());
}
$count=$fm->delete();
if (!$count || $fm->isError()) {
exit_error($Language->getText('general','error'),$fm->getErrorMessage());
} else {
$feedback .= $Language->getText('forum_admin_delete_messages','messages_deleted',$count);
}
} else if (getStringFromRequest('add_forum')) {
if (!form_key_is_valid(getStringFromRequest('form_key'))) {
exit_form_double_submit();
}
$forum_name = getStringFromRequest('forum_name');
$description = getStringFromRequest('description');
$is_public = getStringFromRequest('is_public');
$send_all_posts_to = getStringFromRequest('send_all_posts_to');
$allow_anonymous = getStringFromRequest('allow_anonymous');
/*
Adding forums to this group
*/
if (!$p->isForumAdmin()) {
form_release_key($_POST['form_key']);
exit_permission_denied();
}
$f=new Forum($g);
if (!$f || !is_object($f)) {
form_release_key($_POST['form_key']);
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_getting_forum'));
} elseif ($f->isError()) {
form_release_key($_POST['form_key']);
exit_error($Language->getText('general','error'),$f->getErrorMessage());
}
if (!$f->create($forum_name,$description,$is_public,$send_all_posts_to,1,$allow_anonymous)) {
form_release_key($_POST['form_key']);
exit_error($Language->getText('general','error'),$f->getErrorMessage());
} else {
$feedback .= $Language->getText('forum_admin_addforum','forum_created');
}
} else if (getStringFromRequest('change_status')) {
$forum_name = getStringFromRequest('forum_name');
$description = getStringFromRequest('description');
$send_all_posts_to = getStringFromRequest('send_all_posts_to');
/*
Change a forum
*/
$f=new Forum($g,$group_forum_id);
if (!$f || !is_object($f)) {
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_getting_forum'));
} elseif ($f->isError()) {
exit_error($Language->getText('general','error'),$f->getErrorMessage());
}
if (!$f->userIsAdmin()) {
exit_permission_denied();
}
if (!$f->update($forum_name,$description,$send_all_posts_to)) {
exit_error($Language->getText('general','error'),$f->getErrorMessage());
} else {
$feedback .= $Language->getText('forum_admin_changestatus','update_successful');
}
}
}
if (getStringFromRequest('add_forum')) {
/*
Show the form for adding forums
*/
forum_header(array('title'=>$Language->getText('forum_admin_addforum','title')));
echo '
'.$Language->getText('forum_admin_changestatus','intro').'
'; echo '';
echo ''.$Language->getText('forum_admin','delete_message').'
';
echo ''.$Language->getText('forum_admin','delete_forum').'
';
forum_footer(array());
} elseif ($deleteforum && $group_forum_id) {
$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'=>$Language->getText('forum_admin','delete')));
echo '
'.$Language->getText('forum_admin','delete_warning').'
'.$Language->getText('general','delete').'
'.$Language->getText('forum_admin','add_forum').'
'; } } forum_footer(array()); } } else { /* Not logged in or insufficient privileges */ if (!$group_id) { exit_no_group(); } else { exit_permission_denied(); } } ?>