A lightweight forum engine written in PHP. Repository is now obsolete and read-only. http://www.pioder.pl/uforum.html
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

229 lines
6.5 KiB

<?php
/**
* @package uForum
* @file users.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');
//connect to database
DataBase::db_connect();
require('./includes/sessions.php');
require('./includes/classes/class_user.php');
require('./common.php');
require('./includes/classes/class_topic.php');
require('./includes/misc_functions.php');
require('./includes/classes/class_forum.php');
$start = TimeGeneration();
require('./lngs/'.DefaultLang().'/main.php');
SessDelInvalid();
SessRegister();
SessDeleteOld();
$default_skin = ViewSkinName();
//
//generate output pages
//
if ($_SESSION['uid']>0)
{
$limiter = User::UserInformation($_SESSION['uid'], 'limit_users');
}
else
{
$limiter = $forum_config['limit_users'];
}
if (isset($_GET['page'])&&($_GET['page']!=1))
{
if (!is_numeric($_GET['page']))
{
die('Hacking attempt');
}
$value = ($_GET['page']-1)*$limiter;
$limit = 'LIMIT '.$value . ', '.$limiter;
$page = $_GET['page'];
}
else
{
$limit = 'LIMIT 0, '.$limiter;
$page=1;
}
$count = DataBase::fetch(DataBase::sql_query("SELECT COUNT(`u_id`) as `u_id`
FROM ".USERS_TABLE,GENERAL,'Could not obtain count amout of users'));
$count = $count['u_id'] -1;
$count = ceil($count / $limiter);
if(isset($_GET['page']) && ($_GET['page']>$count))
{
message_forum($lng['invalidpage'],'index.php');
}
//
//end generating pages
//
if (isset($_COOKIE['users_desc'], $_POST['desc']))
{
unset($_COOKIE['users_desc']);
}
if (isset($_POST['sort'],$_COOKIE['users_sort']))
{
unset($_COOKIE['users_sort']);
}
if (!isset($_COOKIE['users_desc']))
{
if (isset($_POST['desc']))
{
switch($_POST['desc'])
{
case 'yes':
{
@setcookie('users_desc','desc',$_SERVER['REQUEST_TIME']+3600);
$_COOKIE['users_desc'] = 'desc';
$desc = 'DESC';
break;
}
case 'no':
{
@setcookie('users_desc','no',$_SERVER['REQUEST_TIME']+3600);
$_COOKIE['users_desc'] = 'no';
$desc = '';
break;
}
}
}
else
{
@setcookie('users_desc','no',$_SERVER['REQUEST_TIME']+3600);
$_COOKIE['users_desc'] = 'no';
$desc = '';
}
}
else
{
$desc = ($_COOKIE['users_desc']=='desc') ? 'DESC' : '';
}
if (!isset($_COOKIE['users_sort']))
{
if (isset($_POST['sort']))
{
switch($_POST['sort'])
{
case 'regdate':
{
@setcookie('users_sort','regdate',$_SERVER['REQUEST_TIME']+3600);
$_COOKIE['users_sort'] = 'regdate';
break;
}
case 'lastvisit':
{
@setcookie('users_sort','lastvisit',$_SERVER['REQUEST_TIME']+3600);
$_COOKIE['users_sort'] = 'lastvisit';
break;
}
case 'uname':
{
@setcookie('users_sort','uname',$_SERVER['REQUEST_TIME']+3600);
$_COOKIE['users_sort'] = 'uname';
break;
}
case 'posts':
{
@setcookie('users_sort','posts',$_SERVER['REQUEST_TIME']+3600);
$_COOKIE['users_sort'] = 'posts';
break;
}
}
}
else
{
@setcookie('users_sort','regdate',$_SERVER['REQUEST_TIME']+3600);
$_COOKIE['users_sort'] = 'regdate';
}
}
//add skin variables
$skin = array(
'ldesc' => $lng['desc'],
'desc_yes_option'=>(($_COOKIE['users_desc']=='desc') || ((isset ($_POST['desc'])) && ($_POST['desc']=='yes'))) ? 'selected="selected"' : '',
'desc_no_option'=>(($_COOKIE['users_desc']=='no') || ((isset ($_POST['desc'])) && ($_POST['desc']=='no'))) ? 'selected="selected"' : '',
'regdate_option'=>(($_COOKIE['users_sort']=='regdate') || ((isset ($_POST['sort'])) && ($_POST['sort']=='posts'))) ? 'selected="selected"' : '',
'lastvisit_option'=>(($_COOKIE['users_sort']=='lastvisit') || ((isset ($_POST['sort'])) && ($_POST['sort']=='lastvisit'))) ? 'selected="selected"' : '',
'posts_option'=>(($_COOKIE['users_sort']=='posts') || ((isset ($_POST['sort'])) && ($_POST['sort']=='posts'))) ? 'selected="selected"' : '',
'uname_option'=>(($_COOKIE['users_sort']=='uname') || ((isset ($_POST['sort'])) && ($_POST['sort']=='uname'))) ? 'selected="selected"' : '',
'lselectusers'=>$lng['sort_u_by'],
'ltitle'=>$lng['lusers'],
'lyes'=>$lng['yes'],
'lno'=>$lng['no'],
'lregdate'=>$lng['luregister'],
'llastvisit'=>$lng['lulastvisit'],
'lposts'=>$lng['posts'],
'luname'=>$lng['user_name'],
'lgo'=>$lng['lgo']
);
$skin = array_push_assoc($skin, GenerateHeader($lng['lusers'], '<a href="users.php" class="navigator">'.$lng['lusers']));
//do it!
require('./skins/'.$default_skin.'/overall_header.tpl');
require('./skins/'.$default_skin.'/users_body.tpl');
switch($_COOKIE['users_sort'])
{
case 'regdate':
{
$sql = "SELECT `u_id`,`nick`, `rank`, `regdate`, `lastvisit`, `posts` FROM `".USERS_TABLE."` WHERE `u_id`>0 ORDER BY `regdate` $desc $limit;";
break;
}
case 'lastvisit':
{
$sql = "SELECT `u_id`,`nick`, `rank`, `regdate`, `lastvisit`, `posts` FROM `".USERS_TABLE."` WHERE `u_id`>0 ORDER BY `lastvisit` $desc $limit;";
break;
}
case 'uname':
{
$sql = "SELECT `u_id`,`nick`, `rank`, `regdate`, `lastvisit`, `posts` FROM `".USERS_TABLE."` WHERE `u_id`>0 ORDER BY `nick` $desc $limit;";
break;
}
case 'posts':
{
$sql = "SELECT `u_id`,`nick`, `rank`, `regdate`, `lastvisit`, `posts` FROM `".USERS_TABLE."` WHERE `u_id`>0 ORDER BY `posts` $desc $limit;";
break;
}
}
$query = DataBase::sql_query($sql,CRITICAL,'Could not obtain user information.');
while($result = DataBase::fetch($query))
{
$skin = array(
'id'=>$result['u_id'],
'uname'=>Topic::UserName($result['nick'], $result['rank']),
'regdate'=>date('d-m-Y, G:i',$result['regdate']),
'lastvisit'=>($result['lastvisit']!='0') ? date('d-m-Y, G:i',$result['lastvisit']) : $lng['never'],
'posts'=>$result['posts']
);
require('./skins/'.$default_skin.'/users_item_add_body.tpl');
}
$skin = array(
'option_pages'=>ListPages($page, $count),
'lwith'=>$lng['with'],
'lpage'=>$lng['page'],
'lpages'=>$count
);
require('./skins/'.$default_skin.'/users_end_body.tpl');
if($_SESSION['uid']>0)
{
if(RANK==2)
{
$skin['pa_link']='<a href="admin/index.php" class="fsmall"><b>'.$lng['pa_link'].'</b></a>';
}
else
{
$skin['pa_link']='';
}
}
else
{
$skin['pa_link']='';
}
$stop = TimeGeneration();
$skin['queries'] = ShowQueries($start, $stop);
require('./skins/'.$default_skin.'/overall_footer.tpl');
?>