");
define("IMAGE_sub", "
");
define("IMAGE_nosub", "
");
$deltest = array_flip($_POST);
if (e_QUERY)
{
$tmp = explode(".", e_QUERY);
$action = $tmp[0];
$sub_action = $tmp[1];
$id = $tmp[2];
unset($tmp);
}
if(isset($_POST['delete']))
{
$tmp = array_pop(array_flip($_POST['delete']));
list($delete, $del_id) = explode("_", $tmp);
}
if(isset($_POST['setMods']))
{
foreach($_POST['mods'] as $fid => $modid)
{
$sql->db_Update('forum',"forum_moderators = '{$modid}' WHERE forum_id = {$fid}");
}
$forum->show_message(FORLAN_144);
}
if(isset($_POST['tools']))
{
$msg = "";
if(isset($_POST['forum_all']))
{
$fList[]='all';
}
else
{
foreach(array_keys($_POST['forumlist']) as $k)
{
$fList[] = $k;
}
}
foreach($fList as $fid)
{
if(isset($_POST['counts']))
{
$for->forum_update_counts($fid, $_POST['counts_threads']);
$msg .= FORLAN_167.": $fid
";
}
if(isset($_POST['lastpost']))
{
$with_threads = (isset($_POST['lastpost_nothread'])) ? FALSE : TRUE;
$for->update_lastpost('forum', $fid, $with_threads);
$msg .= FORLAN_168.": $fid
";
}
}
if(isset($_POST['userpostcounts']))
{
$list = $for->get_user_counts();
foreach($list as $uid => $cnt)
{
$sql->db_Update("user","user_forums = '{$cnt}' WHERE user_id = '{$uid}'");
}
$msg .= FORLAN_169."
";
}
$forum->show_message($msg);
}
if(isset($_POST['create_sub']))
{
$fid = intval($sub_action);
$_name = $tp->toDB($_POST['subname_new']);
$_desc = $tp->toDB($_POST['subdesc_new']);
$_order = intval($_POST['suborder_new']);
if($_name != "" && $sql->db_Select('forum', '*', "forum_id = {$fid}"))
{
$row = $sql->db_Fetch();
if($sql->db_Insert("forum", "0, '{$_name}', '{$_desc}', '{$row['forum_parent']}', '{$fid}', '".time()."', '{$row['forum_moderators']}', 0, 0, '', '', '{$row['forum_class']}', '{$_order}', '{$row['forum_postclass']}'"))
{
$forum->show_message(LAN_CREATED);
}
else
{
$forum->show_message(LAN_CREATED_FAILED);
}
}
}
if(isset($_POST['update_subs']))
{
$msg = "";
foreach(array_keys($_POST['subname']) as $id)
{
if($_POST['subname'][$id] == "")
{
if ($sql->db_Delete("forum", "forum_id='$id' "))
{
$msg .= FORLAN_150." ".$id." ".LAN_DELETED."
";
$cnt = $sql->db_Delete("forum_t", "thread_forum_id = {$id}");
$msg .= $cnt." ".FORLAN_152." ".LAN_DELETED."
";
}
}
else
{
$_name = $tp->toDB($_POST['subname'][$id]);
$_desc = $tp->toDB($_POST['subdesc'][$id]);
$_order = intval($_POST['suborder'][$id]);
if($sql->db_Update("forum", "forum_name='{$_name}', forum_description='{$_desc}', forum_order='{$_order}' WHERE forum_id = {$id}"))
{
$msg .= FORLAN_150." ".$id." ".LAN_UPDATED."
";
}
}
}
if($msg)
{
$forum->show_message($msg);
}
}
if(isset($_POST['submit_parent']))
{
$_POST['forum_name'] = $tp->toDB($_POST['forum_name']);
$sql->db_Insert("forum", "0, '".$_POST['forum_name']."', '', '0', '0', '".time()."', '', '0', '0', '', '', '".$_POST['forum_class']."', '0', '{$_POST['forum_postclass']}'");
$forum->show_message(FORLAN_13);
}
if(isset($_POST['update_parent']))
{
$_POST['forum_name'] = $tp->toDB($_POST['forum_name']);
$sql->db_Update("forum", "forum_name='".$_POST['forum_name']."', forum_class='".$_POST['forum_class']."', forum_postclass='{$_POST['forum_postclass']}' WHERE forum_id=$id");
$forum->show_message(FORLAN_14);
$action = "main";
}
if(isset($_POST['submit_forum']))
{
$mods = $_POST['forum_moderators'];
$_POST['forum_name'] = $tp->toDB($_POST['forum_name']);
$_POST['forum_description'] = $tp->toDB($_POST['forum_description']);
$sql->db_Insert("forum", "0, '".$_POST['forum_name']."', '".$_POST['forum_description']."', '".$_POST['forum_parent']."', '0', '".time()."', '".$mods."', 0, 0, '', '', '".$_POST['forum_class']."', 0, '{$_POST['forum_postclass']}'");
$forum->show_message(FORLAN_11);
}
if(isset($_POST['update_forum']))
{
$mods = $_POST['forum_moderators'];
$_POST['forum_name'] = $tp->toDB($_POST['forum_name']);
$_POST['forum_description'] = $tp->toDB($_POST['forum_description']);
$forum_parent = $row['forum_id'];
$sql->db_Update("forum", "forum_name='".$_POST['forum_name']."', forum_description='".$_POST['forum_description']."', forum_parent='".$_POST['forum_parent']."', forum_moderators='".$mods."', forum_class='".$_POST['forum_class']."', forum_postclass='{$_POST['forum_postclass']}' WHERE forum_id=$id");
$sql->db_Update("forum", "forum_moderators='".$mods."', forum_class='".$_POST['forum_class']."', forum_postclass='{$_POST['forum_postclass']}' WHERE forum_sub=$id");
$forum->show_message(FORLAN_12);
$action = "main";
}
if (isset($_POST['update_order']))
{
extract($_POST);
while (list($key, $id) = each($forum_order))
{
$tmp = explode(".", $id);
$sql->db_Update("forum", "forum_order=".$tmp[1]." WHERE forum_id=".$tmp[0]);
}
$forum->show_message(FORLAN_73);
}
if (isset($_POST['updateoptions']))
{
$pref['email_notify'] = $_POST['email_notify'];
$pref['email_notify_on'] = $_POST['email_notify_on'];
$pref['forum_poll'] = $_POST['forum_poll'];
$pref['forum_popular'] = $_POST['forum_popular'];
$pref['forum_track'] = $_POST['forum_track'];
$pref['forum_eprefix'] = $_POST['forum_eprefix'];
$pref['forum_enclose'] = $_POST['forum_enclose'];
$pref['forum_title'] = $_POST['forum_title'];
$pref['forum_postspage'] = $_POST['forum_postspage'];
$pref['html_post'] = $_POST['html_post'];
$pref['forum_attach'] = $_POST['forum_attach'];
$pref['forum_redirect'] = $_POST['forum_redirect'];
$pref['forum_user_customtitle'] = $_POST['forum_user_customtitle'];
$pref['reported_post_email'] = $_POST['reported_post_email'];
$pref['forum_tooltip'] = $_POST['forum_tooltip'];
$pref['forum_tiplength'] = $_POST['forum_tiplength'];
$pref['forum_hilightsticky'] = $_POST['forum_hilightsticky'];
$pref['forum_maxwidth'] = $_POST['forum_maxwidth'];
$pref['forum_linkimg'] = $_POST['forum_linkimg'];
save_prefs();
$forum->show_message(FORLAN_10);
}
if (isset($_POST['do_prune']))
{
$msg = $for->forum_prune($_POST['prune_type'], $_POST['prune_days'], $_POST['pruneForum']);
$forum->show_message($msg);
$action = "main";
}
if (isset($_POST['set_ranks']))
{
extract($_POST);
for($a = 0; $a <= 9; $a++)
{
$r_names .= $tp->toDB($rank_names[$a]).",";
$r_thresholds .= $tp->toDB($rank_thresholds[$a]).",";
$r_images .= $tp->toDB($rank_images[$a]).",";
}
$pref['rank_main_admin'] = $_POST['rank_main_admin'];
$pref['rank_main_admin_image'] = $_POST['rank_main_admin_image'];
$pref['rank_admin'] = $_POST['rank_admin'];
$pref['rank_admin_image'] = $_POST['rank_admin_image'];
$pref['rank_moderator'] = $_POST['rank_moderator'];
$pref['rank_moderator_image'] = $_POST['rank_moderator_image'];
$pref['forum_levels'] = $r_names;
$pref['forum_thresholds'] = $r_thresholds;
$pref['forum_images'] = $r_images;
save_prefs();
$forum->show_message(FORLAN_95);
}
if (isset($_POST['frsubmit']))
{
$guestrules = $tp->toDB($_POST['guestrules']);
$memberrules = $tp->toDB($_POST['memberrules']);
$adminrules = $tp->toDB($_POST['adminrules']);
if(!$sql->db_Update("generic", "gen_chardata ='$guestrules', gen_intdata='".$_POST['guest_active']."' WHERE gen_type='forum_rules_guest' "))
{
$sql -> db_Insert("generic", "0, 'forum_rules_guest', '".time()."', 0, '', '".$_POST['guest_active']."', '$guestrules' ");
}
if(!$sql->db_Update("generic", "gen_chardata ='$memberrules', gen_intdata='".$_POST['member_active']."' WHERE gen_type='forum_rules_member' "))
{
$sql -> db_Insert("generic", "0, 'forum_rules_member', '".time()."', 0, '', '".$_POST['member_active']."', '$memberrules' ");
}
if(!$sql->db_Update("generic", "gen_chardata ='$adminrules', gen_intdata='".$_POST['admin_active']."' WHERE gen_type='forum_rules_admin' "))
{
$sql -> db_Insert("generic", "0, 'forum_rules_admin', '".time()."', 0, '', '".$_POST['admin_active']."', '$adminrules' ");
}
}
if ($delete == 'main') {
if ($sql->db_Delete("forum", "forum_id='$del_id' ")) {
$forum->show_message(FORLAN_96);
}
}
if ($action == "create")
{
if ($sql->db_Select("forum", "*", "forum_parent='0' "))
{
$forum->create_forums($sub_action, $id);
}
else
{
header("location:".e_ADMIN."forum.php");
exit;
}
}
if ($delete == 'cat')
{
if ($sql->db_Delete("forum", "forum_id='$del_id' "))
{
$sql->db_Delete("forum", "forum_parent='$del_id' ");
$forum->show_message(FORLAN_97);
$action = "main";
}
}
if($action == "delete")
{
$forum->delete_item(intval($sub_action));
}
if ($action == "cat") {
$forum->create_parents($sub_action, $id);
}
if ($action == "order") {
$forum->show_existing_forums($sub_action, $id, TRUE);
}
if ($action == "opt")
{
$forum->show_prefs();
}
if ($action == "mods")
{
$forum->show_mods();
}
if ($action == "tools")
{
$forum->show_tools();
}
if ($action == "prune")
{
$forum->show_prune();
}
if ($action == "rank")
{
$forum->show_levels();
}
if ($action == "rules")
{
$forum->show_rules();
}
if($action == 'subs')
{
$forum->show_subs($sub_action);
}
if ($delete == 'reported')
{
$sql->db_Delete("generic", "gen_id='$del_id' ");
$forum->show_message(FORLAN_118);
}
if ($action == "sr")
{
$forum->show_reported($sub_action);
}
if (!e_QUERY || $action == "main")
{
$forum->show_existing_forums($sub_action, $id);
}
//$forum->show_options($action);
require_once(e_ADMIN."footer.php");
function headerjs()
{
global $tp;
// These functions need to be removed and replaced with the generic jsconfirm() function.
$headerjs = "";
return $headerjs;
}
class forum
{
function show_options($action)
{
global $sql;
if ($action == "")
{
$action = "main";
}
// ##### Display options ---------------------------------------------------------------------------------------------------------
$var['main']['text'] = FORLAN_76;
$var['main']['link'] = e_SELF;
$var['cat']['text'] = FORLAN_83;
$var['cat']['link'] = e_SELF."?cat";
if ($sql->db_Select("forum", "*", "forum_parent='0' "))
{
$var['create']['text'] = FORLAN_77;
$var['create']['link'] = e_SELF."?create";
}
$var['order']['text'] = FORLAN_78;
$var['order']['link'] = e_SELF."?order";
$var['opt']['text'] = FORLAN_79;
$var['opt']['link'] = e_SELF."?opt";
$var['prune']['text'] = FORLAN_59;
$var['prune']['link'] = e_SELF."?prune";
$var['rank']['text'] = FORLAN_63;
$var['rank']['link'] = e_SELF."?rank";
$var['rules']['text'] = FORLAN_123;
$var['rules']['link'] = e_SELF."?rules";
$var['sr']['text'] = FORLAN_116;
$var['sr']['link'] = e_SELF."?sr";
$var['mods']['text'] = FORLAN_33;
$var['mods']['link'] = e_SELF."?mods";
$var['tools']['text'] = FORLAN_153;
$var['tools']['link'] = e_SELF."?tools";
show_admin_menu(FORLAN_7, $action, $var);
}
function delete_item($id)
{
global $sql;
$id = intval($id);
$confirm = isset($_POST['confirm']) ? TRUE : FALSE;
if($sql->db_Select('forum', '*', "forum_id = {$id}"))
{
$txt = "";
$row = $sql->db_Fetch();
if($row['forum_parent'] == 0)
{
$txt .= $this->delete_parent($id, $confirm);
}
elseif($row['forum_sub'] > 0)
{
$txt .= $this->delete_sub($id, $confirm);
}
else
{
$txt .= $this->delete_forum($id, $confirm);
}
if($confirm)
{
$this->show_message($txt);
}
else
{
$this->delete_show_confirm($txt);
}
}
}
function delete_parent($id, $confirm = FALSE)
{
global $sql;
$ret = "";
if($sql->db_Select("forum", "forum_id", "forum_parent = {$id} AND forum_sub = 0"))
{
$fList = $sql->db_getList();
foreach($fList as $f)
{
$ret .= $this->delete_forum($f['forum_id'], $confirm);
}
}
if($confirm)
{
if($sql->db_Delete("forum", "forum_id = {$id}"))
{
$ret .= "Forum parent successfully deleted";
}
else
{
$ret .= "Forum parent could not be deleted";
}
return $ret;
}
return "The forum parent has the following info:
".$ret;
}
function delete_forum($id, $confirm = FALSE)
{
global $sql, $tp;
$ret = "";
if($sql->db_Select("forum", "forum_id", "forum_sub = {$id}"))
{
$fList = $sql->db_getList();
foreach($fList as $f)
{
$ret .= $this->delete_sub($f['forum_id'], $confirm);
}
}
if($confirm)
{
$cnt = $sql->db_Delete("forum_t","thread_forum_id = {$id}");
$ret .= $cnt." forum {$id} thread(s) deleted
";
if($sql->db_Delete("forum", "forum_id = {$id}"))
{
$ret .= "Forum {$id} successfully deleted";
}
else
{
$ret .= "Forum {$id} could not be deleted";
}
return $ret;
}
$sql->db_Select("forum", "*", "forum_id = {$id}");
$row = $sql->db_Fetch();
return "Forum {$id} [".$tp->toHTML($row['forum_name'])."] has {$row['forum_threads']} threads, {$row['forum_replies']} replies.
".$ret;
}
function delete_sub($id, $confirm = FALSE)
{
global $sql, $tp;
if($confirm)
{
$cnt = $sql->db_Delete("forum_t","thread_forum_id = {$id}");
$ret .= $cnt." Sub-forum {$id} thread(s) deleted
";
if($sql->db_Delete("forum", "forum_id = {$id}"))
{
$ret .= "Sub-forum {$id} successfully deleted";
}
else
{
$ret .= "Sub-forum {$id} could not be deleted";
}
return $ret;
}
$sql->db_Select("forum", "*", "forum_id = {$id}");
$row = $sql->db_Fetch();
return "Sub-forum {$id} [".$tp->toHTML($row['forum_name'])."] has {$row['forum_threads']} threads, {$row['forum_replies']} replies.
".$ret;
}
function delete_show_confirm($txt)
{
global $ns;
$this->show_message($txt);
$txt = "
";
$ns->tablerender(FORLAN_181, $txt);
}
function show_subs($id)
{
global $sql, $tp, $ns;
$txt = "
";
$ns->tablerender(FORLAN_149, $txt);
}
function show_existing_forums($sub_action, $id, $mode = FALSE)
{
global $sql, $rs, $ns, $sql2, $sql3, $tp, $for;
$subList = $for->forum_getsubs();
if (!is_object($sql2))
{
$sql2 = new db;
}
if (!is_object($sql3))
{
$sql3 = new db;
}
if (!$mode)
{
$text = "";
$ns->tablerender(FORLAN_30, $text);
}
else
{
$text .= "\n\n
\n\n";
$ns->tablerender(FORLAN_37, $text);
}
}
function create_parents($sub_action, $id)
{
global $sql, $ns;
if ($sub_action == "edit" && !$_POST['update_parent'])
{
if ($sql->db_Select("forum", "*", "forum_id=$id"))
{
$row = $sql->db_Fetch();
extract($row);
}
}
$text = "";
$ns->tablerender(FORLAN_75, $text);
}
function create_forums($sub_action, $id)
{
global $sql, $ns;
if ($sub_action == "edit" && !$_POST['update_forum'])
{
if ($sql->db_Select("forum", "*", "forum_id=$id"))
{
$row = $sql->db_Fetch();
extract($row);
}
}
$text = "";
$ns->tablerender(FORLAN_28, $text);
}
function show_message($message)
{
global $ns;
$ns->tablerender("", "".$message."
");
}
function show_tools()
{
global $sql, $ns, $tp;
$txt = "
";
$ns->tablerender(FORLAN_166, $txt);
}
function show_prefs()
{
global $pref, $ns, $sql;
if($sql->db_Count('plugin','(*)', "where plugin_path = 'poll' AND plugin_installflag = 1"))
{
$poll_installed = true;
}
else
{
$poll_installed = false;
if($pref['forum_poll'] == 1)
{
$pref['forum_poll'] = 0;
save_prefs();
}
}
$text = "";
$ns->tablerender(FORLAN_62, $text);
}
function show_reported ($sub_action, $id)
{
global $sql, $rs, $ns, $tp;
if ($sub_action) {
$sql -> db_Select("generic", "*", "gen_id='".$sub_action."'");
$row = $sql -> db_Fetch();
$sql -> db_Select("user", "*", "user_id='". $row['gen_user_id']."'");
$user = $sql -> db_Fetch();
$con = new convert;
$text = "";
$ns -> tablerender(FORLAN_116, $text);
} else {
$text = "";
if ($reported_total = $sql->db_Select("generic", "*", "gen_type='reported_post' OR gen_type='Reported Forum Post'"))
{
$text .= "
".FORLAN_170." |
".FORLAN_80." |
";
while ($row = $sql->db_Fetch())
{
$text .= "
\n";
}
$text .= "
";
}
else
{
$text .= "
".FORLAN_121."
";
}
$text .= "
";
$ns->tablerender(FORLAN_116, $text);
}
}
function show_prune()
{
global $ns, $sql;
// $sql -> db_Select("forum", "forum_id, forum_name", "forum_parent!=0 ORDER BY forum_order ASC");
$qry = "
SELECT f.forum_id, f.forum_name, sp.forum_name AS sub_parent, fp.forum_name AS forum_parent
FROM #forum AS f
LEFT JOIN #forum AS sp ON sp.forum_id = f.forum_sub
LEFT JOIN #forum AS fp ON fp.forum_id = f.forum_parent
WHERE f.forum_parent != 0
ORDER BY f.forum_parent ASC, f.forum_sub, f.forum_order ASC
";
$sql -> db_Select_gen($qry);
$forums = $sql -> db_getList();
$text = "";
$ns->tablerender(FORLAN_59, $text);
}
function show_levels()
{
global $sql, $pref, $ns, $rs;
$rank_names = explode(",", $pref['forum_levels']);
$rank_thresholds = ($pref['forum_thresholds'] ? explode(",", $pref['forum_thresholds']) : array(20, 100, 250, 410, 580, 760, 950, 1150, 1370, 1600));
$rank_images = ($pref['forum_images'] ? explode(",", $pref['forum_images']) : array("lev1.png", "lev2.png", "lev3.png", "lev4.png", "lev5.png", "lev6.png", "lev7.png", "lev8.png", "lev9.png", "lev10.png"));
$text = "";
$ns->tablerender("Ranks", $text);
}
function show_mods()
{
global $sql, $ns, $for, $tp;
$forumList = $for->forum_getforums('all');
$parentList = $for->forum_getparents('list');
$subList = $for->forum_getsubs('bysub');
$txt = "";
$ns->tablerender(FORLAN_33, $txt);
}
function show_rules()
{
global $sql, $pref, $ns, $tp;
$sql->db_Select("wmessage");
list($null) = $sql->db_Fetch();
list($null) = $sql->db_Fetch();
list($null) = $sql->db_Fetch();
list($id, $guestrules, $wm_active4) = $sql->db_Fetch();
list($id, $memberrules, $wm_active5) = $sql->db_Fetch();
list($id, $adminrules, $wm_active6) = $sql->db_Fetch();
if($sql->db_Select('generic','*',"gen_type='forum_rules_guest'"))
{
$guest_rules = $sql->db_Fetch();
}
if($sql->db_Select('generic','*',"gen_type='forum_rules_member'"))
{
$member_rules = $sql->db_Fetch();
}
if($sql->db_Select('generic','*',"gen_type='forum_rules_admin'"))
{
$admin_rules = $sql->db_Fetch();
}
$guesttext = $tp->toFORM($guest_rules['gen_chardata']);
$membertext = $tp->toFORM($member_rules['gen_chardata']);
$admintext = $tp->toFORM($admin_rules['gen_chardata']);
$text = "
";
$ns->tablerender(WMGLAN_5, $text);
echo "
";
}
}
function forum_admin_adminmenu()
{
global $forum;
global $action;
$forum->show_options($action);
}
?>