2013-10-07 12:17:06 +00:00
< ? php
/*
**************************
* @ Author : Arslan Hassan
* @ Software : ClipBucket
* @ Since : 2007
* @ Modified : 06 - 08 - 2009
* $Id : user . class . php 1071 2013 - 07 - 06 08 : 35 : 50 Z hassanbaryar $
* @ License : Attribution Assurance License -- http :// www . opensource . org / licenses / attribution . php
**************************
Notice : Maintain this section
*/
define ( 'NO_AVATAR' , 'no_avatar.png' ); //if there is no avatar or profile pic, this file will be used
class userquery extends CBCategory {
var $userid = '' ;
var $username = '' ;
var $level = '' ;
2014-02-24 12:10:52 +00:00
var $permissions = '' ;
2013-10-07 12:17:06 +00:00
var $access_type_list = array (); //Access list
var $usr_levels = array ();
var $signup_plugins = array (); //Signup Plugins
var $custom_signup_fields = array ();
var $custom_profile_fields = array ();
var $custom_profile_fields_groups = array ();
var $delete_user_functions = array ();
var $user_manager_functions = array ();
var $logout_functions = array ();
var $init_login_functons = array ();
var $user_exist = '' ;
var $user_account = array ();
var $user_sessions = array ();
var $profileItem = '' ;
var $sessions = '' ;
var $user_sess = '' ; //variable which holds current user session
var $is_login = false ;
var $dbtbl = array (
'user_permission_type' => 'user_permission_types' ,
'user_permissions' => 'user_permissions' ,
'user_level_permission' => 'user_levels_permissions' ,
'user_profile' => 'user_profile' ,
'users' => 'users' ,
'action_log' => 'action_log' ,
'subtbl' => 'subscriptions' ,
'contacts' => 'contacts' ,
);
var $udetails = array ();
2013-10-08 12:24:07 +00:00
private $basic_fields = array ();
private $extra_fields = array ();
2013-10-07 12:17:06 +00:00
function userquery ()
{
2013-11-07 20:05:44 +00:00
global $cb_columns ;
2014-06-02 14:05:04 +00:00
2013-10-07 12:17:06 +00:00
$this -> cat_tbl = 'user_categories' ;
2013-11-07 20:05:44 +00:00
$basic_fields = array (
'userid' , 'username' , 'email' , 'avatar' , 'sex' , 'avatar_url' ,
2014-12-18 12:05:32 +00:00
'dob' , 'level' , 'usr_status' , 'user_session_key' , 'featured' ,
'ban_status' , 'total_photos' , 'profile_hits' , 'total_videos' ,
'subscribers' , 'total_subscriptions'
2013-11-07 20:05:44 +00:00
);
$cb_columns -> object ( 'users' ) -> register_columns ( $basic_fields );
2013-10-07 12:17:06 +00:00
}
function init ()
{
global $sess , $Cbucket ;
// $this->user_sess = $sess->get('user_sess');
$this -> sess_salt = $sess -> get ( 'sess_salt' );
$this -> sessions = $this -> get_sessions ();
2014-02-24 12:10:52 +00:00
if ( $this -> sessions [ 'smart_sess' ])
2013-10-07 12:17:06 +00:00
{
$this -> userid = $this -> sessions [ 'smart_sess' ][ 'session_user' ];
}
//$this->level = $sess->get('level');
//Setting Access
//Get list Of permission
//$perms = $this->get_permissions();
//foreach($perms as $perm)
//{
// $this->add_access_type($perm['permission_code'],$perm['permission_name']);
//}
/* $this -> add_access_type ( 'admin_access' , 'Admin Access' );
$this -> add_access_type ( 'upload_access' , 'Upload Access' );
$this -> add_access_type ( 'channel_access' , 'Channel Access' );
$this -> add_access_type ( 'mod_access' , 'Moderator Access' ); */
//Fetching List Of User Levels
2016-02-26 11:23:50 +00:00
/* $levels = $this -> get_levels ();
2013-10-07 12:17:06 +00:00
foreach ( $levels as $level )
{
$this -> usr_levels [ $level [ 'user_level_id' ]] = $level [ " user_level_name " ];
}
2016-02-26 11:23:50 +00:00
*/
2013-10-07 12:17:06 +00:00
$udetails = " " ;
if ( $this -> userid )
$udetails = $this -> get_user_details ( $this -> userid , true );
2013-10-08 12:24:07 +00:00
2013-10-07 12:17:06 +00:00
if ( $udetails )
{
$this -> udetails = $udetails ;
$this -> username = $udetails [ 'username' ];
$this -> level = $this -> udetails [ 'level' ];
$this -> permission = $this -> get_user_level ( userid ());
//exit();
2013-10-08 12:24:07 +00:00
2013-10-07 12:17:06 +00:00
//Calling Logout Functions
2014-02-24 12:10:52 +00:00
$funcs = $this -> init_login_functions ;
2013-10-07 12:17:06 +00:00
if ( is_array ( $funcs ) && count ( $funcs ) > 0 )
{
foreach ( $funcs as $func )
{
if ( function_exists ( $func ))
{
$func ();
}
}
}
if ( $sess -> get ( " dummy_username " ) == " " ) {
$this -> UpdateLastActive ( userid ());
}
} else {
$this -> permission = $this -> get_user_level ( 4 , TRUE );
}
//Adding Actions such Report, share,fav etc
$this -> action = new cbactions ();
$this -> action -> type = 'u' ;
$this -> action -> name = 'user' ;
$this -> action -> obj_class = 'userquery' ;
$this -> action -> check_func = 'user_exists' ;
$this -> action -> type_tbl = $this -> dbtbl [ 'users' ];
$this -> action -> type_id_field = 'userid' ;
2014-02-24 12:10:52 +00:00
define ( 'AVATAR_SIZE' , config ( 'max_profile_pic_width' ));
define ( 'AVATAR_SMALL_SIZE' , 40 );
define ( 'BG_SIZE' , config ( 'max_bg_width' ));
define ( 'BACKGROUND_URL' , config ( 'background_url' ));
2014-09-19 10:22:43 +00:00
//define("USE_GAVATAR",config('gravatars') ? config('gravatars') : false); //Use Gavatar
2014-02-24 12:10:52 +00:00
define ( 'BACKGROUND_COLOR' , config ( 'background_color' ));
2014-09-19 10:22:43 +00:00
define ( 'USE_GAVATAR' , false );
2013-10-07 12:17:06 +00:00
if ( isSectionEnabled ( 'channels' ))
2014-05-12 06:53:09 +00:00
$Cbucket -> search_types [ 'channels' ] = " userquery " ;
2013-10-07 12:17:06 +00:00
}
/**
* Function used to create user session key
*/
function create_session_key ( $session , $pass )
{
$newkey = $session . $pass ;
$newkey = md5 ( $newkey );
return $newkey ;
}
/**
* Function used to create user session code
* just for session authentication incase user wants to login again
*/
function create_session_code ()
{
$code = rand ( 10000 , 99999 );
return $code ;
}
2013-10-08 12:24:07 +00:00
/**
* @ return array
*/
function get_basic_fields () {
return $this -> basic_fields ;
}
function set_basic_fields ( $fields = array () ) {
return $this -> basic_fields = $fields ;
}
function basic_fields_setup () {
# Set basic video fields
$basic_fields = array (
'userid' , 'username' , 'email' , 'avatar' , 'sex' , 'avatar_url' ,
2014-04-14 16:00:19 +00:00
'dob' , 'level' , 'usr_status' , 'user_session_key' , 'total_photos' , 'profile_hits' , 'total_videos' , 'total_subscriptions'
2013-10-08 12:24:07 +00:00
);
return $this -> set_basic_fields ( $basic_fields );
}
function get_extra_fields () {
return $this -> extra_fields ;
}
function set_extra_fields ( $fields = array () ) {
return $this -> extra_fields = $fields ;
}
function get_user_db_fields ( $extra_fields = array () ) {
$fields = $this -> get_basic_fields ();
$extra = $this -> get_extra_fields ();
if ( empty ( $fields ) ) {
$fields = $this -> basic_fields_setup ();
}
if ( ! empty ( $extra ) ) {
$fields = array_merge ( $fields , $extra );
}
if ( ! empty ( $extra_fields ) ) {
if ( is_array ( $extra_fields ) ) {
$fields = array_merge ( $fields , $extra_fields );
} else {
$fields [] = $extra_fields ;
}
}
# Do make array unqiue, otherwise we might get duplicate
# fields
$fields = array_unique ( $fields );
return $fields ;
}
function add_user_field ( $field ) {
$extra_fields = $this -> get_extra_fields ();
if ( is_array ( $field ) ) {
$extra_fields = array_merge ( $extra_fields , $field );
} else {
$extra_fields [] = $field ;
}
return $this -> set_extra_fields ( $extra_fields );
}
2013-10-07 12:17:06 +00:00
/**
* Neat and clean function to login user
* this function was made for v2 . x with User Level System
* param VARCHAR $username
* param TEXT $password
*/
function login_user ( $username , $password , $remember = false )
{
global $LANG , $sess , $cblog , $db ;
//Now checking if user exists or not
$pass = pass_code ( $password );
$udetails = $this -> get_user_with_pass ( $username , $pass );
//Inerting Access Log
$log_array = array ( 'username' => $username );
2014-02-24 12:10:52 +00:00
2013-10-07 12:17:06 +00:00
//First we will check weather user is already logged in or not
if ( $this -> login_check ( NULL , true ))
$msg [] = e ( lang ( 'you_already_logged' ));
elseif ( ! $this -> user_exists ( $username ))
$msg [] = e ( lang ( 'user_doesnt_exist' ));
elseif ( ! $udetails )
$msg [] = e ( lang ( 'usr_login_err' ));
elseif ( strtolower ( $udetails [ 'usr_status' ]) != 'ok' )
$msg [] = e ( lang ( 'user_inactive_msg' ));
2014-02-24 12:10:52 +00:00
elseif ( $udetails [ 'ban_status' ] == 'yes' )
2013-10-07 12:17:06 +00:00
$msg [] = e ( lang ( 'usr_ban_err' ));
else
{
2014-02-24 12:10:52 +00:00
2013-10-07 12:17:06 +00:00
$log_array [ 'userid' ] = $userid = $udetails [ 'userid' ];
$log_array [ 'useremail' ] = $udetails [ 'email' ];
$log_array [ 'success' ] = 1 ;
2014-02-24 12:10:52 +00:00
2013-10-07 12:17:06 +00:00
$log_array [ 'level' ] = $level = $udetails [ 'level' ];
//Adding Sessing In Database
//$sess->add_session($userid,'logged_in');
//$sess->set('username',$username);
//$sess->set('userid',$userid);
//Setting Timeout
if ( $remember )
$sess -> timeout = 86400 * REMBER_DAYS ;
//Starting special sessions for security
$session_salt = RandomString ( 5 );
$sess -> set ( 'sess_salt' , $session_salt );
$sess -> set ( 'PHPSESSID' , $sess -> id );
$smart_sess = md5 ( $udetails [ 'user_session_key' ] . $session_salt );
$db -> delete ( tbl ( " sessions " ), array ( " session " , " session_string " ), array ( $sess -> id , " guest " ));
$sess -> add_session ( $userid , 'smart_sess' , $smart_sess );
//$sess->set('user_sess',$smart_sess);
//$sess->set('user_session_key',$udetails['user_session_key']);
//$sess->set('user_session_code',$udetails['user_session_code']);
//Setting Vars
$this -> userid = $udetails [ 'userid' ];
2014-02-24 12:10:52 +00:00
$this -> username = $udetails [ 'username' ];
2013-10-07 12:17:06 +00:00
$this -> level = $udetails [ 'level' ];
//Updating User last login , num of visist and ip
$db -> update ( tbl ( 'users' ),
array (
'num_visits' , 'last_logged' , 'ip'
),
array (
'|f|num_visits+1' , NOW (), $_SERVER [ 'REMOTE_ADDR' ]
),
" userid=' " . $userid . " ' "
);
2014-02-24 12:10:52 +00:00
2013-10-07 12:17:06 +00:00
$this -> init ();
//Logging Actiong
$cblog -> insert ( 'login' , $log_array );
return true ;
}
//Error Loging
if ( ! empty ( $msg ))
{
//Loggin Action
2014-02-24 12:10:52 +00:00
$log_array [ 'success' ] = no ;
2013-10-07 12:17:06 +00:00
$log_array [ 'details' ] = $msg [ 0 ];
$cblog -> insert ( 'login' , $log_array );
}
}
/**
* Function used to check weather user is login or not
* it will also check weather user has access or not
* @ param VARCHAR acess type it can be admin_access , upload_acess etc
* you can either set it as level id
*/
function login_check ( $access = NULL , $check_only = FALSE , $verify_logged_user = TRUE )
{
global $LANG , $Cbucket , $sess ;
if ( $verify_logged_user )
{
//First check weather userid is here or not
if ( ! userid ())
{
2014-09-23 12:07:50 +00:00
2013-10-07 12:17:06 +00:00
if ( ! $check_only )
e ( lang ( 'you_not_logged_in' ));
return false ;
2014-09-23 12:07:50 +00:00
2013-10-07 12:17:06 +00:00
}
elseif ( ! $this -> session_auth ( userid ()))
{
if ( ! $check_only )
e ( lang ( 'usr_invalid_session_err' ));
return false ;
}
//Now Check if logged in user exists or not
elseif ( ! $this -> user_exists ( userid (), TRUE ))
{
if ( ! $check_only )
e ( lang ( 'invalid_user' ));
return false ;
}
//Now Check logged in user is banned or not
elseif ( $this -> is_banned ( userid ()) == 'yes' )
{
if ( ! $check_only )
e ( lang ( 'usr_ban_err' ));
return false ;
}
}
//Now user have passed all the stages, now checking if user has level access or not
if ( $access )
{
//$access_details = $this->get_user_level(userid());
$access_details = $this -> permission ;
2014-09-23 12:07:50 +00:00
2013-10-07 12:17:06 +00:00
if ( is_numeric ( $access ))
{
if ( $access_details [ 'level_id' ] == $access )
{
return true ;
} else {
if ( ! $check_only )
e ( lang ( 'insufficient_privileges' ));
$Cbucket -> show_page ( false );
return false ;
}
2014-02-24 12:10:52 +00:00
} else
{
2013-10-07 12:17:06 +00:00
if ( $access_details [ $access ] == 'yes' )
{
return true ;
}
else
{
if ( ! $check_only )
{
e ( lang ( 'insufficient_privileges' ));
$Cbucket -> show_page ( false );
}
return false ;
}
}
}
else
{
return true ;
}
}
/**
* This function was used to check
* user is logged in or not -- for v1 . 7. x and old
* it has been replaced by login_check in v2
* this function is sitll in use so
* we are just replace the lil code of it
*/
function logincheck ( $access = NULL , $redirect = TRUE )
{
if ( ! $this -> login_check ( $access ))
{
if ( $redirect == TRUE )
redirect_to ( BASEURL . signup_link );
return false ;
}
else
{
return true ;
}
}
/**
* Function used to authenticate user session
*/
function session_auth ( $uid )
{
global $sess ;
return true ;
/* if ( $sess -> get ( 'user_session_key' ) == $ufields [ 'user_session_key' ]
&& $sess -> get ( 'user_session_code' ) == $ufields [ 'user_session_code' ]) */
if ( $this -> user_sessions [ 'key' ] == '' )
{
$ufields = $this -> get_user_fields ( $uid , 'user_session_key,user_session_code' );
//echo test;
$this -> user_sessions [ 'key' ] = $ufields [ 'user_session_key' ];
$this -> user_sessions [ 'code' ] = $ufields [ 'user_session_code' ];
}
if ( $this -> user_sessions [ 'key' ] == $sess -> get ( 'user_session_key' )
&& $this -> user_sessions [ 'code' ] == $sess -> get ( 'user_session_code' )
|| ( has_access ( " admin_access " ) && $sess -> get ( " dummy_username " ) != " " ))
return true ;
else
return false ;
}
/**
* Function used to get user details using username and password
*/
function get_user_with_pass ( $username , $pass )
{
global $db ;
$results = $db -> select ( tbl ( " users " ),
" userid,email,level,usr_status,user_session_key,user_session_code " ,
" (username=' $username ' OR userid=' $username ') AND password=' $pass ' " );
if ( $db -> num_rows > 0 )
{
return $results [ 0 ];
} else {
return false ;
}
}
/**
* Function used to check weather user is banned or not
*/
function is_banned ( $uid )
{
global $db ;
//echo $this->udetails['ban_status'];
if ( empty ( $this -> udetails [ 'ban_status' ]) && userid ())
$this -> udetails [ 'ban_status' ] = $this -> get_user_field ( $uid , 'ban_status' );
return $this -> udetails [ 'ban_status' ];
}
function admin_check ()
{
return $this -> login_check ( 'admin_access' );
}
2014-02-24 12:10:52 +00:00
2013-10-07 12:17:06 +00:00
/**
* Function used to check user is admin or not
* @ param BOOLEAN if true , after checcking user will be redirected to login page if needed
*/
function admin_login_check ( $check_only = false )
{
if ( ! has_access ( 'admin_access' , true ))
{
if ( $check_only == FALSE )
redirect_to ( 'login.php' );
return false ;
} else {
return true ;
}
}
//This Function Is Used to Logout
function logout ( $page = 'login.php' )
{
global $sess ;
//Calling Logout Functions
$funcs = $this -> logout_functions ;
if ( is_array ( $funcs ) && count ( $funcs ) > 0 )
{
foreach ( $funcs as $func )
{
if ( function_exists ( $func ))
{
$func ();
}
}
}
$sess -> un_set ( 'sess_salt' );
$sess -> destroy ();
//$sess->remove_session(userid());
}
/**
* Function used to delete user
*/
function delete_user ( $uid )
{
global $db ;
if ( $this -> user_exists ( $uid ))
{
$udetails = $this -> get_user_details ( $uid );
if ( userid () != $uid && has_access ( 'admin_access' , true ) && $uid != 1 )
{
//list of functions to perform while deleting a video
$del_user_funcs = $this -> delete_user_functions ;
if ( is_array ( $del_user_funcs ))
{
foreach ( $del_user_funcs as $func )
{
if ( function_exists ( $func ))
{
$func ( $udetails );
}
}
}
//Removing Subsriptions and subscribers
$this -> remove_user_subscriptions ( $uid );
$this -> remove_user_subscribers ( $uid );
//Changing User Videos To Anonymous
$db -> execute ( " UPDATE " . tbl ( " video " ) . " SET userid=' " . $this -> get_anonymous_user () . " ' WHERE userid=' " . $uid . " ' " );
//Changing User Group To Anonymous
$db -> execute ( " UPDATE " . tbl ( " groups " ) . " SET userid=' " . $this -> get_anonymous_user () . " ' WHERE userid=' " . $uid . " ' " );
//Deleting User Contacts
$this -> remove_contacts ( $uid );
//Deleting User PMS
$this -> remove_user_pms ( $uid );
//Changing From Messages to Anonymous
$db -> execute ( " UPDATE " . tbl ( " messages " ) . " SET message_from=' " . $this -> get_anonymous_user () . " ' WHERE message_from=' " . $uid . " ' " );
//Finally Removing Database entry of user
$db -> execute ( " DELETE FROM " . tbl ( " users " ) . " WHERE userid=' $uid ' " );
$db -> execute ( " DELETE FROM " . tbl ( " user_profile " ) . " WHERE userid=' $uid ' " );
e ( lang ( " usr_del_msg " ), " m " );
} else {
e ( lang ( " you_cant_delete_this_user " ));
}
} else {
e ( lang ( " user_doesnt_exist " ));
}
}
/**
* Remove all user subscriptions
*/
function remove_user_subscriptions ( $uid )
{
global $db ;
if ( ! $this -> user_exists ( $uid ))
e ( lang ( " user_doesnt_exist " ));
elseif ( ! has_access ( 'admin_access' ))
e ( lang ( " you_dont_hv_perms " ));
else
{
$db -> execute ( " DELETE FROM " . tbl ( $this -> dbtbl [ 'subtbl' ]) . " WHERE userid=' $uid ' " );
e ( lang ( " user_subs_hv_been_removed " ), " m " );
}
}
/**
* Remove all user subscribers
*/
function remove_user_subscribers ( $uid )
{
global $db ;
if ( ! $this -> user_exists ( $uid ))
e ( lang ( " user_doesnt_exist " ));
elseif ( ! has_access ( 'admin_access' ))
e ( lang ( " you_dont_hv_perms " ));
else
{
$db -> execute ( " DELETE FROM " . tbl ( $this -> dbtbl [ 'subtbl' ]) . " WHERE subscribed_to=' $uid ' " );
e ( lang ( " user_subsers_hv_removed " ), " m " );
}
}
//Delete User
function DeleteUser ( $id ){
return $this -> delete_user ( $id );
}
2014-02-24 11:28:44 +00:00
//Count Inactive users
function CountUsers (){
}
2013-10-07 12:17:06 +00:00
//Check User Exists or Not
function Check_User_Exists ( $id , $global = false ){
global $db ;
if ( $global )
{
if ( empty ( $this -> user_exist ))
{
if ( is_numeric ( $id ))
$result = $db -> count ( tbl ( $this -> dbtbl [ 'users' ]), " userid " , " userid=' " . $id . " ' " );
else
$result = $db -> count ( tbl ( $this -> dbtbl [ 'users' ]), " userid " , " username=' " . $id . " ' " );
if ( $result > 0 )
{
$this -> user_exist = 'yes' ;
} else {
$this -> user_exist = 'no' ;
}
}
if ( $this -> user_exist == 'yes' )
return true ;
else
return false ;
} else
{
if ( is_numeric ( $id ))
$result = $db -> count ( tbl ( $this -> dbtbl [ 'users' ]), " userid " , " userid=' " . $id . " ' " );
else
$result = $db -> count ( tbl ( $this -> dbtbl [ 'users' ]), " userid " , " username=' " . $id . " ' " );
if ( $result > 0 )
{
return true ;
} else {
return false ;
}
}
}
function user_exists ( $username , $global = false )
{
return $this -> Check_User_Exists ( $username , $global );
}
/**
* Function used to get user details using userid
*/
2016-06-07 14:20:15 +05:00
function get_user_details ( $id = NULL , $checksess = false , $email = false )
2013-10-07 12:17:06 +00:00
{
global $db , $sess ;
/* if ( ! $id )
$id = userid (); */
2013-10-08 12:24:07 +00:00
$is_email = ( strpos ( $id , '@' ) !== false ) ? true : false ;
$select_field = ( ! $is_email and ! is_numeric ( $id ) ) ? 'username' : ( ! is_numeric ( $id ) ? 'email' : 'userid' );
2016-06-07 14:20:15 +05:00
if ( $email == false ){
$fields = tbl_fields ( array ( 'users' => array ( '*' ) ) );
} else {
$fields = tbl_fields ( array ( 'users' => array ( 'email' ) ) );
}
2013-10-08 12:24:07 +00:00
$query = " SELECT $fields FROM " . cb_sql_table ( 'users' );
$query .= " WHERE users. $select_field = ' $id ' " ;
$result = select ( $query );
if ( $result ) {
$details = $result [ 0 ];
if ( ! $checksess ) {
return apply_filters ( $details , 'get_user' );
} else {
$session = $this -> sessions [ 'smart_sess' ];
$smart_sess = md5 ( $details [ 'user_session_key' ] . $sess -> get ( 'sess_salt' ));
if ( $smart_sess == $session [ 'session_value' ] ) {
$this -> is_login = true ;
return apply_filters ( $details , 'get_user' );
} else {
return false ;
}
}
}
return false ;
2013-10-07 12:17:06 +00:00
} function GetUserData ( $id = NULL ){ return $this -> get_user_details ( $id ); }
//Function Used To Activate User
function activate_user_with_avcode ( $user , $avcode )
{
global $eh ;
$data = $this -> get_user_details ( $user );
if ( ! $data || ! $user )
e ( lang ( " usr_exist_err " ));
elseif ( $data [ 'usr_status' ] == 'Ok' )
e ( lang ( 'usr_activation_err' ));
elseif ( $data [ 'ban_status' ] == 'yes' )
e ( lang ( 'ban_status' ));
elseif ( $data [ 'avcode' ] != $avcode )
e ( lang ( 'avcode_incorrect' ));
else
{
$this -> action ( 'activate' , $data [ 'userid' ]);
$eh -> flush ();
e ( lang ( " usr_activation_msg " ), " m " );
if ( $data [ 'welcome_email_sent' ] == 'no' )
$this -> send_welcome_email ( $data , TRUE );
}
}
/**
* Function used to send activation code
* to user
* @ param : $usenrma , $email or $userid
*/
function send_activation_code ( $email )
{
global $db , $cbemail ;
$udetails = $this -> get_user_details ( $email );
if ( ! $udetails || ! $email )
e ( lang ( " usr_exist_err " ));
elseif ( $udetails [ 'usr_status' ] == 'Ok' )
e ( lang ( 'usr_activation_err' ));
elseif ( $udetails [ 'ban_status' ] == 'yes' )
e ( lang ( 'ban_status' ));
else
{
$tpl = $cbemail -> get_template ( 'avcode_request_template' );
$more_var = array
( '{username}' => $udetails [ 'username' ],
'{email}' => $udetails [ 'email' ],
'{avcode}' => $udetails [ 'avcode' ]
);
if ( ! is_array ( $var ))
$var = array ();
$var = array_merge ( $more_var , $var );
$subj = $cbemail -> replace ( $tpl [ 'email_template_subject' ], $var );
$msg = nl2br ( $cbemail -> replace ( $tpl [ 'email_template' ], $var ));
//Now Finally Sending Email
cbmail ( array ( 'to' => $udetails [ 'email' ], 'from' => SUPPORT_EMAIL , 'subject' => $subj , 'content' => $msg ));
e ( lang ( 'usr_activation_em_msg' ), " m " );
}
}
function SendActivation ( $email )
{
return $this -> send_activation_code ( $email );
}
/**
* Function used to send welcome email
*/
function send_welcome_email ( $user , $update_email_status = FALSE )
{
global $db , $cbemail ;
if ( ! is_array ( $user ))
$udetails = $this -> get_user_details ( $user );
else
$udetails = $user ;
if ( ! $udetails )
e ( lang ( " usr_exist_err " ));
else
{
$tpl = $cbemail -> get_template ( 'welcome_message_template' );
$more_var = array
( '{username}' => $udetails [ 'username' ],
'{email}' => $udetails [ 'email' ],
);
if ( ! is_array ( $var ))
$var = array ();
$var = array_merge ( $more_var , $var );
$subj = $cbemail -> replace ( $tpl [ 'email_template_subject' ], $var );
$msg = nl2br ( $cbemail -> replace ( $tpl [ 'email_template' ], $var ));
//Now Finally Sending Email
cbmail ( array ( 'to' => $udetails [ 'email' ], 'from' => WELCOME_EMAIL , 'subject' => $subj , 'content' => $msg ));
if ( $update_email_status )
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'welcome_email_sent' ), array ( " yes " ), " userid=' " . $udetails [ 'userid' ] . " ' " );
}
}
/**
* Function used to change user password
*/
function ChangeUserPassword ( $array )
{
global $db ;
$old_pass = $array [ 'old_pass' ];
$new_pass = $array [ 'new_pass' ];
$c_new_pass = $array [ 'c_new_pass' ];
$uid = $array [ 'userid' ];
if ( ! $this -> get_user_with_pass ( $uid , pass_code ( $old_pass )))
e ( lang ( 'usr_pass_err' ));
elseif ( empty ( $new_pass ))
e ( lang ( 'usr_pass_err2' ));
elseif ( $new_pass != $c_new_pass )
e ( lang ( 'usr_cpass_err1' ));
else
{
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'password' ), array ( pass_code ( $array [ 'new_pass' ])), " userid=' " . $uid . " ' " );
e ( lang ( " usr_pass_email_msg " ), " m " );
}
return $msg ;
}
function change_user_pass ( $array ){ return $this -> ChangeUserPassword ( $array ); }
function change_password ( $array ){ return $this -> ChangeUserPassword ( $array ); }
/**
* Function used to add contact
*/
function add_contact ( $uid , $fid )
{
global $cbemail , $db ;
$friend = $this -> get_user_details ( $fid );
$sender = $this -> get_user_details ( $uid );
if ( ! $friend )
e ( lang ( 'usr_exist_err' ));
elseif ( $this -> is_requested_friend ( $uid , $fid ))
e ( lang ( " you_already_sent_frend_request " ));
elseif ( $this -> is_requested_friend ( $uid , $fid , " in " ))
{
$this -> confirm_friend ( $fid , $uid );
e ( lang ( " friend_added " ));
} elseif ( $uid == $fid )
{
e ( lang ( " friend_add_himself_error " ));
} else
{
$db -> insert ( tbl ( $this -> dbtbl [ 'contacts' ]), array ( 'userid' , 'contact_userid' , 'date_added' , 'request_type' ),
array ( $uid , $fid , now (), 'out' ));
$insert_id = $db -> insert_id ();
e ( lang ( " friend_request_sent " ), " m " );
//Sending friendship request email
$tpl = $cbemail -> get_template ( 'friend_request_email' );
$more_var = array
(
'{reciever}' => $friend [ 'username' ],
'{sender}' => $sender [ 'username' ],
'{sender_link}' => $this -> profile_link ( $sender ),
'{request_link}' => BASEURL . '/manage_contacts.php?mode=request&confirm=' . $uid
);
if ( ! is_array ( $var ))
$var = array ();
$var = array_merge ( $more_var , $var );
$subj = $cbemail -> replace ( $tpl [ 'email_template_subject' ], $var );
$msg = nl2br ( $cbemail -> replace ( $tpl [ 'email_template' ], $var ));
//Now Finally Sending Email
2016-03-11 03:36:23 -08:00
#cbmail(array('to'=>$friend['email'],'from'=>WEBSITE_EMAIL,'subject'=>$subj,'content'=>$msg));
2013-10-07 12:17:06 +00:00
}
}
/**
* Function used to check weather users are confirmed friends or not
*/
function is_confirmed_friend ( $uid , $fid )
{
global $db ;
$count = $db -> count ( tbl ( $this -> dbtbl [ 'contacts' ]), " contact_id " ,
" (userid=' $uid ' AND contact_userid=' $fid ') OR (userid=' $fid ' AND contact_userid=' $uid ') AND confirmed='yes' " );
if ( $count [ 0 ] > 0 )
return true ;
else
return false ;
}
/**
* function used to check weather users are firends or not
*/
function is_friend ( $uid , $fid )
{
global $db ;
$count = $db -> count ( tbl ( $this -> dbtbl [ 'contacts' ]), " contact_id " ,
" (userid=' $uid ' AND contact_userid=' $fid ') OR (userid=' $fid ' AND contact_userid=' $uid ') " );
if ( $count [ 0 ] > 0 )
return true ;
else
return false ;
}
/**
* Function used to check weather user has already requested friendship or not
*/
function is_requested_friend ( $uid , $fid , $type = 'out' , $confirm = NULL )
{
global $db ;
$query = " " ;
if ( $confirm )
$query = " AND confirmed=' $confirm ' " ;
if ( $type == 'out' )
$count = $db -> count ( tbl ( $this -> dbtbl [ 'contacts' ]), " contact_id " , " userid=' $uid ' AND contact_userid=' $fid ' $query " );
else
$count = $db -> count ( tbl ( $this -> dbtbl [ 'contacts' ]), " contact_id " , " userid=' $fid ' AND contact_userid=' $uid ' $query " );
if ( $count [ 0 ] > 0 )
return true ;
else
return false ;
}
/**
* Function used to confirm friend
*/
function confirm_friend ( $uid , $rid , $msg = TRUE )
{
global $cbemail , $db ;
if ( ! $this -> is_requested_friend ( $rid , $uid , 'out' , 'no' ))
{
if ( $msg )
e ( lang ( " friend_confirm_error " ));
} else
{
addFeed ( array ( 'action' => 'add_friend' , 'object_id' => $rid , 'object' => 'friend' , 'uid' => $uid ));
addFeed ( array ( 'action' => 'add_friend' , 'object_id' => $uid , 'object' => 'friend' , 'uid' => $rid ));
$db -> insert ( tbl ( $this -> dbtbl [ 'contacts' ]), array ( 'userid' , 'contact_userid' , 'date_added' , 'request_type' , 'confirmed' ),
array ( $uid , $rid , now (), 'in' , 'yes' ));
$db -> update ( tbl ( $this -> dbtbl [ 'contacts' ]), array ( 'confirmed' ), array ( " yes " ), " userid=' $rid ' AND contact_userid=' $uid ' " );
if ( $msg )
e ( lang ( " friend_confirmed " ), " m " );
//Sending friendship confirmation email
$tpl = $cbemail -> get_template ( 'friend_confirmation_email' );
$friend = $this -> get_user_details ( $rid );
$sender = $this -> get_user_details ( $uid );
$more_var = array
(
'{reciever}' => $friend [ 'username' ],
'{sender}' => $sender [ 'username' ],
'{sender_link}' => $this -> profile_link ( $sender ),
);
if ( ! is_array ( $var ))
$var = array ();
$var = array_merge ( $more_var , $var );
$subj = $cbemail -> replace ( $tpl [ 'email_template_subject' ], $var );
$msg = nl2br ( $cbemail -> replace ( $tpl [ 'email_template' ], $var ));
//Now Finally Sending Email
cbmail ( array ( 'to' => $friend [ 'email' ], 'from' => WEBSITE_EMAIL , 'subject' => $subj , 'content' => $msg ));
//Loggin Friendship
$log_array = array
(
'success' => 'yes' ,
'action_obj_id' => $friend [ 'userid' ],
'details' => " friend with " . $friend [ 'username' ]
);
insert_log ( 'add_friend' , $log_array );
$log_array = array
(
'success' => 'yes' ,
'username' => $friend [ 'username' ],
'userid' => $friend [ 'userid' ],
'userlevel' => $friend [ 'level' ],
'useremail' => $friend [ 'email' ],
'action_obj_id' => $insert_id ,
'details' => " friend with " . userid ()
);
//Login Upload
insert_log ( 'add_friend' , $log_array );
}
}
/**
* Function used to confirm request
*/
function confirm_request ( $rid , $uid = NULL )
{
global $db ;
if ( ! $uid )
$uid = userid ();
$result = $db -> select ( tbl ( $this -> dbtbl [ 'contacts' ]), " * " , " userid=' $rid ' AND contact_userid=' $uid ' " );
$result = $result [ 0 ];
if ( $db -> num_rows == 0 )
e ( lang ( " friend_request_not_found " ));
elseif ( $uid != $result [ 'contact_userid' ])
e ( lang ( " you_cant_confirm_this_request " ));
elseif ( $result [ 'confirmed' ] == 'yes' )
e ( lang ( " friend_request_already_confirmed " ));
else
{
$this -> confirm_friend ( $uid , $result [ 'userid' ]);
}
}
/**
* Function used to get user contacts
*/
function get_contacts ( $uid , $group = 0 , $confirmed = NULL , $count_only = false , $type = NULL )
{
global $db ;
$query = " " ;
if ( $confirmed )
$query .= " AND " . tbl ( " contacts " ) . " .confirmed=' $confirmed ' " ;
if ( $type )
$query .= " AND " . tbl ( " contacts " ) . " .request_type=' $type ' " ;
if ( ! $count_only )
{
$result = $db -> select ( tbl ( " contacts,users " ),
tbl ( " contacts.contact_userid,contacts.confirmed,contacts.request_type ,users.* " ),
tbl ( " contacts.userid " ) . " =' $uid ' AND " . tbl ( " users.userid " ) . " = " . tbl ( " contacts.contact_userid " ) . "
$query AND " .tbl( " contacts " ). " . contact_group_id = '$group' " );
if ( $db -> num_rows > 0 )
return $result ;
else
return false ;
} else {
$count = $db -> count ( tbl ( " contacts " ),
tbl ( " contacts.contact_userid " ),
tbl ( " contacts.userid " ) . " =' $uid '
$query AND " .tbl( " contacts " ). " . contact_group_id = '$group' " );
return $count ;
}
}
/**
* Function used to get pending contacts
*/
function get_pending_contacts ( $uid , $group = 0 , $count_only = false )
{
global $db ;
if ( ! $count_only )
{
$result = $db -> select ( tbl ( " contacts,users " ),
tbl ( " contacts.userid,contacts.confirmed,contacts.request_type ,users.* " ),
tbl ( " contacts.contact_userid " ) . " =' $uid ' AND " . tbl ( " users.userid " ) . " = " . tbl ( " contacts.userid " ) . "
AND " .tbl( " contacts . confirmed " ). " = 'no' AND " .tbl( " contacts " ). " . contact_group_id = '$group' " );
if ( $db -> num_rows > 0 )
return $result ;
else
return false ;
} else
{
$count = $db -> count ( tbl ( " contacts " ),
tbl ( " contacts.contact_userid " ),
tbl ( " contacts.contact_userid " ) . " =' $uid ' AND " . tbl ( " contacts.confirmed " ) . " ='no' AND " . tbl ( " contacts " ) . " .contact_group_id=' $group ' " );
//echo $db->db_query;
return $count ;
}
}
/**
* Function used to get pending contacts
*/
function get_requested_contacts ( $uid , $group = 0 )
{
global $db ;
$result = $db -> select ( tbl ( $this -> dbtbl [ 'contacts' ]), " * " , " contact_userid=' $uid ' AND confirmed='no' AND contact_group_id=' $group ' " );
if ( $db -> num_rows > 0 )
return $result ;
else
return false ;
}
/**
* Function used to remove user from contact list
* @ param fid { id of friend that user wants to remove }
* @ param uid { id of user who is removing other from friendlist }
*/
function remove_contact ( $fid , $uid = NULL )
{
global $db ;
if ( ! $uid )
$uid = userid ();
if ( ! $this -> is_friend ( $fid , $uid ))
e ( lang ( " user_no_in_contact_list " ));
else
{
$db -> Execute ( " DELETE from " . tbl ( $this -> dbtbl [ 'contacts' ]) . " WHERE
( userid = '$uid' AND contact_userid = '$fid' ) OR ( userid = '$fid' AND contact_userid = '$uid' ) " );
e ( lang ( " user_removed_from_contact_list " ), " m " );
}
}
/**
* Funcion used to increas user total_watched field
*/
function increment_watched_vides ( $userid )
{
global $db ;
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'total_watched' ), array ( '|f|total_watched+1' ), " userid=' $userid ' " );
}
/**
* Old Function : GetNewMsgs
* This function is used to get user messages
* @ param : user
* @ param : sent / inbox
* @ param : count ( TRUE : FALSE )
*/
function get_pm_msgs ( $user , $box = 'inbox' , $count = FALSE ){
global $db , $eh , $LANG ;
if ( ! $user )
$user = user_id ();
if ( ! user_id ())
{
$eh -> e ( lang ( 'you_not_logged_in' ));
} else {
switch ( $box )
{
case 'inbox' :
default :
$boxtype = 'inbox' ;
break ;
case 'sent' :
case 'outbox' :
$boxtype = 'outbox' ;
break ;
}
if ( $count )
$status_query = " AND status = '0' " ;
$results = $db -> select ( tbl ( " messages " ),
" message_id " ,
" ( " . $boxtype . " _user = ' $user ' OR " . $boxtype . " _user_id = ' $user ') $status_query " );
if ( $db -> num_rows > 0 )
{
if ( $count )
return $db -> num_rows ;
else
return $results ;
}
else
{
return false ;
}
}
}
function GetNewMsgs ( $user )
{
$msgs = $this -> get_pm_msgs ( $user , 'inbox' , TRUE );
if ( $msgs )
return $msgs ;
else
return 0 ;
}
/**
* Function used to subscribe user
*/
function subscribe_user ( $to , $user = NULL )
{
if ( ! $user )
$user = userid ();
global $db ;
$to_user = $this -> get_user_details ( $to );
if ( ! $this -> user_exists ( $to ))
e ( lang ( 'usr_exist_err' ));
elseif ( ! $user )
e ( sprintf ( lang ( 'please_login_subscribe' ), $to_user [ 'username' ]));
elseif ( $this -> is_subscribed ( $to , $user ))
e ( sprintf ( lang ( " usr_sub_err " ), $to_user [ 'username' ]));
elseif ( $to_user [ 'userid' ] == $user )
e ( lang ( " you_cant_sub_yourself " ));
else
{
$db -> insert ( tbl ( $this -> dbtbl [ 'subtbl' ]), array ( 'userid' , 'subscribed_to' , 'date_added' ),
array ( $user , $to , NOW ()));
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'subscribers' ),
array ( $this -> get_user_subscribers ( $to , true )), " userid=' $to ' " );
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'total_subscriptions' ),
array ( $this -> get_user_subscriptions ( $user , 'count' )), " userid=' $user ' " );
//Loggin Comment
$log_array = array
(
'success' => 'yes' ,
'details' => " subsribed to " . $to_user [ 'username' ],
'action_obj_id' => $to_user [ 'userid' ],
'action_done_id' => $db -> insert_id (),
);
insert_log ( 'subscribe' , $log_array );
e ( sprintf ( lang ( 'usr_sub_msg' ), $to_user [ 'username' ]), 'm' );
}
}
function SubscribeUser ( $sub_user , $sub_to ){ return $this -> subscribe_user ( $sub_to , $sub_user );}
/**
* Function used to check weather user is already subscribed or not
*/
function is_subscribed ( $to , $user = NULL )
{
if ( ! $user )
$user = userid ();
global $db ;
if ( ! $user )
return false ;
$result = $db -> select ( tbl ( $this -> dbtbl [ 'subtbl' ]), " * " , " subscribed_to=' $to ' AND userid=' $user ' " );
if ( $db -> num_rows > 0 )
return $result ;
else
return false ;
}
/**
* Function used to remove user subscription
*/
function remove_subscription ( $subid , $uid = NULL )
{
global $db ;
if ( ! $uid )
$uid = userid ();
if ( $this -> is_subscribed ( $subid , $uid ))
{
$db -> execute ( " DELETE FROM " . tbl ( $this -> dbtbl [ 'subtbl' ]) . " WHERE userid=' $uid ' AND subscribed_to=' $subid ' " );
e ( lang ( " class_unsub_msg " ), " m " );
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'subscribers' ),
array ( $this -> get_user_subscribers ( $subid , true )), " userid=' $subid ' " );
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'total_subscriptions' ),
array ( $this -> get_user_subscriptions ( $uid , 'count' )), " userid=' $uid ' " );
return true ;
} else
e ( lang ( " you_not_subscribed " ));
return false ;
} function unsubscribe_user ( $subid , $uid = NULL ){ return $this -> remove_subscription ( $subid , $uid ); }
/**
* Function used to get user subscibers
* @ param userid
*/
function get_user_subscribers ( $id , $count = false )
{
global $db ;
if ( ! $count )
{
$result = $db -> select ( tbl ( 'subscriptions' ), " * " ,
" subscribed_to=' $id ' " );
if ( $db -> num_rows > 0 )
return $result ;
else
return false ;
} else
{
return $db -> count ( tbl ( $this -> dbtbl [ 'subtbl' ]), " subscription_id " , " subscribed_to=' $id ' " );
}
}
/**
* function used to get user subscribers with details
*/
function get_user_subscribers_detail ( $id , $limit = NULL )
{
global $db ;
$result = $db -> select ( tbl ( " users, " . $this -> dbtbl [ 'subtbl' ]), " * " , " " . tbl ( " subscriptions.subscribed_to " ) . " = ' $id ' AND " . tbl ( " subscriptions.userid " ) . " = " . tbl ( " users.userid " ), $limit );
if ( $db -> num_rows > 0 )
return $result ;
else
return false ;
}
/**
* Function used to get user subscriptions
*/
function get_user_subscriptions ( $id , $limit = NULL )
{
global $db ;
if ( $limit != 'count' )
{
$result = $db -> select ( tbl ( " users, " . $this -> dbtbl [ 'subtbl' ]), " * " , " " . tbl ( " subscriptions.userid " ) . " = ' $id ' AND " . tbl ( " subscriptions.subscribed_to " ) . " = " . tbl ( " users.userid " ), $limit );
if ( $db -> num_rows > 0 )
return $result ;
else
return false ;
} else
{
$result = $db -> count ( tbl ( $this -> dbtbl [ 'subtbl' ]), " subscription_id " , " userid = ' $id ' " );
return $result ;
}
}
/**
* Function used to reset user password
* it has two steps
* 1 to send confirmation
* 2 to reset the password
*/
function reset_password ( $step , $input , $code = NULL )
{
global $cbemail , $db ;
switch ( $step )
{
case 1 :
{
$udetails = $this -> get_user_details ( $input );
if ( ! $udetails )
e ( lang ( 'usr_exist_err' ));
//verifying captcha...
elseif ( ! verify_captcha ())
e ( lang ( 'usr_ccode_err' ));
else
{
//Sending confirmation email
$tpl = $cbemail -> get_template ( 'password_reset_request' );
$avcode = $udetails [ 'avcode' ];
if ( ! $udetails [ 'avcode' ])
{
$avcode = RandomString ( 10 );
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'avcode' ), array ( $avcode ), " userid=' " . $udetails [ 'userid' ] . " ' " );
}
$more_var = array
( '{username}' => $udetails [ 'username' ],
'{email}' => $udetails [ 'email' ],
'{avcode}' => $avcode ,
'{userid}' => $udetails [ 'userid' ],
);
if ( ! is_array ( $var ))
$var = array ();
$var = array_merge ( $more_var , $var );
$subj = $cbemail -> replace ( $tpl [ 'email_template_subject' ], $var );
$msg = nl2br ( $cbemail -> replace ( $tpl [ 'email_template' ], $var ));
//Now Finally Sending Email
cbmail ( array ( 'to' => $udetails [ 'email' ], 'from' => WEBSITE_EMAIL , 'subject' => $subj , 'content' => $msg ));
e ( lang ( 'usr_rpass_email_msg' ), " m " );
return true ;
}
}
break ;
case 2 :
{
$udetails = $this -> get_user_details ( $input );
if ( ! $udetails )
e ( lang ( 'usr_exist_err' ));
//verifying captcha...
elseif ( $udetails [ 'avcode' ] != $code )
e ( lang ( 'usr_ccode_err' ));
else
{
$newpass = RandomString ( 6 );
$pass = pass_code ( $newpass );
$avcode = RandomString ( 10 );
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'password' , 'avcode' ), array ( $pass , $avcode ), " userid=' " . $udetails [ 'userid' ] . " ' " );
//sending new password email...
//Sending confirmation email
$tpl = $cbemail -> get_template ( 'password_reset_details' );
$more_var = array
( '{username}' => $udetails [ 'username' ],
'{email}' => $udetails [ 'email' ],
'{avcode}' => $udetails [ 'avcode' ],
'{userid}' => $udetails [ 'userid' ],
'{password}' => $newpass ,
);
if ( ! is_array ( $var ))
$var = array ();
$var = array_merge ( $more_var , $var );
$subj = $cbemail -> replace ( $tpl [ 'email_template_subject' ], $var );
$msg = nl2br ( $cbemail -> replace ( $tpl [ 'email_template' ], $var ));
//Now Finally Sending Email
cbmail ( array ( 'to' => $udetails [ 'email' ], 'from' => WEBSITE_EMAIL , 'subject' => $subj , 'content' => $msg ));
e ( lang ( 'usr_pass_email_msg' ), 'm' );
return true ;
}
}
break ;
}
}
/**
* Function used to recover username
*/
function recover_username ( $email )
{
global $cbemail ;
$udetails = $this -> get_user_details ( $email );
if ( ! $udetails )
e ( lang ( 'no_user_associated_with_email' ));
elseif ( ! verify_captcha ())
e ( lang ( 'usr_ccode_err' ));
else
{
$tpl = $cbemail -> get_template ( 'forgot_username_request' );
$more_var = array
(
'{username}' => $udetails [ 'username' ],
);
if ( ! is_array ( $var ))
$var = array ();
$var = array_merge ( $more_var , $var );
$subj = $cbemail -> replace ( $tpl [ 'email_template_subject' ], $var );
$msg = nl2br ( $cbemail -> replace ( $tpl [ 'email_template' ], $var ));
//Now Finally Sending Email
cbmail ( array ( 'to' => $udetails [ 'email' ], 'from' => SUPPORT_EMAIL , 'subject' => $subj , 'content' => $msg ));
e ( lang ( " usr_uname_email_msg " ), 'm' );
}
return $msg ;
}
//FUNCTION USED TO UPDATE LAST ACTIVE FOR OF USER
// @ Param : username
function UpdateLastActive ( $username )
{
global $db ;
$sql = " UPDATE " . tbl ( " users " ) . " SET last_active = ' " . NOW () . " ' WHERE username=' " . $username . " ' OR userid=' " . $username . " ' " ;
$db -> Execute ( $sql );
}
/**
* FUNCTION USED TO GE USER THUMBNAIL
* @ param : thumb file
* @ param : size ( NULL , small )
*/
function getUserThumb ( $udetails , $size = '' , $uid = NULL , $just_file = false )
{
2014-11-24 14:14:20 +00:00
global $Cbucket ;
2013-10-07 12:17:06 +00:00
$remote = false ;
2016-05-10 17:18:52 +05:00
if ( function_exists ( 'check_adv_social_con_license' )) {
global $db ;
$user = $udetails [ 'userid' ];
$template = $Cbucket -> configs [ 'template_dir' ];
$url = $db -> select ( tbl ( 'users' ), '*' , " userid = $user " );
if ( $url [ 0 ][ 'soclid' ] != '' && $template == 'cb_28' ) {
return $url [ 0 ][ 'avatar_url' ];
}
}
2013-10-07 12:17:06 +00:00
if ( empty ( $udetails [ 'userid' ]) && $uid )
$udetails = $this -> get_user_details ( $uid );
//$thumbnail = $udetails['avatar'] ? $udetails['avatar'] : NO_AVATAR;
$thumbnail = $udetails [ 'avatar' ];
$thumb_file = USER_THUMBS_DIR . '/' . $thumbnail ;
if ( file_exists ( $thumb_file ) && $thumbnail )
2014-11-24 14:14:20 +00:00
$thumb = USER_THUMBS_URL . '/' . $thumbnail ;
2013-10-07 12:17:06 +00:00
elseif ( ! empty ( $udetails [ 'avatar_url' ]))
{
$thumb = $udetails [ 'avatar_url' ];
$remote = true ;
} else
{
if ( ! USE_GAVATAR )
$thumb_file = $this -> get_default_thumb ();
else
{
switch ( $size )
{
case " small " :
{
$thesize = AVATAR_SMALL_SIZE ;
$default = $this -> get_default_thumb ( 'small' );
}
break ;
default :
{
$thesize = AVATAR_SIZE ;
$default = $this -> get_default_thumb ();
}
}
$email = $udetails [ 'email' ];
$email = $email ? $email : $udetails [ 'anonym_email' ];
$gravatar = new Gravatar ( $email , $default );
$gravatar -> size = $thesize ;
$gravatar -> rating = " G " ;
$gravatar -> border = " FF0000 " ;
$thumb = $gravatar -> getSrc ();
//echo $gravatar->toHTML();
}
}
2014-09-22 13:40:14 +00:00
2013-10-07 12:17:06 +00:00
$ext = GetExt ( $thumb_file );
$file = getName ( $thumb_file );
2014-11-24 14:14:20 +00:00
2013-10-07 12:17:06 +00:00
if ( ! $remote )
{
if ( ! empty ( $size ) && ! $thumb )
2014-11-24 14:14:20 +00:00
{
2013-10-07 12:17:06 +00:00
$thumb = USER_THUMBS_URL . '/' . $file . '-' . $size . '.' . $ext ;
2014-11-24 14:14:20 +00:00
$thumb_path = $file . '.' . $ext ;
}
2013-10-07 12:17:06 +00:00
elseif ( ! $thumb )
2014-11-24 14:14:20 +00:00
{
2013-10-07 12:17:06 +00:00
$thumb = USER_THUMBS_URL . '/' . $file . '.' . $ext ;
2014-11-24 14:14:20 +00:00
$thumb_path = " " ;
}
2013-10-07 12:17:06 +00:00
}
2014-11-24 14:14:20 +00:00
$thumb_name = $file . '.' . $ext ;
2013-10-07 12:17:06 +00:00
if ( $just_file )
return $file . '.' . $ext ;
2014-09-22 13:40:14 +00:00
if ( $size ){
2014-11-24 14:14:20 +00:00
$params = array (
'size' => $size ,
'thumb_path' => " images/avatars/ " ,
'thumb_name' => $thumb_name ,
'just_file' => $just_file ,
'is_remote' => $remote ,
);
if ( count ( $Cbucket -> custom_user_thumb ) > 0 ) {
$functions = $Cbucket -> custom_user_thumb ;
foreach ( $functions as $func ) {
if ( function_exists ( $func ) ) {
$func_data = $func ( $params );
if ( $func_data ) {
return $func_data ;
}
}
}
}
return $thumb = USER_THUMBS_URL . '/' . $file . '.' . $ext ;
//return $this->resizer($size,$thumb);
2014-09-22 13:40:14 +00:00
}
2013-10-07 12:17:06 +00:00
return $thumb ;
}
2014-09-22 13:40:14 +00:00
/**
* Function used to resize image of avatar using timthumb
*/
function resizer ( $size , $src )
{
if ( $size )
$size = explode ( 'x' , $size );
$w = $size [ 0 ];
$h = $size [ 1 ];
if ( ! $w ) $w = 120 ;
if ( ! $h ) $h = 90 ;
return BASEURL . " /includes/classes/timthumb/timthumb.php?src= $src &w= $w &h= $h " ;
}
2013-10-07 12:17:06 +00:00
function avatar ( $udetails , $size = '' , $uid = NULL )
{
return $this -> getUserThumb ( $udetails , $size , $uid );
}
/**
* Function used to get default user thumb
*/
function get_default_thumb ( $size = NULL )
{
if ( $size == " small " && file_exists ( TEMPLATEDIR . '/images/thumbs/no_avatar-small.png' ))
{
return TEMPLATEURL . '/images/thumbs/no_avatar-small.png' ;
} elseif ( file_exists ( TEMPLATEDIR . '/images/thumbs/no_avatar.png' ) && ! $size )
{
return TEMPLATEURL . '/images/thumbs/no_avatar.png' ;
} else
{
if ( $size == 'small' )
return USER_THUMBS_URL . '/' . getName ( NO_AVATAR ) . '-small.' . getExt ( NO_AVATAR );
else
return USER_THUMBS_URL . '/' . NO_AVATAR ;
}
}
/**
* Function used to get user Background
* @ param : bg file
*/
function getUserBg ( $udetails , $check = false )
{
$remote = false ;
if ( empty ( $udetails [ 'userid' ]))
$udetails = $this -> get_user_details ( $uid );
//$thumbnail = $udetails['avatar'] ? $udetails['avatar'] : 'no_avatar.jpg';
$file = $udetails [ 'background' ];
$bgfile = USER_BG_DIR . '/' . $file ;
if ( file_exists ( $bgfile ) && $file )
$thumb_file = USER_BG_URL . '/' . $file ;
elseif ( ! empty ( $udetails [ 'background_url' ]) && BACKGROUND_URL == 'yes' )
{
$thumb_file = $udetails [ 'background_url' ];
$remote = true ;
} elseif ( ! empty ( $udetails [ 'background_color' ]) && BACKGROUND_COLOR == 'yes' && $check )
{
return true ;
} else
return false ;
return $thumb_file ;
}
/**
* Function used to get user subscriber ' s list
* @ param VARCHAR //INT username or userid , both works fine
*/
function get_user_subscriber ( $username )
{
global $db ;
$results = $db -> Execute ( " SELECT * FROM " . tbl ( " subscriptions " ) . " WHERE subsctibe_to=' $username ' " );
if ( $results -> recordcount () > 0 )
return $results -> getrows ();
else
return false ;
}
/**
* Function used to get user field
* @ param INT userid
* @ param FIELD name
*/
function get_user_field ( $uid , $field )
{
global $db ;
if ( is_numeric ( $uid ))
$results = $db -> select ( tbl ( 'users' ), $field , " userid=' $uid ' " );
else
$results = $db -> select ( tbl ( 'users' ), $field , " username=' $uid ' " );
if ( $db -> num_rows > 0 )
{
return $results [ 0 ];
} else {
return false ;
}
} function get_user_fields ( $uid , $field ){ return $this -> get_user_field ( $uid , $field );}
/**
* This function will return
* user field without array
*/
function get_user_field_only ( $uid , $field )
{
$fields = $this -> get_user_field ( $uid , $field );
return $fields [ $field ];
}
/**
* Function used to get user level and its details
* @ param INT userid
*/
function get_user_level ( $uid , $is_level = false )
{
global $db ;
if ( $is_level )
{
$level = $uid ;
}
else
{
2014-02-24 12:10:52 +00:00
$level = $this -> udetails [ 'level' ];
2013-10-07 12:17:06 +00:00
}
2013-10-08 12:24:07 +00:00
2014-02-24 12:10:52 +00:00
if ( $level == userid () or $level == $this -> udetails [ 'level' ] ) {
if ( $this -> permission ) {
2013-10-08 12:24:07 +00:00
return $this -> permission ;
}
}
2013-10-07 12:17:06 +00:00
$result = $db -> select ( tbl ( 'user_levels,user_levels_permissions' ), '*' ,
tbl ( " user_levels_permissions.user_level_id " ) . " =' " . $level . " '
AND " .tbl( " user_levels_permissions . user_level_id " ). " = " .tbl( " user_levels . user_level_id " ));
/*
pr ( $result );
$results = $db -> select ( tbl ( 'user_levels' ), '*' , " user_level_id=' " . $level [ 'level' ] . " ' " );
if ( $db -> num_rows == 0 )
//incase user level is not valid, it will consider it as registered user
$u_level [ 'user_level_id' ] = 3 ;
else
$u_level = $results [ 0 ];
//Now Getting Access Details
$access_results = $db -> select ( " user_levels_permissions " , " * " ,
" user_level_id = ' " . $u_level [ 'user_level_id' ] . " ' " );
$a_results = $access_results [ 0 ]; */
//Now Merging the two arrays
$user_level = $result [ 0 ];
//pr($user_level);
return $user_level ;
}
/**
* Function used to get all levels
* @ param : filter
*/
function get_levels ( $filter = NULL )
{
global $db ;
$results = $db -> select ( tbl ( " user_levels " ), " * " , NULL , NULL , " user_level_id ASC " );
2013-11-08 20:52:38 +00:00
if ( $db -> num_rows > 0 )
2013-10-07 12:17:06 +00:00
{
return $results ;
} else {
return false ;
}
}
/**
* Function used to get level details
* @ param : level_id INT
*/
function get_level_details ( $lid )
{
global $db ;
$results = $db -> select ( tbl ( " user_levels " ), " * " , " user_level_id=' $lid ' " );
if ( $db -> num_rows > 0 )
{
return $results [ 0 ];
} else {
e ( lang ( " cant_find_level " ));
return false ;
}
}
/**
* Function used to get users of particular level
* @ param : level_id
* @ param : count BOOLEAN ( if TRUE it will return NUMBERS )
*/
function get_level_users ( $id , $count = FALSE , $fields = " level " )
{
global $db ;
if ( $fields == " all " )
$fields = " * " ;
$results = $db -> select ( tbl ( " users " ), $fields , " level=' $id ' " );
if ( $db -> num_rows > 0 )
{
if ( $count )
return $db -> num_rows ;
else
return $results ;
} else {
return 0 ;
}
}
/**
* Function used to add user level
*/
function add_user_level ( $array )
{
global $db ;
if ( ! is_array ( $array ))
$array = $_POST ;
$level_name = mysql_clean ( $array [ 'level_name' ]);
if ( empty ( $level_name ))
e ( lang ( " please_enter_level_name " ));
else
{
$db -> insert ( tbl ( " user_levels " ), array ( 'user_level_name' ), array ( $level_name ));
$iid = $db -> insert_id ();
$fields_array [] = 'user_level_id' ;
$value_array [] = $iid ;
foreach ( $this -> get_access_type_list () as $access => $name )
{
$fields_array [] = $access ;
$value_array [] = $array [ $access ] ? $array [ $access ] : 'no' ;
}
$db -> insert ( tbl ( " user_levels_permissions " ), $fields_array , $value_array );
return true ;
}
}
/**
* Function usewd to get level permissions
*/
function get_level_permissions ( $id )
{
global $db ;
$results = $db -> select ( tbl ( " user_levels_permissions " ), " * " , " user_level_id = ' $id ' " );
if ( $db -> num_rows > 0 )
return $results [ 0 ];
else
return false ;
}
/**
* Function used to get custom permissions
*/
function get_access_type_list ()
{
if ( ! $this -> access_type_list )
{
$perms = $this -> get_permissions ();
foreach ( $perms as $perm )
{
$this -> add_access_type ( $perm [ 'permission_code' ], $perm [ 'permission_name' ]);
}
}
return $this -> access_type_list ;
}
/**
* Function used to add new custom permission
*/
function add_access_type ( $access , $name )
{
if ( ! empty ( $access ) && ! empty ( $name ))
$this -> access_type_list [ $access ] = $name ;
}
/**
* Function get access
*/
function get_access ( $access )
{
return $this -> access_type_list [ $access ];
}
/**
* Function used to update user level
* @ param INT level_id
* @ param ARRAY perm_level
*/
function update_user_level ( $id , $array )
{
global $db ;
if ( ! is_array ( $array ))
$array = $_POST ;
//First Checking Level
$level = $this -> get_level_details ( $id );
2014-09-23 12:07:50 +00:00
2013-10-07 12:17:06 +00:00
if ( $level )
{
foreach ( $this -> get_access_type_list () as $access => $name )
{
$fields_array [] = $access ;
$value_array [] = $array [ $access ];
}
2014-09-23 12:07:50 +00:00
2013-10-07 12:17:06 +00:00
//Checking level Name
if ( ! empty ( $array [ 'level_name' ]))
{
$level_name = mysql_clean ( $array [ 'level_name' ]);
//Upadting Now
$db -> update ( tbl ( " user_levels " ), array ( " user_level_name " ), array ( $level_name ), " user_level_id = ' $id ' " );
}
2014-09-23 12:07:50 +00:00
2013-10-07 12:17:06 +00:00
if ( isset ( $_POST [ 'plugin_perm' ]))
{
$fields_array [] = 'plugins_perms' ;
$value_array [] = '|no_mc|' . json_encode ( $_POST [ 'plugin_perm' ]);
}
2014-09-23 12:07:50 +00:00
2013-10-07 12:17:06 +00:00
//Updating Permissions
$db -> update ( tbl ( " user_levels_permissions " ), $fields_array , $value_array , " user_level_id = ' $id ' " );
e ( lang ( " level_updated " ), 'm' );
return true ;
} else {
return false ;
}
}
/**
* Function used to delete user levels
* @ param INT level_id
*/
function delete_user_level ( $id )
{
global $db ;
$level_details = $this -> get_level_details ( $id );
$de_level = $this -> get_level_details ( 3 );
if ( $level_details )
{
//CHeck if leve is deleteable or not
if ( $level_details [ 'user_level_is_default' ] == 'no' )
{
$db -> delete ( tbl ( " user_levels " ), array ( " user_level_id " ), array ( $id ));
$db -> delete ( tbl ( " user_levels_permissions " ), array ( " user_level_id " ), array ( $id ));
e ( sprintf ( lang ( " level_del_sucess " ), $de_level [ 'user_level_name' ]));
$db -> update ( tbl ( " users " ), array ( " level " ), array ( 3 ), " level=' $id ' " );
return true ;
} else {
e ( lang ( " level_not_deleteable " ));
return false ;
}
}
}
/**
* Function used to count total video comments
*/
function count_profile_comments ( $id )
{
global $db ;
2015-09-18 14:52:46 +00:00
$total_comments = $db -> count ( tbl ( 'comments' ), " comment_id " , " type='c' AND type_id=' $id ' AND parent_id='0' " );
2013-10-07 12:17:06 +00:00
return $total_comments ;
}
function count_channel_comments ( $id ){ return $this -> count_profile_comments ( $id ); }
/**
* Function used to count total comments made by users
*/
function count_comments_by_user ( $uid )
{
global $db ;
$total_comments = $db -> count ( tbl ( 'comments' ), " comment_id " , " userid=' $uid ' " );
return $total_comments ;
}
/**
* Function used to update user comments
*/
function update_comments_by_user ( $uid )
{
global $db ;
$total_comments = $this -> count_comments_by_user ( $id );
$db -> update ( tbl ( " users " ), array ( " total_comments " , " last_commented " ), array ( $total_comments , now ()), " userid=' $id ' " );
}
/**
* Function used to update user comments count
*/
function update_comments_count ( $id )
{
global $db ;
$total_comments = $this -> count_profile_comments ( $id );
$db -> update ( tbl ( " users " ), array ( " comments_count " , " last_commented " ), array ( $total_comments , now ()), " userid=' $id ' " );
}
/**
* Function used to add comment on users profile
*/
function add_comment ( $comment , $obj_id , $reply_to = NULL , $type = 'c' )
{
global $myquery ;
if ( ! $this -> user_exists ( $obj_id ))
e ( lang ( " usr_exist_err " ));
else
{
$add_comment = $myquery -> add_comment ( $comment , $obj_id , $reply_to , $type , $obj_id );
}
if ( $add_comment )
{
//Loggin Comment
$log_array = array
(
'success' => 'yes' ,
'details' => " comment on a profile " ,
'action_obj_id' => $obj_id ,
'action_done_id' => $add_comment ,
);
insert_log ( 'profile_comment' , $log_array );
2015-09-18 14:52:46 +00:00
//Updating Number of comments of user if comment is not a reply
if ( $reply_to < 1 )
2013-10-07 12:17:06 +00:00
$this -> update_comments_count ( $obj_id );
}
return $add_comment ;
}
/**
* Function used to remove video comment
*/
function delete_comment ( $cid , $is_reply = FALSE )
{
global $myquery , $db ;
$remove_comment = $myquery -> delete_comment ( $cid , 'c' , $is_reply );
if ( $remove_comment )
{
//Updating Number of comments of video
$this -> update_comments_count ( $obj_id );
}
return $remove_comment ;
}
/**
* Function used to get number of videos uploaded by user
* @ param INT userid
* @ param Conditions
*/
function get_user_vids ( $uid , $cond = NULL , $count_only = false )
{
global $db ;
if ( $cond != NULL )
$cond = " AND $cond " ;
$results = $db -> select ( tbl ( " video " ), " * " , " userid = ' $uid ' $cond " );
if ( $db -> num_rows > 0 )
{
if ( $count_only )
return $db -> num_rows ;
else
return $results [ 0 ];
} else {
return false ;
}
}
/**
* Function used to get logged in username
*/
function get_logged_username ()
{
return $this -> get_user_field_only ( user_id (), 'username' );
}
/**
* FUnction used to get username from userid
*/
function get_username ( $uid )
{
return $this -> get_user_field_only ( $uid , 'username' );
}
/**
* Function used to create profile link
*/
function profile_link ( $udetails )
{
if ( ! is_array ( $udetails ) && is_numeric ( $udetails ))
$udetails = $this -> get_user_details ( $udetails );
if ( SEO != " yes " )
return BASEURL . '/view_channel.php?user=' . $udetails [ 'username' ];
else
return BASEURL . '/user/' . $udetails [ 'username' ];
}
function get_user_link ( $u )
{
return $this -> profile_link ( $u );
}
/**
* Function used to get permission types
*/
function get_level_types ()
{
global $db ;
return $db -> select ( tbl ( $this -> dbtbl [ 'user_permission_type' ]), " * " );
}
/**
* Function used to check weather level type exists or not
*/
function level_type_exists ( $id )
{
global $db ;
$result = $db -> select ( tbl ( $this -> dbtbl [ 'user_permission_type' ]), " * " , " user_permission_type_id=' " . $id . " ' OR user_permission_type_name=' $id ' " );
if ( $db -> num_rows > 0 )
return $result [ 0 ];
else
return false ;
}
/**
* Function used to add new permission
*/
function add_new_permission ( $array )
{
global $db ;
if ( empty ( $array [ 'code' ]))
e ( lang ( " perm_code_empty " ));
elseif ( empty ( $array [ 'name' ]))
e ( lang ( " perm_name_empty " ));
elseif ( $this -> permission_exists ( $array [ 'code' ]))
e ( lang ( " perm_already_exist " ));
elseif ( ! $this -> level_type_exists ( $array [ 'type' ]))
e ( lang ( " perm_type_not_valid " ));
else
{
$type = $this -> level_type_exists ( $array [ 'type' ]);
$typeid = $type [ 'user_permission_type_id' ];
$code = mysql_clean ( $array [ 'code' ]);
$name = mysql_clean ( $array [ 'name' ]);
$desc = mysql_clean ( $array [ 'desc' ]);
$default = mysql_clean ( $array [ 'default' ]);
$default = $default ? $default : " yes " ;
$db -> insert ( tbl ( $this -> dbtbl [ 'user_permissions' ]),
array ( 'permission_type' , 'permission_code' , 'permission_name' , 'permission_desc' , 'permission_default' ),
array ( $typeid , $code , $name , $desc , $default ));
$db -> execute ( " ALTER TABLE " . tbl ( $this -> dbtbl [ 'user_level_permission' ]) . " ADD ` " . $code . " ` ENUM( 'yes', 'no' ) NOT NULL DEFAULT ' " . $default . " ' " );
e ( lang ( " perm_added " ), " m " );
}
}
/**
* Function used to check permission exists or not
* @ Param permission code
*/
function permission_exists ( $code )
{
global $db ;
$result = $db -> select ( tbl ( $this -> dbtbl [ 'user_permissions' ]), " * " , " permission_code=' " . $code . " ' OR permission_id=' " . $code . " ' " );
if ( $db -> num_rows > 0 )
return $result [ 0 ];
else
return false ;
}
/**
* Function used to get permissions
*/
function get_permissions ( $type = NULL )
{
global $db ;
if ( $type )
$cond = " permission_type =' $type ' " ;
$result = $db -> select ( tbl ( $this -> dbtbl [ 'user_permissions' ]), " * " , $cond );
if ( $db -> num_rows > 0 )
{
return $result ;
} else
{
return false ;
}
}
/**
* Function used to remove Permission
*/
function remove_permission ( $id )
{
global $db ;
$permission = $this -> permission_exists ( $id );
if ( $permission )
{
$field = $permission [ 'permission_code' ];
$db -> delete ( tbl ( $this -> dbtbl [ 'user_permissions' ]), array ( " permission_id " ), array ( $id ));
$db -> execute ( " ALTER TABLE ` " . tbl ( $this -> dbtbl [ 'user_level_permission' ]) . " ` DROP ` " . $field . " ` " );
e ( lang ( " perm_deleted " ), " m " );
} else
e ( lang ( " perm_doesnt_exist " ));
}
/**
* Function used to check weather current user has permission
* to view page or not
* it will also check weather current page requires login
* if login is required , user will be redirected to signup page
*/
function perm_check ( $access = '' , $check_login = FALSE , $control_page = true )
{
global $Cbucket ;
/* if ( $check_login )
{
return $this -> login_check ( $access );
} else
{ */
$access_details = $this -> permission ;
//pr($access_details);
if ( is_numeric ( $access ))
{
if ( $access_details [ 'level_id' ] == $access )
{
return true ;
} else {
if ( ! $check_only )
e ( lang ( 'insufficient_privileges' ));
if ( $control_page )
$Cbucket -> show_page ( false );
return false ;
}
} else
{
if ( $access_details [ $access ] == 'yes' )
{
return true ;
}
else
{
if ( ! $check_login )
e ( lang ( 'insufficient_privileges' ));
else
{ if ( userid ())
e ( lang ( 'insufficient_privileges' ));
else
e ( sprintf ( lang ( 'insufficient_privileges_loggin' ), cblink ( array ( 'name' => 'signup' )), cblink ( array ( 'name' => 'signup' ))));
}
if ( $control_page )
$Cbucket -> show_page ( false );
return false ;
}
}
//}
}
/**
* Function used to get user profile details
*/
function get_user_profile ( $uid )
{
global $db ;
$result = $db -> select ( tbl ( $this -> dbtbl [ 'user_profile' ]), " * " , " userid=' $uid ' " );
if ( $db -> num_rows > 0 )
{
return $result [ 0 ];
} else
return false ;
}
/**
* User Profile Fields
*/
function load_profile_fields ( $default )
{
if ( ! $default )
$default = $_POST ;
$profile_fields = $this -> load_personal_details ( $default );
$other_details = $this -> load_location_fields ( $default );
$more_details = $this -> load_education_interests ( $default );
$channel = $this -> load_channel_settings ( $default );
$privacy_field = $this -> load_privacy_field ( $default );
return array_merge ( $profile_fields , $other_details , $more_details , $channel , $privacy_field );
}
/**
* Function used to update use details
*/
function update_user ( $array )
{
global $LANG , $db , $signup , $Upload ;
if ( $array == NULL )
$array = $_POST ;
if ( is_array ( $_FILES ))
$array = array_merge ( $array , $_FILES );
$userfields = $this -> load_profile_fields ( $array );
//$signup_fields = $this->load_signup_fields($array);
$custom_signup_fields = $this -> load_custom_signup_fields ( $array );
//Adding Custom Form Fields
if ( count ( $this -> custom_profile_fields ) > 0 )
$userfields = array_merge ( $userfields , $this -> custom_profile_fields );
//Adding custom fields from group
if ( count ( $this -> custom_profile_fields_groups ) > 0 )
{
$custom_fields_from_group_fields = array ();
$custom_fields_from_group = $this -> custom_profile_fields_groups ;
foreach ( $custom_fields_from_group as $cffg )
{
$custom_fields_from_group_fields = array_merge ( $custom_fields_from_group_fields , $cffg [ 'fields' ]);
}
$userfields = array_merge ( $userfields , $custom_fields_from_group_fields );
}
validate_cb_form ( $custom_signup_fields , $array );
validate_cb_form ( $userfields , $array );
// pr();
foreach ( $userfields as $field )
{
$name = formObj :: rmBrackets ( $field [ 'name' ]);
$val = $array [ $name ];
if ( $field [ 'use_func_val' ])
$val = $field [ 'validate_function' ]( $val );
if ( ! empty ( $field [ 'db_field' ]))
$query_field [] = $field [ 'db_field' ];
if ( is_array ( $val ))
{
$new_val = '' ;
foreach ( $val as $v )
{
$new_val .= " # " . $v . " # " ;
}
$val = $new_val ;
}
if ( ! $field [ 'clean_func' ] || ( ! function_exists ( $field [ 'clean_func' ]) && ! is_array ( $field [ 'clean_func' ])))
$val = mysql_clean ( $val );
else
2014-07-09 08:47:23 +00:00
$val = apply_func ( $field [ 'clean_func' ], sql_free ( /*'|no_mc|'.*/ $val ));
2013-10-07 12:17:06 +00:00
if ( ! empty ( $field [ 'db_field' ]))
$query_val [] = $val ;
}
//Category
if ( $cat_field )
{
$field = $cat_field ;
$name = formObj :: rmBrackets ( $field [ 'name' ]);
$val = $array [ $name ];
if ( $field [ 'use_func_val' ])
$val = $field [ 'validate_function' ]( $val );
if ( ! empty ( $field [ 'db_field' ]))
$uquery_field [] = $field [ 'db_field' ];
if ( is_array ( $val ))
{
$new_val = '' ;
foreach ( $val as $v )
{
$new_val .= " # " . $v . " # " ;
}
$val = $new_val ;
}
if ( ! $field [ 'clean_func' ] || ( ! function_exists ( $field [ 'clean_func' ]) && ! is_array ( $field [ 'clean_func' ])))
$val = mysql_clean ( $val );
else
2014-07-09 08:47:23 +00:00
$val = apply_func ( $field [ 'clean_func' ], sql_free ( /*'|no_mc|'.*/ $val ));
2013-10-07 12:17:06 +00:00
if ( ! empty ( $field [ 'db_field' ]))
$uquery_val [] = $val ;
}
//updating user detail
if ( has_access ( 'admin_access' , TRUE ) && isset ( $array [ 'admin_manager' ]))
{
//Checking Username
if ( empty ( $array [ 'username' ]))
e ( lang ( 'usr_uname_err' ));
2014-03-10 10:36:25 +00:00
//elseif($array['dusername'] != $array['username'] && $this->username_exists($array['username']))
//e(lang('usr_uname_err2'));
2013-10-07 12:17:06 +00:00
elseif ( ! username_check ( $array [ 'username' ]))
e ( lang ( 'usr_uname_err3' ));
else
$username = $array [ 'username' ];
//Checking Email
if ( empty ( $array [ 'email' ]))
e ( lang ( 'usr_email_err1' ));
elseif ( ! is_valid_syntax ( 'email' , $array [ 'email' ]))
e ( lang ( 'usr_email_err2' ));
elseif ( email_exists ( $array [ 'email' ]) && $array [ 'email' ] != $array [ 'demail' ])
e ( lang ( 'usr_email_err3' ));
else
$email = $array [ 'email' ];
$uquery_field [] = 'username' ;
$uquery_val [] = $username ;
$uquery_field [] = 'email' ;
$uquery_val [] = $email ;
//Changning Password
if ( ! empty ( $array [ 'pass' ]))
{
if ( $array [ 'pass' ] != $array [ 'cpass' ])
e ( lang ( " pass_mismatched " ));
else
$pass = pass_code ( $array [ 'pass' ]);
$uquery_field [] = 'password' ;
$uquery_val [] = $pass ;
}
//Changing User Level
$uquery_field [] = 'level' ;
$uquery_val [] = $array [ 'level' ];
//Checking for user stats
$uquery_field [] = 'profile_hits' ;
$uquery_val [] = $array [ 'profile_hits' ];
$uquery_field [] = 'total_watched' ;
$uquery_val [] = $array [ 'total_watched' ];
$uquery_field [] = 'total_videos' ;
$uquery_val [] = $array [ 'total_videos' ];
$uquery_field [] = 'total_comments' ;
$uquery_val [] = $array [ 'total_comments' ];
$uquery_field [] = 'subscribers' ;
$uquery_val [] = $array [ 'subscribers' ];
$uquery_field [] = 'comments_count' ;
$uquery_val [] = $array [ 'comments_count' ];
$query_field [] = 'rating' ;
$rating = $array [ 'rating' ];
if ( $rating < 1 || $rating > 10 )
$rating = 1 ;
$query_val [] = $rating ;
$query_field [] = 'rated_by' ;
$query_val [] = $array [ 'rated_by' ];
//Changing JOined Date
if ( isset ( $array [ 'doj' ]))
{
$uquery_field [] = 'doj' ;
$uquery_val [] = $array [ 'doj' ];
}
}
//Changing Gender
if ( $array [ 'sex' ])
{
$uquery_field [] = 'sex' ;
$uquery_val [] = mysql_clean ( $array [ 'sex' ]);
}
//Changing Country
if ( $array [ 'country' ])
{
$uquery_field [] = 'country' ;
$uquery_val [] = mysql_clean ( $array [ 'country' ]);
}
//Changing Date of birth
if ( isset ( $array [ 'dob' ]))
{
$uquery_field [] = 'dob' ;
$uquery_val [] = $array [ 'dob' ];
}
//Changing category
if ( isset ( $array [ 'category' ]))
{
$uquery_field [] = 'category' ;
$uquery_val [] = $array [ 'category' ];
}
//Updating User Avatar
if ( $array [ 'avatar_url' ])
{
$uquery_field [] = 'avatar_url' ;
$uquery_val [] = $array [ 'avatar_url' ];
}
if ( $array [ 'remove_avatar_url' ] == 'yes' )
{
$uquery_field [] = 'avatar_url' ;
$uquery_val [] = '' ;
}
//Deleting User Avatar
if ( $array [ 'delete_avatar' ] == 'yes' )
{
$file = USER_THUMBS_DIR . '/' . $array [ 'avatar_file_name' ];
if ( file_exists ( $file ) && $array [ 'avatar_file_name' ] != '' )
unlink ( $file );
}
//Deleting User Bg
if ( $array [ 'delete_bg' ] == 'yes' )
{
$file = USER_BG_DIR . '/' . $array [ 'bg_file_name' ];
if ( file_exists ( $file ) && $array [ 'bg_file_name' ])
unlink ( $file );
}
if ( isset ( $_FILES [ 'avatar_file' ][ 'name' ]))
{
$file = $Upload -> upload_user_file ( 'a' , $_FILES [ 'avatar_file' ], $array [ 'userid' ]);
if ( $file )
{
$uquery_field [] = 'avatar' ;
$uquery_val [] = $file ;
}
}
//Updating User Background
if ( $array [ 'background_url' ])
{
$uquery_field [] = 'background_url' ;
$uquery_val [] = $array [ 'background_url' ];
}
if ( $array [ 'background_color' ])
{
$uquery_field [] = 'background_color' ;
$uquery_val [] = $array [ 'background_color' ];
}
if ( $array [ 'background_repeat' ])
{
$uquery_field [] = 'background_repeat' ;
$uquery_val [] = $array [ 'background_repeat' ];
}
if ( isset ( $_FILES [ 'background_file' ][ 'name' ]))
{
$file = $Upload -> upload_user_file ( 'b' , $_FILES [ 'background_file' ], $array [ 'userid' ]);
if ( $file )
{
$uquery_field [] = 'background' ;
$uquery_val [] = $file ;
}
}
//Adding Custom Field
if ( is_array ( $custom_signup_fields ))
{
foreach ( $custom_signup_fields as $field )
{
$name = formObj :: rmBrackets ( $field [ 'name' ]);
$val = $array [ $name ];
if ( $field [ 'use_func_val' ])
$val = $field [ 'validate_function' ]( $val );
if ( ! empty ( $field [ 'db_field' ]))
$uquery_field [] = $field [ 'db_field' ];
if ( is_array ( $val ))
{
$new_val = '' ;
foreach ( $val as $v )
{
$new_val .= " # " . $v . " # " ;
}
$val = $new_val ;
}
if ( ! $field [ 'clean_func' ] || ( ! function_exists ( $field [ 'clean_func' ]) && ! is_array ( $field [ 'clean_func' ])))
$val = mysql_clean ( $val );
else
2014-07-09 08:47:23 +00:00
$val = apply_func ( $field [ 'clean_func' ], sql_free ( /*'|no_mc|'.*/ $val ));
2013-10-07 12:17:06 +00:00
if ( ! empty ( $field [ 'db_field' ]))
$uquery_val [] = $val ;
}
}
if ( ! error () && is_array ( $uquery_field ))
{
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), $uquery_field , $uquery_val , " userid=' " . mysql_clean ( $array [ 'userid' ]) . " ' " );
e ( lang ( " usr_upd_succ_msg " ), 'm' );
}
//updating user profile
if ( ! error ())
{
$log_array = array
(
'success' => 'yes' ,
'details' => " updated profile "
);
//Login Upload
insert_log ( 'profile_update' , $log_array );
$db -> update ( tbl ( $this -> dbtbl [ 'user_profile' ]), $query_field , $query_val , " userid=' " . mysql_clean ( $array [ 'userid' ]) . " ' " );
e ( lang ( " usr_pof_upd_msg " ), 'm' );
}
}
/**
* Function used to update user avatar and background only
*/
function update_user_avatar_bg ( $array )
{
global $db , $signup , $Upload ;
//Updating User Avatar
$uquery_field [] = 'avatar_url' ;
$uquery_val [] = mysql_clean ( $array [ 'avatar_url' ]);
//Deleting User Avatar
if ( $array [ 'delete_avatar' ] == 'yes' )
{
$file = USER_THUMBS_DIR . '/' . $array [ 'avatar_file_name' ];
if ( file_exists ( $file ) && $array [ 'avatar_file_name' ] != '' )
unlink ( $file );
}
//Deleting User Bg
if ( $array [ 'delete_bg' ] == 'yes' )
{
$file = USER_BG_DIR . '/' . $array [ 'bg_file_name' ];
if ( file_exists ( $file ) && $array [ 'bg_file_name' ] != '' )
unlink ( $file );
}
if ( isset ( $_FILES [ 'avatar_file' ][ 'name' ]))
{
$file = $Upload -> upload_user_file ( 'a' , $_FILES [ 'avatar_file' ], $array [ 'userid' ]);
if ( $file )
{
$uquery_field [] = 'avatar' ;
$uquery_val [] = $file ;
}
}
//Updating User Background
$uquery_field [] = 'background_url' ;
$uquery_val [] = mysql_clean ( $array [ 'background_url' ]);
$uquery_field [] = 'background_color' ;
$uquery_val [] = mysql_clean ( $array [ 'background_color' ]);
if ( $array [ 'background_repeat' ])
{
$uquery_field [] = 'background_repeat' ;
$uquery_val [] = mysql_clean ( $array [ 'background_repeat' ]);
}
//Background ATtachement
$uquery_field [] = 'background_attachement' ;
$uquery_val [] = mysql_clean ( $array [ 'background_attachement' ]);
if ( isset ( $_FILES [ 'background_file' ][ 'name' ]))
{
$file = $Upload -> upload_user_file ( 'b' , $_FILES [ 'background_file' ], $array [ 'userid' ]);
if ( $file )
{
$uquery_field [] = 'background' ;
$uquery_val [] = mysql_clean ( $file );
}
}
$log_array = array
(
'success' => 'yes' ,
'details' => " updated profile "
);
//Login Upload
insert_log ( 'profile_update' , $log_array );
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), $uquery_field , $uquery_val , " userid=' " . mysql_clean ( $array [ 'userid' ]) . " ' " );
e ( lang ( " usr_avatar_bg_update " ), 'm' );
}
2014-03-26 07:27:13 +00:00
/* Written by Sajjad Ashraf */
public function updateCover ( $array = array ()){
if ( ! empty ( $array )){
if ( isset ( $array [ " coverPhoto " ])){
2014-03-26 11:48:37 +00:00
$coverPhoto = $array [ " coverPhoto " ];
$photoType = $coverPhoto [ " type " ];
$photoSize = ( int ) $coverPhoto [ " size " ]; // in kbs
$maxPhotoSize = 2048 ; // in kbs
if ( $photoType ){
2014-03-26 07:27:13 +00:00
$name = $array [ " userid " ];
$coverPhoto = $array [ " coverPhoto " ][ " tmp_name " ];
$ext = $this -> getImageExt ( $array [ " coverPhoto " ][ " name " ]);
if ( ! file_exists ( COVERS_DIR . " / { $name } " )) {
mkdir ( COVERS_DIR . " / { $name } " , 0777 , true );
}
2014-03-27 08:59:33 +00:00
list ( $width , $height , $type , $attr ) = getimagesize ( $coverPhoto );
$width = ( int ) $width ;
$height = ( int ) $height ;
2014-07-07 05:28:22 +00:00
if (( $width > 1 ) && ( $height > 2 )){
2014-03-27 08:59:33 +00:00
$files = glob ( COVERS_DIR . " / { $name } / { $name } .* " ); // get all file names
foreach ( $files as $file ){ // iterate files
if ( is_file ( $file ))
unlink ( $file ); // delete file
}
move_uploaded_file ( $coverPhoto , COVERS_DIR . " / { $name } / { $name } . { $ext } " );
2014-07-07 05:28:22 +00:00
//$this->resizeImage(COVERS_DIR . "/{$name}/{$name}.{$ext}", COVERS_DIR . "/{$name}/{$name}.{$ext}");
2014-03-27 08:59:33 +00:00
return array (
" status " => true ,
" msg " => " Succesfully Uploaded " ,
);
} else {
return array (
" status " => false ,
" msg " => " Only 1150 x 220 images are allowed { $width } x { $height } provided " ,
);
2014-03-26 07:27:13 +00:00
}
}
}
}
2014-03-26 11:48:37 +00:00
return array (
" status " => false ,
" msg " => " no data was sent " ,
);
2014-03-26 07:27:13 +00:00
}
public function getCover ( $userId = false ){
if ( ! $userId ){
$userId = userid ();
}
$coverPath = COVERS_DIR . " / { $userId } " ;
2014-09-19 13:52:55 +00:00
if ( file_exists ( $coverPath ))
{
$files = scandir ( $coverPath );
array_shift ( $files ); array_shift ( $files );
$coverPhoto = array_shift ( $files );
return BASEURL . " /files/cover_photos/ { $userId } / $coverPhoto " ;
}
2014-03-26 07:27:13 +00:00
}
public function getImageExt ( $imageName = false ){
if ( $imageName ){
$nameParts = explode ( " . " , $imageName );
$ext = array_pop ( $nameParts );
return $ext ;
}
}
2014-03-26 08:18:46 +00:00
public function resizeImage ( $source_image_path , $thumbnail_image_path ){
define ( 'THUMBNAIL_IMAGE_MAX_WIDTH' , 1150 );
define ( 'THUMBNAIL_IMAGE_MAX_HEIGHT' , 220 );
list ( $source_image_width , $source_image_height , $source_image_type ) = getimagesize ( $source_image_path );
switch ( $source_image_type ) {
case IMAGETYPE_GIF :
$source_gd_image = imagecreatefromgif ( $source_image_path );
break ;
case IMAGETYPE_JPEG :
$source_gd_image = imagecreatefromjpeg ( $source_image_path );
break ;
case IMAGETYPE_PNG :
$source_gd_image = imagecreatefrompng ( $source_image_path );
break ;
}
if ( $source_gd_image === false ) {
return false ;
}
$source_aspect_ratio = $source_image_width / $source_image_height ;
$thumbnail_aspect_ratio = THUMBNAIL_IMAGE_MAX_WIDTH / THUMBNAIL_IMAGE_MAX_HEIGHT ;
if ( $source_image_width <= THUMBNAIL_IMAGE_MAX_WIDTH && $source_image_height <= THUMBNAIL_IMAGE_MAX_HEIGHT ) {
$thumbnail_image_width = $source_image_width ;
$thumbnail_image_height = $source_image_height ;
} elseif ( $thumbnail_aspect_ratio > $source_aspect_ratio ) {
$thumbnail_image_width = ( int ) ( THUMBNAIL_IMAGE_MAX_HEIGHT * $source_aspect_ratio );
$thumbnail_image_height = THUMBNAIL_IMAGE_MAX_HEIGHT ;
} else {
$thumbnail_image_width = THUMBNAIL_IMAGE_MAX_WIDTH ;
$thumbnail_image_height = ( int ) ( THUMBNAIL_IMAGE_MAX_WIDTH / $source_aspect_ratio );
}
$thumbnail_gd_image = imagecreatetruecolor ( $thumbnail_image_width , $thumbnail_image_height );
imagecopyresampled ( $thumbnail_gd_image , $source_gd_image , 0 , 0 , 0 , 0 , $thumbnail_image_width , $thumbnail_image_height , $source_image_width , $source_image_height );
imagejpeg ( $thumbnail_gd_image , $thumbnail_image_path , 90 );
imagedestroy ( $source_gd_image );
imagedestroy ( $thumbnail_gd_image );
return true ;
}
2013-10-07 12:17:06 +00:00
/**
* Function used to check weather username exists or not
*/
function username_exists ( $i )
{
global $db ;
//echo test;
return $db -> count ( tbl ( $this -> dbtbl [ 'users' ]), " username " , " username=' $i ' " );
}
/**
* function used to check weather email exists or not
*/
function email_exists ( $i )
{
global $db ;
$db -> select ( tbl ( $this -> dbtbl [ 'users' ]), " email " , " email=' $i ' " );
if ( $db -> num_rows > 0 )
return true ;
else
return false ;
}
/**
* Function used to get user access log
*/
function get_user_action_log ( $uid , $limit = NULL )
{
global $db ;
$result = $db -> select ( tbl ( $this -> dbtbl [ 'action_log' ]), " * " , " action_userid=' $uid ' " , $limit , " date_added DESC " );
if ( $db -> num_rows > 0 )
return $result ;
else
return false ;
}
/**
* Load Custom Profile Field
*/
function load_custom_profile_fields ( $data , $group_based = false )
{
if ( ! $group_based )
{
$array = $this -> custom_profile_fields ;
foreach ( $array as $key => $fields )
{
if ( $data [ $fields [ 'db_field' ]])
$value = $data [ $fields [ 'db_field' ]];
elseif ( $data [ $fields [ 'name' ]])
$value = $data [ $fields [ 'name' ]];
if ( $fields [ 'type' ] == 'radiobutton' ||
$fields [ 'type' ] == 'checkbox' ||
$fields [ 'type' ] == 'dropdown' )
$fields [ 'checked' ] = $value ;
else
$fields [ 'value' ] = $value ;
$new_array [ $key ] = $fields ;
}
return $new_array ;
} else
{
$groups = $this -> custom_profile_fields_groups ;
$new_grp = array ();
if ( $groups )
foreach ( $groups as $grp )
{
$fields = array ();
foreach ( $grp [ 'fields' ] as $key => $fields )
{
if ( $data [ $fields [ 'db_field' ]])
$value = $data [ $fields [ 'db_field' ]];
elseif ( $data [ $fields [ 'name' ]])
$value = $data [ $fields [ 'name' ]];
if ( $fields [ 'type' ] == 'radiobutton' ||
$fields [ 'type' ] == 'checkbox' ||
$fields [ 'type' ] == 'dropdown' )
$fields [ 'checked' ] = $value ;
else
$fields [ 'value' ] = $value ;
}
$grp [ 'fields' ][ $key ] = $fields ;
$new_grp [] = $grp ;
}
}
return $new_grp ;
}
/**
* Load Custom Signup Field
*/
function load_custom_signup_fields ( $data , $ck_display_admin = FALSE , $ck_display_user = FALSE )
{
$array = $this -> custom_signup_fields ;
foreach ( $array as $key => $fields )
{
$ok = 'yes' ;
if ( $ck_display_admin )
{
if ( $fields [ 'display_admin' ] == 'no_display' )
$ok = 'no' ;
}
if ( $ck_display_user )
{
if ( $fields [ 'display_user' ] == 'no_display' )
$ok = 'no' ;
}
if ( $ok == 'yes' )
{
if ( ! $fields [ 'value' ])
$fields [ 'value' ] = $data [ $fields [ 'db_field' ]];
$new_array [ $key ] = $fields ;
}
}
return $new_array ;
}
/**
* Function used to get channel links
* ie Playlist , favorites etc etc
*/
function get_inner_channel_top_links ( $u )
{
$channel_links = array ();
if ( isSectionEnabled ( 'videos' ))
{
$channel_links [ lang ( 'upload' )] = array ( 'link' => $this -> get_user_videos_link ( $u ));
$channel_links [ lang ( 'favorites' )] = array ( 'link' => cblink ( array ( 'name' => 'user_favorites' )) . $u [ 'username' ]);
}
if ( isSectionEnabled ( 'channels' ))
$channel_links [ lang ( 'contacts' )] = array ( 'link' => cblink ( array ( 'name' => 'user_contacts' )) . $u [ 'username' ]);
return $channel_links ;
}
/**
* Function used to get user channel action links
* ie Add to friends , send message etc etc
*/
function get_channel_action_links ( $u )
{
return array ( lang ( 'send_message' ) => array ( 'link' => cblink ( array ( 'name' => 'compose_new' , 'extra_params' => 'to=' . $u [ 'username' ]))),
lang ( 'add_as_friend' ) => array ( 'link' => 'javascript:void(0)' , 'onclick' => " add_friend(' " . $u [ 'userid' ] . " ','result_cont') " ),
lang ( 'block_user' ) => array ( 'link' => 'javascript:void(0)' , 'onclick' => " block_user(' " . $u [ 'username' ] . " ','result_cont') " )
); }
/**
* Function used to get user videos link
*/
function get_user_videos_link ( $u )
{
return cblink ( array ( 'name' => 'user_videos' )) . $u [ 'username' ];
}
/**
* Function used to get user channel video
*/
function get_user_profile_video ( $u )
{
global $db , $cbvid ;
if ( empty ( $u [ 'profile_video' ]) &&! $cbvid -> video_exists ( $u ))
{
$u = $this -> get_user_profile ( $u );
}
if ( $cbvid -> video_exists ( $u [ 'profile_video' ]))
return $cbvid -> get_video_details ( $u [ 'profile_video' ]);
else
return false ;
}
2015-11-06 06:38:05 +00:00
/*
* Get number of all unread messages of a user using his userid
*/
function get_unread_msgs ( $userid , $label = false )
{
global $db ;
$userid = '#' . $userid . '#' ;
$results = $db -> select ( tbl ( " messages " ), " * " , " message_to=' $userid ' AND message_status='unread' " );
$count = count ( $results );
if ( $label )
{
echo '<span class="label label-default">' . $count . '</span></h3>' ;
}
return $count ;
}
/*
* Get number of all read messages of a user using his userid
*/
function get_read_msgs ( $userid , $label = false )
{
global $db ;
$results = $db -> select ( tbl ( " messages " ), " * " , " message_to=' $userid ' AND message_status='read' " );
$count = count ( $results );
if ( $label )
{
echo '<span class="label label-danger">' . $count . '</span></h3>' ;
}
return $count ;
}
2016-02-26 11:23:50 +00:00
function show_unread_alrt ( $userid , $class ) {
2016-02-26 11:49:43 +00:00
$forbid = array ( 'index' , 'watch_video' , 'view_item' , 'videos' , 'photos' , 'channels' , 'collections' , 'view_page' , 'search_result' );
2016-02-26 11:23:50 +00:00
$page = THIS_PAGE ;
if ( ! in_array ( $page , $forbid )) {
$unread_msgs = $this -> get_unread_msgs ( $userid );
if ( $unread_msgs > 0 ) {
echo " <div class=' " . $class . " alert alert-warning'>You have <a href= " . BASEURL . " /private_message.php?mode=inbox><span style='color: black'><strong> " . $unread_msgs . " <strong> unread messages </a> in your inbox</div> " ;
} else {
return false ;
}
2015-11-06 06:38:05 +00:00
}
}
2013-10-07 12:17:06 +00:00
/**
2014-03-12 12:09:32 +00:00
* My Account links Edited on 12 march 2014 for user account links
2013-10-07 12:17:06 +00:00
*/
2014-03-28 07:23:24 +00:00
function my_account_links ()
{
2015-11-06 06:38:05 +00:00
2014-03-28 07:23:24 +00:00
$array [ lang ( 'account' )] =
array
(
lang ( 'my_account' ) => 'myaccount.php' ,
lang ( 'block_users' ) => 'edit_account.php?mode=block_users' ,
lang ( 'user_change_pass' ) => 'edit_account.php?mode=change_password' ,
lang ( 'user_change_email' ) => 'edit_account.php?mode=change_email' ,
2015-05-13 11:50:43 +00:00
lang ( 'com_manage_subs' ) => 'edit_account.php?mode=subscriptions' ,
2016-05-24 13:10:18 +05:00
lang ( 'contacts_manager' ) => 'manage_contacts.php'
2014-03-28 07:23:24 +00:00
);
$array [ lang ( 'user_channel_profiles' )] = array
(
lang ( 'account_settings' ) => 'edit_account.php?mode=account' ,
lang ( 'user_profile_settings' ) => 'edit_account.php?mode=profile' ,
lang ( 'change_avatar' ) => 'edit_account.php?mode=avatar_bg' ,
);
2013-10-07 12:17:06 +00:00
2014-03-28 07:23:24 +00:00
if ( isSectionEnabled ( 'videos' ))
$array [ lang ( 'videos' )] = array
(
lang ( 'uploaded_videos' ) => 'manage_videos.php' ,
lang ( 'user_fav_videos' ) => 'manage_videos.php?mode=favorites' ,
);
2016-05-25 16:54:49 +05:00
// if(isSectionEnabled('groups'))
// $array[lang('groups')] = array
// (
// lang('grp_groups_title') =>'manage_groups.php',
// lang('user_create_group') =>cblink(array('name'=>'create_group')),
// lang('grp_joined_groups')=>'manage_groups.php?mode=joined',
// );
2014-03-28 07:23:24 +00:00
if ( isSectionEnabled ( 'playlists' ))
$array [ lang ( 'playlists' )] = array
(
lang ( 'manage_playlists' ) => 'manage_playlists.php' ,
);
$array [ lang ( 'messages' )] = array
(
2016-05-25 16:54:49 +05:00
lang ( 'inbox' ) . '(' . $this -> get_unread_msgs ( $this -> userid ) . ')' => 'private_message.php?mode=inbox' ,
2014-03-28 07:23:24 +00:00
lang ( 'notifications' ) => 'private_message.php?mode=notification' ,
lang ( 'sent' ) => 'private_message.php?mode=sent' ,
lang ( 'title_crt_new_msg' ) => cblink ( array ( 'name' => 'compose_new' )),
);
2013-10-07 12:17:06 +00:00
2014-03-28 07:23:24 +00:00
if ( isSectionEnabled ( 'channels' ))
$array [ lang ( 'contacts' )] = array
(
lang ( 'com_manage_contacts' ) => 'manage_contacts.php?mode=manage' ,
lang ( 'add_contact_list' ) => 'manage_contacts.php?mode=new_group' ,
);
if ( count ( $this -> user_account ) > 0 )
{
foreach ( $this -> user_account as $key => $acc )
{
if ( array_key_exists ( $key , $array ))
{
foreach ( $acc as $title => $link )
$array [ $key ][ $title ] = $link ;
} else
$array [ $key ] = $acc ;
}
2016-05-25 16:54:49 +05:00
// pex($array,true);
2014-03-28 07:23:24 +00:00
//$array = array_merge($array,$this->user_account);
}
return $array ;
}
2013-10-07 12:17:06 +00:00
/**
* Function used to change email
*/
function change_email ( $array )
{
global $db ;
//function used to change user email
if ( ! isValidEmail ( $array [ 'new_email' ]) || $array [ 'new_email' ] == '' )
e ( lang ( " usr_email_err2 " ));
elseif ( $array [ 'new_email' ] != $array [ 'cnew_email' ])
e ( lang ( 'user_email_confirm_email_err' ));
elseif ( ! $this -> user_exists ( $array [ 'userid' ]))
e ( lang ( 'usr_exist_err' ));
elseif ( $this -> email_exists ( $array [ 'new_email' ]))
e ( lang ( 'usr_email_err3' ));
else
{
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'email' ), array ( $array [ 'new_email' ]), " userid=' " . $array [ 'userid' ] . " ' " );
e ( lang ( " email_change_msg " ), " m " );
}
}
/**
* Function used to ban users
*/
function block_users ( $users , $uid = NULL ){ return $this -> ban_users ( $users , $uid ); }
function ban_users ( $users , $uid = NULL )
{
global $db ;
if ( ! $uid )
$uid = userid ();
$users_array = explode ( ',' , $users );
$new_users = array ();
foreach ( $users_array as $user )
{
if ( $user != username () && ! is_numeric ( $user ) && $this -> user_exists ( $user ))
{
$new_users [] = $user ;
}
}
if ( count ( $new_users ) > 0 )
{
$new_users = array_unique ( $new_users );
$banned_users = implode ( ',' , $new_users );
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'banned_users' ), array ( $banned_users ), " userid=' $uid ' " );
e ( lang ( " user_ban_msg " ), " m " );
} elseif ( ! $users ){
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'banned_users' ), array ( $users ), " userid=' $uid ' " );
e ( lang ( " no_user_ban_msg " ), " m " );
}
}
/**
* Function used to ban single user
*/
function ban_user ( $user )
{
global $db ;
$uid = userid ();
if ( ! $uid )
e ( lang ( 'you_not_logged_in' ));
elseif ( $user != username () && ! is_numeric ( $user ) && $this -> user_exists ( $user ))
{
$banned_users = $this -> udetails [ 'banned_users' ];
if ( $banned_users )
$banned_users .= " , $user " ;
else
$banned_users = " $user " ;
if ( ! $this -> is_user_banned ( $user ))
{
$db -> update ( tbl ( $this -> dbtbl [ 'users' ]), array ( 'banned_users' ), array ( $banned_users ), " userid=' $uid ' " );
e ( lang ( " user_blocked " ), " m " );
} else
e ( lang ( " user_already_blocked " ));
} else
{
e ( lang ( " you_cant_del_user " ));
}
}
/**
* Function used to check weather user is banned or not
*/
function is_user_banned ( $ban , $user = NULL , $banned_users = NULL )
{
global $db ;
if ( ! $user )
$user = userid ();
if ( ! $banned_users )
{
if ( is_numeric ( $user ))
$result = $db -> select ( tbl ( $this -> dbtbl [ 'users' ]), " banned_users " , " userid=' $user ' " );
else
$result = $db -> select ( tbl ( $this -> dbtbl [ 'users' ]), " banned_users " , " username=' $user ' " );
$banned_users = $result [ 0 ][ 'banned_users' ];
}
$ban_user = explode ( ',' , $banned_users );
if ( in_array ( $ban , $ban_user )) {
return true ;
} else {
return false ;
}
return false ;
}
/**
* function used to get user details with profile
*/
function get_user_details_with_profile ( $uid = NULL )
{
global $db ;
if ( ! $uid )
$uid = userid ();
$result = $db -> select ( tbl ( $this -> dbtbl [ 'users' ] . " , " . $this -> dbtbl [ 'user_profile' ]), " * " , tbl ( $this -> dbtbl [ 'users' ]) . " .userid =' $uid ' AND " . tbl ( $this -> dbtbl [ 'users' ]) . " .userid = " . tbl ( $this -> dbtbl [ 'user_profile' ]) . " .userid " );
return $result [ 0 ];
}
2014-01-17 10:27:54 +00:00
function load_signup_fields ( $input = NULL )
2013-10-07 12:17:06 +00:00
{
global $LANG , $Cbucket ;
2014-01-17 10:27:54 +00:00
$default = array ();
if ( isset ( $input )){
$default = $input ;
} else {
//return false;
}
2013-10-07 12:17:06 +00:00
/**
* this function will create initial array for user fields
* this will tell
* array (
* title [ text that will represents the field ]
* type [ type of field , either radio button , textfield or text area ]
* name [ name of the fields , input NAME attribute ]
* id [ id of the fields , input ID attribute ]
* value [ value of the fields , input VALUE attribute ]
* size
* class
* label
* extra_params
* hint_1 [ hint before field ]
* hint_2 [ hint after field ]
* anchor_before [ anchor before field ]
* anchor_after [ anchor after field ]
* )
*/
2014-01-17 10:27:54 +00:00
// ini_set('display_errors',1);
// ini_set('display_startup_errors',1);
// error_reporting(-1);
2013-10-07 12:17:06 +00:00
2014-01-17 10:27:54 +00:00
if ( empty ( $default ))
$default = $_POST ;
2013-10-07 12:17:06 +00:00
2014-01-17 10:27:54 +00:00
if ( empty ( $default ))
$default = $_POST ;
2013-10-07 12:17:06 +00:00
2014-01-17 10:27:54 +00:00
$username = ( isset ( $default [ 'username' ])) ? $default [ 'username' ] : " " ;
$email = ( isset ( $default [ 'email' ])) ? $default [ 'email' ] : " " ;
if ( isset ( $default [ 'country' ])){
$dcountry = ( isset ( $default [ 'country' ])) ? $default [ 'country' ] : $Cbucket -> configs [ 'default_country_iso2' ];
2016-03-11 03:36:23 -08:00
} else {
2014-01-17 10:27:54 +00:00
$dcountry = " " ;
}
$dob = ( isset ( $default [ 'dob' ])) ? $default [ 'dob' ] : " " ;
//var_dump($_POST);
//die();
$dob = $dob ? date ( config ( " date_format " ), strtotime ( $dob )) : date ( config ( " date_format " ), strtotime ( '14-10-1989' ));
2016-04-11 15:13:21 +05:00
$countries = $Cbucket -> get_countries ( iso2 );
$user_ip = $_SERVER [ 'REMOTE_ADDR' ]; // getting user's ip
$user_country = ip_info ( $user_ip , 'country' ); // get country using IP
foreach ( $countries as $code => $name ) {
$name = strtolower ( $name );
$user_country = strtolower ( $user_country );
if ( $name == $user_country ) {
$selected_cont = $code ;
}
}
2016-04-11 15:15:45 +05:00
if ( strlen ( $selected_cont ) != 2 ) {
2016-04-11 15:13:21 +05:00
$selected_cont = " PK " ;
}
2014-01-17 10:27:54 +00:00
$user_signup_fields = array
(
'username' => array (
'title' => lang ( 'username' ),
'type' => " textfield " ,
2016-04-13 18:06:30 +05:00
'placehoder' => " Username " ,
2014-01-17 10:27:54 +00:00
'name' => " username " ,
'id' => " username " ,
'value' => $username ,
'hint_2' => lang ( 'user_allowed_format' ),
'db_field' => 'username' ,
'required' => 'yes' ,
// 'syntax_type'=> 'username',
'validate_function' => 'username_check' ,
'function_error_msg' => lang ( 'user_contains_disallow_err' ),
'db_value_check_func' => 'user_exists' ,
'db_value_exists' => false ,
'db_value_err' => lang ( 'usr_uname_err2' ),
'min_length' => config ( 'min_username' ),
'max_length' => config ( 'max_username' ),
2016-04-13 18:06:30 +05:00
'placeholder' => " Username " ,
2014-01-17 10:27:54 +00:00
),
'email' => array (
'title' => lang ( 'email' ),
'type' => " textfield " ,
2016-04-13 18:06:30 +05:00
'placehoder' => " Email " ,
2014-01-17 10:27:54 +00:00
'name' => " email " ,
'id' => " email " ,
'value' => $email ,
'db_field' => 'email' ,
'required' => 'yes' ,
'syntax_type' => 'email' ,
'db_value_check_func' => 'email_exists' ,
2016-02-10 07:51:33 +00:00
'validate_function' => 'is_valid_email' ,
2014-01-17 10:27:54 +00:00
'db_value_exists' => false ,
'db_value_err' => lang ( 'usr_email_err3' )
),
'password' => array (
'title' => lang ( 'password' ),
'type' => " password " ,
2016-04-13 18:06:30 +05:00
'placehoder' => " Password " ,
2014-01-17 10:27:54 +00:00
'name' => " password " ,
'id' => " password " ,
'db_field' => 'password' ,
'required' => 'yes' ,
'invalid_err' => lang ( 'usr_pass_err2' ),
'relative_to' => 'cpassword' ,
'relative_type' => 'exact' ,
'relative_err' => lang ( 'usr_pass_err3' ),
'validate_function' => 'pass_code' ,
'use_func_val' => true
),
'cpassword' => array (
'title' => lang ( 'user_confirm_pass' ),
'type' => " password " ,
2016-04-13 18:06:30 +05:00
'placehoder' => " Re-enter password " ,
2014-01-17 10:27:54 +00:00
'name' => " cpassword " ,
'id' => " cpassword " ,
'required' => 'no' ,
'invalid_err' => lang ( 'usr_cpass_err' ),
),
2016-04-11 14:54:37 +05:00
'dob' => array (
'title' => lang ( 'user_date_of_birth' ),
'type' => 'textfield' ,
'name' => 'dob' ,
'readonly' => 'true' ,
'id' => 'dob' ,
'anchor_after' => 'date_picker' ,
'value' => $dob ,
'validate_function' => 'verify_age' ,
'db_field' => 'dob' ,
'required' => 'yes' ,
'invalid_err' => lang ( 'You must be atleast ' . config ( 'min_age_reg' ) . ' to register' ),
),
2014-01-17 10:27:54 +00:00
'country' => array (
'title' => lang ( 'country' ),
'type' => 'dropdown' ,
2016-04-11 15:13:21 +05:00
'value' => $countries ,
2014-01-17 10:27:54 +00:00
'id' => 'country' ,
'name' => 'country' ,
2016-04-11 15:13:21 +05:00
'checked' => $selected_cont ,
2014-01-17 10:27:54 +00:00
'db_field' => 'country' ,
'required' => 'yes' ,
),
'gender' => array (
'title' => lang ( 'gender' ),
'type' => 'radiobutton' ,
'name' => 'gender' ,
2014-01-21 14:06:24 +00:00
'class' => 'radio' ,
2014-01-17 10:27:54 +00:00
'id' => 'gender' ,
'value' => array ( 'Male' => lang ( 'male' ), 'Female' => lang ( 'female' )),
'sep' => ' ' ,
'checked' => 'Male' ,
'db_field' => 'sex' ,
'required' => 'yes' ,
),
'cat' => array ( 'title' => lang ( 'Category' ),
'type' => 'dropdown' ,
'name' => 'category' ,
'id' => 'category' ,
2015-12-28 12:34:42 +00:00
'value' => array ( 'category' , $default [ 'category' ]),
2014-01-17 10:27:54 +00:00
'db_field' => 'category' ,
2015-12-28 12:34:42 +00:00
'checked' => $default [ 'category' ],
2014-01-17 10:27:54 +00:00
'required' => 'yes' ,
'invalid_err' => lang ( " Please select your category " ),
'display_function' => 'convert_to_categories' ,
'category_type' => 'user' ,
)
);
$new_array = array ();
foreach ( $user_signup_fields as $id => $fields )
{
$the_array = $fields ;
if ( isset ( $the_array [ 'hint_1' ]))
$the_array [ 'hint_before' ] = $the_array [ 'hint_1' ];
if ( isset ( $the_array [ 'hint_2' ]))
$the_array [ 'hint_after' ] = $the_array [ 'hint_2' ];
2014-09-04 13:36:57 +00:00
$new_array [ $id ] = $the_array ;
2014-01-17 10:27:54 +00:00
}
2016-03-11 03:36:23 -08:00
$new_array [] = $this -> load_custom_profile_fields ( $default , false );
2014-01-17 10:27:54 +00:00
//die();
return $new_array ;
2013-10-07 12:17:06 +00:00
}
/**
* Function used to validate Signup Form
*/
function validate_form_fields ( $array = NULL )
{
global $userquery ;
$fields = $this -> load_signup_fields ( $array );
if ( $array == NULL )
$array = $_POST ;
if ( is_array ( $_FILES ))
$array = array_merge ( $array , $_FILES );
//Mergin Array
$signup_fields = array_merge ( $fields , $this -> custom_signup_fields );
validate_cb_form ( $signup_fields , $array );
}
/**
* Function used to validate signup form
*/
function signup_user ( $array = NULL , $send_signup_email = true )
{
global $LANG , $db , $userquery ;
2014-01-17 10:27:54 +00:00
// echo "<pre>";
// var_dump($array);
// echo "</pre>";
2014-02-24 11:28:44 +00:00
2014-01-15 11:54:19 +00:00
//die();
2014-02-24 11:28:44 +00:00
2014-01-15 11:54:19 +00:00
2013-10-07 12:17:06 +00:00
if ( $array == NULL )
$array = $_POST ;
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
if ( is_array ( $_FILES ))
$array = array_merge ( $array , $_FILES );
$this -> validate_form_fields ( $array );
//checking terms and policy agreement
if ( $array [ 'agree' ] != 'yes' && ! has_access ( 'admin_access' , true ))
e ( lang ( 'usr_ament_err' ));
2014-01-15 11:54:19 +00:00
// first checking if captha plugin is enabled
2014-03-26 07:27:13 +00:00
// do not trust the form cb_captcha_enabled value
2014-03-17 07:48:56 +00:00
if ( get_captcha () && ! $userquery -> admin_login_check ( true )){
2014-01-15 11:54:19 +00:00
// now checking if the user posted captha value is not empty and cb_captcha_enabled == yes
if ( ! isset ( $array [ 'cb_captcha_enabled' ]) || $array [ 'cb_captcha_enabled' ] == 'no' ){
e ( lang ( 'usr_ccode_err' ));
//echo "wrong captha input";
}
if ( ! verify_captcha ()){
e ( lang ( 'usr_ccode_err' ));
}
}
2013-10-07 12:17:06 +00:00
if ( ! error ())
{
$signup_fields = $this -> load_signup_fields ( $array );
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Adding Custom Signup Fields
if ( count ( $this -> custom_signup_fields ) > 0 )
$signup_fields = array_merge ( $signup_fields , $this -> custom_signup_fields );
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
foreach ( $signup_fields as $field )
{
$name = formObj :: rmBrackets ( $field [ 'name' ]);
$val = $array [ $name ];
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
if ( $field [ 'use_func_val' ])
$val = $field [ 'validate_function' ]( $val );
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
if ( ! empty ( $field [ 'db_field' ]))
$query_field [] = $field [ 'db_field' ];
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
if ( is_array ( $val ))
{
$new_val = '' ;
foreach ( $val as $v )
{
$new_val .= " # " . $v . " # " ;
}
$val = $new_val ;
}
if ( ! $field [ 'clean_func' ] || ( ! function_exists ( $field [ 'clean_func' ]) && ! is_array ( $field [ 'clean_func' ])))
$val = mysql_clean ( $val );
else
$val = apply_func ( $field [ 'clean_func' ], sql_free ( '|no_mc|' . $val ));
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
if ( ! empty ( $field [ 'db_field' ]))
$query_val [] = $val ;
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
}
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
// Setting Verification type
if ( EMAIL_VERIFICATION == '1' ){
$usr_status = 'ToActivate' ;
$welcome_email = 'no' ;
} else {
$usr_status = 'Ok' ;
$welcome_email = 'yes' ;
}
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
if ( has_access ( 'admin_access' , true ))
{
if ( $array [ 'active' ] == 'Ok' )
{
$usr_status = 'Ok' ;
$welcome_email = 'yes' ;
} else {
$usr_status = 'ToActivate' ;
$welcome_email = 'no' ;
}
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
$query_field [] = " level " ;
$query_val [] = $array [ 'level' ];
}
2016-03-11 03:36:23 -08:00
global $Upload ;
$custom_fields_array = $Upload -> load_custom_form_fields ( false , false , false , true );
foreach ( $custom_fields_array as $key => $cfield ) {
$db_field = $cfield [ 'db_field' ];
$query_field [] = $db_field ;
$query_val [] = $array [ $db_field ];
}
#pr($array,true);
2013-10-07 12:17:06 +00:00
$query_field [] = " usr_status " ;
$query_val [] = $usr_status ;
$query_field [] = " welcome_email_sent " ;
$query_val [] = $welcome_email ;
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Creating AV Code
$avcode = RandomString ( 10 );
$query_field [] = " avcode " ;
$query_val [] = $avcode ;
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Signup IP
$signup_ip = $_SERVER [ 'REMOTE_ADDR' ];
$query_field [] = " signup_ip " ;
$query_val [] = $signup_ip ;
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Date Joined
$now = NOW ();
$query_field [] = " doj " ;
$query_val [] = $now ;
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
/**
* A VERY IMPORTANT PART OF
* OUR SIGNUP SYSTEM IS
* SESSION KEY AND CODE
* WHEN A USER IS LOGGED IN
* IT IS ONLY VALIDATED BY
2014-02-24 11:28:44 +00:00
* ITS SIGNUP KEY AND CODE
2013-10-07 12:17:06 +00:00
*
*/
$sess_key = $this -> create_session_key ( $_COOKIE [ 'PHPSESSID' ], $array [ 'password' ]);
$sess_code = $this -> create_session_code ();
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
$query_field [] = " user_session_key " ;
$query_val [] = $sess_key ;
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
$query_field [] = " user_session_code " ;
$query_val [] = $sess_code ;
2016-03-11 03:36:23 -08:00
#pr($query_field,true);
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
$query = " INSERT INTO " . tbl ( " users " ) . " ( " ;
$total_fields = count ( $query_field );
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Adding Fields to query
$i = 0 ;
2016-03-11 03:36:23 -08:00
2013-10-07 12:17:06 +00:00
foreach ( $query_field as $qfield )
{
$i ++ ;
$query .= $qfield ;
if ( $i < $total_fields )
$query .= ',' ;
}
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
$query .= " ) VALUES ( " ;
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
$i = 0 ;
2016-03-11 03:36:23 -08:00
#pr($query_val,true);
2013-10-07 12:17:06 +00:00
//Adding Fields Values to query
foreach ( $query_val as $qval )
{
$i ++ ;
$query .= " ' $qval ' " ;
if ( $i < $total_fields )
$query .= ',' ;
}
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Finalzing Query
$query .= " ) " ;
2016-03-11 03:36:23 -08:00
#exit($query);
2013-10-07 12:17:06 +00:00
$db -> Execute ( $query );
$insert_id = $db -> insert_id ();
$db -> insert ( tbl ( $userquery -> dbtbl [ 'user_profile' ]), array ( " userid " ), array ( $insert_id ));
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
if ( ! has_access ( 'admin_access' , true ) && EMAIL_VERIFICATION && $send_signup_email )
{
global $cbemail ;
$tpl = $cbemail -> get_template ( 'email_verify_template' );
$more_var = array
( '{username}' => post ( 'username' ),
'{password}' => post ( 'password' ),
'{email}' => post ( 'email' ),
'{avcode}' => $avcode ,
);
if ( ! is_array ( $var ))
$var = array ();
$var = array_merge ( $more_var , $var );
$subj = $cbemail -> replace ( $tpl [ 'email_template_subject' ], $var );
$msg = nl2br ( $cbemail -> replace ( $tpl [ 'email_template' ], $var ));
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Now Finally Sending Email
cbmail ( array ( 'to' => post ( 'email' ), 'from' => WEBSITE_EMAIL , 'subject' => $subj , 'content' => $msg ));
}
elseif ( ! has_access ( 'admin_access' , true ) && $send_signup_email )
{
$this -> send_welcome_email ( $insert_id );
}
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
$log_array = array
( 'username' => $array [ 'username' ],
'userid' => $insert_id ,
'userlevel' => $array [ 'level' ],
'useremail' => $array [ 'email' ],
'success' => 'yes' ,
'details' => sprintf ( " %s signed up " , $array [ 'username' ]));
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Login Signup
insert_log ( 'signup' , $log_array );
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Adding User has Signup Feed
addFeed ( array ( 'action' => 'signup' , 'object_id' => $insert_id , 'object' => 'signup' , 'uid' => $insert_id ));
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
return $insert_id ;
}
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
return false ;
}
2014-02-24 11:28:44 +00:00
2013-10-07 12:17:06 +00:00
//Duplicate User Check
function duplicate_user ( $name ){
global $myquery ;
if ( $myquery -> check_user ( $name )){
return true ;
} else {
return false ;
}
}
function duplicate_email ( $name ){
$myquery = new myquery ();
if ( $myquery -> check_email ( $name )){
return true ;
} else {
return false ;
}
}
//Validate Email
function isValidEmail ( $email ){
return isValidEmail ( $email );
}
//Validate Username
function isValidUsername ( $uname ){
return $this -> is_username ( $uname );
}
/**
* Function used to make username valid
* this function will also check if username is banned or not
* it will also filter the username and also filter its patterns
* as given in administratio panel
*/
function is_username ( $username )
{
global $Cbucket ;
//Our basic pattern for username is
//$pattern = "^^[_a-z0-9-]+$";
$pattern = " ^^[_a-z0-9-]+ $ " ;
//Now we will check if admin wants to change the pattern
if ( eregi ( $pattern , $username )){
return true ;
} else {
return false ;
}
}
/**
* Function used to get users
*/
function get_users ( $params = NULL , $force_admin = FALSE )
{
global $db ;
$limit = $params [ 'limit' ];
$order = $params [ 'order' ];
$cond = " " ;
if ( ! has_access ( 'admin_access' , TRUE ) && ! $force_admin )
2013-10-08 12:24:07 +00:00
$cond .= " users.usr_status='Ok' AND users.ban_status ='no' " ;
2013-10-07 12:17:06 +00:00
else
{
if ( $params [ 'ban' ])
2013-10-08 12:24:07 +00:00
$cond .= " users.ban_status =' " . $params [ 'ban' ] . " ' " ;
2013-10-07 12:17:06 +00:00
if ( $params [ 'status' ])
{
if ( $cond != '' )
$cond .= " AND " ;
2013-10-08 12:24:07 +00:00
$cond .= " users.usr_status=' " . $params [ 'status' ] . " ' " ;
2013-10-07 12:17:06 +00:00
}
}
//Setting Category Condition
if ( ! is_array ( $params [ 'category' ]))
$is_all = strtolower ( $params [ 'category' ]);
if ( $params [ 'category' ] && $is_all != 'all' )
{
if ( $cond != '' )
$cond .= ' AND ' ;
$cond .= " ( " ;
if ( ! is_array ( $params [ 'category' ]))
{
$cats = explode ( ',' , $params [ 'category' ]);
} else
$cats = $params [ 'category' ];
$count = 0 ;
foreach ( $cats as $cat_params )
{
$count ++ ;
if ( $count > 1 )
$cond .= " OR " ;
2013-10-08 12:24:07 +00:00
$cond .= " users.category LIKE '% $cat_params %' " ;
2013-10-07 12:17:06 +00:00
}
$cond .= " ) " ;
}
//date span
if ( $params [ 'date_span' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
2013-10-08 12:24:07 +00:00
$cond .= " " . cbsearch :: date_margin ( " users.doj " , $params [ 'date_span' ]);
2013-10-07 12:17:06 +00:00
}
/*// uid
if ( $params [ 'user' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
$cond .= " userid=' " . $params [ 'user' ] . " ' " ;
}
$tag_n_title = '' ;
//Tags
if ( $params [ 'tags' ])
{
//checking for commas ;)
$tags = explode ( " , " , $params [ 'tags' ]);
if ( count ( $tags ) > 0 )
{
if ( $tag_n_title != '' )
$tag_n_title .= ' OR ' ;
$total = count ( $tags );
$loop = 1 ;
foreach ( $tags as $tag )
{
$tag_n_title .= " tags LIKE '% " . $tag . " %' " ;
if ( $loop < $total )
$tag_n_title .= " OR " ;
$loop ++ ;
}
} else
{
if ( $tag_n_title != '' )
$tag_n_title .= ' OR ' ;
$tag_n_title .= " tags LIKE '% " . $params [ 'tags' ] . " %' " ;
}
}
//TITLE
if ( $params [ 'title' ])
{
if ( $tag_n_title != '' )
$tag_n_title .= ' OR ' ;
$tag_n_title .= " title LIKE '% " . $params [ 'tags' ] . " %' " ;
}
if ( $tag_n_title )
{
if ( $cond != '' )
$cond .= ' AND ' ;
$cond .= " ( $tag_n_title ) " ;
} */
//FEATURED
if ( $params [ 'featured' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
2013-10-08 12:24:07 +00:00
$cond .= " users.featured = ' " . $params [ 'featured' ] . " ' " ;
2013-10-07 12:17:06 +00:00
}
//Email
if ( $params [ 'username' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
2013-10-08 12:24:07 +00:00
$cond .= " users.username = ' " . $params [ 'username' ] . " ' " ;
2013-10-07 12:17:06 +00:00
}
//Email
if ( $params [ 'email' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
2013-10-08 12:24:07 +00:00
$cond .= " users.email = ' " . $params [ 'email' ] . " ' " ;
2013-10-07 12:17:06 +00:00
}
//Exclude Users
if ( $params [ 'exclude' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
2013-10-08 12:24:07 +00:00
$cond .= " users.userid <> ' " . $params [ 'exclude' ] . " ' " ;
2013-10-07 12:17:06 +00:00
}
//Getting specific User
if ( $params [ 'userid' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
2013-10-08 12:24:07 +00:00
$cond .= " users.userid = ' " . $params [ 'userid' ] . " ' " ;
2013-10-07 12:17:06 +00:00
}
//Sex
if ( $params [ 'gender' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
2013-10-08 12:24:07 +00:00
$cond .= " users.sex = ' " . $params [ 'gender' ] . " ' " ;
2013-10-07 12:17:06 +00:00
}
//Level
if ( $params [ 'level' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
2013-10-08 12:24:07 +00:00
$cond .= " users.level = ' " . $params [ 'level' ] . " ' " ;
2013-10-07 12:17:06 +00:00
}
if ( $params [ 'cond' ])
{
if ( $cond != '' )
$cond .= ' AND ' ;
$cond .= " " . $params [ 'cond' ] . " " ;
}
2014-05-06 13:38:27 +00:00
2013-10-07 12:17:06 +00:00
if ( ! $params [ 'count_only' ])
2013-10-08 12:24:07 +00:00
{
$fields = array (
'users' => get_user_fields (),
2014-05-06 13:38:27 +00:00
'profile' => array ( 'rating' , 'rated_by' , 'voters' , 'first_name' , 'last_name' ),
2013-10-08 12:24:07 +00:00
);
2014-05-06 13:38:27 +00:00
$fields [ 'users' ][] = 'last_active' ;
2016-02-23 06:36:54 +00:00
$fields [ 'users' ][] = 'total_collections' ;
$fields [ 'users' ][] = 'total_groups' ;
2014-02-28 14:12:26 +00:00
$query = " SELECT " . tbl_fields ( $fields ) . " FROM " . tbl ( 'users' ) . " AS users " ;
$query .= " LEFT JOIN " . table ( 'user_profile' , 'profile ' ) . " ON users.userid = profile.userid " ;
2013-10-08 12:24:07 +00:00
if ( $cond ) {
$query .= " WHERE " . $cond ;
}
if ( $order )
$query .= " ORDER BY " . $order ;
if ( $limit )
$query .= " LIMIT " . $limit ;
//$result = $db->select(tbl('users'),'*',$cond,$limit,$order);
$result = select ( $query );
}
2013-10-07 12:17:06 +00:00
2014-02-24 11:28:44 +00:00
if ( $params [ 'count_only' ]){
2014-02-28 14:12:26 +00:00
//$cond= substr($cond,8);
$result = $db -> count ( tbl ( 'users' ) . " AS users " , 'userid' , $cond );
//echo $cond;
//return $result;
2014-02-24 11:28:44 +00:00
}
2013-10-07 12:17:06 +00:00
if ( $params [ 'assign' ])
assign ( $params [ 'assign' ], $result );
else
return $result ;
}
/**
* Function used to perform several actions with a video
*/
function action ( $case , $uid )
{
global $db ;
if ( ! $this -> user_exists ( $uid ))
return false ;
//Lets just check weathter user exists or not
$tbl = tbl ( $this -> dbtbl [ 'users' ]);
switch ( $case )
{
//Activating a user
case 'activate' :
case 'av' :
case 'a' :
{
$avcode = RandomString ( 10 );
$db -> update ( $tbl , array ( 'usr_status' , 'avcode' ), array ( 'Ok' , $avcode ), " userid=' $uid ' " );
e ( lang ( " User has been activated " ), 'm' );
}
break ;
//Deactivating a user
case " deactivate " :
case " dav " :
case " d " :
{
$avcode = RandomString ( 10 );
$db -> update ( $tbl , array ( 'usr_status' , 'avcode' ), array ( 'ToActivate' , $avcode ), " userid=' $uid ' " );
e ( lang ( " User has been deactivated " ), 'm' );
}
break ;
//Featuring user
case " feature " :
case " featured " :
case " f " :
{
$db -> update ( $tbl , array ( 'featured' , 'featured_date' ), array ( 'yes' , now ()), " userid=' $uid ' " );
e ( lang ( " User has been set as featured " ), 'm' );
}
break ;
//Unfeatured user
case " unfeature " :
case " unfeatured " :
case " uf " :
{
$db -> update ( $tbl , array ( 'featured' ), array ( 'no' ), " userid=' $uid ' " );
e ( lang ( " User has been removed from featured users " ), 'm' );
}
break ;
//Ban User
case " ban " :
case " banned " :
{
$db -> update ( $tbl , array ( 'ban_status' ), array ( 'yes' ), " userid=' $uid ' " );
e ( lang ( " User has been banned " ), 'm' );
}
break ;
//Ban User
case " unban " :
case " unbanned " :
{
$db -> update ( $tbl , array ( 'ban_status' ), array ( 'no' ), " userid=' $uid ' " );
e ( lang ( " User has been unbanned " ), 'm' );
}
break ;
}
}
/**
* Is registration allowed
*/
function is_registration_allowed ()
{
if ( ALLOW_REG == 1 )
{
return true ;
}
return false ;
}
/**
* Function used to use to initialize search object for video section
* op => operator ( AND OR )
*/
function init_search ()
{
$this -> search = new cbsearch ;
$this -> search -> db_tbl = " users " ;
2015-05-28 09:53:14 +00:00
// added more conditions usr_status='Ok' and ban_status='no'
2015-05-28 10:50:45 +00:00
/*
array ( 'field' => 'usr_status' , 'type' => '=' , 'var' => 'Ok' , 'op' => 'AND' , 'value' => 'static' ),
array ( 'field' => 'ban_status' , 'type' => '=' , 'var' => 'no' , 'op' => 'AND' , 'value' => 'static' ),
*/
2015-05-28 11:00:38 +00:00
if ( ! has_access ( 'admin_access' , TRUE ))
{
$this -> search -> columns = array (
array ( 'field' => 'username' , 'type' => 'LIKE' , 'var' => '%{KEY}%' ),
array ( 'field' => 'usr_status' , 'type' => '=' , 'var' => 'Ok' , 'op' => 'AND' , 'value' => 'static' ),
array ( 'field' => 'ban_status' , 'type' => '=' , 'var' => 'no' , 'op' => 'AND' , 'value' => 'static' ),
);
}
else
{
$this -> search -> columns = array (
array ( 'field' => 'username' , 'type' => 'LIKE' , 'var' => '%{KEY}%' ),
);
}
2013-10-07 12:17:06 +00:00
$this -> search -> cat_tbl = $this -> cat_tbl ;
$this -> search -> display_template = LAYOUT . '/blocks/user.html' ;
$this -> search -> template_var = 'user' ;
$this -> search -> multi_cat = false ;
$this -> search -> date_added_colum = 'doj' ;
$this -> search -> results_per_page = config ( 'users_items_search_page' );
/**
* Setting up the sorting thing
*/
$sorting = array (
'doj' => lang ( " date_added " ),
'profile_hits' => lang ( " views " ),
'total_comments' => lang ( " comments " ),
'total_videos' => lang ( " videos " ),
);
$this -> search -> sorting = array (
'doj' => " doj DESC " ,
'profile_hits' => " profile_hits DESC " ,
'total_comments' => " total_comments DESC " ,
'total_videos' => " total_videos DESC " ,
);
/**
* Setting Up The Search Fields
*/
$default = $_GET ;
if ( is_array ( $default [ 'category' ]))
$cat_array = array ( $default [ 'category' ]);
$uploaded = $default [ 'datemargin' ];
$sort = $default [ 'sort' ];
2015-05-27 01:34:33 +00:00
$this -> search -> search_type [ 'channels' ] = array ( 'title' => lang ( 'users' ));
2013-10-07 12:17:06 +00:00
$fields = array (
'query' => array (
'title' => lang ( 'keywords' ),
'type' => 'textfield' ,
'name' => 'query' ,
'id' => 'query' ,
'value' => cleanForm ( $default [ 'query' ])
),
'category' => array (
'title' => lang ( 'category' ),
'type' => 'checkbox' ,
'name' => 'category[]' ,
'id' => 'category' ,
'value' => array ( 'category' , $cat_array ),
'category_type' => 'user' ,
),
'date_margin' => array (
'title' => lang ( 'joined' ),
'type' => 'dropdown' ,
'name' => 'datemargin' ,
'id' => 'datemargin' ,
'value' => $this -> search -> date_margins (),
'checked' => $uploaded ,
),
'sort' => array (
'title' => lang ( 'sort_by' ),
'type' => 'dropdown' ,
'name' => 'sort' ,
'value' => $sorting ,
'checked' => $sort
)
);
$this -> search -> search_type [ 'users' ][ 'fields' ] = $fields ;
}
/**
* Function used to get number of users online
*/
function get_online_users ( $group = true , $count = false )
{
global $db ;
if ( $group )
{
$results = $db -> select ( tbl ( " sessions " ) . " LEFT JOIN ( " . tbl ( " users " ) . " ) ON
( " .tbl( " sessions . session_user = " ).tbl( " users " ). " . userid ) " ,
tbl ( " sessions.*,users.username,users.userid,users.email " ) . " ,count( " . tbl ( " sessions.session_user " ) . " ) AS logins "
, " TIMESTAMPDIFF(MINUTE, " . tbl ( " sessions.last_active " ) . " ,' " . NOW () . " ') < 6 GROUP BY " . tbl ( " users.userid " ));
} else
{
if ( $count )
{
$results = $db -> count ( tbl ( " sessions " ) . " LEFT JOIN ( " . tbl ( " users " ) . " ) ON
( " .tbl( " sessions . session_user = " ).tbl( " users " ). " . userid ) " ,
tbl ( " sessions.session_id " )
, " TIMESTAMPDIFF(MINUTE, " . tbl ( " sessions.last_active " ) . " ,' " . NOW () . " ') < 6 " );
} else
{
$results = $db -> select ( tbl ( " sessions " ) . " LEFT JOIN ( " . tbl ( " users " ) . " ) ON
( " .tbl( " sessions . session_user = " ).tbl( " users " ). " . userid ) " ,
tbl ( " sessions.*,users.username,users.userid,users.email " )
, " TIMESTAMPDIFF(MINUTE, " . tbl ( " sessions.last_active " ) . " ,' " . NOW () . " ') < 6 " );
}
}
return $results ;
}
/**
* Function will let admin to login as user
*/
function login_as_user ( $id , $realtime = false )
{
global $sess , $db , $cblog ;
$udetails = $this -> get_user_details ( $id );
if ( $udetails )
{
if ( ! $realtime )
{
/*
$sess -> set ( 'dummy_username' , $sess -> get ( " username " ));
$sess -> set ( 'dummy_level' , $sess -> get ( " level " ));
$sess -> set ( 'dummy_userid' , $sess -> get ( " userid " ));
$sess -> set ( 'dummy_user_session_key' , $sess -> get ( " user_session_key " ));
$sess -> set ( 'dummy_user_session_code' , $sess -> get ( " user_session_code " ));
$sess -> set ( 'username' , $udetails [ 'username' ]);
$sess -> set ( 'level' , $udetails [ 'level' ]);
$sess -> set ( 'userid' , $udetails [ 'userid' ]);
$sess -> set ( 'user_session_key' , $udetails [ 'session_key' ]);
$sess -> set ( 'user_session_code' , $udetails [ 'session_code' ]);
*/
$sess -> set ( 'dummy_sess_salt' , $sess -> get ( " sess_salt " ));
$sess -> set ( 'dummy_PHPSESSID' , $sess -> get ( " PHPSESSID " ));
$sess -> set ( 'dummy_userid' , userid ());
$sess -> set ( 'dummy_user_session_key' , $this -> udetails [ 'user_session_key' ]);
$userid = $udetails [ 'userid' ];
$session_salt = RandomString ( 5 );
$sess -> set ( 'sess_salt' , $session_salt );
$sess -> set ( 'PHPSESSID' , $sess -> id );
$smart_sess = md5 ( $udetails [ 'user_session_key' ] . $session_salt );
$db -> delete ( tbl ( " sessions " ), array ( " session " ), array ( $sess -> id ));
$sess -> add_session ( $userid , 'smart_sess' , $smart_sess );
} else
{
if ( $this -> login_check ( NULL , true ))
$msg [] = e ( lang ( 'you_already_logged' ));
elseif ( ! $this -> user_exists ( $udetails [ 'username' ]))
$msg [] = e ( lang ( 'user_doesnt_exist' ));
elseif ( ! $udetails )
$msg [] = e ( lang ( 'usr_login_err' ));
elseif ( strtolower ( $udetails [ 'usr_status' ]) != 'ok' )
$msg [] = e ( lang ( 'user_inactive_msg' ));
elseif ( $udetails [ 'ban_status' ] == 'yes' )
$msg [] = e ( lang ( 'usr_ban_err' ));
else
{
$userid = $udetails [ 'userid' ];
$log_array [ 'userid' ] = $userid = $udetails [ 'userid' ];
$log_array [ 'useremail' ] = $udetails [ 'email' ];
$log_array [ 'success' ] = 1 ;
$log_array [ 'level' ] = $level = $udetails [ 'level' ];
//Adding Sessing In Database
//$sess->add_session($userid,'logged_in');
//$sess->set('username',$username);
//$sess->set('userid',$userid);
//Setting Timeout
if ( $remember )
$sess -> timeout = 86400 * REMBER_DAYS ;
//Starting special sessions for security
$session_salt = RandomString ( 5 );
$sess -> set ( 'sess_salt' , $session_salt );
$sess -> set ( 'PHPSESSID' , $sess -> id );
$smart_sess = md5 ( $udetails [ 'user_session_key' ] . $session_salt );
$db -> delete ( tbl ( " sessions " ), array ( " session " , " session_string " ), array ( $sess -> id , " guest " ));
$sess -> add_session ( $userid , 'smart_sess' , $smart_sess );
//$sess->set('user_sess',$smart_sess);
//$sess->set('user_session_key',$udetails['user_session_key']);
//$sess->set('user_session_code',$udetails['user_session_code']);
//Setting Vars
$this -> userid = $udetails [ 'userid' ];
$this -> username = $udetails [ 'username' ];
$this -> level = $udetails [ 'level' ];
//Updating User last login , num of visist and ip
$db -> update ( tbl ( 'users' ),
array (
'num_visits' , 'last_logged' , 'ip'
),
array (
'|f|num_visits+1' , NOW (), $_SERVER [ 'REMOTE_ADDR' ]
),
" userid=' " . $userid . " ' "
);
$this -> init ();
//Logging Actiong
$cblog -> insert ( 'login' , $log_array );
return true ;
}
//Error Loging
if ( ! empty ( $msg ))
{
//Loggin Action
$log_array [ 'success' ] = no ;
$log_array [ 'details' ] = $msg [ 0 ];
$cblog -> insert ( 'login' , $log_array );
}
}
return true ;
} else
e ( lang ( " usr_exist_err " ));
}
/**
* Function used to revert back to admin
*/
function revert_from_user ()
{
global $sess , $db ;
if ( $this -> is_admin_logged_as_user ())
{
$userid = $sess -> get ( 'dummy_userid' );
$session_salt = $sess -> get ( 'dummy_sess_salt' );
$user_session_key = $sess -> get ( 'dummy_user_session_key' );
$smart_sess = md5 ( $user_session_key . $session_salt );
$sess -> set ( 'sess_salt' , $session_salt );
$sess -> set ( 'PHPSESSID' , $sess -> get ( 'dummy_PHPSESSID' ));
$db -> delete ( tbl ( " sessions " ), array ( " session " ), array ( $sess -> get ( 'dummy_PHPSESSID' )));
$sess -> add_session ( $userid , 'smart_sess' , $smart_sess );
$sess -> set ( 'dummy_sess_salt' , '' );
$sess -> set ( 'dummy_PHPSESSID' , '' );
$sess -> set ( 'dummy_userid' , '' );
$sess -> set ( 'dummy_user_session_key' , '' );
}
}
/**
* Function used to check weather user is logged in as admin or not
*/
function is_admin_logged_as_user ()
{
global $sess ;
if ( $sess -> get ( " dummy_sess_salt " ) != " " )
{
return true ;
}
return false ;
}
/**
* Function used to get anonymous user
*/
function get_anonymous_user ()
{
global $db ;
$uid = config ( 'anonymous_id' );
/*Added to resolve bug 222*/
$result = $db -> select ( tbl ( " users " ), " userid " , " username='anonymous%' AND email='anonymous%' " , " 1 " );
if ( $result [ 0 ][ 'userid' ])
return $result [ 0 ][ 'userid' ]; /*End **/
else
{
$result = $db -> select ( tbl ( " users " ), " userid " , " level='6' AND usr_status='ToActivate' " , " 1 " );
if ( $result [ 0 ][ 'userid' ])
return $result [ 0 ][ 'userid' ];
else
{
$pass = RandomString ( 10 );
2016-05-17 11:58:27 +05:00
if ( $_SERVER [ 'HTTP_HOST' ] != 'localhost' && $_SERVER [ 'HTTP_HOST' ] != '127.0.0.1' )
2013-10-07 12:17:06 +00:00
$email = 'anonymous' . RandomString ( 5 ) . '@' . $_SERVER [ 'HTTP_HOST' ];
else
$email = 'anonymous' . RandomString ( 5 ) . '@' . $_SERVER [ 'HTTP_HOST' ] . '.tld' ;
//Create Anonymous user
$uid = $this -> signup_user (
array (
'username' => 'anonymous' . RandomString ( 5 ),
'email' => $email ,
'password' => $pass ,
'cpassword' => $pass ,
'country' => get_country ( config ( 'default_country_iso2' )),
'gender' => 'Male' ,
'dob' => '2000-10-10' ,
'category' => '1' ,
'level' => '6' ,
'active' => 'yes' ,
'agree' => 'yes' ,
), false );
/*Added to resolve bug 222*/
global $myquery ;
$myquery -> Set_Website_Details ( 'anonymous_id' , $uid );
/*End*/
return $uid ;
}
}
}
/**
* Function used to delete user videos
*/
function delete_user_vids ( $uid )
{
global $cbvid , $eh ;
$vids = get_videos ( array ( 'user' => $uid ));
if ( is_array ( $vids ))
foreach ( $vids as $vid )
$cbvid -> delete_video ( $vid [ 'videoid' ]);
$eh -> flush_msg ();
e ( lang ( " user_vids_hv_deleted " ), " m " );
}
/**
* Function used to remove user contacts
*/
function remove_contacts ( $uid )
{
global $eh ;
$contacts = $this -> get_contacts ( $uid );
if ( is_array ( $contacts ))
foreach ( $contacts as $contact )
{
$this -> remove_contact ( $contact [ 'userid' ], $contact [ 'contact_userid' ]);
}
$eh -> flush_msg ();
e ( lang ( " user_contacts_hv_removed " ), " m " );
}
/**
* Function used to remove user private messages
*/
function remove_user_pms ( $uid , $box = 'both' )
{
global $db , $cbpm , $eh ;
if ( $box == " inbox " || $box == " both " )
{
$inboxs = $cbpm -> get_user_inbox_messages ( $uid );
if ( is_array ( $inboxs ))
foreach ( $inboxs as $inbox )
{
$cbpm -> delete_msg ( $inbox [ 'message_id' ], $uid );
}
$eh -> flush_msg ();
e ( lang ( " all_user_inbox_deleted " ), " m " );
}
if ( $box == " sent " || $box == " both " )
{
$outs = $cbpm -> get_user_outbox_messages ( $uid );
if ( is_array ( $outs ))
foreach ( $outs as $out )
{
$cbpm -> delete_msg ( $out [ 'message_id' ], $uid , 'out' );
}
$eh -> flush_msg ();
e ( lang ( " all_user_sent_messages_deleted " ), " m " );
}
}
/**
* This will get user subscriptions
* uploaded videos and photos
* This is a test function
*/
function getSubscriptionsUploadsWeek ( $uid , $limit = 20 , $uploadsType = " both " , $uploadsTimeSpan = " this_week " )
{
$usr_cond = " " ;
$users = $this -> get_user_subscriptions ( $uid );
if ( $users )
{
foreach ( $users as $user )
{
if ( $user_cond )
$user_cond .= " OR " ;
$user_cond .= tbl ( " users.userid " ) . " =' " . $user [ 0 ] . " ' " ;
}
$user_cond = " ( " . $user_cond . " ) " ;
global $cbphoto , $cbvideo ;
$photoCount = 1 ;
$videoCount = 1 ;
switch ( $uploadsType )
{
case " both " :
default :
{
$photos = $cbphoto -> get_photos ( array ( " limit " => $limit , " extra_cond " => $user_cond , " order " => " date_added DESC " , " date_span " => $uploadsTimeSpan ));
$videos = $cbvideo -> get_videos ( array ( " limit " => $limit , " cond " => " AND " . $user_cond , " order " => " date_added DESC " , " date_span " => $uploadsTimeSpan ));
if ( ! empty ( $photos ) && ! empty ( $videos ))
$finalResult = array_merge ( $videos , $photos );
elseif ( empty ( $photos ) && ! empty ( $videos ))
$finalResult = array_merge ( $videos , array ());
elseif ( ! empty ( $photos ) && empty ( $videos ))
$finalResult = array_merge ( $photos , array ());
if ( ! empty ( $finalResult ))
{
foreach ( $finalResult as $result )
{
if ( $result [ 'videoid' ])
{
$videoArr [] = $result ;
$return [ 'videos' ] = array (
" title " => lang ( " videos " ),
" total " => $videoCount ++ ,
" items " => $videoArr
);
}
if ( $result [ 'photo_id' ])
{
$photosArr [] = $result ;
$return [ 'photos' ] = array (
" title " => lang ( " photos " ),
" total " => $photoCount ++ ,
" items " => $photosArr
);
}
}
//pr($return,true) ;
return $return ;
} else
return false ;
}
break ;
case " photos " : case " photo " : case " p " :
{
$photos = $cbphoto -> get_photos ( array ( " limit " => $limit , " extra_cond " => $user_cond , " order " => " date_added DESC " , " date_span " => $uploadsTimeSpan ));
if ( $photos )
{
foreach ( $photos as $photo )
{
$photosArr [] = $photo ;
$return [ 'photos' ] = array (
" title " => lang ( " photos " ),
" total " => $photoCount ++ ,
" items " => $photosArr
);
}
}
else
return false ;
}
break ;
case " videos " : case " video " : case " v " :
{
$videos = $cbvideo -> get_videos ( array ( " limit " => $limit , " cond " => " AND " . $user_cond , " order " => " date_added DESC " , " date_span " => $uploadsTimeSpan ));
if ( $videos )
{
foreach ( $videos as $video )
{
$videoArr [] = $video ;
$return [ 'videos' ] = array (
" title " => lang ( " videos " ),
" total " => $videoCount ++ ,
" items " => $videoArr
);
}
}
else
return false ;
}
break ;
}
return $return ;
}
}
/**
* Get subscred videos
*/
function get_subscribed_videos ( $uid , $limit = 20 )
{
$user_cond = " " ;
$users = $this -> get_user_subscriptions ( $uid );
if ( $users )
{
foreach ( $users as $user )
{
//pr($user);
//Creating Query
if ( $user_cond )
$user_cond .= " OR " ;
$user_cond .= tbl ( " users.userid " ) . " =' " . $user [ 0 ] . " ' " ;
}
$user_cond = " AND ( " . $user_cond . " ) " ;
global $cbvid , $db ;
$vids = $cbvid -> get_videos ( array ( 'limit' => $limit , 'cond' => $user_cond , " order " => " date_added DESC " , " date_span " => " this_week " ));
// echo $db->db_query;
return $vids ;
}
return false ;
}
/**
* Function used to set item as profile item
*/
function setProfileItem ( $id , $type = 'v' , $uid = NULL )
{
global $cbvid , $db , $cbphoto ;
if ( ! $uid )
$uid = userid ();
if ( ! $uid )
{
e ( " user_doesnt_exist " );
return false ;
}
switch ( $type )
{
case " v " :
{
if ( $cbvid -> video_exists ( $id ))
{
$array [ 'type' ] = 'v' ;
$array [ 'id' ] = $id ;
$db -> update ( tbl ( 'user_profile' ), array ( 'profile_item' ), array ( " |no_mc| " . json_encode ( $array ))
, " userid=' $uid ' " );
e ( sprintf ( lang ( " this_has_set_profile_item " ), lang ( " video " )), " m " );
} else
e ( " class_vdo_del_err " );
}
break ;
case " p " :
{
if ( $cbphoto -> photo_exists ( $id ))
{
$array [ 'type' ] = 'p' ;
$array [ 'id' ] = $id ;
$db -> update ( tbl ( 'user_profile' ), array ( 'profile_item' ), array ( " |no_mc| " . json_encode ( $array ))
, " userid=' $uid ' " );
e ( sprintf ( lang ( " this_has_set_profile_item " ), lang ( " photo " )), " m " );
} else
e ( " photo_not_exists " );
}
break ;
}
}
/**
* Remove Profile item
*/
function removeProfileItem ( $uid = NULL )
{
global $db ;
if ( ! $uid )
$uid = userid ();
if ( ! $uid )
{
e ( " user_doesnt_exist " );
return false ;
}
$db -> update ( tbl ( 'user_profile' ), array ( 'profile_item' ), array ( " " )
, " userid=' $uid ' " );
e ( lang ( " profile_item_removed " ), " m " );
}
/**
* function used to get profile item
*/
function getProfileItem ( $uid = NULL , $withDetails = false )
{
global $db , $cbvid , $cbphoto ;
if ( ! $uid )
$uid = userid ();
if ( ! $uid )
{
e ( " user_doesnt_exist " );
return false ;
}
if ( $uid == userid () && $this -> profileItem && ! $withDetails )
return $this -> profileItem ;
$profileItem = $db -> select ( tbl ( " user_profile " ), " profile_item " , " userid=' $uid ' " );
$profileItem = $profileItem [ 0 ][ 'profile_item' ];
$profileItem = json_decode ( $profileItem , true );
if ( $withDetails )
{
switch ( $profileItem [ 'type' ])
{
case " p " :
{
$photo = $cbphoto -> get_photo ( $profileItem [ 'id' ]);
$photo [ 'type' ] = 'p' ;
if ( $photo )
return $photo ;
}
break ;
case " v " :
{
$video = $cbvid -> get_video ( $profileItem [ 'id' ]);
$video [ 'type' ] = 'v' ;
if ( $video )
return $video ;
}
break ;
}
}
return $this -> profileItem = $profileItem ;
}
/**
* Function used to check weather input given item
* is profile item or not
*/
function isProfileItem ( $id , $type = 'v' , $uid = NULL )
{
$profileItem = $this -> getProfileItem ( $uid );
if ( $profileItem [ 'type' ] == $type && $profileItem [ 'id' ] == $id )
return true ;
else
return false ;
}
/**
* FUnction loading personal details
*/
function load_personal_details ( $default )
{
if ( ! $default )
$default = $_POST ;
$profile_fields = array
(
'first_name' => array (
'title' => lang ( " user_fname " ),
'type' => " textfield " ,
'name' => " first_name " ,
'id' => " first_name " ,
'value' => $default [ 'first_name' ],
'db_field' => 'first_name' ,
'required' => 'no' ,
'syntax_type' => 'name' ,
'auto_view' => 'yes'
),
'last_name' => array (
'title' => lang ( " user_lname " ),
'type' => " textfield " ,
'name' => " last_name " ,
'id' => " last_name " ,
'value' => $default [ 'last_name' ],
'db_field' => 'last_name' ,
'syntax_type' => 'name' ,
'auto_view' => 'yes'
),
'relation_status' => array (
'title' => lang ( " user_relat_status " ),
'type' => " dropdown " ,
'name' => " relation_status " ,
'id' => " last_name " ,
'value' => array (
lang ( 'usr_arr_no_ans' ),
lang ( 'usr_arr_single' ),
lang ( 'usr_arr_married' ),
lang ( 'usr_arr_comitted' ),
lang ( 'usr_arr_open_relate' )
),
'checked' => $default [ 'relation_status' ],
'db_field' => 'relation_status' ,
'auto_view' => 'yes' ,
),
'show_dob' => array (
'title' => lang ( " show_dob " ),
'type' => " radiobutton " ,
'name' => " show_dob " ,
'id' => " show_dob " ,
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => $default [ 'show_dob' ],
'db_field' => 'show_dob' ,
'syntax_type' => 'name' ,
'auto_view' => 'no' ,
'sep' => ' '
),
'about_me' => array (
'title' => lang ( " user_about_me " ),
'type' => " textarea " ,
'name' => " about_me " ,
'id' => " about_me " ,
'value' => cleanForm ( $default [ 'about_me' ]),
'db_field' => 'about_me' ,
'auto_view' => 'no' ,
'clean_func' => 'Replacer' ,
),
'profile_tags' => array (
'title' => lang ( " profile_tags " ),
'type' => " textfield " ,
'name' => " profile_tags " ,
'id' => " profile_tags " ,
'value' => $default [ 'profile_tags' ],
'db_field' => 'profile_tags' ,
'auto_view' => 'no'
),
'web_url' => array (
'title' => lang ( " website " ),
'type' => " textfield " ,
'name' => " web_url " ,
'id' => " web_url " ,
'value' => $default [ 'web_url' ],
'db_field' => 'web_url' ,
'auto_view' => 'yes' ,
'display_function' => 'outgoing_link'
),
);
return $profile_fields ;
}
/**
* function used to load location fields
*/
function load_location_fields ( $default )
{
if ( ! $default )
$default = $_POST ;
$other_details = array
(
'postal_code' => array (
'title' => lang ( " postal_code " ),
'type' => " textfield " ,
'name' => " postal_code " ,
'id' => " postal_code " ,
'value' => $default [ 'postal_code' ],
'db_field' => 'postal_code' ,
'auto_view' => 'yes'
),
'hometown' => array (
'title' => lang ( " hometown " ),
'type' => " textfield " ,
'name' => " hometown " ,
'id' => " hometown " ,
'value' => $default [ 'hometown' ],
'db_field' => 'hometown' ,
'auto_view' => 'yes'
),
'city' => array (
'title' => lang ( " city " ),
'type' => " textfield " ,
'name' => " city " ,
'id' => " city " ,
'value' => $default [ 'city' ],
'db_field' => 'city' ,
'auto_view' => 'yes'
),
);
return $other_details ;
}
/**
* Function used to load experice fields
*/
function load_education_interests ( $default )
{
if ( ! $default )
$default = $_POST ;
$more_details = array
(
'education' => array (
'title' => lang ( " education " ),
'type' => " dropdown " ,
'name' => " education " ,
'id' => " education " ,
'value' => array ( lang ( 'usr_arr_no_ans' ),
lang ( 'usr_arr_elementary' ),
lang ( 'usr_arr_hi_school' ),
lang ( 'usr_arr_some_colg' ),
lang ( 'usr_arr_assoc_deg' ),
lang ( 'usr_arr_bach_deg' ),
lang ( 'usr_arr_mast_deg' ),
lang ( 'usr_arr_phd' ),
lang ( 'usr_arr_post_doc' ),
),
'checked' => $default [ 'education' ],
'db_field' => 'education' ,
'auto_view' => 'yes' ,
),
'schools' => array (
'title' => lang ( " schools " ),
'type' => " textarea " ,
'name' => " schools " ,
'id' => " schools " ,
'value' => cleanForm ( $default [ 'schools' ]),
'db_field' => 'schools' ,
'clean_func' => 'Replacer' ,
'auto_view' => 'yes' ,
),
'occupation' => array (
'title' => lang ( " occupation " ),
'type' => " textarea " ,
'name' => " occupation " ,
'id' => " occupation " ,
'value' => cleanForm ( $default [ 'occupation' ]),
'db_field' => 'occupation' ,
'clean_func' => 'Replacer' ,
'auto_view' => 'yes' ,
),
'companies' => array (
'title' => lang ( " companies " ),
'type' => " textarea " ,
'name' => " companies " ,
'id' => " companies " ,
'value' => cleanForm ( $default [ 'companies' ]),
'db_field' => 'companies' ,
'clean_func' => 'Replacer' ,
'auto_view' => 'yes' ,
),
'hobbies' => array (
'title' => lang ( " hobbies " ),
'type' => " textarea " ,
'name' => " hobbies " ,
'id' => " hobbies " ,
'value' => cleanForm ( $default [ 'hobbies' ]),
'db_field' => 'hobbies' ,
'clean_func' => 'Replacer' ,
'auto_view' => 'yes' ,
),
'fav_movies' => array (
'title' => lang ( " user_fav_movs_shows " ),
'type' => " textarea " ,
'name' => " fav_movies " ,
'id' => " fav_movies " ,
'value' => cleanForm ( $default [ 'fav_movies' ]),
'db_field' => 'fav_movies' ,
'clean_func' => 'Replacer' ,
'auto_view' => 'yes' ,
),
'fav_music' => array (
'title' => lang ( " user_fav_music " ),
'type' => " textarea " ,
'name' => " fav_music " ,
'id' => " fav_music " ,
'value' => cleanForm ( $default [ 'fav_music' ]),
'db_field' => 'fav_music' ,
'clean_func' => 'Replacer' ,
'auto_view' => 'yes' ,
),
'fav_books' => array (
'title' => lang ( " user_fav_books " ),
'type' => " textarea " ,
'name' => " fav_books " ,
'id' => " fav_books " ,
'value' => cleanForm ( $default [ 'fav_books' ]),
'db_field' => 'fav_books' ,
'clean_func' => 'Replacer' ,
'auto_view' => 'yes' ,
),
);
return $more_details ;
}
/**
* Function used to load privacy fields
*/
function load_privacy_field ( $default )
{
if ( ! $default )
$default = $_POST ;
$privacy = array
(
'online_status' => array (
'title' => lang ( " online_status " ),
'type' => " dropdown " ,
'name' => " privacy " ,
'id' => " privacy " ,
'value' => array ( 'online' => lang ( 'online' ), 'offline' => lang ( 'offline' ), 'custom' => lang ( 'custom' )),
'checked' => $default [ 'online_status' ],
'db_field' => 'online_status' ,
),
'show_profile' => array (
'title' => lang ( " show_profile " ),
'type' => " dropdown " ,
'name' => " show_profile " ,
'id' => " show_profile " ,
'value' => array ( 'all' => lang ( 'all' ), 'members' => lang ( 'members' ), 'friends' => lang ( 'friends' )),
'checked' => $default [ 'show_profile' ],
'db_field' => 'show_profile' ,
'sep' => ' '
),
'allow_comments' => array (
'title' => lang ( " vdo_allow_comm " ),
'type' => " radiobutton " ,
'name' => " allow_comments " ,
'id' => " allow_comments " ,
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => strtolower ( $default [ 'allow_comments' ]),
'db_field' => 'allow_comments' ,
'sep' => ' '
),
'allow_ratings' => array (
'title' => lang ( " allow_ratings " ),
'type' => " radiobutton " ,
'name' => " allow_ratings " ,
'id' => " allow_ratings " ,
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => strtolower ( $default [ 'allow_ratings' ]),
'db_field' => 'allow_ratings' ,
'sep' => ' '
),
'allow_subscription' => array (
'title' => lang ( " allow_subscription " ),
'type' => " radiobutton " ,
'name' => " allow_subscription " ,
'id' => " allow_subscription " ,
'hint_1' => lang ( 'allow_subscription_hint' ),
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => strtolower ( $default [ 'allow_subscription' ]),
'db_field' => 'allow_subscription' ,
'sep' => ' '
),
);
return $privacy ;
}
/**
* load_channel_settings
*
* @ param $input defaults value for channel settings
* @ return arra of channel info fields
*/
function load_channel_settings ( $default )
{
if ( ! $default )
$default = $_POST ;
$channel_settings = array
(
'profile_title' => array (
'title' => lang ( " channel_title " ),
'type' => " textfield " ,
'name' => " profile_title " ,
'id' => " profile_title " ,
'value' => $default [ 'profile_title' ],
'db_field' => 'profile_title' ,
'auto_view' => 'no'
),
'profile_desc' => array (
'title' => lang ( " channel_desc " ),
'type' => " textarea " ,
'name' => " profile_desc " ,
'id' => " profile_desc " ,
'value' => $default [ 'profile_desc' ],
'db_field' => 'profile_desc' ,
'auto_view' => 'yes' ,
'clean_func' => 'Replacer' ,
),
'show_my_friends' => array (
'title' => lang ( " show_my_friends " ),
'type' => " radiobutton " ,
'name' => " show_my_friends " ,
'id' => " show_my_friends " ,
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => strtolower ( $default [ 'show_my_friends' ]),
'db_field' => 'show_my_friends' ,
'sep' => ' '
),
'show_my_videos' => array (
'title' => lang ( " show_my_videos " ),
'type' => " radiobutton " ,
'name' => " show_my_videos " ,
'id' => " show_my_videos " ,
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => strtolower ( $default [ 'show_my_videos' ]),
'db_field' => 'show_my_videos' ,
'sep' => ' '
),
'show_my_photos' => array (
'title' => lang ( " show_my_photos " ),
'type' => " radiobutton " ,
'name' => " show_my_photos " ,
'id' => " show_my_photos " ,
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => strtolower ( $default [ 'show_my_photos' ]),
'db_field' => 'show_my_photos' ,
'sep' => ' '
),
'show_my_subscriptions' => array (
'title' => lang ( " show_my_subscriptions " ),
'type' => " radiobutton " ,
'name' => " show_my_subscriptions " ,
'id' => " show_my_subscriptions " ,
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => strtolower ( $default [ 'show_my_subscriptions' ]),
'db_field' => 'show_my_subscriptions' ,
'sep' => ' '
),
'show_my_subscribers' => array (
'title' => lang ( " show_my_subscribers " ),
'type' => " radiobutton " ,
'name' => " show_my_subscribers " ,
'id' => " show_my_subscribers " ,
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => strtolower ( $default [ 'show_my_subscribers' ]),
'db_field' => 'show_my_subscribers' ,
'sep' => ' '
),
'show_my_collections' => array (
'title' => lang ( " show_my_collections " ),
'type' => " radiobutton " ,
'name' => " show_my_collections " ,
'id' => " show_my_collections " ,
'value' => array ( 'yes' => lang ( 'yes' ), 'no' => lang ( 'no' )),
'checked' => strtolower ( $default [ 'show_my_collections' ]),
'db_field' => 'show_my_collections' ,
'sep' => ' '
),
);
return $channel_settings ;
}
/**
* load_user_fields
*
* @ param $input default values for user profile fields
* @ return array of user fields
*
* Function used to load Video fields
* in clipbucket v2 . 1 , video fields are loaded in form of groups arrays
* each group has it name and fields wrapped in array
* and that array will be part of video fields
*/
function load_user_fields ( $default , $type = 'all' )
{
$getChannelSettings = false ;
$getProfileSettings = false ;
$fields = array ();
switch ( $type )
{
case " all " :
{
$getChannelSettings = true ;
$getProfileSettings = true ;
}
break ;
case " channel " :
case " channels " :
{
$getChannelSettings = true ;
}
break ;
case " profile " :
case " profile_settings " :
{
$getProfileSettings = true ;
}
break ;
}
if ( $getChannelSettings )
{
$channel_settings = array
(
array
(
'group_name' => lang ( 'channel_settings' ),
'group_id' => 'channel_settings' ,
'fields' => array_merge ( $this -> load_channel_settings ( $default )
, $this -> load_privacy_field ( $default )),
),
);
}
if ( $getProfileSettings )
{
$profile_settings = array
(
array
(
'group_name' => lang ( 'profile_basic_info' ),
'group_id' => 'profile_basic_info' ,
'fields' => $this -> load_personal_details ( $default ),
),
array
(
'group_name' => lang ( 'location' ),
'group_id' => 'profile_location' ,
'fields' => $this -> load_location_fields ( $default )
),
array
(
'group_name' => lang ( 'profile_education_interests' ),
'group_id' => 'profile_education_interests' ,
'fields' => $this -> load_education_interests ( $default )
)
);
//Adding Custom Fields
$custom_fields = $this -> load_custom_profile_fields ( $default , false );
if ( $custom_fields )
{
$more_fields_group =
array
(
'group_name' => lang ( 'more_fields' ),
'group_id' => 'custom_fields' ,
'fields' => $custom_fields ,
);
}
//Loading Custom Profile Forms
$custom_fields_with_group = $this -> load_custom_profile_fields ( $default , true );
//Finaling putting them together in their main array called $fields
if ( $custom_fields_with_group )
{
$custFieldGroups = $custom_fields_with_group ;
foreach ( $custFieldGroups as $gKey => $fieldGroup )
{
$group_id = $fieldGroup [ 'group_id' ];
foreach ( $profile_settings as $key => $field )
{
if ( $field [ 'group_id' ] == $group_id )
{
$inputFields = $field [ 'fields' ];
//Setting field values
$newFields = $fieldGroup [ 'fields' ];
$mergeField = array_merge ( $inputFields , $newFields );
//Finally Updating array
$newGroupArray =
array
(
'group_name' => $field [ 'group_name' ],
'group_id' => $field [ 'group_id' ],
'fields' => $mergeField ,
);
$fields [ $key ] = $newGroupArray ;
$matched = true ;
break ;
} else
$matched = false ;
}
if ( ! $matched )
$profile_settings [] = $fieldGroup ;
}
}
}
if ( $channel_settings )
$fields = array_merge ( $fields , $channel_settings );
if ( $profile_settings )
$fields = array_merge ( $fields , $profile_settings );
if ( $more_fields_group )
$fields [] = $more_fields_group ;
return $fields ;
}
/**
* Used to rate photo
*/
function rate_user ( $id , $rating )
{
global $db , $json ;
if ( ! is_numeric ( $rating ) || $rating <= 9 )
$rating = 0 ;
if ( $rating >= 10 )
$rating = 10 ;
$c_rating = $this -> current_rating ( $id );
$voters = $c_rating [ 'voters' ];
$new_rate = $c_rating [ 'rating' ];
$rated_by = $c_rating [ 'rated_by' ];
if ( phpversion < '5.2.0' )
$voters = $json -> json_decode ( $voters , TRUE );
else
$voters = json_decode ( $voters , TRUE );
if ( ! empty ( $voters ))
$already_voted = array_key_exists ( userid (), $voters );
if ( ! userid ())
e ( lang ( " please_login_to_rate " ));
elseif ( userid () == $c_rating [ 'userid' ] && ! config ( 'own_channel_rating' ))
e ( lang ( " you_cant_rate_own_channel " ));
elseif ( ! empty ( $already_voted ))
e ( lang ( " you_have_already_voted_channel " ));
elseif ( $c_rating [ 'allow_ratings' ] == 'no' || ! config ( 'channel_rating' ))
e ( lang ( " channel_rating_disabled " ));
else
{
$voters [ userid ()] = array ( 'rate' => $rating , 'time' => NOW ());
if ( phpversion < '5.2.0' )
$voters = $json -> json_encode ( $voters );
else
$voters = json_encode ( $voters );
$t = $c_rating [ 'rated_by' ] * $c_rating [ 'rating' ];
$rated_by = $c_rating [ 'rated_by' ] + 1 ;
$new_rate = ( $t + $rating ) / $rated_by ;
$db -> update ( tbl ( 'user_profile' ), array ( 'rating' , 'rated_by' , 'voters' ),
array ( " $new_rate " , " $rated_by " , " |no_mc| $voters " ),
" userid = " . $id . " " );
$userDetails = array (
" object_id " => $id ,
" type " => " user " ,
" time " => now (),
" rating " => $rating ,
" userid " => userid (),
" username " => username ()
);
/* Updating user details */
update_user_voted ( $userDetails );
e ( lang ( " thnx_for_voting " ), " m " );
}
$return = array ( " rating " => $new_rate , " rated_by " => $rated_by , 'total' => 10 , " id " => $id , " type " => " user " , " disable " => " disabled " );
return $return ;
}
/**
* Used to get current rating
*/
function current_rating ( $id )
{
global $db ;
$result = $db -> select ( tbl ( 'user_profile' ), 'userid,allow_ratings,rating,rated_by,voters' , " userid = " . $id . " " );
if ( $result )
return $result [ 0 ];
else
return false ;
}
/**
* function used to check weather user is online or not
*/
function isOnline ( $last_active , $status = NULL )
{
$time = strtotime ( $last_active );
$timeDiff = time () - $time ;
if ( $timeDiff > 60 || $status == 'offline' )
return false ;
else
return true ;
}
/**
* Function used to get list of subscribed users and then
* send subscription email
*/
function sendSubscriptionEmail ( $vidDetails , $updateStatus = true )
{
global $cbemail , $db ;
$v = $vidDetails ;
if ( ! $v [ 'videoid' ])
{
e ( lang ( " invalid_videoid " ));
return false ;
}
if ( ! $v [ 'userid' ])
{
e ( lang ( " invalid_userid " ));
return false ;
}
//Lets get the list of subscribers
$subscribers = $this -> get_user_subscribers_detail ( $v [ 'userid' ], false );
//Now lets get details of our uploader bhai saab
$uploader = $this -> get_user_details ( $v [ 'userid' ]);
//Loading subscription email template
$tpl = $cbemail -> get_template ( 'video_subscription_email' );
$total_subscribers = count ( $subscribers );
if ( $subscribers )
foreach ( $subscribers as $subscriber )
{
$var = $this -> custom_subscription_email_vars ;
$more_var = array
( '{username}' => $subscriber [ 'username' ],
'{uploader}' => $uploader [ 'username' ],
'{video_title}' => $v [ 'title' ],
'{video_description}' => $v [ 'description' ],
'{video_link}' => video_link ( $v ),
'{video_thumb}' => get_thumb ( $v ),
);
if ( ! is_array ( $var ))
$var = array ();
$var = array_merge ( $more_var , $var );
$subj = $cbemail -> replace ( $tpl [ 'email_template_subject' ], $var );
$msg = nl2br ( $cbemail -> replace ( $tpl [ 'email_template' ], $var ));
//Now Finally Sending Email
cbmail ( array ( 'to' => $subscriber [ 'email' ], 'from' => WELCOME_EMAIL , 'subject' => $subj , 'content' => $msg ));
}
if ( $total_subscribers )
{
//Updating video subscription email status to sent
if ( $updateStatus )
$db -> update ( tbl ( 'video' ), array ( 'subscription_email' ), array ( 'sent' ), " videoid=' " . $v [ 'videoid' ] . " ' " );
$s = " " ;
if ( $total_subscribers > 1 )
$s = " s " ;
e ( sprintf ( lang ( 'subs_email_sent_to_users' ), $total_subscribers , $s ), " m " );
return true ;
}
e ( lang ( " no_user_subscribed_to_uploader " ));
return true ;
}
/**
* function used to get user seesions
*/
function get_sessions ()
{
global $sess ;
$sessions = $sess -> get_sessions ();
$new_sessions = array ();
if ( $sessions )
{
foreach ( $sessions as $session )
{
$new_sessions [ $session [ 'session_string' ]] = $session ;
}
} else
{
$sess -> add_session ( 0 , 'guest' , 'guest' );
}
return $new_sessions ;
}
function update_user_voted ( $array , $userid = NULL )
{
global $db ;
//$voted = array();
if ( ! $userid )
$userid = userid ();
if ( phpversion < '5.2.0' )
{
global $json ;
$js = $json ;
}
if ( is_array ( $array ))
{
$votedDetails = $db -> select ( tbl ( " users " ), " voted " , " userid = ' $userid ' " );
if ( ! empty ( $votedDetails ))
if ( ! empty ( $js ))
$voted = $js -> json_decode ( $votedDetails [ 0 ][ 'voted' ], TRUE );
else
$voted = json_decode ( $votedDetails [ 0 ][ 'voted' ], TRUE );
2014-12-18 10:26:29 +00:00
2013-10-07 12:17:06 +00:00
if ( ! empty ( $js ))
$votedEncode = $js -> json_encode ( $voted );
else
$votedEncode = json_encode ( $voted );
if ( ! empty ( $votedEncode ))
$db -> update ( tbl ( " users " ), array ( " voted " ), array ( " |no_mc| $votedEncode " ), " userid=' $userid ' " );
}
}
2015-05-22 08:12:32 +00:00
/**
* Function used to display user manger link
*/
function user_manager_link ( $link , $vid )
{
if ( function_exists ( $link ) && ! is_array ( $link ))
{
return $link ( $vid );
} else
{
if ( ! empty ( $link [ 'title' ]) && ! empty ( $link [ 'link' ]))
{
return '<a href="' . $link [ 'link' ] . '">' . $link [ 'title' ] . '</a>' ;
}
}
}
2016-04-15 19:35:58 +05:00
2016-04-15 19:38:45 +05:00
/**
* Fetches all friend requests sent by given user
* @ param : { integer } { $user } { id of user to fetch requests against }
*
* @ return : { array } { $data } { array with all sent requests details }
* @ since : 15 th April , 2016 , ClipBucket 2.8 . 1
* @ author : Saqib Razzaq
*/
2016-04-15 19:35:58 +05:00
function sent_contact_requests ( $user ) {
global $db ;
$data = $db -> select ( tbl ( 'contacts' ), " * " , " userid = $user AND confirmed = 'no' " );
return $data ;
}
2016-04-15 19:39:39 +05:00
/**
* Fetches all friend requests recieved by given user
* @ param : { integer } { $user } { id of user to fetch requests against }
*
* @ return : { array } { $data } { array with all recieved requests details }
* @ since : 15 th April , 2016 , ClipBucket 2.8 . 1
* @ author : Saqib Razzaq
*/
2016-04-15 19:35:58 +05:00
function recieved_contact_requests ( $user ) {
global $db ;
$data = $db -> select ( tbl ( 'contacts' ), " * " , " contact_userid = $user AND confirmed = 'no' " );
return $data ;
}
2016-04-15 19:40:30 +05:00
/**
* Fetches all friends of given user
* @ param : { integer } { $user } { id of user to fetch friends against }
*
* @ return : { array } { $data } { array with all friends details }
* @ since : 15 th April , 2016 , ClipBucket 2.8 . 1
* @ author : Saqib Razzaq
*/
2016-04-15 19:35:58 +05:00
function added_contacts ( $user ) {
global $db ;
$data = $db -> select ( tbl ( 'contacts' ), " * " , " (contact_userid = $user OR userid = $user ) AND confirmed = 'yes' " );
return $data ;
}
2016-04-15 19:42:13 +05:00
/**
* Fetches friendship status of two users
* @ param : { integer } { $logged_in_user } { id of logged in user }
* @ param : { integer } { $channel_user } { id of channel being viewed }
*
* @ return : { string } { s = sent , r = recieved , f = friends }
* @ since : 15 th April , 2016 , ClipBucket 2.8 . 1
* @ author : Saqib Razzaq
*/
2016-04-15 19:35:58 +05:00
function friendship_status ( $logged_in_user , $channel_user ) {
$sent = $this -> sent_contact_requests ( $logged_in_user );
$pending = $this -> recieved_contact_requests ( $logged_in_user );
$friends = $this -> added_contacts ( $logged_in_user );
foreach ( $sent as $key => $data ) {
if ( $data [ 'contact_userid' ] == $channel_user ) {
return 's' ; // sent
}
}
foreach ( $pending as $key => $data ) {
if ( $data [ 'userid' ] == $channel_user ) {
return 'r' ; // received
}
}
foreach ( $friends as $key => $data ) {
if ( $data [ 'contact_userid' ] == $channel_user ) {
return 'f' ; // friends
}
}
}
2013-10-07 12:17:06 +00:00
}
?>