###############################################################################
# PROGRAM : DOPAYS #
# VERSION : 2.64.87 #
# AUTHOR : Dmitry Pereuda #
# COPYRIGHTS : DOSWARE TEAM #
# #
# RELEASED BY : WDYL-WTN #
###############################################################################
# All source code, images, programs, files included in this distribution #
# Copyright (C)2003 DOSWARE TEAM. All Rights Reservded. #
###############################################################################
# While we distribute the source code for our scripts and you are allowed to #
# edit them to better suit your needs, we do not support modified code. #
# Please see the license prior to changing anything. You must agree to the #
# license terms before using this software package or any code contained #
# herein. #
###############################################################################
# Any redistribution without permission of Dmitry Pereuda (DOSWARE TEAM) is #
# strictly forbidden. #
###############################################################################
error_reporting(E_ERROR | E_WARNING | E_PARSE);
if(!ini_get('safe_mode'))set_time_limit(3600);
set_magic_quotes_runtime(0);
ignore_user_abort(true);
###############################################################################
$data['PostSent']=false;
$data['ScriptLoaded']=true;
###############################################################################
$data['Path']=dirname(__FILE__);
if($_SERVER["HTTPS"]=='on')$data['Prot']='https';else $data['Prot']='http';
$data['Templates']="{$data['Path']}/templates";
$data['BannersPath']="{$data['Path']}/images/banners";
$data['SinBtnsPath']="{$data['Path']}/images/buttons/single";
$data['SubBtnsPath']="{$data['Path']}/images/buttons/subscriptions";
$data['ShopBtnsPath']="{$data['Path']}/images/buttons/shopcart";
if($data['Folder'])$data['Folder']="/{$data['Folder']}";
$data['Addr']="{$_SERVER['REMOTE_ADDR']}";
$data['Host']="{$data['Prot']}://{$_SERVER['HTTP_HOST']}{$data['Folder']}";
$data['Images']="{$data['Host']}/images";
$data['Banners']="{$data['Images']}/banners";
$data['SinBtns']="{$data['Images']}/buttons/single";
$data['SubBtns']="{$data['Images']}/buttons/subscriptions";
$data['ShopBtns']="{$data['Images']}/buttons/shopcart";
$data['Admins']="{$data['Host']}/admins";
$data['Members']="{$data['Host']}/members";
$data['Home']="Location:{$data['Host']}/index.htm";
$data['DbPrefix']="{$data['DbPrefix']}_";
###############################################################################
function get_post(){
global $_POST;
$result=array();
foreach($_POST as $key=>$value)$result[$key]=$value;
reset($_POST);
return $result;
}
###############################################################################
function show($template){
global $data, $post;
if(file_exists($template))include($template);
else echo("Template \"{$template}\" not found!");
}
function display($path=''){
global $data;
if($path)$path="/{$path}";
show("{$data['Templates']}{$path}/template.header.htm");
show("{$data['Templates']}{$path}/template.{$data['PageFile']}.htm");
show("{$data['Templates']}{$path}/template.footer.htm");
}
function showmenu($mode, $path=''){
global $data;
$data['mode']=$mode;
if($path)$path="/{$path}";
show("{$data['Templates']}{$path}/template.menu.htm");
}
function showbanner(){
global $data;
show("{$data['Templates']}/template.banners.htm");
}
###############################################################################
$data['cid']=null;
function db_connect(){
global $data;
$data['cid']=@mysql_connect(
$data['Hostname'], $data['Username'], $data['Password']
);
if(!$data['cid'])echo(''.mysql_error().'');
@mysql_select_db($data['Database'], $data['cid']);
return (bool)$data['cid'];
}
function db_disconnect(){
global $data;
return (bool)@mysql_close($data['cid']);
}
function db_query($statement){
global $data;
return @mysql_query($statement, $data['cid']);
}
function newid(){
global $data;
return @mysql_insert_id($data['cid']);
}
function db_count($result){
return (int)@mysql_num_rows($result);
}
function db_rows($statement){
$result=array();
$query=db_query($statement);
$count=db_count($query);
for($i=0; $i<$count; $i++)$result[$i]=@mysql_fetch_array($query, MYSQL_ASSOC);
return $result;
}
###############################################################################
function verify_email($email){
return !(bool)ereg("^.+@.+\\..+$", $email);
}
function verify_username($username){
return !(bool)ereg("^[a-zA-Z0-9]+$", $username);
}
function gencode(){
global $data;
list($usec, $sec)=explode(' ', microtime());
$rand=(float)$sec+((float)$usec*100000);
srand($rand);
return strtoupper(substr(md5(rand()), rand(1, 26), $data['TuringSize']));
}
function around($amount){
return sprintf("%6.2f", $amount);
}
function encode($number, $size){
$result='';
$length=strlen($number);
for($i=0;$i<$length-$size;$i++)$result.='X';
return $result.substr($number, $length-$size, $length);
}
function is_changed($number){
return (bool)ereg("^[0-9]+$", $number);
}
function is_number($text){
if(!is_changed($text))return true;
return (bool)is_changed($text);
}
function showselect($values, $current=null){
$result='';
foreach($values as $key=>$value){
$result.=
""
;
}
return $result;
}
###############################################################################
function prndate($date){
global $data;
if($date=='0000-00-00 00:00:00')return '---';
else return date($data['DateFormat'], strtotime($date));
}
function prnintg($number){
return number_format($number, 0, '', ',');
}
function prnsumm($summ, $size=2){
$summ=str_replace(",", ".", $summ);
return number_format(($summ>0?$summ:-$summ), $size, '.', ',');
}
function prnpays($summ, $splus=true){
global $data;
if($summ<0)$color='red';else $color='green';
return
"".
($summ>=0?($splus?'+':''):'-').$data['Currency'].prnsumm($summ).
''
;
}
function prnfees($summ){
return $summ!=0?prnpays($summ):'---';
}
function prntext($text){
return stripslashes($text);
}
function balance($summ){
return prnpays($summ, false);
}
function prnuser($uid){
if($uid>0)return get_member_username($uid);
else return 'system';
}
function get_files_list($path){
$result=array();
if(@file_exists($path)){
$handle=@opendir($path);
while(($file=@readdir($handle))!==false){
if($file!='.'&&$file!='..'){
$x=strtolower(substr($file, -4));
if($x&&$x=='.jpg'||$x=='.gif'||$x=='.png')$result[]="{$file}";
}
}
}
return $result;
}
function get_html_templates(){
global $data;
$result=array('0'=>'--');
if(@file_exists($data['Templates'])){
$handle=@opendir($data['Templates']);
while(($file=@readdir($handle))!==false){
if($file!='.'&&$file!='..'){
$x=strtolower(substr($file, -4));
if($x&&$x=='.htm')$result[$file]="{$file}";
}
}
}
return $result;
}
###############################################################################
function send_email($key, $post){
global $data;
$template=db_rows(
"SELECT `name`,`value` FROM `{$data['DbPrefix']}emails`".
" WHERE `key`='{$key}'"
);
$text=$template[0]['value'];
$subject=$template[0]['name'];
if($post['username']){
$text=str_replace("[username]", $post['username'], $text);
$text=str_replace("[usersite]", "{$data['Host']}/?{$post['username']}", $text);
}
if($post['password'])$text=str_replace("[password]", $post['password'], $text);
if($post['fullname'])$text=str_replace("[fullname]", $post['fullname'], $text);
if($post['email'])$text=str_replace("[emailadr]", $post['email'], $text);
if($post['buyer'])$text=str_replace("[buyeradr]", $post['buyer'], $text);
if($post['product'])$text=str_replace("[product]", $post['product'], $text);
if($post['ccode'])$text=str_replace("[confcode]", $post['ccode'], $text);
if($post['comments'])$text=str_replace("[comments]", $post['comments'], $text);
else $text=str_replace("[comments]", '---', $text);
$text=str_replace("[sitename]", $data['SiteName'], $text);
$text=str_replace("[hostname]", $data['Host'], $text);
$text=str_replace("[singpage]", "{$data['Members']}/signup.htm", $text);
$text=str_replace("[confpage]", "{$data['Members']}/confirm.htm", $text);
$text=str_replace("[lognpage]", "{$data['Members']}/login.htm", $text);
$text=str_replace("[amount]", $data['Currency'].($post['amount']-$post['fees']), $text);
$header="From: {$data['AdminEmail']}\nReturn-Path: {$data['AdminEmail']}\n";
return mail($post['email'], stripslashes($subject), stripslashes($text), $header);
}
function send_mass_email($subject, $message, $active=-1){
global $data;
$header="From: {$data['AdminEmail']}\nReturn-Path: {$data['AdminEmail']}\n";
$members=db_rows(
"SELECT `username`,`email`,`fname`,`lname`".
" FROM `{$data['DbPrefix']}members`".
($active<0?'':" WHERE `active`={$active}")
);
foreach($members as $value){
mail($value['email'], $subject, $message, $header);
}
}
###############################################################################
function use_curl($href, $post=null){
$handle=curl_init();
curl_setopt($handle, CURLOPT_URL, $href);
if($post){
if($post){
curl_setopt($handle, CURLOPT_POST, 1);
curl_setopt($handle, CURLOPT_POSTFIELDS, $post);
}
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($handle, CURLOPT_TIMEOUT, 90);
}
$result=curl_exec($handle);
curl_close($handle);
return $result;
}
function autorize($uid, $post){
global $data;
$query=array();
array_push($query, 'x_ADC_Delim_Data=TRUE');
array_push($query, 'x_ADC_URL=FALSE');
array_push($query, 'x_Address='.urlencode($post['address']));
array_push($query, 'x_Amount='.urlencode($post['total']));
array_push($query, 'x_Card_Code='.urlencode($post['ccvv']));
array_push($query, 'x_Card_Num='.urlencode($post['cnumber']));
array_push($query, 'x_City='.urlencode($post['city']));
array_push($query, 'x_Company='.urlencode($post['company']));
array_push($query, 'x_Country='.urlencode($post['country']));
array_push($query, 'x_Cust_ID='.urlencode(get_member_username($uid)));
array_push($query, 'x_Customer_IP='.urlencode($_SERVER['REMOTE_ADDR']));
array_push($query, 'x_Customer_Organization_Type='.urlencode((strlen($post['company'])>0)?'B':'I'));
array_push($query, 'x_Description='.urlencode('Deposit to my account from Authorize.Net'));
array_push($query, 'x_Email='.urlencode($post['email']));
array_push($query, 'x_Exp_Date='.urlencode("{$post['cmonth']}/{$post['cyear']}"));
array_push($query, 'x_First_Name='.urlencode($post['fname']));
array_push($query, 'x_Last_Name='.urlencode($post['lname']));
array_push($query, 'x_Method=CC');
array_push($query, "x_Login={$data['DepositMethod']['autorize']['user']}");
array_push($query, "x_Password={$data['DepositMethod']['autorize']['pswd']}");
array_push($query, 'x_Phone='.urlencode($post['phone']));
array_push($query, 'x_Recurring_Billing=FALSE');
array_push($query, 'x_State='.urlencode($post['state']));
array_push($query, 'x_Tax_Exempt=TRUE');
array_push($query, 'x_Trans_ID=1');
array_push($query, 'x_Type=AUTH_CAPTURE');
array_push($query, 'x_Version=3.1');
array_push($query, 'x_Zip='.urlencode($post['zip']));
$query=implode('&', $query);
$cid=curl_init('https://secure.authorize.net/gateway/transact.dll');
curl_setopt($cid, CURLOPT_POST, 1);
curl_setopt($cid, CURLOPT_POSTFIELDS, $query);
curl_setopt($cid, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($cid, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cid, CURLOPT_TIMEOUT, 90);
$result=curl_exec($cid);
curl_close($cid);
$rarray=array();
$rarray=explode(',', $result);
$result='Credit card transaction was denied.';
switch($rarray[0]){
case 1: $result='--DONE--';
case 2: $result='Credit card transaction was denied.';
case 3: $result="An error occurred while trying to process your information.
{$rarray[3]}";
}
return $result;
}
###############################################################################
function is_user_available($username){
global $data;
$confirms=db_rows(
"SELECT `id` FROM `{$data['DbPrefix']}confirms`".
" WHERE(`newuser`='{$username}') LIMIT 1"
);
$members=db_rows(
"SELECT `id` FROM `{$data['DbPrefix']}members`".
" WHERE(`username`='{$username}') LIMIT 1"
);
return (bool)(!$confirms&&!$members);
}
function is_mail_available($email){
global $data;
$confirms=db_rows(
"SELECT `id` FROM `{$data['DbPrefix']}confirms`".
" WHERE(`newmail`='{$email}') LIMIT 1"
);
$members=db_rows(
"SELECT `id` FROM `{$data['DbPrefix']}members`".
" WHERE(`email`='{$email}') LIMIT 1"
);
return (bool)(!$confirms&&!$members);
}
function create_confirmation(
$newuser, $newpass, $newques, $newansw, $newmail,
$newfname, $newlname, $newcompany, $newregnum, $newdrvnum, $newaddress,
$newcity, $newcountry, $newstate, $newzip, $newphone, $newfax,
$sponsor=0
){
global $data;
$result=gencode();
$sponsor=($sponsor?$sponsor:0);
db_query(
"INSERT INTO `{$data['DbPrefix']}confirms`(".
"`newuser`,`newpass`,`newquestion`,`newanswer`,`newmail`,".
($data['UseExtRegForm']?
"`newfname`,`newlname`,`newcompany`,`newregnum`,`newdrvnum`,`newaddress`,".
"`newcity`,`newcountry`,`newstate`,`newzip`,`newphone`,`newfax`,":''
).
"`sponsor`,`confirm`".
")VALUES(".
"'{$newuser}','{$newpass}','{$newques}','{$newansw}','{$newmail}',".
($data['UseExtRegForm']?
"'{$newfname}','{$newlname}','{$newcompany}','{$newregnum}','{$newdrvnum}',".
"'{$newaddress}','{$newcity}','{$newcountry}','{$newstate}','{$newzip}',".
"'{$newphone}','{$newfax}',":''
).
"{$sponsor},'{$result}'".
")"
);
$post['ccode']=$result;
$post['email']=$newmail;
send_email('CONFIRM-TO-MEMBER', $post);
}
function select_confirmation($ccode){
global $data;
$confirm=db_rows(
"SELECT `id` FROM `{$data['DbPrefix']}confirms`".
" WHERE(`confirm`='{$ccode}')"
);
return $confirm[0]['id'];
}
function update_confirmation($cid){
global $data;
db_query(
"DELETE FROM `{$data['DbPrefix']}confirms`".
" WHERE(TO_DAYS(NOW())-TO_DAYS(`cdate`)>=2)"
);
$confirm=db_rows(
"SELECT".
"`id`,`newuser`,`newpass`,`newquestion`,`newanswer`,`newmail`,".
($data['UseExtRegForm']?
"`newfname`,`newlname`,`newcompany`,`newregnum`,`newdrvnum`,`newaddress`,".
"`newcity`,`newcountry`,`newstate`,`newzip`,`newphone`,`newfax`,":""
).
"`sponsor`".
" FROM `{$data['DbPrefix']}confirms` WHERE(`id`='{$cid}')"
);
$confirm=$confirm[0];
db_query(
"INSERT INTO `{$data['DbPrefix']}members`(".
"`sponsor`,`username`,`password`,`question`,`answer`,`email`,".
($data['UseExtRegForm']?
"`fname`,`lname`,`company`,`regnum`,`drvnum`,`address`,".
"`city`,`country`,`state`,`zip`,`phone`,`fax`,":''
).
"`active`,`empty`,`cdate`".
")VALUES(".
"{$confirm['sponsor']},'{$confirm['newuser']}','{$confirm['newpass']}',".
"'{$confirm['newquestion']}','{$confirm['newanswer']}','{$confirm['newmail']}',".
($data['UseExtRegForm']?
"'{$confirm['newfname']}','{$confirm['newlname']}','{$confirm['newcompany']}',".
"'{$confirm['newregnum']}','{$confirm['newdrvnum']}','{$confirm['newaddress']}',".
"'{$confirm['newcity']}','{$confirm['newcountry']}','{$confirm['newstate']}',".
"'{$confirm['newzip']}','{$confirm['newphone']}','{$confirm['newfax']}',":''
).
"1,".($data['UseExtRegForm']?'0':'1').",'".date('Y-m-d H:i:s')."')"
);
$receiver=newid();
db_query(
"DELETE FROM `{$data['DbPrefix']}confirms`".
" WHERE(`id`={$confirm['id']})"
);
if($data['SignupBonus']){
transaction(
-1,
$receiver,
$data['SignupBonus'],
0,
4,
1,
'Signup Bonus'
);
}
$post['username']=$confirm['newuser'];
$post['password']=$confirm['newpass'];
$post['email']=$confirm['newmail'];
send_email('SIGNUP-TO-MEMBER', $post);
if($data['ReferralPays']){
$post['email']=get_member_email($confirm['sponsor']);
send_email('DOWNLINE-CHANGE', $post);
}
}
function get_members_count($active=true){
global $data;
$result=db_rows(
"SELECT COUNT(`id`) AS `count`".
" FROM `{$data['DbPrefix']}members`".
" WHERE `active`=".(int)($active).
" LIMIT 1"
);
return $result[0]['count'];
}
function get_members_list($active=true, $start=0, $count=0, $online=false){
global $data;
$limit=($start?($count?" LIMIT {$start},{$count}":" LIMIT {$start}"):
($count?" LIMIT {$count}":''));
$members=db_rows(
"SELECT * FROM `{$data['DbPrefix']}members`".
" WHERE `active`=".(int)($active).($online?' AND (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(`adate`)<1800)':'').
" ORDER BY `username` ASC{$limit}"
);
$result=array();
foreach($members as $key=>$value){
$result[$key]=$value;
$trans=db_rows(
"SELECT COUNT(`id`) AS `count`".
" FROM `{$data['DbPrefix']}transactions`".
" WHERE `sender`={$result[$key]['id']}".
" OR `receiver`={$result[$key]['id']} LIMIT 1"
);
$result[$key]['transactions']=$trans[0]['count'];
$result[$key]['candelete']=$trans[0]['count']<2;
if($result[$key]['sponsor']){
$result[$key]['sname']=
get_member_username($result[$key]['sponsor']).'
('.
get_member_email($result[$key]['sponsor']).')'
;
}else $result[$key]['sname']='N/A';
}
return $result;
}
function get_members_count_where_pred($where_pred){
global $data;
$result=db_rows(
"SELECT COUNT(`id`) AS `count`".
" FROM `{$data['DbPrefix']}members`".
" WHERE $where_pred ".
" LIMIT 1"
);
return $result[0]['count'];
}
function get_members_list_where_pred($start=0, $count=0, $where_pred){
global $data;
$limit=($start?($count?" LIMIT {$start},{$count}":" LIMIT {$start}"):
($count?" LIMIT {$count}":''));
$members=db_rows(
"SELECT * FROM `{$data['DbPrefix']}members`".
" WHERE $where_pred ".
" ORDER BY `username` ASC{$limit}"
);
$result=array();
foreach($members as $key=>$value){
$result[$key]=$value;
$trans=db_rows(
"SELECT COUNT(`id`) AS `count`".
" FROM `{$data['DbPrefix']}transactions` ".
" WHERE `sender`={$result[$key]['id']}".
" OR `receiver`={$result[$key]['id']} LIMIT 1"
);
$result[$key]['transactions']=$trans[0]['count'];
$result[$key]['candelete']=$trans[0]['count']==0;
if($result[$key]['sponsor']){
$result[$key]['sname']=
get_member_username($result[$key]['sponsor']).'
('.
get_member_email($result[$key]['sponsor']).')'
;
}else $result[$key]['sname']='N/A';
}
return $result;
}
function get_member_id($username, $password='', $where=''){
global $data;
$result=db_rows(
"SELECT `id` FROM `{$data['DbPrefix']}members`".
" WHERE (`username`='{$username}' OR `email`='{$username}')".
($password?" AND `password`='{$password}'":'').
($where?" AND $where":'')." LIMIT 1"
);
return $result[0]['id'];
}
function get_member_email($uid){
global $data;
$result=db_rows(
"SELECT `email` FROM `{$data['DbPrefix']}members`".
" WHERE `id`={$uid} LIMIT 1"
);
return $result[0]['email'];
}
function get_sponsor_id($uid){
global $data;
$result=db_rows(
"SELECT `sponsor` FROM `{$data['DbPrefix']}members`".
" WHERE `id`={$uid} LIMIT 1"
);
return $result[0]['sponsor'];
}
function get_sponsors($uid){
global $data;
$members=db_rows(
"SELECT `id`,`username`,`email`".
" FROM `{$data['DbPrefix']}members`".
($uid?" WHERE `id`<>{$uid} AND `sponsor`<>{$uid}":'')
);
$result=array('--');
foreach($members as $value)$result[$value['id']]="{$value['username']} ({$value['email']})";
return $result;
}
function get_member_username($uid){
global $data;
if($uid<0)return 'system';
$result=db_rows(
"SELECT `username` FROM `{$data['DbPrefix']}members`".
" WHERE `id`={$uid} LIMIT 1");
return $result[0]['username'];
}
function get_member_name($uid){
global $data;
if($uid<0)return 'system';
$result=db_rows(
"SELECT `fname`,`lname` FROM `{$data['DbPrefix']}members`".
" WHERE `id`={$uid} LIMIT 1");
return $result[0]['fname']." ".$result[0]['lname'];
}
function get_member_info($uid){
global $data;
$result=db_rows(
"SELECT * FROM `{$data['DbPrefix']}members`".
" WHERE `id`={$uid} LIMIT 1");
return $result[0];
}
function is_member_found($username, $password){
return (bool)get_member_id($username, $password);
}
function is_member_active($username){
return (bool)get_member_id($username, '', '`active`=1');
}
function set_member_status($uid, $active){
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}members`".
" SET `active`=".(int)$active.
" WHERE `id`={$uid}"
);
}
function set_member_inactive($username){
global $data;
set_member_status(get_member_id($username), false);
}
function delete_member($uid){
global $data;
db_query(
"DELETE FROM `{$data['DbPrefix']}members` WHERE `id`={$uid}"
);
}
function select_balance($uid){
global $data;
if($uid<0){
$isql=
"SELECT SUM(`fees`) AS `summ`".
" FROM `{$data['DbPrefix']}transactions`".
" WHERE (`status`=1 OR `status`=6) LIMIT 1"
;
}else{
$isql=
"SELECT SUM(`amount`-`fees`) AS `summ`".
" FROM `{$data['DbPrefix']}transactions`".
" WHERE `receiver`={$uid} AND (`status`=1 OR `status`=6) LIMIT 1"
;
}
$outgoing=db_rows(
"SELECT SUM(`amount`) AS `summ`".
" FROM `{$data['DbPrefix']}transactions`".
" WHERE `sender`={$uid} AND (`status`=1 OR `status`=6) LIMIT 1"
);
$incoming=db_rows($isql);
$outgoing=(double)$outgoing[0]['summ'];
$incoming=(double)$incoming[0]['summ'];
return $incoming-$outgoing;
}
function set_last_access($username){
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}members`".
" SET `ldate`='".date("Y-m-d H:i:s")."',".
"`last_ip`='{$_SERVER['REMOTE_ADDR']}'".
" WHERE `id`=".get_member_id($username)
);
}
function set_last_access_date($uid, $reset=false){
global $data;
if(!$reset)$curr=date("Y-m-d H:i:s");else $curr=0;
db_query(
"UPDATE `{$data['DbPrefix']}members`".
" SET `adate`='{$curr}'".
" WHERE `id`={$uid}"
);
}
function is_valid_mail($email){
global $data;
$result=db_rows(
"SELECT `id` FROM `{$data['DbPrefix']}members`".
" WHERE `email`='{$email}'"
);
return (bool)$result[0]['id'];
}
function get_member_by_email($email){
global $data;
$result=db_rows(
"SELECT `password`,`question`,`answer` FROM `{$data['DbPrefix']}members`".
" WHERE `email`='{$email}'"
);
return $result[0];
}
function is_info_empty($uid){
global $data;
$result=db_rows(
"SELECT `empty`".
" FROM `{$data['DbPrefix']}members`".
" WHERE `id`={$uid} LIMIT 1"
);
return (bool)$result[0]['empty'];
}
function select_info($uid, $post){
$result=$post;
$member=get_member_info($uid);
foreach($member as $key=>$value)if(!isset($post[$key]))$result[$key]=$value;
return $result;
}
function insert_profile_info($post){
global $data;
if(!$post['sponsor'])$post['sponsor']=0;
db_query(
"INSERT INTO `{$data['DbPrefix']}members`(".
"`sponsor`,`username`,`password`,`email`,`active`,`empty`,".
"`fname`,`lname`,`company`,`regnum`,`drvnum`,".
"`address`,`city`,`country`,`state`,`zip`,`phone`,`fax`".
")VALUES(".
"{$post['sponsor']},'{$post['username']}','{$post['password']}',".
"'{$post['email']}',0,0,'{$post['fname']}','{$post['lname']}',".
"'{$post['company']}','{$post['regnum']}','{$post['drvnum']}',".
"'{$post['address']}','{$post['city']}','{$post['country']}',".
"'{$post['state']}','{$post['zip']}','{$post['phone']}',".
"'{$post['fax']}'".
")"
);
return newid();
}
function update_profile_info($post, $uid, $notify=true){
global $data;
if(!$post['sponsor'])$post['sponsor']=0;
db_query(
"UPDATE `{$data['DbPrefix']}members` SET ".
"`sponsor`={$post['sponsor']},".
"`empty`=0,`fname`='{$post['fname']}',`lname`='{$post['lname']}',".
"`company`='{$post['company']}',`regnum`='{$post['regnum']}',".
"`drvnum`='{$post['drvnum']}',`address`='{$post['address']}',".
"`city`='{$post['city']}',`country`='{$post['country']}',".
"`state`='{$post['state']}',`zip`='{$post['zip']}',".
"`phone`='{$post['phone']}',`fax`='{$post['fax']}',".
"`description`='{$post['description']}'".
" WHERE `id`={$uid}"
);
if($notify){
$post['email']=get_member_email($uid);
send_email('UPDATE-MEMBER-PROFILE', $post);
}
}
function update_member_password($uid, $password, $notify=true){
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}members` SET ".
"`password`='{$password}'".
" WHERE `id`={$uid}"
);
if($notify){
$post['email']=get_member_email($uid);
send_email('UPDATE-MEMBER-PROFILE', $post);
}
}
function update_member_question($uid, $question, $answer, $notify=true){
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}members` SET ".
"`question`='{$question}',`answer`='{$answer}'".
" WHERE `id`={$uid}"
);
if($notify){
$post['email']=get_member_email($uid);
send_email('UPDATE-MEMBER-PROFILE', $post);
}
}
function update_card_info($post, $uid, $notify=true){
global $data;
$cnumber=(is_changed($post['cnumber']))?"`cnumber`='{$post['cnumber']}',":'';
$ccvv=(is_changed($post['ccvv']))?"`ccvv`='{$post['ccvv']}',":'';
db_query(
"UPDATE `{$data['DbPrefix']}members` SET ".
"`ctype`='{$post['ctype']}',`cname`='{$post['cname']}',".
"{$cnumber}{$ccvv}".
"`cmonth`={$post['cmonth']},`cyear`={$post['cyear']}".
" WHERE `id`={$uid}"
);
if($notify){
$post['email']=get_member_email($uid);
send_email('UPDATE-CARD-INFORMATION', $post);
}
}
function update_bank_info($post, $uid, $notify=true){
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}members` SET ".
"`bname`='{$post['bname']}',`baddress`='{$post['baddress']}',".
"`bcity`='{$post['bcity']}',`bzip`='{$post['bzip']}',".
"`bcountry`='{$post['bcountry']}',`bstate`='{$post['bstate']}',".
"`bphone`='{$post['bphone']}',`bnameacc`='{$post['bnameacc']}',".
"`baccount`='{$post['baccount']}',`btype`='{$post['btype']}',".
"`brtgnum`='{$post['brtgnum']}',`bswift`='{$post['bswift']}'".
" WHERE `id`={$uid}"
);
if($notify){
$post['email']=get_member_email($uid);
send_email('UPDATE-BANK-INFORMATION', $post);
}
}
function set_trtype($uid, $dir){
switch($dir){
case 'both':
return "(`sender`={$uid} OR `receiver`={$uid})";
case 'incoming':
return "`receiver`={$uid}";
case 'outgoing':
return "`sender`={$uid}";
}
return '';
}
function get_trans_count($where=''){
global $data;
$result=db_rows(
"SELECT COUNT(`id`) AS `count`".
" FROM `{$data['DbPrefix']}transactions`{$where} LIMIT 1"
);
return $result[0]['count'];
}
function get_transactions_count($uid, $dir='both', $extra='1'){
$result=get_trans_count(
' WHERE '.($uid>0?set_trtype($uid, $dir).
($extra?" AND {$extra}":''):($extra?" {$extra}":''))
);
return $result;
}
function get_transactions_summ($where){
global $data;
$rows=db_rows(
'SELECT SUM(`amount`) AS `summ`, SUM(`fees`) AS `fees`'.
" FROM `{$data['DbPrefix']}transactions`".
($where?" WHERE {$where}":'').' ORDER BY `tdate` LIMIT 1'
);
$result['summ']=$rows[0]['summ'];
$result['fees']=$rows[0]['fees'];
return $result;
}
function get_transactions_summary($dateA, $dateB){
global $data;
foreach($data['TransactionType'] as $key=>$value){
$rows=get_transactions_summ(
"`type`={$key} AND".
" UNIX_TIMESTAMP(`tdate`)>={$dateA} AND".
" UNIX_TIMESTAMP(`tdate`)<{$dateB}"
);
$result[$value]['Summ']=prnpays($rows['summ']?$rows['summ']:0, false);
$result[$value]['Fees']=prnpays($rows['fees']?$rows['fees']:0, false);
}
return $result;
}
function get_transactions_year(){
global $data;
$years=db_rows(
"SELECT MIN(YEAR(`tdate`)) AS `min`, MAX(YEAR(`tdate`)) AS `max`".
" FROM `{$data['DbPrefix']}transactions` LIMIT 1"
);
$result['min']=$years[0]['min'];
$result['max']=$years[0]['max'];
return $result;
}
function can_refund($id, $uid){
global $data;
$balance=select_balance($uid);
$result=db_rows(
"SELECT `id` FROM `{$data['DbPrefix']}transactions`".
" WHERE `id`={$id} AND `receiver`={$uid}".
" AND `type`=0 AND (`status`=0 OR `status`=1)".
" AND `amount`<{$balance}".
" AND TO_DAYS(NOW())-TO_DAYS(`tdate`)<{$data['RefundPeriod']}"
);
return $result[0];
}
function get_status_color($status){
$result='000000';
switch($status){
case 0:
$result='blue';
break;
case 1:
$result='green';
break;
case 2:
$result='red';
break;
case 3:
$result='maroon';
}
return $result;
}
function get_transactions(
$uid, $dir='both', $type=-1, $status=-1, $start=0,
$count=0, $order='', $suser='', $sdate=''
){
global $data;
if($suser||$sdata){
$start=0;
$count=0;
}
$order=($order?$order:'ORDER BY `tdate` DESC');
$limit=($start?($count?" LIMIT {$start},{$count}":" LIMIT {$start}"):
($count?" LIMIT {$count}":''));
$trans=db_rows(
"SELECT * FROM `{$data['DbPrefix']}transactions`".
($uid?" WHERE ".set_trtype($uid, $dir):'').
($type<0?'':($uid?' AND ':' WHERE ')."`type`={$type}").
($status<0?'':($uid||$type>=0?' AND ':' WHERE ')."`status`={$status}").
" {$order}{$limit}"
);
$result=array();
foreach($trans as $key=>$value){
if($suser){
if(
strpos(get_member_username($value['sender']), $suser)===false
&&
strpos(get_member_username($value['receiver']), $suser)===false
)continue;
}elseif($sdate){
if(strpos($value['tdate'], $sdate)===false)continue;
}
$dir=(bool)($value['sender']!=$uid);
$result[$key]['id']=$value['id'];
$result[$key]['direction']=$dir?'FROM':'TO';
$result[$key]['sender']=$value['sender'];
$result[$key]['senduser']=prnuser($value['sender']);
$result[$key]['receiver']=$value['receiver'];
$result[$key]['recvuser']=prnuser($value['receiver']);
$result[$key]['userid']=$dir?$value['sender']:$value['receiver'];
$result[$key]['username']=prnuser($result[$key]['userid']);
$result[$key]['oamount']=$dir?$value['amount']:-$value['amount'];
$result[$key]['amount']=prnpays($result[$key]['oamount']);
$result[$key]['tdate']=prndate($value['tdate']);
$result[$key]['ostatus']=$value['status'];
$result[$key]['type']=$data['TransactionType'][$value['type']];
$result[$key]['status']=
"".
$data['TransactionStatus'][$value['status']].
''
;
if($value['fees']>0&&($value['type']==1||$value['type']==2||($dir&&($value['type']==0||$value['type']==3)))){
$result[$key]['ofees']=-$value['fees'];
}else{
$result[$key]['ofees']=0;
}
$result[$key]['fees']=prnfees($result[$key]['ofees']);
$result[$key]['onets']=$value['sender']>0&&$value['sender']==$uid&&$value['receiver']>0?$value['amount']:$value['amount']-$value['fees'];
$result[$key]['nets']=prnpays($result[$key]['onets'], false);
$result[$key]['comments']=prntext($value['comments']);
$result[$key]['ecomments']=prntext($value['ecomments']);
$result[$key]['canview']=($value['type']>=0&&$value['type']<=3);
$result[$key]['canrefund']=can_refund($value['id'], $uid);
}
return $result;
}
function get_transaction_detail($id, $uid){
global $data;
$trans=db_rows(
"SELECT * FROM `{$data['DbPrefix']}transactions` WHERE `id`={$id} LIMIT 1"
);
$trans=$trans[0];
if($trans){
$dir=(bool)($trans['sender']!=$uid);
$result['id']=$trans['id'];
$result['direction']=$dir?'FROM':'TO';
$result['sender']=$trans['sender'];
$result['receiver']=$trans['receiver'];
$result['userid']=$dir?$trans['sender']:$trans['receiver'];
$result['username']=prnuser($result['userid']);
$result['oamount']=$dir?$trans['amount']:-$trans['amount'];
$result['amount']=prnpays($dir?$trans['amount']:-$trans['amount']);
$result['tdate']=prndate($trans['tdate']);
$result['otype']=$trans['type'];
$result['type']=ucfirst($data['TransactionType'][$trans['type']]);
$result['ostatus']=$trans['status'];
$result['status']=
"".
ucfirst($data['TransactionStatus'][$trans['status']]).
''
;
if($trans['fees']>0&&($trans['type']==1||$trans['type']==2||($dir&&($trans['type']==0||$trans['type']==3)))){
$result['fees']=-$trans['fees'];
}else{
$result['fees']=0;
}
$result['nets']=$trans['sender']>0&&$trans['sender']==$uid&&$trans['receiver']>0?prnpays($trans['amount'], false):prnpays($trans['amount']-$trans['fees'], false);
$result['comments']=prntext($trans['comments']);
$result['ecomments']=prntext($trans['ecomments']);
$result['canrefund']=can_refund($trans['id'], $uid);
}
return $result;
}
function get_receiver($id){
global $data;
$result=db_rows(
"SELECT `receiver`,`fees` FROM `{$data['DbPrefix']}transactions` WHERE `id`={$id} LIMIT 1"
);
return $result[0];
}
function insert_transaction($sender, $receiver, $related, $amount, $fees, $type, $status, $comments='', $ecomments=''){
global $data;
db_query(
"INSERT INTO `{$data['DbPrefix']}transactions`".
"(`tdate`,`sender`,`receiver`,`related`,`amount`,`fees`,`type`,`status`,".
"`comments`,`ecomments`)VALUES".
"(NOW(),{$sender},{$receiver},{$related},{$amount},{$fees},{$type},{$status},".
"'".addslashes($comments)."','".addslashes($ecomments)."')"
);
}
function insert_commissions($uid, $amount){
global $data;
$i=0;
$fees=($amount*$data['ReferralPercent']/100);
$sponsor=get_sponsor_id($uid);
$recvname=get_member_username($uid);
while($sponsor&&$i<$data['ReferralLevels']-1){
insert_transaction(
-1,
$sponsor,
$uid,
$fees,
0,
5,
1,
"Commission from member {$recvname}"
);
$sponsor=get_sponsor_id($sponsor);
$i++;
}
}
function transaction($sender, $receiver, $amount, $fees, $type, $status, $comments='', $ecomments=''){
global $data;
insert_transaction($sender, $receiver, 0, $amount, $fees, $type, $status, $comments, $ecomments);
if($sender>0&&$type==0){
if($data['ReferralPays'])insert_commissions($receiver, $fees);
}
}
function update_transaction_status($uid, $id, $status){
global $data;
if($uid>0){
$user=get_member_info($uid);
$name="{$user['fname']} {$user['lname']} ({$user['username']})";
}else{
$name='System Administrator (system)';
}
$tran=get_transaction_detail($id, $uid);
$post['email']=get_member_email($tran['receiver']);
$where='';
$comments='';
switch($status){
case 1:
if($uid>0)$where=" AND `sender`={$uid}";
$comments="Transaction was confirmed by {$name}";
if($tran['otype']==1||$tran['otype']==3){
if($data['ReferralPays'])insert_commissions($tran['receiver'], $tran['oamount']);
}
if($tran['otype']==3)send_email('CONFIRM-ESCROW', $post);
break;
case 2:
if(($uid>0)&&($uid==$tran['sender'])){
unset($status);
break;
}
$comments="Transaction was cancelled by {$name}";
if($tran['otype']==3)send_email('CANCEL-ESCROW', $post);
break;
case 3:
$comments="Transaction was refunded by {$name}";
if($tran['otype']==3)send_email('REFUND-ESCROW', $post);
break;
}
db_query(
"UPDATE `{$data['DbPrefix']}transactions`".
" SET `tdate`=NOW(),`status`={$status},`comments`='{$comments}'".
" WHERE `id`={$id}{$where}"
);
}
###############################################################################
function insert_product($uid, $type, $post){
global $data;
db_query(
"INSERT INTO `{$data['DbPrefix']}products`(".
"`type`,`owner`,`price`,`period`,`setup`,`trial`,`tax`,`shipping`,".
"`button`,`name`,`ureturn`,`unotify`,`ucancel`,`comments`".
")VALUES(".
"{$type},{$uid},{$post['price']},".
($post['period']?"{$post['period']},":'0,').
($post['setup']?"{$post['setup']},":'0.00,').
($post['trial']?"{$post['trial']},":'0.00,').
"{$post['tax']},{$post['shipping']},".
"'{$post['button']}','{$post['name']}','{$post['ureturn']}',".
"'{$post['unotify']}','{$post['ucancel']}','".
addslashes($post['comments'])."')"
);
}
function update_product($id, $post){
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}products` SET ".
"`price`={$post['price']},".
"`period`=".($post['period']?"{$post['period']},":'0,').
"`setup`=".($post['setup']?"{$post['setup']},":'0.00,').
"`trial`=".($post['trial']?"{$post['trial']},":'0.00,').
"`tax`={$post['tax']},`shipping`={$post['shipping']},".
"`button`='{$post['button']}',`name`='{$post['name']}',".
"`ureturn`='{$post['ureturn']}',`unotify`='{$post['unotify']}',".
"`ucancel`='{$post['ucancel']}',`comments`='".addslashes($post['comments'])."'".
" WHERE `id`={$id}"
);
}
function update_sold($id, $quantity){
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}products` SET `sold`={$quantity}".
" WHERE `id`={$id}"
);
}
function delete_product($id){
global $data;
$rows=db_rows(
"SELECT `member`".
" FROM `{$data['DbPrefix']}subscriptions`".
" WHERE `product`={$id}"
);
$members=array();
foreach($rows as $key=>$value){
$row=get_member_info($value['member']);
$members[$key]['username']=$row['username'];
$members[$key]['fullname']="{$row['fname']} {$row['lname']}";
}
db_query(
"DELETE FROM `{$data['DbPrefix']}subscriptions`".
" WHERE `product`={$id}"
);
$rows=db_rows(
"SELECT `name` FROM `{$data['DbPrefix']}products`".
" WHERE `id`={$id}"
);
$product=$rows[0]['name'];
db_query(
"DELETE FROM `{$data['DbPrefix']}products` WHERE `id`={$id}"
);
foreach($members as $key=>$value){
$post['username']=$value['username'];
$post['fullname']=$value['fullname'];
$post['product']=$product;
send_email('OWNER-CANCELLED-SUBSCRIPTION', $post);
}
}
function select_products($uid, $type=0, $id=0, $single=false){
global $data;
$products=db_rows(
"SELECT * FROM `{$data['DbPrefix']}products`".
" WHERE `owner`={$uid} AND `type`={$type}".
($id?" AND `id`={$id}":'').($single?" LIMIT 1":'')
);
$result=array();
foreach($products as $key=>$value){
foreach($value as $name=>$v)$result[$key][$name]=$v;
}
return $result;
}
function select_product_details($id, $uid){
global $data;
$result=db_rows(
"SELECT * FROM `{$data['DbPrefix']}products`".
" WHERE `id`={$id} AND `owner`={$uid} LIMIT 1"
);
return $result[0];
}
###############################################################################
function select_button($id){
global $data;
$result=db_rows(
"SELECT `button` FROM `{$data['DbPrefix']}products` WHERE `id`={$id} LIMIT 1"
);
return $result[0]['button'];
}
function select_type($id){
global $data;
$result=db_rows(
"SELECT `type` FROM `{$data['DbPrefix']}products` WHERE `id`={$id} LIMIT 1"
);
return $result[0]['type'];
}
function insert_subscription($owner, $member, $product){
global $data;
db_query(
"INSERT INTO `{$data['DbPrefix']}subscriptions`(".
"`owner`,`member`,`product`,`sdate`,`pdate`".
")VALUES(".
"{$owner},{$member},{$product},NOW(),NOW()".
")"
);
db_query(
"UPDATE `{$data['DbPrefix']}products` SET".
" `sold`=`sold`+1".
" WHERE `id`={$product}"
);
}
function select_subscriptions($uid){
global $data;
$subscr=db_rows(
"SELECT s.id,s.owner,s.pdate,p.name,p.price,p.period".
" FROM `{$data['DbPrefix']}subscriptions` AS s,`{$data['DbPrefix']}products` AS p".
" WHERE s.member={$uid} AND p.id=s.product"
);
$result=array();
foreach($subscr as $key=>$value){
$result[$key]['id']=$value['id'];
$result[$key]['owner']=get_member_username($value['owner']);
$result[$key]['price']=$value['price'];
$result[$key]['period']=$value['period'];
$result[$key]['name']=$value['name'];
$result[$key]['pdate']=$value['pdate'];
}
return $result;
}
function cancel_subscription($id){
global $data;
$rows=db_rows(
"SELECT `owner`,`member`,`product`".
" FROM `{$data['DbPrefix']}subscriptions`".
" WHERE `id`={$id}"
);
$owner=$rows[0]['owner'];
$member=$rows[0]['member'];
$product=$rows[0]['product'];
$rows=db_rows(
"SELECT `name` FROM `{$data['DbPrefix']}products`".
" WHERE `id`={$product}"
);
$product=$rows[0]['name'];
db_query(
"UPDATE `{$data['DbPrefix']}products` SET".
" `sold`=`sold`-1".
" WHERE `id`={$product}"
);
db_query(
"DELETE FROM `{$data['DbPrefix']}subscriptions` WHERE `id`={$id}"
);
$owner=get_member_info($owner);
$post['product']=$product;
$post['username']=$owner['username'];
$post['fullname']="{$owner['fname']} {$owner['lname']}";
$post['email']=$owner['email'];
$member=get_member_info($member);
$post['comments']=
"Member username: {$member['username']}\n".
"Member e-mail address: {$member['email']}\n"
;
send_email('MEMBER-CANCELLED-SUBSCRIPTION', $post);
}
function get_referrals_count($uid){
global $data;
$result=db_rows(
"SELECT COUNT(`id`) as total FROM `{$data['DbPrefix']}members`".
" WHERE `sponsor`={$uid}"
);
return $result[0]['total'];
}
function optimize($uid){
global $data;
$fp=@fopen("{$data['Path']}/{$uid}.htm", 'w+');
@fwrite($fp, '');
@fclose($fp);
}
function calculate_downline($uid, $clevel, $result=null){
global $data;
$members=mysql_query("SELECT * FROM `{$data['DbPrefix']}members` WHERE `sponsor`={$uid}");
if($members){
while($row=mysql_fetch_array($members, MYSQL_ASSOC)){
$nlevel=$clevel+1;
if($nlevel>$data['ReferralLevels'])return $result;
$query=mysql_query(
"SELECT SUM(`amount`) AS `earned`".
" FROM `{$data['DbPrefix']}transactions`".
" WHERE `receiver`={$uid} AND `sender`=-1 AND `related`={$row['id']}"
);
if($query){
$arow=mysql_fetch_array($query, MYSQL_ASSOC);
$result+=$arow['earned'];
}
$result=calculate_downline($row['id'], $nlevel, $result);
}
}
return $result;
}
function get_referrals($uid, $start=0, $count=0){
global $data;
$limit=($start?($count?" LIMIT {$start},{$count}":" LIMIT {$start}"):
($count?" LIMIT {$count}":''));
$members=db_rows(
"SELECT * FROM `{$data['DbPrefix']}members`".
" WHERE `sponsor`={$uid} ORDER BY `cdate` DESC{$limit}"
);
$result=array();
foreach($members as $key=>$value){
$result[$key]['id']=$value['id'];
$result[$key]['cdate']=prndate($value['cdate']);
$result[$key]['username']=prnuser($value['id']);
$result[$key]['fullname']="{$value['fname']} {$value['lname']}";
$result[$key]['email']=prntext($value['email']);
$result[$key]['fname']=prntext($value['fname']);
$result[$key]['lname']=prntext($value['lname']);
$result[$key]['referrals']=get_referrals_count($value['id']);
$result[$key]['payments']=get_transactions_count(
$value['id'], 'both', '`type`=0 AND `status`=1'
);
$result[$key]['earned']=prnpays(calculate_downline($value['id'], 1));
}
return $result;
}
###############################################################################
function get_mail_templates(){
global $data;
return db_rows("SELECT * FROM `{$data['DbPrefix']}emails`");
}
function select_mail_template($key){
global $data;
$result=db_rows(
"SELECT * FROM `{$data['DbPrefix']}emails`".
" WHERE `key`='{$key}' LIMIT 1"
);
return $result[0];
}
function update_mail_template($key, $name, $value){
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}emails`".
" SET `name`='".addslashes($name)."',`value`='".addslashes($value)."'".
" WHERE `key`='{$key}'"
);
}
###############################################################################
function get_categories_tree($categoryid) {
global $data;
if ($categoryid == 0) return "TOP CATEGORIES";
$parent = db_rows(
"SELECT `id`, `parentid`, `name` FROM `{$data['DbPrefix']}shop_categories` ".
"WHERE id={$categoryid}"
);
$result = "{$parent[0]['name']}";
while ($parent[0]['parentid'] != 0 && $parent) {
$parent = db_rows(
"SELECT `id`, `parentid`, `name` FROM `{$data['DbPrefix']}shop_categories` ".
"WHERE `id`={$parent[0]['parentid']}"
);
$result = "{$parent[0]['name']} >> " . $result;
}
return "TOP CATEGORIES >> $result";
}
function get_first_root_category_id()
{
global $data;
$categories=db_rows(
"SELECT id FROM `{$data['DbPrefix']}shop_categories` ".
"WHERE parentid=0 ".
"ORDER BY `id` ASC ".
"LIMIT 1"
);
return $categories[0]['id'];
}
function get_category_parent($categoryid) {
global $data;
$categories=db_rows(
"SELECT parentid FROM `{$data['DbPrefix']}shop_categories` ".
"WHERE `id`={$categoryid}"
);
return $categories[0]['parentid'];
}
function get_shop_categories_count($categoryid) {
global $data;
$result=db_rows(
"SELECT COUNT(`id`) AS `count` ".
" FROM `{$data['DbPrefix']}shop_categories`".
" WHERE `parentid`='{$categoryid}' ".
" LIMIT 1"
);
return $result[0]['count'];
}
function get_shop_categories_list($categoryid, $start=0, $count=0) {
global $data;
$limit=($start?($count?" LIMIT {$start},{$count}":" LIMIT {$start}"):
($count?" LIMIT {$count}":''));
$categories=db_rows(
"SELECT * FROM `{$data['DbPrefix']}shop_categories`".
" WHERE `parentid`='{$categoryid}' ".
" ORDER BY `id` ASC{$limit}"
);
$result=array();
foreach($categories as $key=>$value){
$result[$key]=$value;
$subcat=db_rows(
"SELECT COUNT(`id`) AS `count`".
" FROM `{$data['DbPrefix']}shop_categories`".
" WHERE `parentid`={$result[$key]['id']}".
" LIMIT 1"
);
$result[$key]['subcategories']=$subcat[0]['count'];
$items=db_rows(
"SELECT COUNT(`id`) AS `count`".
" FROM `{$data['DbPrefix']}shop_items`".
" WHERE `categoryid`={$result[$key]['id']}".
" LIMIT 1"
);
$result[$key]['items']=$items[0]['count'];
$result[$key]['candelete']=($items[0]['count']==0 && $subcat[0]['count']==0);
}
return $result;
}
function get_shop_categories_count_where_pred($where_pred) {
global $data;
$result=db_rows(
"SELECT COUNT(`id`) AS `count` ".
" FROM `{$data['DbPrefix']}shop_categories`".
" WHERE {$where_pred} ".
" LIMIT 1"
);
return $result[0]['count'];
}
function get_shop_categories_list_where_pred($where_pred) {
global $data;
$limit=($start?($count?" LIMIT {$start},{$count}":" LIMIT {$start}"):
($count?" LIMIT {$count}":''));
$categories=db_rows(
"SELECT * FROM `{$data['DbPrefix']}shop_categories`".
" WHERE {$where_pred} ".
" ORDER BY `id` ASC{$limit}"
);
$result=array();
foreach($categories as $key=>$value){
$result[$key]=$value;
$subcat=db_rows(
"SELECT COUNT(`id`) AS `count`".
" FROM `{$data['DbPrefix']}shop_categories`".
" WHERE `parentid`={$result[$key]['id']}".
" LIMIT 1"
);
$result[$key]['subcategories']=$subcat[0]['count'];
$items=db_rows(
"SELECT COUNT(`id`) AS `count`".
" FROM `{$data['DbPrefix']}shop_items`".
" WHERE `categoryid`={$result[$key]['id']}".
" LIMIT 1"
);
$result[$key]['items']=$items[0]['count'];
$result[$key]['candelete']=($items[0]['count']==0 && $subcat[0]['count']==0);
}
return $result;
}
function insert_category($parentid, $post){
global $data;
$description = $post['categorydescription'];
if (empty($description)) $description = "Top ".addslashes($post['categoryname']);
db_query(
"INSERT INTO `{$data['DbPrefix']}shop_categories`(".
"`parentid`,`name`,`description`".
")VALUES(".
"{$parentid},".
"'".addslashes($post['categoryname'])."','".addslashes($description)."')"
);
}
function update_category($categoryid, $parentid, $post){
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}shop_categories` ".
"SET `parentid` = {$parentid}, ".
"`name`='".addslashes($post['categoryname'])."', ".
"`description`='".addslashes($post['categorydescription'])."' ".
"WHERE `id`={$categoryid}"
);
}
function delete_category($categoryid){
global $data;
db_query(
"DELETE FROM `{$data['DbPrefix']}shop_categories` ".
"WHERE `id`={$categoryid}"
);
}
function get_category($categoryid) {
global $data;
$categories=db_rows(
"SELECT * FROM `{$data['DbPrefix']}shop_categories` ".
"WHERE `id`={$categoryid}".
" LIMIT 1"
);
return $categories[0];
}
###############################################################################
function get_shop_items_count($categoryid) {
global $data;
$result=db_rows(
"SELECT COUNT(`id`) AS `count` ".
" FROM `{$data['DbPrefix']}shop_items`".
" WHERE `categoryid`='{$categoryid}' ".
" LIMIT 1"
);
return $result[0]['count'];
}
function get_shop_items_list($categoryid, $start=0, $count=0) {
global $data;
$limit=($start?($count?" LIMIT {$start},{$count}":" LIMIT {$start}"):
($count?" LIMIT {$count}":''));
$categories=db_rows(
"SELECT * FROM `{$data['DbPrefix']}shop_items`".
" WHERE `categoryid`='{$categoryid}' ".
" ORDER BY `id` ASC{$limit}"
);
$result=array();
foreach($categories as $key=>$value){
$result[$key]=$value;
$result[$key]['candelete']=true;
}
return $result;
}
function get_shop_items_count_where_pred($where_pred) {
global $data;
$result=db_rows(
"SELECT COUNT(`id`) AS `count` ".
" FROM `{$data['DbPrefix']}shop_items`".
" WHERE {$where_pred} ".
" LIMIT 1"
);
return $result[0]['count'];
}
function get_shop_items_list_where_pred($where_pred) {
global $data;
$limit=($start?($count?" LIMIT {$start},{$count}":" LIMIT {$start}"):
($count?" LIMIT {$count}":''));
$categories=db_rows(
"SELECT * FROM `{$data['DbPrefix']}shop_items`".
" WHERE {$where_pred} ".
" ORDER BY `id` ASC{$limit}"
);
$result=array();
foreach($categories as $key=>$value){
$result[$key]=$value;
$result[$key]['candelete']=true;
}
return $result;
}
function get_shop_item($itemid) {
global $data;
$items=db_rows(
"SELECT * FROM `{$data['DbPrefix']}shop_items` ".
"WHERE `id`={$itemid}".
" LIMIT 1"
);
return $items[0];
}
function insert_shop_item($categoryid, $name, $url, $description) {
global $data;
if (empty($description)) $description = "Top ".addslashes($name);
db_query(
"INSERT INTO `{$data['DbPrefix']}shop_items`(".
"`categoryid`,`name`, `url`, `description`".
")VALUES(".
"{$categoryid},".
"'".addslashes($name)."','".addslashes($url)."','".addslashes($description)."')"
);
}
function update_shop_item($itemid, $name, $url, $description) {
global $data;
db_query(
"UPDATE `{$data['DbPrefix']}shop_items` ".
"SET `name`='{$name}', ".
"`url`='{$url}', ".
"`description`='{$description}' ".
"WHERE `id`={$itemid}"
);
}
function delete_shop_item($itemid){
global $data;
db_query(
"DELETE FROM `{$data['DbPrefix']}shop_items` ".
"WHERE `id`={$itemid}"
);
}
###############################################################################
function insert_shopcart_item($productid, $quantity){
if ($quantity <= 0) return false;
$newid = count($_SESSION['ptobuy']);
$_SESSION['ptobuy'][$newid] = array();
$_SESSION['ptobuy'][$newid]['product'] = $productid;
$_SESSION['ptobuy'][$newid]['quantity'] = $quantity;
}
function get_shopcart_items_list($id=-1)
{
global $data;
$result = array();
for ($i = 0; $i$value) $price += $value['quantity'] * ($value['price'] + $value['tax']) + $value['shipping'];
return $price;
}
function get_one_item_price($id){
$r = get_shopcart_items_list($id);
$price = $value['quantity'] * ($value['price'] + $value['tax']) + $value['shipping'];
return $price;
}
function update_shopcart_item_quantity($id, $quantity){
if ($quantity <= 0) return;
$_SESSION['ptobuy'][$id]['quantity'] = ceil($quantity);
}
function set_shopitems_paid(){
$_SESSION['ptobuy'] = array();
}
###############################################################################
function encrypt($data, $domain=''){
$st=strtolower(trim($domain));
$sc=str_replace('.', '', $st);
$id=substr_count($st, '.');
if(strlen($sc)>0){
$id++;
$ac=array();
for($i=0; $i>4)&15;
$ac[]=ord(substr($sc, $i, 1))&15;
}
} else $ac=array(0);
$si='';
$sa=explode("\n", $data);
foreach($sa as $val){
$st=trim($val);
if($st<>'')$si.=(($si<>'')?"\r":'').$st;
}
$so='';
$tc=0;
$j=0;
for($i=0; $i=0; $l--){
$n=(($it>>($l*4))&15)^$ac[$j];
if($n==0){
$j++;
if($j>=count($ac))$j=0;
}
$so.=strtoupper(dechex($n));
}
}
$so=strtoupper(dechex($id).str_pad(dechex($tc), 8, '0', STR_PAD_LEFT)).$so;
return "";
}
###############################################################################
if(isset($_GET['sid']))$post['sid']=$_GET['sid'];
if(isset($_GET['bid']))$post['bid']=$_GET['bid'];
if(isset($_GET['id']))$post['gid']=$_GET['id'];
if(isset($_GET['bp']))$post['bp']=$_GET['bp'];
if(isset($_GET['cid']))$post['cid']=$_GET['cid'];
if(isset($_GET['updateid']))$post['updateid']=$_GET['updateid'];
if(isset($_GET['itemid']))$post['itemid']=$_GET['itemid'];
if(isset($_GET['type']))$post['type']=$_GET['type'];
if(isset($_GET['status']))$post['status']=$_GET['status'];
if(isset($_GET['page']))$post['StartPage']=$_GET['page'];
if(isset($_GET['action']))$post['action']=$_GET['action'];
if(isset($_GET['member']))$post['member']=$_GET['member'];
if(isset($_GET['product']))$post['product']=$_GET['product'];
if(isset($_GET['keyword']))$post['keyword']=$_GET['keyword'];
###############################################################################
if(isset($_GET['rid']))$post['sponsor']=$_GET['rid'];
elseif(isset($_COOKIE['rid']))$post['sponsor']=$_COOKIE['rid'];
reset($_GET);
###############################################################################
if(!session_id())session_start();
$data['sid']=session_id();
###############################################################################
if($_POST)$post=get_post();
if(!$post['StartPage'])$post['StartPage']=0;
###############################################################################
db_connect();
###############################################################################
if(!$uid)$uid=$_SESSION['uid'];
if($uid){
$balance=select_balance($uid);
$post['Balance']=$balance;
$post['Address']=$data['Addr'];
$post['MailAddr']=get_member_email($uid);
$post['Username']=get_member_username($uid);
set_last_access_date($uid);
}
###############################################################################
if($data['ReferralPays']){
if(get_member_id($post['sponsor'], '', "`active`=1")){
$_SESSION['sponsor']=$post['sponsor'];
setcookie('rid', $post['sponsor']);
}elseif(!$_POST['sponsor'])unset($post['sponsor']);
}unset($_POST['sponsor']);
###############################################################################
?>