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.
 
 
 
 
 
 

251 lines
6.6 KiB

<?php
/**
* @package uForum
* @file includes/classes/class_user.php
* @version $Id$
* @copyright 2007-2010 (c) PioDer <[email protected]>
* @link http://www.pioder.pl/
* @license see LICENSE.txt
**/
if ( !defined('IN_uF') )
{
die('Hacking attempt');
}
class User
{
function LastUser()
{
global $lastuser;
$usr = $lastuser['nick'];
$uid = $lastuser['u_id'];
return '<a href="user.php?id='.$uid.'" class="fstandard">'.$usr.'</a>';
}
function UserInformation($uid, $inf)
{
$sql = "SELECT `$inf` FROM ".USERS_TABLE." WHERE u_id='$uid';";
$query = DataBase::sql_query($sql,GENERAL,'Could not obtain user information.');
$result = DataBase::fetch($query);
$result = $result[$inf];
return $result;
}
function UserIdByNick($nick)
{
$sql = "SELECT * FROM `".USERS_TABLE."` WHERE `nick`='$nick';";
$result = DataBase::fetch(DataBase::sql_query($sql,GENERAL,'Could not obtain user information.'));
$result = $result['u_id'];
/*if ($result=='')
{
message_forum('nick failed','admin_groups.php');
}*/
return $result;
}
function AddToGroup($uid, $gid)
{
$last= DataBase::new_id(USERS_GROUP_TABLE);
$sql = "INSERT INTO `".USERS_GROUP_TABLE."` VALUES ('$last','$uid', '$gid')";
DataBase::sql_query($sql,GENERAL,'Could not add user to group.');
}
function DeleteFromGroup($uid, $gid)
{
$sql = "DELETE FROM `".USERS_GROUP_TABLE."` WHERE `u_id`='$uid' AND `g_id`='$gid'";
DataBase::sql_query($sql,GENERAL,'Could not delete user for group.');
}
function LogedAs($sid, $uid)
{
global $lng;
global $userdata;
if ($uid>0)
{
$nick = $userdata['nick'];
return(''.$lng['youareloggedas'].' <a href="user.php?id='.$uid.'" class="fstandard"><b>'.$nick.'</b></a>');
}
else
{
return($lng['youarenotlogd']);
}
}
function PostWithForum($posts)
{
$result2 = TotalPosts();
if($result2>0)
{
$result3 = ($posts/$result2*100);
$result3 = round($result3,2);
return($result3);
}
else
{
return(0);
}
}
function LastRegVisit($uid, $mode)
{
global $lng;
$result = User::UserInformation($uid,$mode);
if ($result=='0')
{
return($lng['never']);
}
else
{
$date = date('d-m-Y, G:i',$result);
return($date);
}
}
function UserRank($rank)
{
global $lng;
global $forum_config;
switch($rank)
{
case '0': {$result=$lng['user']; break; }
case '1': {$result='<font color="'.$forum_config['color_mod'].'"><b>'.$lng['mod'].'</b></font>'; break; }
case '2': {$result='<font color="'.$forum_config['color_admin'].'"><b>'.$lng['admin'].'</b></font>'; break; }
}
return($result);
}
function RankAdminMod($uid)
{
if ($uid>0)
{
$sql = "SELECT * FROM ".USERS_TABLE." WHERE u_id='$uid'";
$query = DataBase::sql_query($sql,GENERAL,'Could not obtain user`s rank information.');
$result = DataBase::fetch($query);
$rank = $result['rank'];
if (($rank=='1') or ($rank=='2'))
{
return '1';
}
else
{
return '0';
}
}
else
{
return '0';
}
}
function UpdateProfile($uid, $gg, $email, $interests, $sig, $avatar, $allow_qr, $allow_email, $allow_gg, $skin, $lang, $limit_tpid, $limit_ftid, $limit_users, $allow_shoutbox)
{
$sql ="UPDATE `".USERS_TABLE."` SET
`gg` = '$gg',
`email` = '$email',
`allow_gg` = '$allow_gg',
`allow_email` = '$allow_email',
`allow_qr` = '$allow_qr',
`interests` = '$interests',
`sig` = '$sig',
`avatar` = '$avatar',
`skin`='$skin',
`lang`='$lang',
`limit_tpid` = '$limit_tpid',
`limit_ftid` = '$limit_ftid',
`view_shoutbox` = '$allow_shoutbox',
`limit_users` = '$limit_users'
WHERE `u_id` ='$uid' LIMIT 1 ;";
DataBase::sql_query($sql,CRITICAL,'Could not update user information');
}
function UpdateAdminPools($uid, $posts, $rank, $active, $nick)
{
$sql ="UPDATE `".USERS_TABLE."` SET
`posts` = '$posts',
`rank` = '$rank',
`active` = '$active',
`nick` = '$nick'
WHERE `u_id` ='$uid' LIMIT 1 ;";
DataBase::sql_query($sql,CRITICAL,'Could not update user information');
}
function UpdatePassword($uid, $pass)
{
$sql ="UPDATE `".USERS_TABLE."` SET
`pass` = '$pass'
WHERE `u_id` ='$uid' LIMIT 1 ;";
DataBase::sql_query($sql,CRITICAL,'Could not update user information');
}
function CreateProfile($nick, $pass, $email, $gg, $allow_gg, $allow_email, $allow_qr, $sig, $av, $interests)
{
global $forum_config;
$last = DataBase::new_id(USERS_TABLE);
$time = $_SERVER['REQUEST_TIME'];
$sql = "INSERT INTO ".USERS_TABLE." VALUES
('$last', '$nick', '$pass', '$email', '0', '$time', '0', '$gg', '$allow_gg', '$allow_email', '$allow_qr', '".$forum_config['view_shoutbox']."', '".$forum_config['defaultskin']."', '".$forum_config['defaultlang']."','".$forum_config['limit_tpid']."', '".$forum_config['limit_ftid']."', '".$forum_config['limit_users']."', '$sig', '$av', '1','0','$interests');";
DataBase::sql_query($sql,CRITICAL,'Could not create new user');
}
function UserPMs()
{
$uid = $_SESSION['uid'];
if($uid>0)
{
$sql = "SELECT count(*) as `m_id` FROM ".PM_INBOX_TABLE." WHERE `u_id`='$uid' AND `read`='0'";
$result = DataBase::fetch(DataBase::sql_query($sql,GENERAL,'Could not obtain amounts PM of User.'));
$result = $result['m_id'];
if ($result>0)
{
return '<font color="red">'.$result.'</font>';
}
else
{
return $result;
}
}
}
function UserAddWarn($uid, $value, $motive)
{
global $lng;
$sql = "INSERT INTO `".WARNINGS_TABLE."` ( `w_id` , `u_id` , `value` , `motive` ) VALUES('','$uid','$value','$motive');";
DataBase::sql_query($sql,GENERAL,'Could not add new warn.');
if (User::UserLevelWarns($uid)==100)
{
$ban_ip = '0.0.0.0';
$ban_uid = $uid;
$ban_motive = $lng['warns_ban'];
$sql = "INSERT INTO ".BANLIST_TABLE." VALUES ('', '$ban_uid', '$ban_ip', '$ban_motive')";
DataBase::sql_query($sql,GENERAL,'Could not update add ban.');
}
}
function UserLevelWarns($uid)
{
$level =0;
$sql = "SELECT `u_id`,`value` FROM `".WARNINGS_TABLE."` WHERE `u_id`='$uid'";
$query = DataBase::sql_query($sql,'GENERAL','Could not obtain user warns information');
$result = DataBase::num_rows($query);
while ($result = @DataBase::fetch($query))
{
if ($result['value']=='-')
{
$level = $level -1;
}
else
{
$level = $level +1;
}
}
//version 1.0 Alpha 2
//delete second query
if ($level>0)
{
$level = $level*10;
}
return $level;
}
}
?>