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'); } ?>