|
<?php
|
|
/**
|
|
* @package uForum
|
|
* @file admin/admin_groups.php
|
|
* @version $Id$
|
|
* @copyright 2007-2010 (c) PioDer <[email protected]>
|
|
* @link http://www.pioder.pl/
|
|
* @license see LICENSE.txt
|
|
**/
|
|
define('IN_uF', true);
|
|
//include files
|
|
require('./../config.php');
|
|
require('./../includes/constants.php');
|
|
require('./../includes/db.php');
|
|
require('./../includes/errors.php');
|
|
require('./../includes/classes/class_pms.php');
|
|
//connect to database
|
|
DataBase::db_connect();
|
|
require('./../includes/sessions.php');
|
|
require('./../includes/classes/class_user.php');
|
|
require('./../common.php');
|
|
require('./../includes/admin/class_main.php');
|
|
require('./../includes/classes/class_forum.php');
|
|
require('./../includes/admin/class_forum.php');
|
|
require('./../includes/classes/secure.php');
|
|
require('./../lngs/'.Admin_Over::DefaultLang().'/admin.php');
|
|
SessDelInvalid();
|
|
SessRegister();
|
|
SessDeleteOld();
|
|
if (User::UserInformation($_SESSION['uid'],'rank')!=2)
|
|
{
|
|
admin_message_forum($lng['yournotadmin'],'../index.php');
|
|
}
|
|
function GenerateDefaultDisplay()
|
|
{
|
|
global $lng;
|
|
global $default_skin;
|
|
global $forum_config;
|
|
$skin['L.groups'] = $lng['admin_groups'];
|
|
$skin['L.new_group'] = $lng['new_group'];
|
|
Admin_Over::GenerateHeader();
|
|
require('./template/groups_beam_body.tpl');
|
|
$sql = "SELECT `g_id`, `name`, `desc` FROM `".GROUPS_TABLE."` ORDER BY `sort`";
|
|
$query = DataBase::sql_query($sql, GENERAL, 'Could not obtain groups information.');
|
|
while($item = DataBase::fetch($query))
|
|
{
|
|
$skin = array(
|
|
'g_id'=>$item['g_id'],
|
|
'name'=>$item['name'],
|
|
'desc'=>$item['desc'],
|
|
'move_up'=>$lng['moveup'],
|
|
'move_down'=>$lng['movedown'],
|
|
'delete'=>$lng['delete'],
|
|
'c_delete'=>$lng['c_delete_group']
|
|
);
|
|
require('./template/group_add_body.tpl');
|
|
}
|
|
echo '</table>';
|
|
require('./template/overall_footer.tpl');
|
|
}
|
|
if (!isset($_GET['mode']))
|
|
{
|
|
header('Location: admin_groups.php?mode=view');
|
|
}
|
|
switch($_GET['mode'])
|
|
{
|
|
case 'delete':
|
|
{
|
|
$gid = $_GET['id'];
|
|
Secure::group_exists($gid);
|
|
$sql = "DELETE FROM ".GROUPS_TABLE." WHERE `g_id`='$gid'";
|
|
DataBase::sql_query($sql,GENERAL,'Could not delete group.');
|
|
$sql = "DELETE FROM ".USERS_GROUP_TABLE." WHERE `g_id`='$gid'";
|
|
DataBase::sql_query($sql,GENERAL,'Could users in group.');
|
|
GenerateDefaultDisplay();
|
|
break;
|
|
}
|
|
case 'add':
|
|
{
|
|
global $lng;
|
|
global $forum_config;
|
|
global $_POST;
|
|
if (isset($_POST['group_name']))
|
|
{
|
|
if (strlen(trim($_POST['group_name']))>=5)
|
|
{
|
|
$group_name = htmlspecialchars($_POST['group_name']);
|
|
$group_desc = htmlspecialchars($_POST['group_desc']);
|
|
$group_mod = User::UserIdByNick(htmlspecialchars($_POST['group_mod']));
|
|
$result = DataBase::fetch(DataBase::sql_query("SELECT `sort` FROM `".GROUPS_TABLE."`
|
|
ORDER BY `sort` DESC LIMIT 1",GENERAL,'Could not obtain last category sort id'));
|
|
$group_sort = $result['sort'];
|
|
$group_sort = $group_sort+1;
|
|
$result = DataBase::fetch(DataBase::sql_query("SELECT
|
|
`g_id` FROM ".GROUPS_TABLE." ORDER BY `g_id` DESC LIMIT 1",GENERAL,'Could not obtain last group id.'));
|
|
$group_id = $result['g_id'];
|
|
$group_id = $group_id+1;
|
|
$sql = "INSERT INTO ".GROUPS_TABLE." VALUES ('$group_id', '$group_name', '$group_desc', '$group_mod', '$group_sort')";
|
|
DataBase::sql_query($sql, GENERAL, 'Could not add group');
|
|
unset($group_name, $group_desc, $group_mod, $group_id);
|
|
admin_message_forum($lng['group_saved'],'admin_groups.php');
|
|
}
|
|
else
|
|
{
|
|
$msg = './template/post_error_body.tpl';
|
|
$message = $lng['to_short_group_name'];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$_POST['group_name'] = '';
|
|
$_POST['group_desc'] = '';
|
|
$_POST['group_mod'] = '';
|
|
$msg='./template/blank.tpl';
|
|
}
|
|
$skin = array(
|
|
'L.save'=>$lng['submit'],
|
|
'L.reset'=>$lng['reset'],
|
|
'L.group_name'=>$lng['group_name'],
|
|
'L.group_desc'=>$lng['group_desc'],
|
|
'L.group_mod'=>$lng['group_mod'],
|
|
'L.main_beam'=>$lng['new_group'],
|
|
'action'=>'admin_groups.php?mode=add',
|
|
'L.groups' => $lng['admin_groups']
|
|
);
|
|
Admin_Over::GenerateHeader();
|
|
require('./template/group_new_edit_body.tpl');
|
|
require('./template/overall_footer.tpl');
|
|
break;
|
|
}
|
|
case 'edit':
|
|
{
|
|
global $lng;
|
|
$gid = $_GET['id'];
|
|
global $forum_config;
|
|
global $_POST;
|
|
Secure::group_exists($gid);
|
|
if (isset($_POST['group_name']))
|
|
{
|
|
if (strlen(trim($_POST['group_name']))>=5)
|
|
{
|
|
$group_name = htmlspecialchars($_POST['group_name']);
|
|
$group_desc = htmlspecialchars($_POST['group_desc']);
|
|
$group_mod = User::UserIdByNick(htmlspecialchars($_POST['group_mod']));
|
|
$group_id = htmlspecialchars($gid);
|
|
$sql = "UPDATE ".GROUPS_TABLE." SET
|
|
`name` = '$group_name',
|
|
`desc` = '$group_desc',
|
|
`m_id` = '$group_mod'
|
|
WHERE `g_id` = '$group_id'";
|
|
DataBase::sql_query($sql, GENERAL, 'Could not update group');
|
|
unset($group_name, $group_desc, $group_mod, $group_id);
|
|
admin_message_forum($lng['group_saved'],'admin_groups.php');
|
|
}
|
|
else
|
|
{
|
|
$msg = './template/post_error_body.tpl';
|
|
$message = $lng['to_short_group_name'];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$sql = "SELECT * FROM `".GROUPS_TABLE."` WHERE `g_id`='$gid'";
|
|
$g = DataBase::fetch(DataBase::sql_query($sql, GENERAL,'Could not obtain group information.'));
|
|
$_POST['group_name'] = $g['name'];
|
|
$_POST['group_desc'] = $g['desc'];
|
|
$_POST['group_mod'] = User::UserInformation($g['m_id'],'nick');
|
|
$msg='./template/blank.tpl';
|
|
}
|
|
$skin = array(
|
|
'L.save'=>$lng['submit'],
|
|
'L.reset'=>$lng['reset'],
|
|
'L.group_name'=>$lng['group_name'],
|
|
'L.group_desc'=>$lng['group_desc'],
|
|
'L.group_mod'=>$lng['group_mod'],
|
|
'L.main_beam'=>$lng['edit_group'],
|
|
'action'=>'admin_groups.php?mode=edit&id='.$gid,
|
|
'L.groups' => $lng['admin_groups']
|
|
);
|
|
Admin_Over::GenerateHeader();
|
|
require('./template/group_new_edit_body.tpl');
|
|
require('./template/overall_footer.tpl');
|
|
break;
|
|
}
|
|
case 'moveup':
|
|
{
|
|
if (isset($_GET['id']))
|
|
{
|
|
$i1 = intval($_GET['id']);
|
|
$sql = "SELECT `sort`, `g_id` FROM ".GROUPS_TABLE." WHERE `g_id`='$i1'";
|
|
$s1 = DataBase::fetch(DataBase::sql_query($sql,CRITICAL,'Could not obtain group information.'));
|
|
$s1 = $s1['sort'];
|
|
$s2 = $s1 -1;
|
|
if ($s1>1)
|
|
{
|
|
$sql = "SELECT `sort`, `g_id` FROM ".GROUPS_TABLE." WHERE `sort`='$s2'";
|
|
$s2 = DataBase::fetch(DataBase::sql_query($sql,CRITICAL,'Could not obtain group information.'));
|
|
$i2 = $s2['g_id'];
|
|
$s2 = $s2['sort'];
|
|
$sql = "UPDATE ".GROUPS_TABLE." SET `sort`='$s2' WHERE `g_id`='$i1'";
|
|
DataBase::sql_query($sql,GENERAL,'Could not update group position');
|
|
$sql = "UPDATE ".GROUPS_TABLE." SET `sort`='$s1' WHERE `g_id`='$i2'";
|
|
DataBase::sql_query($sql,GENERAL,'Could not update group position');
|
|
}
|
|
}
|
|
GenerateDefaultDisplay();
|
|
break;
|
|
}
|
|
case 'movedown':
|
|
{
|
|
if (isset($_GET['id']))
|
|
{
|
|
$i1 = intval($_GET['id']);
|
|
$i2 = $i1 +1;
|
|
$sql = "SELECT `sort`, `g_id` FROM ".GROUPS_TABLE." WHERE `g_id`='$i1'";
|
|
$s1 = DataBase::fetch(DataBase::sql_query($sql,CRITICAL,'Could not obtain group information.'));
|
|
$s1 = $s1['sort'];
|
|
$s2 = $s1 +1;
|
|
$sql = "SELECT `g_id` FROM ".GROUPS_TABLE;
|
|
$count = DataBase::num_rows(DataBase::sql_query($sql,CRITICAL,'Could not obtain group information.'));
|
|
if ($s1<$count)
|
|
{
|
|
$sql = "SELECT `sort`, `g_id` FROM ".GROUPS_TABLE." WHERE `sort`='$s2'";
|
|
$s2 = DataBase::fetch(DataBase::sql_query($sql,CRITICAL,'Could not obtain group information.'));
|
|
$i2 = $s2['g_id'];
|
|
$s2 = $s2['sort'];
|
|
$sql = "UPDATE ".GROUPS_TABLE." SET `sort`='$s2' WHERE `g_id`='$i1'";
|
|
DataBase::sql_query($sql,GENERAL,'Could not update group position');
|
|
$sql = "UPDATE ".GROUPS_TABLE." SET `sort`='$s1' WHERE `g_id`='$i2'";
|
|
DataBase::sql_query($sql,GENERAL,'Could not update group position');
|
|
}
|
|
}
|
|
GenerateDefaultDisplay();
|
|
break;
|
|
}
|
|
case 'view':
|
|
{
|
|
GenerateDefaultDisplay();
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
header('Location: admin_groups.php?mode=view');
|
|
break;
|
|
}
|
|
}
|
|
@ini_set('display_errors', '1');
|
|
?>
|