- LAN
*/
class forumAdmin
{
function show_options($action)
{
$sql = e107::getDb();
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_id', "forum_parent='0' LIMIT 1"))
{
$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'] = LAN_PRUNE;
$var['prune']['link'] = e_SELF.'?prune';
$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)
{
$sql = e107::getDb();
$id = (int)$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)
{
$sql = e107::getDb();
$mes = e107::getMessage();
$ns = e107::getRender();
//$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';
$mes->addSuccess(LAN_DELETED);
}
else
{
//$ret .= 'Forum parent could not be deleted'; // TODO LAN
$mes->addError(LAN_DELETED_FAILED);
}
//return $ret;
$ns->tablerender($caption, $mes->render(). $text);
}
//return 'The forum parent has the following info:
'.$ret; // TODO LAN
}
function deleteForum($forumId)
{
$sql = e107::getDb();
$forumId = (int)$forumId;
// echo "id = $forumId
";
// Check for any sub forums
if($sql->db_Select('forum', 'forum_id', "forum_sub = {$forumId}"))
{
$list = $sql->db_getList();
foreach($list as $f)
{
$ret .= $this->deleteForum($f['forum_id']);
}
}
require_once(e_PLUGIN.'forum/forum_class.php');
$f = new e107Forum;
if($sql->db_Select('forum_thread', 'thread_id','thread_forum_id='.$forumId))
{
$list = $sql->db_getList();
foreach($list as $t)
{
$f->threadDelete($t['thread_id'], false);
}
}
return $sql->db_Delete('forum', 'forum_id = '.$forumId);
}
function delete_forum($id, $confirm = false)
{
$sql = e107::getDb();
$tp = e107::getParser();
$ns = e107::getRender();
$mes = e107::getMessage();
//$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)
{
if($this->deleteForum($id))
{
//$ret .= "Forum {$id} successfully deleted"; // TODO LAN
$mes->addSuccess(LAN_DELETED);
}
else
{
//$ret .= "Forum {$id} could not be deleted"; // TODO LAN
$mes->addError(LAN_DELETED_FAILED);
}
}
$sql->db_Select('forum', 'forum_name, forum_threads, forum_replies', '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;
$mes->addInfo("Forum {$id} [".$tp->toHTML($row['forum_name'])."] has {$row['forum_threads']} threads and {$row['forum_replies']} replies."); //FIXME combine multiple info's into one message
$ns->tablerender($caption, $mes->render() . $text);
}
function delete_sub($id, $confirm = FALSE)
{
$sql = e107::getDb();
$tp = e107::getParser();
$mes = e107::getMessage();
$ns = e107::getRender();
if($confirm)
{
if($this->deleteForum($id))
{
//$ret .= "Sub-forum {$id} successfully deleted"; // TODO LAN
$mes->addSuccess(LAN_DELETED);
}
else
{
//$ret .= "Sub-forum {$id} could not be deleted"; // TODO LAN
$mes->addError(LAN_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;
$mes->addInfo("Sub-forum {$id} [".$tp->toHTML($row['forum_name'])."] has {$row['forum_threads']} threads, {$row['forum_replies']} replies."); // FIXME show just once on confirm and not LAN_DELETED
$ns->tablerender($caption, $mes->render() . $text);
}
function delete_show_confirm($txt)
{
$ns = e107::getRender();
$this->show_message($txt);
$frm = e107::getForm();
$txt = "
";
$ns->tablerender(LAN_UI_DELETE_LABEL, $txt);
}
function show_subs($id)
{
$sql = e107::getDb();
$tp = e107::getParser();
$ns = e107::getRender();
$frm = e107::getForm();
$txt = "
";
$ns->tablerender(FORLAN_149, $txt); // TODO LAN
}
function show_existing_forums($sub_action, $id, $mode = false)
{
global $e107, $for;
$frm = e107::getForm();
$sql = e107::getDb();
$tp = e107::getParser();
$mes = e107::getMessage();
$ns = e107::getRender();
$subList = $for->forumGetSubs();
if (!$mode)
{
$text = "";
}
else
{
$text = "
";
$ns->tablerender(FORLAN_30, $mes->render() . $text);
}
else
{
$text .= "".$frm->admin_button('update_order', LAN_UPDATE, 'update')."
";
$ns->tablerender(FORLAN_37, $mes->render() . $text);
}
}
function create_parents($sub_action, $id)
{
global $e107;
$frm = e107::getForm();
$sql = e107::getDb();
$tp = e107::getParser();
$ns = e107::getRender();
$id = (int)$id;
if ($sub_action == 'edit' && !$_POST['update_parent'])
{
if ($sql->db_Select('forum', '*', "forum_id=$id"))
{
$row = $sql->db_Fetch(MYSQL_ASSOC);
}
}
else
{
$row = array();
$row['forum_name'] = '';
$row['forum_class'] = e_UC_PUBLIC;
$row['forum_postclass'] = e_UC_MEMBER;
$row['forum_threadclass'] = e_UC_MEMBER;
}
$text = "
";
$ns->tablerender(FORLAN_75, $text);
}
function create_forums($sub_action, $id)
{
global $e107;
$frm = e107::getForm();
$sql = e107::getDb();
$tp = e107::getParser();
$ns = e107::getRender();
$id = (int)$id;
if ($sub_action == 'edit' && !$_POST['update_forum'])
{
if ($sql->db_Select('forum', '*', "forum_id=$id"))
{
$fInfo = $sql->db_Fetch(MYSQL_ASSOC);
}
}
else
{
$fInfo = array(
'forum_parent' => 0,
'forum_moderators' => e_UC_ADMIN,
'forum_class' => e_UC_PUBLIC,
'forum_postclass' => e_UC_MEMBER,
'forum_threadclass' => e_UC_MEMBER
);
}
$text = "
";
$ns->tablerender(FORLAN_28, $text);
}
function show_message($message) // FIX
{
$ns = e107::getRender();
$ns->tablerender('', "".$message."
"); //FIX: v2 style = render?
}
function show_tools()
{
$sql = e107::getDb();
$ns = e107::getRender();
$tp = e107::getParser();
$frm = e107::getForm();
$txt = "
";
$ns->tablerender(FORLAN_166, $txt);
}
function show_prefs()
{
global $fPref;
$ns = e107::getRender();
$sql = e107::getDb();
$e107 = e107::getInstance();
//$emessage = eMessage::getInstance();
$frm = e107::getForm();
$mes = e107::getMessage();
$poll_installed = plugInstalled('poll');
if(!$poll_installed)
{
if($fPref->get('poll') == 1)
{
$fPref['forum_poll'] = e_UC_NOBODY;
$fPref->save(false, true);
}
}
$text = "
";
$ns->tablerender(FORLAN_62, $mes->render() . $text);
}
function show_reported ($sub_action, $id)
{
global $rs; // FIX replace by $frm
$sql = e107::getDb();
$ns = e107::getRender();
$tp = e107::getParser();
$mes = e107::getMessage();
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 = "
".FORLAN_171.": |
#".$row['gen_intdata']." |
".FORLAN_173.": |
".$row['gen_ip']." |
".FORLAN_174.": |
".$user['user_name']."
|
".FORLAN_175.": |
".$con -> convert_date($row['gen_datestamp'], "long")." |
".FORLAN_176.": |
".$row['gen_chardata']." |
".$rs->form_open("post", e_SELF."?sr", "", "", "", " onsubmit=\"return confirm_('sr',".$row['gen_datestamp'].")\"")."
".$rs->form_button("submit", "delete[reported_{$row['gen_id']}]", FORLAN_172)."
".$rs->form_close()."
|
";
$ns -> tablerender(FORLAN_116, $text);
}
else
{
if ($reported_total = $sql->db_Select("generic", "*", "gen_type='reported_post' OR gen_type='Reported Forum Post'"))
{
$text .= "
".FORLAN_170." |
".LAN_OPTIONS." |
";
while ($row = $sql->db_Fetch())
{
$text .= "
".FORLAN_171." #".$row['gen_intdata']." |
".$rs->form_open("post", e_SELF."?sr", "", "", "", " onsubmit=\"return confirm_('sr',".$row['gen_datestamp'].")\"")."
".$rs->form_button("submit", "delete[reported_{$row['gen_id']}]", FORLAN_172)."
".$rs->form_close()."
|
\n";
}
$text .= "
";
}
else
{
//$text = "".FORLAN_121."
";
$mes->addInfo(FORLAN_121);
}
$ns->tablerender(FORLAN_116, $mes->render() . $text);
}
}
function show_prune()
{
$ns = e107::getRender();
$sql = e107::getDB();
$frm = e107::getForm();
// $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(LAN_PRUNE, $text);
}
function show_mods()
{
global $for;
$ns = e107::getRender();
$sql = e107::getDB();
$e107 = e107::getInstance(); // FIX needed?
$forumList = $for->forum_getforums('all');
$parentList = $for->forum_getparents('list');
$subList = $for->forumGetSubs('bysub');
$frm = e107::getForm();
$tp = e107::getParser();
$txt = "";
$ns->tablerender(FORLAN_33, $txt); // FIX: LAN button update was WMGLAN_4." ".FORLAN_33)
}
function show_rules()
{
$pref = e107::getPref();
$ns = e107::getRender();
$sql = e107::getDB();
$tp = e107::getParser();
$frm = e107::getForm();
$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(vartrue($guest_rules['gen_chardata']));
$membertext = $tp->toFORM(vartrue($member_rules['gen_chardata']));
$admintext = $tp->toFORM(vartrue($admin_rules['gen_chardata']));
$text = "
";
$ns->tablerender(WMGLAN_5, $text);
echo "
";
}
}