GetShopValues('', TRUE);
$gOptions['orig_base_curr'] = $gOptions['main_base_curr'];
$gOptions['orig_prec'] = $gOptions['main_prec'];
if ($_SESSION['payment']['multiplex'] > 0)
{
$gOptions['main_base_curr'] = $_SESSION['payment']['curr_name'];
$gOptions['main_prec'] = $_SESSION['payment']['curr_prec'];
}
// Make path for back
make_back_path();
// Define what to do
$action = $_GET['action'];
if ( isset($_POST['action']) ) $action = $_POST['action'];
// Define partner active
if ( $action == 'reg_edit' || $action == 'try_change' || $action == 'stat' ||
$action == 'account' || $action == 'request' || $action == 'try_request' )
{
if ( $_SESSION['partner']['active'] == 0 ) $action = 'home_page';
}
// Action
switch ( $action )
{
case 'enter' :
$id = $gData->PartnerVerifyEnter(addslashes($_POST['login']), addslashes($_POST['pass']));
if ( $id > 0 )
{
$_SESSION['partner']['id'] = $id;
$gData->UpdatePartnerField($id, 'last_date', get_now());
header("Location: ./partner.php?action=home_page&".session_name()."=".session_id());
}
else
{
partner_enter(TRUE);
}
break;
case 'register' :
register_partner();
break;
case 'try_register' :
$error = try_register();
if ( strlen($error) == 0 )
{
add_partner();
header("Location: ./partner.php?action=home_page&".session_name()."=".session_id());
}
else
{
register_partner($error);
}
break;
case 'forget' :
forget($_POST['email']);
break;
case 'home_page' :
($_SESSION['partner']['id'] > 0) ? home_page()
: header("Location: ./partner.php?".session_name()."=".session_id());
break;
case 'reg_edit' :
($_SESSION['partner']['id'] > 0) ? reg_edit()
: header("Location: ./partner.php?".session_name()."=".session_id());
break;
case 'try_change' :
if ( $_SESSION['partner']['id'] > 0 )
{
$error = try_change();
if ( strlen($error) == 0 )
{
save_changes();
header("Location: ./partner.php?action=home_page&".session_name()."=".session_id());
}
else
{
reg_edit($error);
}
}
else
{
header("Location: ./partner.php?".session_name()."=".session_id());
}
break;
case 'account' :
($_SESSION['partner']['id'] > 0) ? account_log()
: header("Location: ./partner.php?".session_name()."=".session_id());
break;
case 'request' :
($_SESSION['partner']['id'] > 0) ? request()
: header("Location: ./partner.php?".session_name()."=".session_id());
break;
case 'try_request' :
if ( $_SESSION['partner']['id'] > 0 )
{
$error = try_request();
if ( strlen($error) == 0 )
{
save_request();
header("Location: ./partner.php?action=account&".session_name()."=".session_id());
}
else
{
request($error);
}
}
else
{
header("Location: ./partner.php?".session_name()."=".session_id());
}
break;
case 'stat' :
($_SESSION['partner']['id'] > 0) ? statistic()
: header("Location: ./partner.php?".session_name()."=".session_id());
break;
case 'rules' :
partner_rules();
break;
case 'advert_items' :
($_SESSION['partner']['id'] > 0) ? advert_items()
: header("Location: ./partner.php?".session_name()."=".session_id());
break;
case 'logout' :
unset($_SESSION['partner']);
header("Location: ./partner.php");
break;
default :
partner_enter(FALSE);
} // switch
// Echo page compilate time
echo_page_time($gEndPoint);
}
/**
* Function home_page
* Home page partner account
**/
function home_page()
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint, $gOptions;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/home/main.htm',
'active0' => '_partner/home/active0.htm',
'active1' => '_partner/home/active1.htm',
'status0' => '_partner/home/status0.htm',
'status1' => '_partner/home/status1.htm',
'status2' => '_partner/home/status2.htm',
'status3' => '_partner/home/status3.htm',
'work_regime0' => '_partner/home/work_regime0.htm',
'work_regime1' => '_partner/home/work_regime1.htm',
'work_regime2' => '_partner/home/work_regime2.htm',
'page_title' => '_partner/home/page_title.htm'
));
// Reload partner info
$_SESSION['partner'] = $gData->GetPartner($_SESSION['partner']['id']);
unset($_SESSION['partner']['pass']);
$gTpl->Parse('ACTIVE', 'active'.$_SESSION['partner']['active']);
$gTpl->Parse('STATUS', 'status'.$_SESSION['partner']['status']);
// Assign vars
$gTpl->Assign(array('REGDATE' => date($gOptions['main_fmt_date'], strtotime($_SESSION['partner']['reg_date'])),
'MULTPROC' => number_format($_SESSION['partner']['mult_proc']*100, 0, "," ,"'"),
'MULTCLICK' => number_format($_SESSION['partner']['mult_click']*100, 0, "," ,"'"),
'MULTPROCSEL' => ($_SESSION['partner']['mult_proc'] != 1) ? '1' : '0',
'MULTCLICKSEL' => ($_SESSION['partner']['mult_click'] != 1) ? '1' : '0',
'ACCOUNT' => number_format($_SESSION['partner']['account'], 2, "," ,"'"),
'CURR' => htmlspecialchars($gOptions['orig_base_curr']),
'ID' => $_SESSION['partner']['id'],
'LOGIN' => htmlspecialchars($_SESSION['partner']['login']),
'EMAIL' => htmlspecialchars($_SESSION['partner']['email']),
'ECHARSET' => htmlspecialchars($_SESSION['partner']['charset']),
'NAME' => htmlspecialchars($_SESSION['partner']['name']),
'TOWN' => htmlspecialchars($_SESSION['partner']['town']),
'PHONES' => htmlspecialchars($_SESSION['partner']['phones']),
'SITE' => htmlspecialchars($_SESSION['partner']['site']),
'SITEDESCR' => str_replace("\r\n", "
", htmlspecialchars($_SESSION['partner']['site_descr']))
));
// Define work regime
$rules = $gData->GetPartnerMain();
$click_list = $gData->GetPartnerClickList();
$click_list_rows = $gData->GetNumRows($click_list);
if ( $rules['work_type'] == 0 )
{
if ( $click_list_rows > 0 )
{
$gTpl->Parse('WORKREGIME', 'work_regime'.$_SESSION['partner']['work_regime']);
}
else
{
$gTpl->Parse('WORKREGIME', 'work_regime0');
}
}
else
{
if ( $click_list_rows > 0 )
{
$gTpl->Parse('WORKREGIME', 'work_regime2');
}
else
{
$gTpl->Parse('WORKREGIME', 'work_regime0');
}
}
$gTpl->Parse('CONTENT', 'main');
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'page_title');
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function reg_edit
* Change values of registrations fields
**/
function reg_edit($mError = '')
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint, $gCharset;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/reg_edit/main.htm',
'err_email' => '_partner/reg_edit/err_email.htm',
'err_pass_cmp' => '_partner/reg_edit/err_pass_cmp.htm',
'err_phones' => '_partner/reg_edit/err_phones.htm',
'err_name' => '_partner/reg_edit/err_name.htm',
'err_work_regime' => '_partner/reg_edit/err_work_regime.htm',
'work_regime' => '_partner/reg_edit/work_regime.htm',
'page_title' => '_partner/reg_edit/page_title.htm'
));
// Assign common vars
$email = isset($_POST['email']) ? $_POST['email'] : $_SESSION['partner']['email'];
$name = isset($_POST['name']) ? $_POST['email'] : $_SESSION['partner']['name'];
$town = isset($_POST['town']) ? $_POST['town'] : $_SESSION['partner']['town'];
$phones = isset($_POST['phones']) ? $_POST['phones'] : $_SESSION['partner']['phones'];
$site = isset($_POST['site']) ? $_POST['site'] : $_SESSION['partner']['site'];
$site_descr = isset($_POST['site_descr']) ? $_POST['site_descr'] : $_SESSION['partner']['site_descr'];
$work_regime = isset($_POST['work_regime']) ? $_POST['work_regime'] : $_SESSION['partner']['work_regime'];
$gTpl->Assign(array('ERROR' => '',
'EMAIL' => htmlspecialchars($email),
'NAME' => htmlspecialchars($name),
'TOWN' => htmlspecialchars($town),
'PHONES' => htmlspecialchars($phones),
'SITE' => htmlspecialchars($site),
'SITEDESCR' => htmlspecialchars($site_descr),
'WORKREGIME'=> ''
));
// Define work regime
$rules = $gData->GetPartnerMain();
$click_list = $gData->GetPartnerClickList();
$click_list_rows = $gData->GetNumRows($click_list);
if ( $rules['work_type'] == 0 && $click_list_rows > 0 )
{
$gTpl->Assign(array('WORKREGIME0' => '', 'WORKREGIME1' => ''));
$gTpl->Assign('WORKREGIME'.($work_regime*1), 'Checked');
$gTpl->Parse('WORKREGIME', 'work_regime');
}
// Assign charset
$charset = isset($_POST['charset']) ? $_POST['charset'] : $_SESSION['partner']['charset'];
$charset_set = '';
foreach ( $gCharset as $set )
{
$sel = ( $set == $charset ) ? 'Selected'
: '';
$charset_set .= '';
}
$gTpl->Assign('CHARSETS', $charset_set);
// Analize error
if ( strlen($mError) > 0 )
{
$err = explode('&', $mError);
if ( in_array('email_no', $err) ) $gTpl->Parse('ERROR', '.err_email');
if ( in_array('pass_cmp', $err) ) $gTpl->Parse('ERROR', '.err_pass_cmp');
if ( in_array('phones_no', $err) ) $gTpl->Parse('ERROR', '.err_phones');
if ( in_array('name_no', $err) ) $gTpl->Parse('ERROR', '.err_name');
if ( in_array('work_regime_no', $err) ) $gTpl->Parse('ERROR', '.err_work_regime');
}
else
{
$err = array();
}
$gTpl->Parse('CONTENT', 'main');
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'page_title');
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function forget
* Reminder for partner his password
**/
function forget($mEmail)
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/enter/forget/main.htm',
'error' => '_partner/enter/forget/error.htm',
'ok' => '_partner/enter/forget/ok.htm',
'page_title' => '_partner/enter/forget/page_title.htm'
));
// Get login and pass
$exists = 0;
if ( strlen($mEmail) > 0 ) list($exists, $login, $pass, $charset) = $gData->GetPartnerPass(addslashes($mEmail));
if ( $exists > 0 )
{
$gTpl->Parse('RESULT', 'ok');
//Send mail
$tplm = new FastTemplate('./'.TEMPLATES);
$tplm->DefineTemplate(array('mail_message' => '_partner/enter/forget/mail_message.htm'));
$tplm->Assign(array('LOGIN' => htmlspecialchars($login),
'PASS' => htmlspecialchars($pass),
'CHARSET' => $charset,
'SHOPNAMES' => $gOptions['attr_shop_name'],
'SHOPNAME' => htmlspecialchars($gOptions['attr_shop_name']),
'SHOPURL' => htmlspecialchars($gOptions['attr_shop_url']),
'SHOPEMAIL' => htmlspecialchars($gOptions['attr_shop_email']),
'SHOPORG' => htmlspecialchars($gOptions['attr_shop_org']),
'SHOPPHONE' => htmlspecialchars($gOptions['attr_shop_phone']),
'SHOPICQ' => htmlspecialchars($gOptions['attr_shop_icq'])
));
$tplm->Parse('MAIL', 'mail_message');
$mailer = new Emailer(MAIL_SERVER);
$mailer->SetCharset($charset);
$mailer->SetTypeHTML();
$all_message = iconv(SHOP_CHARSET, $charset, $tplm->Fetch('MAIL'));
$subject = substr($all_message, strpos($all_message, 'Message_subject:')+16, strpos($all_message, 'Message_content:')-16);
$message = substr($all_message, strpos($all_message, 'Message_content:')+16);
$mailer->AddMessage($message);
$mailer->BuildMessage();
$mailer->Send($mEmail, $gOptions['attr_shop_email'], ltrim($subject, " "));
}
else
{
$gTpl->Parse('RESULT', 'error');
}
$gTpl->Parse('CONTENT', 'main');
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'page_title');
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function partner_enter
* Enter partner through login and password
**/
function partner_enter($mWasError)
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/enter/main.htm',
'error' => '_partner/enter/error.htm',
'page_title' => '_partner/enter/page_title.htm'
));
// Assign vars
$gTpl->Assign('ERROR', '');
if ( $mWasError )
{
$gTpl->Parse('ERROR', 'error');
}
$gTpl->Parse('CONTENT', 'main');
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'page_title');
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function register_partner
* Register new partner
**/
function register_partner($mError = '')
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint, $gCharset;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/register/main.htm',
'err_login' => '_partner/register/err_login.htm',
'err_login_exists' => '_partner/register/err_login_exists.htm',
'err_email' => '_partner/register/err_email.htm',
'err_pass' => '_partner/register/err_pass.htm',
'err_pass_cmp' => '_partner/register/err_pass_cmp.htm',
'err_phones' => '_partner/register/err_phones.htm',
'err_rules' => '_partner/register/err_rules.htm',
'err_name' => '_partner/register/err_name.htm',
'work_regime' => '_partner/register/work_regime.htm',
'stopped' => '_partner/register/stopped.htm',
'verify_code' => '_partner/register/verify_code.htm',
'page_title' => '_partner/register/page_title.htm'
));
// Get rules
$rules = $gData->GetPartnerMain();
if ( $rules['active'] )
{
// Assign common vars
$gTpl->Assign(array('ERROR' => '',
'LOGIN' => htmlspecialchars($_POST['login']),
'EMAIL' => htmlspecialchars($_POST['email']),
'NAME' => htmlspecialchars($_POST['name']),
'TOWN' => htmlspecialchars($_POST['town']),
'PHONES' => htmlspecialchars($_POST['phones']),
'SITE' => htmlspecialchars($_POST['site']),
'SITEDESCR' => htmlspecialchars($_POST['site_descr']),
'RULES' => ( $_POST['rules'] == 'Y' ) ? 'checked' : '',
'WORKREGIME'=> ''
));
// Define work regime
$click_list = $gData->GetPartnerClickList();
$click_list_rows = $gData->GetNumRows($click_list);
if ( $rules['work_type'] == 0 && $click_list_rows > 0 )
{
$gTpl->Assign(array('WORKREGIME0' => '', 'WORKREGIME1' => ''));
$gTpl->Assign('WORKREGIME'.($_POST['work_regime']*1), 'Checked');
$gTpl->Parse('WORKREGIME', 'work_regime');
}
// Assign charset
$charset = '';
foreach ( $gCharset as $set )
{
( $_POST['charset'] == $set ) ? $sel = 'Selected'
: $sel = '';
$charset .= '';
}
$gTpl->Assign('CHARSETS', $charset);
// Anti spam verify code
if ( $gOptions['main_no_spam'] == 'True' )
{
create_verify_code();
$gTpl->Parse('VERIFYCODE', 'verify_code');
}
else
{
$gTpl->Assign('VERIFYCODE', '');
}
// Analize error
if ( strlen($mError) > 0 )
{
$err = explode('&', $mError);
if ( in_array('login_no', $err) ) $gTpl->Parse('ERROR', '.err_login');
if ( in_array('login_exists', $err) ) $gTpl->Parse('ERROR', '.err_login_exists');
if ( in_array('email_no', $err) ) $gTpl->Parse('ERROR', '.err_email');
if ( in_array('pass_no', $err) ) $gTpl->Parse('ERROR', '.err_pass');
if ( in_array('pass_cmp', $err) ) $gTpl->Parse('ERROR', '.err_pass_cmp');
if ( in_array('phones_no', $err) ) $gTpl->Parse('ERROR', '.err_phones');
if ( in_array('rules_no', $err) ) $gTpl->Parse('ERROR', '.err_rules');
if ( in_array('name_no', $err) ) $gTpl->Parse('ERROR', '.err_name');
}
$gTpl->Parse('CONTENT', 'main');
}
else
{
// Stopped
$gTpl->Parse('CONTENT', 'stopped');
}
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'page_title');
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function try_register
* Verify information before register partner
**/
function try_register()
{
global $gData, $gOptions;
$error = '';
// Test for login
if ( strlen($_POST['login']) == 0 ) $error .= 'login_no&';
if ( $gData->PartnerLoginExists(addslashes($_POST['login'])) > 0 ) $error .= 'login_exists&';
// Test for password
if ( strlen($_POST['pass']) == 0 ) $error .= 'pass_no&';
if ( $_POST['pass'] != $_POST['pass2'] ) $error .= 'pass_cmp&';
// Test for e-mail
if ( !eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2}([zmuvtg]|fo|me)?$", $_POST['email']) )
{
$error .= 'email_no&';
}
// Test phones
if ( strlen($_POST['phones']) == 0 ) $error .= 'phones_no&';
// Test rules
if ( $_POST['rules'] != 'Y' ) $error .= 'rules_no&';
// Test name
if ( strlen($_POST['name']) == 0 ) $error .= 'name_no&';
// Verify code
$verify_code_pass = true;
if ( $gOptions['main_no_spam'] == 'True' ) $verify_code_pass = right_verify_code();
if ( ! $verify_code_pass ) $error .= 'spam_no&';
return rtrim($error, '&');
}
/**
* Function try_change
* Verify information before change partner reg info
**/
function try_change()
{
global $gData;
$error = '';
// Test for password
if ( $_POST['pass'] != $_POST['pass2'] ) $error .= 'pass_cmp&';
// Test for e-mail
if ( !eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2}([zmuvtg]|fo|me)?$", $_POST['email']) )
{
$error .= 'email_no&';
}
// Test phones
if ( strlen($_POST['phones']) == 0 ) $error .= 'phones_no&';
// Test name
if ( strlen($_POST['name']) == 0 ) $error .= 'name_no&';
// Test work regime
if ( $_POST['work_regime']*1 == 1
&& $_SESSION['partner']['work_regime'] == 0
&& get_now("d") > 3 ) $error .= 'work_regime_no&';
return rtrim($error, '&');
}
/**
* Function add_partner
* Add new partner to database
**/
function add_partner()
{
global $gData, $gOptions;
// Insert partner
$login = addslashes($_POST['login']);
$password = addslashes($_POST['pass']);
$id = $gData->AddPartner($login,
$password,
addslashes($_POST['email']),
get_date(),
addslashes($_POST['charset']),
$_POST['work_regime']*1,
addslashes($_POST['name']),
addslashes($_POST['town']),
addslashes($_POST['phones']),
addslashes($_POST['site']),
addslashes($_POST['site_descr'])
);
// If register many users with some login then remove last
if ( $gData->PartnerLoginExists(addslashes($_POST['login'])) > 1 )
{
$gData->RemovePartner($id);
$error = try_register();
register_partner($error);
exit;
}
// Activate partner
$_SESSION['partner'] = $gData->GetPartner($id);
unset($_SESSION['partner']['pass']);
// Send mail to partner
if ( strlen($_SESSION['partner']['email']) > 0 )
{
$tplm = new FastTemplate('./'.TEMPLATES);
$tplm->DefineTemplate(array('mail_message' => '_partner/register/mail_register.htm'));
$tplm->Assign(array('LOGIN' => htmlspecialchars($login),
'PASS' => htmlspecialchars($password),
'NAME' => htmlspecialchars($_SESSION['partner']['name']),
'ID' => $_SESSION['partner']['id'],
'CHARSET' => $_POST['charset'],
'BASEURL' => rtrim($gOptions['attr_base_url'], '/'),
'SHOPNAMES' => $gOptions['attr_shop_name'],
'SHOPNAME' => htmlspecialchars($gOptions['attr_shop_name']),
'SHOPURL' => htmlspecialchars($gOptions['attr_shop_url']),
'SHOPEMAIL' => htmlspecialchars($gOptions['attr_shop_email']),
'SHOPORG' => htmlspecialchars($gOptions['attr_shop_org']),
'SHOPPHONE' => htmlspecialchars($gOptions['attr_shop_phone']),
'SHOPICQ' => htmlspecialchars($gOptions['attr_shop_icq'])
));
$tplm->Parse('MAIL', 'mail_message');
$mailer = new Emailer(MAIL_SERVER);
$mailer->SetCharset($_POST['charset']);
$mailer->SetTypeHTML();
$all_message = iconv(SHOP_CHARSET, $_POST['charset'], $tplm->Fetch('MAIL'));
$subject = substr($all_message, strpos($all_message, 'Message_subject:')+16, strpos($all_message, 'Message_content:')-16);
$message = substr($all_message, strpos($all_message, 'Message_content:')+16);
$mailer->AddMessage($message);
$mailer->BuildMessage();
$mailer->Send($_SESSION['partner']['email'], $gOptions['attr_shop_email'], ltrim($subject, " "));
}
// Send mail to admin
$tplm = new FastTemplate('./'.TEMPLATES);
$tplm->DefineTemplate(array('mail_message' => '_partner/register/mail_register_admin.htm',
'work_regime0' => '_partner/register/mail_work_regime0.htm',
'work_regime1' => '_partner/register/mail_work_regime1.htm',
'work_regime2' => '_partner/register/mail_work_regime2.htm'
));
$tplm->Assign(array('LOGIN' => htmlspecialchars($login),
'NAME' => htmlspecialchars($_SESSION['partner']['name']),
'ID' => $_SESSION['partner']['id'],
'EMAIL' => $_SESSION['partner']['email'],
'TOWN' => $_SESSION['partner']['town'],
'PHONES' => $_SESSION['partner']['phones'],
'SITE' => $_SESSION['partner']['site'],
'SITEDESCR' => $_SESSION['partner']['site_descr'],
'BASEURL' => rtrim($gOptions['attr_base_url'], '/'),
'SHOPNAME' => htmlspecialchars($gOptions['attr_shop_name']),
'SHOPURL' => htmlspecialchars($gOptions['attr_shop_url']),
'SHOPEMAIL' => htmlspecialchars($gOptions['attr_shop_email']),
'SHOPORG' => htmlspecialchars($gOptions['attr_shop_org']),
'SHOPPHONE' => htmlspecialchars($gOptions['attr_shop_phone']),
'SHOPICQ' => htmlspecialchars($gOptions['attr_shop_icq'])
));
$rules = $gData->GetPartnerMain();
if ( $rules['work_type'] == 0 )
{
$tplm->Parse('WORKREGIME', 'work_regime'.($_SESSION['partner']['work_regime']*1));
}
else
{
$tplm->Parse('WORKREGIME', 'work_regime2');
}
$tplm->Parse('MAIL', 'mail_message');
$mailer = new Emailer(MAIL_SERVER);
$mailer->SetCharset($gOptions['attr_admin_charset']);
$mailer->SetTypeHTML();
$all_message = iconv(SHOP_CHARSET, $_SESSION['partner']['charset'], $tplm->Fetch('MAIL'));
$subject = substr($all_message, strpos($all_message, 'Message_subject:')+16, strpos($all_message, 'Message_content:')-16);
$message = substr($all_message, strpos($all_message, 'Message_content:')+16);
$mailer->AddMessage($message);
$mailer->BuildMessage();
$mailer->Send($gOptions['attr_admin_email'], $_SESSION['partner']['email'], ltrim($subject, " "));
return TRUE;
}
/**
* Function save_changes
* Save partner information
**/
function save_changes()
{
global $gData;
// Save new password if need
if ( strlen($_POST['pass']) > 0 ) $gData->UpdatePartnerField($_SESSION['partner']['id'], 'pass', addslashes($_POST['pass']));
// Save other fields
$gData->UpdatePartnerField($_SESSION['partner']['id'], 'email', addslashes($_POST['email']));
$gData->UpdatePartnerField($_SESSION['partner']['id'], 'charset', addslashes($_POST['charset']));
$gData->UpdatePartnerField($_SESSION['partner']['id'], 'name', addslashes($_POST['name']));
$gData->UpdatePartnerField($_SESSION['partner']['id'], 'town', addslashes($_POST['town']));
$gData->UpdatePartnerField($_SESSION['partner']['id'], 'phones', addslashes($_POST['phones']));
$gData->UpdatePartnerField($_SESSION['partner']['id'], 'site', addslashes($_POST['site']));
$gData->UpdatePartnerField($_SESSION['partner']['id'], 'site_descr', addslashes($_POST['site_descr']));
$gData->UpdatePartnerField($_SESSION['partner']['id'], 'work_regime', $_POST['work_regime']*1);
// Reload partner info
$_SESSION['partner'] = $gData->GetPartner($_SESSION['partner']['id']);
unset($_SESSION['partner']['pass']);
return TRUE;
}
/**
* Function partner_rules
* Show rules for partner
**/
function partner_rules()
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/rules/main.htm',
'cb_main' => '_partner/rules/click_buy/main.htm',
'cb_unit' => '_partner/rules/click_buy/unit.htm',
'pi_main' => '_partner/rules/payment_info/main.htm',
'pi_unit' => '_partner/rules/payment_info/unit.htm',
'page_title' => '_partner/rules/page_title.htm'
));
// Rules
$hash = $gData->GetPartnerMain();
$gTpl->Assign(array('CONTENT' => $hash['rules'],
'COOKIEDAYS' => $hash['cookie_days'],
'NOACTIVE' => $hash['no_active_days'],
'PAYDAYS' => $hash['pay_days'],
'DAYCOUNT' => $hash['how_day_wait'],
'PAYSUMA' => number_format($hash['pay_suma'], $gOptions['orig_prec'], "," ,"'"),
'CURR' => $gOptions['orig_base_curr'],
'ID' => $_SESSION['partner']['id']
));
$gTpl->Parse('RULES', 'rules');
// List of blocked sites
$block = $gData->GetPartnerBlockSite();
$rows = $gData->GetNumRows($block);
$block_list = '';
for ( $i = 1; $i <= $rows; $i++ )
{
$hash = $gData->FetchRow($block);
$block_list .= $hash[0].', ';
}
$gTpl->Assign('BLOCKLIST', addslashes(rtrim($block_list, ', ')));
// Click to buy
$click_buy = $gData->GetPartnerClickList();
$rows = $gData->GetNumRows($click_buy);
if ( $rows > 0 )
{
for ( $n = 1; $n <= $rows; $n++ )
{
$hash = $gData->FetchHash($click_buy);
$gTpl->Assign(array('CLICK' => $hash['click_to_buy'],
'SUMA' => number_format($hash['suma'], 2, "," ,"'"),
'ALTSUMA' => number_format($hash['suma']/1000, $gOptions['orig_prec']+2, "," ,"'"),
'CURR' => $gOptions['orig_base_curr']
));
$gTpl->Parse('UNIT', '.cb_unit');
}
$gTpl->Parse('CLICKBUY', 'cb_main');
}
else
{
$gTpl->Assign('CLICKBUY', '');
}
// Payment info
$payment_info = $gData->GetPartnerPaymentList();
$rows = $gData->GetNumRows($payment_info);
$gTpl->Clear('UNIT');
if ( $rows > 0 )
{
for ( $n = 1; $n <= $rows; $n++ )
{
$hash = $gData->FetchHash($payment_info);
$mult = number_format($hash['multiplex'], 4, "," ,"'");
if ( $hash['division'] == 1 ) $mult = '1 / '.$mult;
$gTpl->Assign(array('NAME' => htmlspecialchars($hash['name']),
'DESCR' => $hash['descr'],
'MULTIPLEX' => $mult
));
$gTpl->Parse('UNIT', '.pi_unit');
}
$gTpl->Parse('PAYMENTINFO', 'pi_main');
}
else
{
$gTpl->Assign('PAYMENTINFO', '');
}
$gTpl->Parse('CONTENT', 'main');
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'page_title');
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function advert_items
* Show advert items for partner
**/
function advert_items()
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/advert_items/main.htm',
'page_title' => '_partner/advert_items/page_title.htm'
));
// Rules
$hash = $gData->GetPartnerMain();
$gTpl->Assign(array('ID' => $_SESSION['partner']['id'],
'URL' => rtrim($gOptions['attr_base_url'], '/').'/?partner='.$_SESSION['partner']['id'],
'CONTENT' => str_replace('{ID}', $_SESSION['partner']['id'], $hash['advert_items'])
));
$gTpl->Parse('CONTENT', 'main');
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'page_title');
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function account_log
* Show account log statistic for partner
**/
function account_log()
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/account/log/main.htm',
'log' => '_partner/account/log/log.htm',
'unit' => '_partner/account/log/unit.htm',
'empty' => '_partner/account/log/empty.htm',
'operate0' => '_partner/account/log/operate0.htm',
'operate1' => '_partner/account/log/operate1.htm',
'operate2' => '_partner/account/log/operate2.htm',
'operate3' => '_partner/account/log/operate3.htm',
'page_title' => '_partner/account/log/page_title.htm'
));
// Reload partner info
$_SESSION['partner'] = $gData->GetPartner($_SESSION['partner']['id']);
unset($_SESSION['partner']['pass']);
if ( isset($_GET['step']) ) $_SESSION['partner']['step'] = $_GET['step']*1;
if ( ! isset($_SESSION['partner']['step']) ) $_SESSION['partner']['step'] = ITEMS_PER_PAGE;
if ( $_SESSION['partner']['step'] > 100 ) $_SESSION['partner']['step'] = MAX_ITEMS_PER_PAGE;
// Common vars
$gTpl->Assign(array('CURR' => $gOptions['orig_base_curr'],
'ACCOUNT' => number_format($_SESSION['partner']['account'], $gOptions['orig_prec'], "," ,"'")
));
// Request log
$log = $gData->GetPartnerAccount($_SESSION['partner']['id']);
$rows = $gData->GetNumRows($log);
if ( $rows > 0 )
{
// Start echo log's lines
$end = $_SESSION['partner']['step']*1;
$begin = $_GET['from']*1;
if ( $rows < ($begin + $end) ) $end = $rows - $begin;
$gData->DataSeek($log, $begin);
for ( $n = 1; $n <= $end; $n++ )
{
$hash = $gData->FetchHash($log);
// Assign order vars
$account_start = ( $hash['operate'] != 3 ) ? ( $hash['account'] - $hash['suma'] ) : $hash['account'];
$sign = ( $hash['operate'] != 3 ) ? ( ( $hash['suma'] > 0 ) ? '+' : '' ) : '';
$gTpl->Assign(array('DATETIME' => date($gOptions['main_fmt_date_time'], strtotime($hash['date_time'])),
'SUMA' => $sign.number_format($hash['suma'], $gOptions['orig_prec'], "," ,"'"),
'ACCSTART' => number_format($account_start, $gOptions['orig_prec'], "," ,"'"),
'ACCEND' => number_format($hash['account'], $gOptions['orig_prec'], "," ,"'"),
'NOTICE' => htmlspecialchars($hash['notice']),
'OPERCODE' => $hash['operate'],
'SUMASEL' => ( $hash['operate'] != 3 ) ? ( ( $hash['suma'] > 0 ) ? '1' : '2' ) : '0',
'BEACON' => floor($n % 2)
));
$gTpl->Parse('OPERATE', 'operate'.$hash['operate']);
$gTpl->Parse('UNIT', '.unit');
}
// Parse guide line
if ( $rows > $_SESSION['partner']['step'] )
{
$gTpl->Assign('GUIDELINE', guide_line($_GET['from']*1,
$_SESSION['partner']['step'],
$rows,
'./partner.php?action=account',
'/'.TEMPLATES.'/guide_line/partner_stat'));
}
else
{
$gTpl->Assign('GUIDELINE', '');
}
// Parse main
$gTpl->Parse('LOG', 'log');
}
else
{
// Parse empty
$gTpl->Parse('LOG', 'empty');
$gTpl->Assign('GUIDELINE', '');
}
$gTpl->Parse('CONTENT', 'main');
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'page_title');
$gTpl->Assign('STEP'.$_SESSION['partner']['step'], 'Selected');
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function request
* Action of request money
**/
function request($mError = '')
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/account/request/main.htm',
'order_form' => '_partner/account/request/order_form.htm',
'payment' => '_partner/account/request/payment.htm',
'pay_option' => '_partner/account/request/pay_option.htm',
'not_enough' => '_partner/account/request/not_enough.htm',
'error_suma' => '_partner/account/request/error_suma.htm',
'error_min' => '_partner/account/request/error_min.htm',
'page_title' => '_partner/account/request/page_title.htm'
));
// Reload partner info
$_SESSION['partner'] = $gData->GetPartner($_SESSION['partner']['id']);
unset($_SESSION['partner']['pass']);
// Load rules
$main_hash = $gData->GetPartnerMain();
if ( $_POST['suma']*1 == 0 ) $_POST['suma'] = $main_hash['pay_suma'];
$gTpl->Assign(array('PAYDAYS' => $main_hash['pay_days'],
'MINSUMA' => number_format($main_hash['pay_suma'], $gOptions['orig_prec'], "," ,"'"),
'PAYMENT' => '',
'NOTICE' => htmlspecialchars($_POST['notice']),
'SUMA' => number_format($_POST['suma'], $gOptions['orig_prec'], "." ,""),
'ERROR' => '',
'CURR' => $gOptions['orig_base_curr'],
'ACCOUNT' => number_format($_SESSION['partner']['account'], $gOptions['orig_prec'], "," ,"'")
));
// Analize error
if ( strlen($mError) > 0 )
{
$err = explode('&', $mError);
if ( in_array('min_suma', $err) ) $gTpl->Parse('ERROR', 'error_min');
if ( in_array('no_suma', $err) ) $gTpl->Parse('ERROR', '.error_suma');
}
// Parse form for request
if ( $_SESSION['partner']['account'] < $main_hash['pay_suma'] )
{
$gTpl->Parse('ORDERFORM', 'not_enough');
}
else
{
$payment_info = $gData->GetPartnerPaymentList();
$rows = $gData->GetNumRows($payment_info);
if ( $rows > 0 )
{
for ( $n = 1; $n <= $rows; $n++ )
{
$hash = $gData->FetchHash($payment_info);
$mult = ( $hash['division'] == 1 ) ? $mult = round(1/$hash['multiplex'], 4) : $hash['multiplex'];
$gTpl->Assign(array('NAME' => htmlspecialchars($hash['name']),
'DESCR' => $hash['descr'],
'MULT' => number_format($mult, 4, "," ,"'"),
'MULTMATH' => number_format($mult, 4, "." ,""),
'ID' => $hash['id'],
'SEL' => ''
));
if ( $_POST['payment']*1 == $hash['id'] )
{
$gTpl->Assign('SEL', 'Checked');
$result_sum = 1*$_POST['suma']*$mult;
$sel_mult = $mult;
}
if ( !isset($_POST['payment']) && $n == 1 )
{
$gTpl->Assign('SEL', 'Checked');
$result_sum = 1*$_POST['suma']*$mult;
$sel_mult = $mult;
}
$gTpl->Parse('OPTION', '.pay_option');
}
$gTpl->Assign(array('RESULTSUM' => number_format($result_sum, 2, "." ,""),
'SELMULT' => number_format($sel_mult, 4, "." ,"")
));
$gTpl->Parse('PAYMENT', 'payment');
}
$gTpl->Parse('ORDERFORM', 'order_form');
}
$gTpl->Parse('CONTENT', 'main');
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'page_title');
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function try_request
* Verify information before save request
**/
function try_request()
{
global $gData;
$error = '';
// Load rules
$main_hash = $gData->GetPartnerMain();
// Test for suma
if ( $_POST['suma']*1 == 0 || $_POST['suma']*1 < $main_hash['pay_suma'] ) $error .= 'min_suma&';
if ( $_POST['suma']*1 > $_SESSION['partner']['account']*1 ) $error .= 'no_suma&';
return rtrim($error, '&');
}
/**
* Function save_request
* Save partner request for pay and send e-mail
**/
function save_request()
{
global $gData, $gOptions, $gMessage;
// Make payment save info
$payment_save_info = '';
$payment_info = $gData->GetPartnerPaymentList();
$rows = $gData->GetNumRows($payment_info);
if ( $rows > 0 )
{
for ( $n = 1; $n <= $rows; $n++ )
{
$hash = $gData->FetchHash($payment_info);
if ( $_POST['payment']*1 == $hash['id'] )
{
$mult = ( $hash['division'] == 1 ) ? $mult = round(1/$hash['multiplex'], 4) : $hash['multiplex'];
$payment_save_info = sprintf($gMessage['part_request_pay'],
$hash['name'],
number_format(1*$_POST['suma']*$mult, 2, "," ,"'"));
break;
}
}
}
// Save request
$notice = sprintf($gMessage['part_request'], number_format(1*$_POST['suma'], 2, "," ,"'")).' '.$payment_save_info.' '.$_POST['notice'];
$gData->AddPartnerAccount($_SESSION['partner']['id'],
get_now(),
3,
addslashes($_POST['suma']*1),
addslashes($notice),
false
);
// Send mail to admin
$tplm = new FastTemplate('./'.TEMPLATES);
$tplm->DefineTemplate(array('mail_message' => '_partner/account/mails/mail_operate3_admin.htm'));
$tplm->Assign(array('NAME' => htmlspecialchars($_SESSION['partner']['name']),
'ID' => $_SESSION['partner']['id'],
'CURR' => htmlspecialchars($gOptions['orig_base_curr']),
'SUMA' => number_format(1*$_POST['suma'], 2, "," ,"'"),
'NOTICE' => htmlspecialchars($notice),
'CHARSET' => $gOptions['attr_admin_charset'],
'SHOPNAMES' => $gOptions['attr_shop_name'],
'SHOPNAME' => htmlspecialchars($gOptions['attr_shop_name']),
'SHOPURL' => htmlspecialchars($gOptions['attr_shop_url']),
'SHOPEMAIL' => htmlspecialchars($gOptions['attr_shop_email']),
'SHOPORG' => htmlspecialchars($gOptions['attr_shop_org']),
'SHOPPHONE' => htmlspecialchars($gOptions['attr_shop_phone']),
'SHOPICQ' => htmlspecialchars($gOptions['attr_shop_icq'])
));
$tplm->Parse('MAIL', 'mail_message');
$mailer = new Emailer(MAIL_SERVER);
$mailer->SetCharset($gOptions['attr_admin_charset']);
$mailer->SetTypeHTML();
$all_message = iconv(SHOP_CHARSET, $gOptions['attr_admin_charset'], $tplm->Fetch('MAIL'));
$subject = substr($all_message, strpos($all_message, 'Message_subject:')+16, strpos($all_message, 'Message_content:')-16);
$message = substr($all_message, strpos($all_message, 'Message_content:')+16);
$mailer->AddMessage($message);
$mailer->BuildMessage();
$mailer->Send($gOptions['attr_admin_email'], $_SESSION['partner']['email'], ltrim($subject, " "));
// Send Email to partner
$tplm = new FastTemplate('./'.TEMPLATES);
$tplm->DefineTemplate(array('mail_message' => '_partner/account/mails/mail_operate3.htm'));
$tplm->Assign(array('NAME' => htmlspecialchars($_SESSION['partner']['name']),
'ID' => $_SESSION['partner']['id'],
'CURR' => htmlspecialchars($gOptions['orig_base_curr']),
'SUMA' => number_format(1*$_POST['suma'], 2, "," ,"'"),
'NOTICE' => htmlspecialchars($notice),
'CHARSET' => $_SESSION['partner']['charset'],
'BASEURL' => rtrim($gOptions['attr_base_url'], '/'),
'SHOPNAMES' => $gOptions['attr_shop_name'],
'SHOPNAME' => htmlspecialchars($gOptions['attr_shop_name']),
'SHOPURL' => htmlspecialchars($gOptions['attr_shop_url']),
'SHOPEMAIL' => htmlspecialchars($gOptions['attr_shop_email']),
'SHOPORG' => htmlspecialchars($gOptions['attr_shop_org']),
'SHOPPHONE' => htmlspecialchars($gOptions['attr_shop_phone']),
'SHOPICQ' => htmlspecialchars($gOptions['attr_shop_icq'])
));
$tplm->Parse('MAIL', 'mail_message');
$mailer = new Emailer(MAIL_SERVER);
$mailer->SetCharset($_SESSION['partner']['charset']);
$mailer->SetTypeHTML();
$all_message = iconv(SHOP_CHARSET, $_SESSION['partner']['charset'], $tplm->Fetch('MAIL'));
$subject = substr($all_message, strpos($all_message, 'Message_subject:')+16, strpos($all_message, 'Message_content:')-16);
$message = substr($all_message, strpos($all_message, 'Message_content:')+16);
$mailer->AddMessage($message);
$mailer->BuildMessage();
$mailer->Send($_SESSION['partner']['email'], $gOptions['attr_shop_email'], ltrim($subject, " "));
return TRUE;
}
/**
* Function statistic
* Show current statistic for partner
**/
function statistic()
{
global $gData, $gOptions, $gTpl, $gStartPoint, $gEndPoint;
// Init templates
$gTpl = new FastTemplate('./'.TEMPLATES);
$gTpl->DefineTemplate(array('blank' => 'blank.htm',
'main' => '_partner/stat/main.htm',
'title_orders' => '_partner/stat/orders/page_title.htm',
'title_click_full' => '_partner/stat/click_full/page_title.htm',
'title_click_days' => '_partner/stat/click_days/page_title.htm',
'title_click_month' => '_partner/stat/click_month/page_title.htm'
));
if ( isset($_GET['step']) ) $_SESSION['partner']['step'] = $_GET['step']*1;
if ( ! isset($_SESSION['partner']['step']) ) $_SESSION['partner']['step'] = ITEMS_PER_PAGE;
if ( $_SESSION['partner']['step'] > 100 ) $_SESSION['partner']['step'] = MAX_ITEMS_PER_PAGE;
// Define what to show
$type = ( isset($_GET['type']) ) ? $_GET['type'] : 'orders';
switch ( $type )
{
case 'orders' :
$gTpl->Assign('STATVALUE', stat_orders());
break;
case 'click_full' :
$gTpl->Assign('STATVALUE', stat_click_full());
break;
case 'click_days' :
$gTpl->Assign('STATVALUE', stat_click_days());
break;
case 'click_month' :
$gTpl->Assign('STATVALUE', stat_click_month());
break;
default:
$gTpl->Assign('STATVALUE', stat_orders());
break;
}
$gTpl->Assign('TYPE', $type);
$gTpl->Assign('STEP'.$_SESSION['partner']['step'], 'Selected');
$gTpl->Parse('CONTENT', 'main');
// Echo shop variables
echo_shop_variables('in_techpage', true);
// Additional modules
use_php_mod('partner');
$gTpl->Parse('PAGETITLE', 'title_'.$type);
// Parse main page
$gTpl->Parse('BLANK', 'blank');
$gEndPoint = run_time($gStartPoint);
$gTpl->FastPrint('BLANK');
}
/**
* Function stat_orders
* Make statistic of orders for partner
**/
function stat_orders()
{
global $gData, $gOptions;
// Init templates
$tpl = new FastTemplate('./'.TEMPLATES.'/_partner/stat/orders');
$tpl->DefineTemplate(array('main' => 'main.htm',
'empty' => 'empty.htm',
'unit' => 'unit.htm',
'goods' => 'goods.htm',
'unit_goods' => 'unit_goods.htm',
'order_status0' => 'order_status0.htm',
'order_status1' => 'order_status1.htm',
'order_status2' => 'order_status2.htm',
'order_status3' => 'order_status3.htm',
'order_status4' => 'order_status4.htm',
'suma_maybe' => 'suma_maybe.htm',
'suma_info' => 'suma_info.htm'
));
// Request orders
$orders = $gData->GetAllOrdersPartner($_SESSION['partner']['id']);
$rows = $gData->GetNumRows($orders);
if ( $rows > 0 )
{
// Start echo orders
$end = $_SESSION['partner']['step'];
$begin = $_GET['from']*1;
if ( $rows < ($begin + $end) ) $end = $rows -$begin;
$gData->DataSeek($orders, $begin);
for ( $n = 1; $n <= $end; $n++ )
{
$hash = $gData->FetchHash($orders);
// Echo goods
$goods = $gData->GetArchiveGoods($hash['id']);
$goods_rows = $gData->GetNumRows($goods);
$itogo_sum = 0;
if ( $goods_rows > 0 )
{
$tpl->Clear('UNITGOODS');
for ( $i = 1; $i <= $goods_rows; $i++ )
{
$goods_hash = $gData->FetchHash($goods);
if ( $goods_hash['status'] != 0 && $goods_hash['status'] != 3 ) continue;
$proc_value = $goods_hash['part_proc']*$goods_hash['price']/100;
$disc_value = $goods_hash['price'] - $goods_hash['new_price'];
$part_suma = $proc_value - $disc_value;
if ( $part_suma < 0 ) $part_suma = 0;
$itogo = $goods_hash['how']*$part_suma;
$itogo_sum += $itogo;
$tpl->Assign(array('NAME' => htmlspecialchars($goods_hash['name']),
'MEAS' => htmlspecialchars($goods_hash['meas']),
'CODE' => htmlspecialchars($goods_hash['code']),
'KIT' => htmlspecialchars($goods_hash['param_name']),
'PRICE' => number_format($goods_hash['price'], $gOptions['orig_prec'], "," ,"'"),
'NEWPRICE' => number_format($goods_hash['new_price'], $gOptions['orig_prec'], "," ,"'"),
'HOW' => $goods_hash['how'],
'STOREID' => $goods_hash['store_id'],
'PARTPROC' => number_format($goods_hash['part_proc'], 2, "," ,"'"),
'PARTSUMA' => number_format($part_suma, $gOptions['orig_prec'], "," ,"'"),
'PROCVALUE' => number_format($proc_value, $gOptions['orig_prec'], "," ,"'"),
'DISCVALUE' => number_format($disc_value, $gOptions['orig_prec'], "," ,"'"),
'ITOGO' => number_format($itogo, $gOptions['main_prec'], "," ,"'"),
'SUMAINFO' => ''
));
if ( $disc_value != 0 ) $tpl->Parse('SUMAINFO', 'suma_info');
$tpl->Parse('UNITGOODS', '.unit_goods');
}
$tpl->Assign('ITOGOSUM', number_format($itogo_sum, $gOptions['main_prec'], "," ,"'"));
$tpl->Parse('GOODS', 'goods');
}
// Assign order vars
$tpl->Assign(array('ORDERDATE' => date($gOptions['main_fmt_date_time'], strtotime($hash['date_time'])),
'CODE' => htmlspecialchars($hash['code']),
'STATUSID' => $hash['status'],
'ID' => $n,
'BEACON' => floor($n % 2)
));
// Parse partner sum
$suma = $hash['partner_sum'];
if ( $hash['status'] <= 2 )
{
$tpl->Assign('VALUE', number_format($suma, $gOptions['orig_prec'], "," ,"'"));
$tpl->Parse('SUMA', 'suma_maybe');
}
else
{
if ( $hash['status'] == 4 ) $suma = 0;
$tpl->Assign('SUMA', number_format($suma, $gOptions['orig_prec'], "," ,"'"));
}
$tpl->Parse('STATUS', 'order_status'.$hash['status']);
$tpl->Parse('UNIT', '.unit');
}
// Parse guide line
if ( $rows > $_SESSION['partner']['step'] )
{
$tpl->Assign('GUIDELINE', guide_line($_GET['from']*1,
$_SESSION['partner']['step'],
$rows,
'./partner.php?action=stat',
'/'.TEMPLATES.'/guide_line/partner_stat'));
}
else
{
$tpl->Assign('GUIDELINE', '');
}
// Common vars
$tpl->Assign('CURR', $gOptions['orig_base_curr']);
// Parse main
$tpl->Parse('MAIN', 'main');
}
else
{
// Parse empty
$tpl->Parse('MAIN', 'empty');
}
return $tpl->Fetch('MAIN');
}
/**
* Function stat_click_full
* Make statistic of clicks full
**/
function stat_click_full()
{
global $gData, $gOptions;
// Init templates
$tpl = new FastTemplate('./'.TEMPLATES.'/_partner/stat/click_full');
$tpl->DefineTemplate(array('main' => 'main.htm',
'empty' => 'empty.htm',
'unit' => 'unit.htm',
'status_accept' => 'status_accept.htm',
'status_deny' => 'status_deny.htm',
'status_was' => 'status_was.htm',
'status_block' => 'status_block.htm'
));
// Request stat info
$stat = $gData->GetStatClickFull($_SESSION['partner']['id']);
$rows = $gData->GetNumRows($stat);
if ( $rows > 0 )
{
$end = $_SESSION['partner']['step'];
$begin = $_GET['from']*1;
if ( $rows < ($begin + $end) ) $end = $rows - $begin;
$gData->DataSeek($stat, $begin);
for ( $n = 1; $n <= $end; $n++ )
{
$hash = $gData->FetchHash($stat);
$tpl->Assign(array('DATETIME' => date($gOptions['main_fmt_date_time'], strtotime($hash['date_time'])),
'URL' => $hash['from_page'],
'SHORTURL' => htmlspecialchars(substr($hash['from_page'], 0, MAX_URL_LEN)),
'IP' => long2ip($hash['ip']),
'BEACON' => floor($n % 2)
));
// Parse status
if ( $hash['cookie_id'] == $hash['partner_id'] )
{
$tpl->Parse('STATUS', 'status_was');
}
else
{
if ( $hash['cookie_id'] == 0 )
{
$tpl->Parse('STATUS', 'status_accept');
}
else
{
if ( $hash['cookie_id'] == -1 )
{
$tpl->Parse('STATUS', 'status_block');
}
else
{
$tpl->Parse('STATUS', 'status_deny');
}
}
}
$tpl->Parse('UNIT', '.unit');
}
// Parse guide line
if ( $rows > $_SESSION['partner']['step'] )
{
$tpl->Assign('GUIDELINE', guide_line($_GET['from']*1,
$_SESSION['partner']['step'],
$rows,
'./partner.php?action=stat&type=click_full',
'/'.TEMPLATES.'/guide_line/partner_stat'));
}
else
{
$tpl->Assign('GUIDELINE', '');
}
// Parse main
$tpl->Parse('MAIN', 'main');
}
else
{
// Parse empty
$tpl->Parse('MAIN', 'empty');
}
return $tpl->Fetch('MAIN');
}
/**
* Function stat_click_days
* Make statistic of clicks for days
**/
function stat_click_days()
{
global $gData, $gOptions;
// Init templates
$tpl = new FastTemplate('./'.TEMPLATES.'/_partner/stat/click_days');
$tpl->DefineTemplate(array('main' => 'main.htm',
'empty' => 'empty.htm',
'unit' => 'unit.htm'
));
// Request stat info
$stat = $gData->GetStatClickDays($_SESSION['partner']['id']);
$rows = $gData->GetNumRows($stat);
if ( $rows > 0 )
{
$end = $_SESSION['partner']['step'];
$begin = $_GET['from']*1;
if ( $rows < ($begin + $end) ) $end = $rows - $begin;
$gData->DataSeek($stat, $begin);
for ( $n = 1; $n <= $end; $n++ )
{
$hash = $gData->FetchHash($stat);
$tpl->Assign(array('DATE' => date($gOptions['main_fmt_date'], strtotime($hash['isday'])),
'ALL' => $hash['click_all'],
'ACCEPT' => $hash['click_accept'],
'PROC' => number_format(100*$hash['click_accept']/$hash['click_all'], 2, "," ,"'"),
'BEACON' => floor($n % 2)
));
$tpl->Parse('UNIT', '.unit');
}
// Parse guide line
if ( $rows > $_SESSION['partner']['step'] )
{
$tpl->Assign('GUIDELINE', guide_line($_GET['from']*1,
$_SESSION['partner']['step'],
$rows,
'./partner.php?action=stat&type=click_days',
'/'.TEMPLATES.'/guide_line/partner_stat'));
}
else
{
$tpl->Assign('GUIDELINE', '');
}
// Parse main
$tpl->Parse('MAIN', 'main');
}
else
{
// Parse empty
$tpl->Parse('MAIN', 'empty');
}
return $tpl->Fetch('MAIN');
}
/**
* Function stat_click_month
* Make statistic of clicks for month
**/
function stat_click_month()
{
global $gData, $gOptions, $gMonth;
// Init templates
$tpl = new FastTemplate('./'.TEMPLATES.'/_partner/stat/click_month');
$tpl->DefineTemplate(array('main' => 'main.htm',
'empty' => 'empty.htm',
'unit' => 'unit.htm'
));
// Request stat info
$stat = $gData->GetStatClickMonth($_SESSION['partner']['id']);
$rows = $gData->GetNumRows($stat);
if ( $rows > 0 )
{
$end = $_SESSION['partner']['step'];
$begin = $_GET['from']*1;
if ( $rows < ($begin + $end) ) $end = $rows - $begin;
$gData->DataSeek($stat, $begin);
for ( $n = 1; $n <= $end; $n++ )
{
$hash = $gData->FetchHash($stat);
$tpl->Assign(array('MONTH' => $gMonth[date('n', strtotime($hash['ismonth']))].' '.
date('Y', strtotime($hash['ismonth'])),
'ALL' => $hash['click_all'],
'ACCEPT' => $hash['click_accept'],
'PROC' => number_format(100*$hash['click_accept']/$hash['click_all'], 2, "," ,"'"),
'BEACON' => floor($n % 2)
));
$tpl->Parse('UNIT', '.unit');
}
// Parse guide line
if ( $rows > $_SESSION['partner']['step'] )
{
$tpl->Assign('GUIDELINE', guide_line($_GET['from']*1,
$_SESSION['partner']['step'],
$rows,
'./partner.php?action=stat&type=click_month',
'/'.TEMPLATES.'/guide_line/partner_stat'));
}
else
{
$tpl->Assign('GUIDELINE', '');
}
// Parse main
$tpl->Parse('MAIN', 'main');
}
else
{
// Parse empty
$tpl->Parse('MAIN', 'empty');
}
return $tpl->Fetch('MAIN');
}
?>