1
0
mirror of https://github.com/e107inc/e107.git synced 2025-01-18 13:14:55 +01:00
php-e107/e107_plugins/forum/forum_conf.php

213 lines
6.6 KiB
PHP

<?php
/*
+---------------------------------------------------------------+
| e107 website system
|
| ©Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/forum/forum_conf.php,v $
| $Revision: 1.5 $
| $Date: 2008-12-17 18:48:02 $
| $Author: mcfly_e107 $
+---------------------------------------------------------------+
*/
require_once('../../class2.php');
require_once(e_PLUGIN.'forum/forum_class.php');
$forum = new e107forum;
include_lan(e_PLUGIN.'forum/languages/English/lan_forum_conf.php');
$e_sub_cat = 'forum';
if(!USER || !isset($_GET['f']) || !isset($_GET['id']))
{
header('location:'.$e107->url->getUrl('core:core', 'main', 'action=index'));
exit;
}
$id = (int)$_GET['id'];
$action = $_GET['f'];
$qry = "
SELECT t.*, f.*, fp.forum_id AS forum_parent_id FROM #forum_t as t
LEFT JOIN #forum AS f ON t.thread_forum_id = f.forum_id
LEFT JOIN #forum AS fp ON fp.forum_id = f.forum_parent
WHERE t.thread_id = {$thread_id}
";
$threadInfo = $forum->threadGet($id);
$modList = $forum->forumGetMods($threadInfo->forum_moderators);
//var_dump($threadInfo);
//var_dump($modList);
//If user is not a moderator of indicated forum, redirect to index page
if(!in_array(USERID, array_keys($modList)))
{
header('location:'.$e107->url->getUrl('core:core', 'main', 'action=index'));
exit;
}
require_once(HEADERF);
if (isset($_POST['deletepollconfirm'])) {
$sql->db_Delete("poll", "poll_id='".intval($thread_parent)."' ");
$sql->db_Select("forum_t", "*", "thread_id='".$thread_id."' ");
$row = $sql->db_Fetch();
extract($row);
$thread_name = str_replace("[poll] ", "", $thread_name);
$sql->db_Update("forum_t", "thread_name='$thread_name' WHERE thread_id='$thread_id' ");
$message = FORCONF_5;
$url = e_PLUGIN."forum/forum_viewtopic.php?".$thread_id;
}
if (isset($_POST['move']))
{
// print_a($_POST);
require_once(e_PLUGIN.'forum/forum_class.php');
$forum = new e107forum;
$postInfo = $forum->postGet($id, 0, 1);
$threadId = (int)$postInfo[0]['post_thread'];
$threadInfo = $forum->threadGet($threadId);
// print_a($postInfo);
// print_a($threadInfo);
// exit;
$oldForumId = (int)$threadInfo['thread_forum_id'];
$newForumId = (int)$_POST['forum_move'];
$newThreadName = $threadInfo['thread_name'];
$replyCount = $threadInfo['thread_total_replies'];
if($_POST['rename_thread'] == 'add')
{
$newThreadName = '['.FORCONF_27.'] '.$newThreadName;
}
elseif($_POST['rename_thread'] == 'rename' && trim($_POST['newtitle']) != '')
{
$newThreadName = $e107->tp->toDB($_POST['newtitle']);
}
//Move thread to new forum, changing thread title if needed
$sql->db_Update('forum_thread', "thread_forum_id={$newForumId}, thread_name='{$newThreadName}' WHERE thread_id={$threadId}", true);
//Move all posts to new forum
$sql->db_Update('forum_post', "post_forum={$newForumId} WHERE post_thread={$threadId}", true);
//set the thread counts correctly
$sql->db_Update('forum', "forum_threads=forum_threads-1, forum_replies=forum_replies-$replyCount WHERE forum_id={$oldForumId}", true);
$sql->db_Update('forum', "forum_threads=forum_threads+1, forum_replies=forum_replies+$replyCount WHERE forum_id={$newForumId}", true);
// update lastpost information for old and new forums
$forum->forumUpdateLastpost('forum', $oldForumId, false);
$forum->forumUpdateLastpost('forum', $newForumId, false);
$message = FORCONF_9;
// $url = e_PLUGIN."forum/forum_viewforum.php?".$new_forum;
$url = $e107->url->getUrl('forum', 'thread', 'func=view&id='.$id);
}
if (isset($_POST['movecancel']))
{
require_once(e_PLUGIN.'forum/forum_class.php');
$forum = new e107forum;
$postInfo = $forum->postGet($id, 0, 1);
$message = FORCONF_10;
// $url = e_PLUGIN."forum/forum_viewforum.php?".$info['forum_id'];
$url = $e107->url->getUrl('forum', 'forum', 'func=view&id='.$postInfo[0]['post_forum']);
}
if ($message)
{
$text = "<div style='text-align:center'>".$message."
<br />
<a href='$url'>".FORCONF_11.'</a>
</div>';
$ns->tablerender(FORCONF_12, $text);
require_once(FOOTERF);
exit;
}
if ($action == "delete_poll")
{
$text = "<div style='text-align:center'>
".FORCONF_13."
<br /><br />
<form method='post' action='".e_SELF."?".e_QUERY."'>
<input class='button' type='submit' name='deletecancel' value='".FORCONF_14."' />
<input class='button' type='submit' name='deletepollconfirm' value='".FORCONF_15."' />
</form>
</div>";
$ns->tablerender(FORCONF_16, $text);
require_once(FOOTERF);
exit;
}
if ($action == 'move')
{
$postInfo = $forum->postGet($id, 0, 1);
$text = "
<form method='post' action='".e_SELF.'?'.e_QUERY."'>
<div style='text-align:center'>
<table style='".ADMIN_WIDTH."'>
<tr>
<td style='text-align:right'>".FORCONF_24.": </td>
<td style='text-align:left'>
<select name='forum_move' class='tbox'>";
$qry = "
SELECT f.forum_id, f.forum_name, fp.forum_name AS forum_parent, sp.forum_name AS sub_parent
FROM `#forum` AS f
LEFT JOIN `#forum` AS fp ON f.forum_parent = fp.forum_id
LEFT JOIN `#forum` AS sp ON f.forum_sub = sp.forum_id
WHERE f.forum_parent != 0
AND f.forum_id != ".(int)$threadInfo['thread_forum_id']."
ORDER BY f.forum_parent ASC, f.forum_sub, f.forum_order ASC
";
$e107->sql->db_Select_gen($qry);
$fList = $e107->sql->db_getList();
foreach($fList as $f)
{
if(substr($f['forum_name'], 0, 1) != '*')
{
$f['sub_parent'] = ltrim($f['sub_parent'], '*');
$for_name = $f['forum_parent'].' -> ';
$for_name .= ($f['sub_parent'] ? $f['sub_parent'].' -> ' : '');
$for_name .= $f['forum_name'];
$text .= "<option value='{$f['forum_id']}'>".$for_name."</option>";
}
}
$text .= "</select>
</td>
</tr>
<tr>
<td colspan='2'><br />
<b>".FORCONF_32."</b><br />
<input type='radio' name='rename_thread' checked='checked' value='none' /> ".FORCONF_28."<br />
<input type='radio' name='rename_thread' value='add' /> ".FORCONF_29.' ['.FORCONF_27.'] '.FORCONF_30."<br />
<input type='radio' name='rename_thread' value='rename' /> ".FORCONF_31." <input type='text' class='tbox' name='newtitle' size='60' maxlength='250' value='".$tp->toForm($info['thread_name'])."'/>
</td>
</tr>
<tr style='vertical-align: top;'>
<td colspan='2' style='text-align:center'><br />
<input class='button' type='submit' name='move' value='".FORCONF_25."' />
<input class='button' type='submit' name='movecancel' value='".FORCONF_14."' />
</td>
</tr>
</table>
</div>
</form><br />";
$text = $e107->ns->tablerender($e107->tp->toHTML($threadInfo['thread_name']), $e107->tp->toHTML($postInfo[0]['post_entry']), '', true).$ns->tablerender('', $text, '', true);
$e107->ns->tablerender(FORCONF_25, $text);
}
require_once(FOOTERF);
?>