==== XML ==== URFA Present Kayfolom ekorepov@ukhta-inform.ru authorUrl 2009 c license 1.0 Позволяет осуществлять денежные переводы между пользователями urfa_present.php ==== PHP ==== registerEvent( 'onPrepareContent', 'plgUserPresent' ); function plgUserPresent(&$row, &$params, $page=0){ // exit; $pos = strpos($row->text, '{user_present}'); if ($pos!==false) { $service_present_cost = 10; // Стоимость услуги подарок другу $row->text = preg_replace('/{user_present}/', '', $row->text); include ("./urfa/URFAConfig.php"); try { $urfa_admin = new URFAClient_Admin($UTMCore_Login,$UTMCore_Password); $urfa_user5 = new URFAClient_User5($_SESSION['URFA']['login'], $_SESSION['URFA']['password']); } catch (Exception $exception) { echo "Error in line ", $exception->getLine(); echo $exception->getMessage(); } //******************************* Вычисление максимально возможной суммы подарка начало $accountinfo = $urfa_admin->rpcf_get_accountinfo($_SESSION['URFA']['basic_account']); //0x2030 $balance = $accountinfo['balance']; // $balance = $accountinfo['balance']-$accountinfo['credit']; if (($balance+$accountinfo['credit'])>=$service_present_cost) { // минимально возможный баланс для услуги 10р. $max_present_sum = $balance-$service_present_cost+$accountinfo['credit']; // Максимально возможможная сумма подарка = баланс - стоимость услуги(10р.) } else { $max_present_sum = 0; } //******************************* Вычисление максимально возможной суммы подарка конец //***************** Обработка подарка начало function set_present($sender_login,$sender_user_id,$sender_account_id,$receiver_account_id,$present_sum,$present_type,$max_present_sum,$urfa_admin) { $length_credit = 0; $sign = ''; $res = ''; switch ($present_type) { case 'with_sign': $sign = 'Подарок от '.$sender_login.' , лицевой счет '.$sender_account_id; break; case 'anonimous': $sign = 'Анонимный подарок'; break; } $payment_time = time(); $burn_date = 0; $report_pay_receiver = $urfa_admin->rpcf_add_payment_for_account($receiver_account_id,$present_sum,$payment_time,$burn_date,11,$sign,$sign,''); //0x3110 if (isset($report_pay_receiver['payment_transaction_id'])) { $sign = 'Подарок на лицевой счет '.$receiver_account_id; $report_pay_sender = $urfa_admin->rpcf_add_payment_for_account($sender_account_id,-$present_sum,$payment_time,$burn_date,11,$sign,$sign,''); //0x3110 $urfa_admin->rpcf_add_once_service_to_user($sender_user_id,$sender_account_id,143,0,0,time(),1,0); //0x2555 $res = 'Перевод средств в размере '.sprintf("%01.2f руб.",$present_sum).' на лицевой счет '.$receiver_account_id.' осуществлен успешно'; } else { $res = 'Лицевой счет '.$receiver_account_id.' не существует'; } return($res); } $present_message = ''; $user_id = $_SESSION['URFA']['user_id']; $account_id = $_SESSION['URFA']['basic_account']; $urfa_present_type = JRequest::getVar('urfa_present_type'); $urfa_present_accept = JRequest::getVar('urfa_present_accept'); $urfa_present_sum = JRequest::getVar('urfa_present_sum'); $urfa_present_account_id = JRequest::getVar('urfa_present_account_id'); if (isset($urfa_present_type) && isset($urfa_present_accept) && isset($urfa_present_sum) && isset($urfa_present_account_id)) { if (is_numeric($urfa_present_sum)) { if ($urfa_present_sum>0 && $urfa_present_sum<=$max_present_sum) { if (is_numeric($urfa_present_account_id)) { // set_present($sender_login,$sender_user_id,$sender_account_id,$receiver_account_id,$present_sum,$present_type,$max_present_sum,$urfa_admin); $present_message = set_present($_SESSION['URFA']['login'],$user_id,$account_id,$urfa_present_account_id,$urfa_present_sum,$urfa_present_type,$max_present_sum,$urfa_admin); // print '
Login '.$_SESSION['URFA']['login'].'
$user_id '.$user_id.'
$account_id '.$account_id.'
$urfa_present_account_id '.$urfa_present_account_id.'
$urfa_present_sum '.$urfa_present_sum.'
$urfa_present_type '.$urfa_present_type.'
$max_present_sum '.$max_present_sum; $accountinfo = $urfa_admin->rpcf_get_accountinfo($_SESSION['URFA']['basic_account']); //0x2030 $balance = $accountinfo['balance']; if ($balance>=$service_present_cost) { // минимально возможный баланс для услуги 10р. $max_present_sum = $balance-$service_present_cost; // Максимально возможможная сумма подарка = баланс - стоимость услуги(10р.) } else $max_present_sum = 0; } else $present_message = 'Номер лицевого счета получателя должен быть числом'; } else $present_message = 'Сумма подарка должна быть в пределах от '.sprintf("%01.2f руб.",1).' до'.sprintf("%01.2f руб.",$max_present_sum); } else $present_message = 'Сумма подарка должна быть числом'; } //***************** Обработка подарка конец //******************************* Форма смены тарифа начало $form_title = '
'; if (isset($uri->_vars['urfa_credit_type'])) { unset($uri->_vars['urfa_credit_type']); } if (isset($uri->_vars['urfa_credit_accept'])) { unset($uri->_vars['urfa_credit_accept']); } $form_footer = '
'; $form_body = ''; $form_body = $form_body.' Номер лицевого счета вашего друга (не ошибитесь!)'; $form_body = $form_body.'

'; $form_body = $form_body.' Сумма подарка'; $form_body = $form_body.'

'; $form_body = $form_body.' Подписаться (Подпись : Подарок от '.$_SESSION['URFA']['login'].' , лицевой счет '.$account_id.')
'; $form_body = $form_body.' Анонимно (Подпись : Анонимный подарок)
'; $form_body = $form_body.'
'; $form_body = $form_body.'Я понимаю и принимаю условия перевода'; $form_body = $form_body.'

'; if ($max_present_sum>0) { $form_present = $form_title.$form_body.$form_footer; } else { $form_present = 'На вашем счету недостаточно средств для подарка другу'; } //******************************* Форма смены тарифа конец $row->text = preg_replace('/{max_present_sum}/', sprintf ("%01.2f руб.",$max_present_sum), $row->text); $row->text = preg_replace('/{balance}/', sprintf ("%01.2f руб.",$balance), $row->text); $row->text = preg_replace('/{form_present}/', $form_present, $row->text); $row->text = preg_replace('/{present_message}/', $present_message, $row->text); } }
==== HTML ====

С помощью услуги "Подарок другу" вы можете перевести деньги со своего счета на счет другого человека. Услуга платная, стоимость 10 рублей, которые снимаются с вашего счета в момент активации услуги. Сумма перевода снимаеться с вашего счета и начисляеться получателю в момент активации услуги. Вы можете подписаться под переводом или сделать его анонимно. Не забудьте уточнить правильный номер лицевого счета, ошибочно переведенные суммы возврату не подлежат.

{user_present}{present_message}

Ваш баланс

{balance}

Максимальная сумма подарка

{max_present_sum}

{form_present}

Так же вы можете отблагодарить администрацию сети, сделав подарок на лицевой счет 1.

==== Пример ====

С помощью услуги "Подарок другу" вы можете перевести деньги со своего счета на счет другого человека. Услуга платная, стоимость 10 рублей, которые снимаются с вашего счета в момент активации услуги. Сумма перевода снимаеться с вашего счета и начисляеться получателю в момент активации услуги. Вы можете подписаться под переводом или сделать его анонимно. Не забудьте уточнить правильный номер лицевого счета, ошибочно переведенные суммы возврату не подлежат.

Ваш баланс

2348.72 руб.

Максимальная сумма подарка

5338.72 руб.

Номер лицевого счета вашего друга (не ошибитесь!)

Сумма подарка

Подписаться (Подпись : Подарок от kayfolom , лицевой счет 1)
Анонимно (Подпись : Анонимный подарок)

Я понимаю и принимаю условия перевода

Так же вы можете отблагодарить администрацию сети, сделав подарок на лицевой счет 1.