Содержание

XML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/plugin-install.dtd">
<install version="1.5" type="plugin" group="content">
	<name>URFA Present</name>
	<author>Kayfolom</author>
	<authorEmail>ekorepov@ukhta-inform.ru</authorEmail>
	<authorUrl>authorUrl</authorUrl>
	<creationDate>2009</creationDate>
	<copyright>c</copyright>
	<license>license</license>
	<version>1.0</version>
	<description>Позволяет осуществлять денежные переводы между пользователями</description>
	<files>
		<filename plugin="urfa_present">urfa_present.php</filename>
	</files>
    <params />
</install>

PHP

<?php
 
defined( '_JEXEC' ) or die( 'Restricted access' );
 
//@ini_set("display_errors", "1");
//error_reporting(E_ALL);
 
require_once("./urfa/URFAClient.php");
 
$mainframe->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 '<BR>Login '.$_SESSION['URFA']['login'].'<BR>$user_id '.$user_id.'<BR>$account_id '.$account_id.'<BR>$urfa_present_account_id '.$urfa_present_account_id.'<BR>$urfa_present_sum '.$urfa_present_sum.'<BR>$urfa_present_type '.$urfa_present_type.'<BR>$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 = '<FORM METHOD="POST">';
		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>';
		$form_body = '';
   	    $form_body = $form_body.'<input name="urfa_present_account_id" MAXLENGTH="4" size="6" value=""> Номер лицевого счета вашего друга (не ошибитесь!)</input>';
		$form_body = $form_body.'<BR> <BR>';
   	    $form_body = $form_body.'<input name="urfa_present_sum" MAXLENGTH="6" size="6" value=""> Сумма подарка</input>';
		$form_body = $form_body.'<BR> <BR>';
		$form_body = $form_body.'<input name="urfa_present_type" type="radio" value="with_sign" checked> Подписаться (Подпись : Подарок от '.$_SESSION['URFA']['login'].' , лицевой счет '.$account_id.')<BR>';
		$form_body = $form_body.'<input name="urfa_present_type" type="radio" value="anonimous" align=left> Анонимно (Подпись : Анонимный подарок)<BR>';
		$form_body = $form_body.'<BR>';
   	    $form_body = $form_body.'<input name="urfa_present_accept" type="checkbox" value="accepted">Я понимаю и принимаю условия перевода</input>';
        $form_body = $form_body.'<BR> <BR> <input type="submit" value="Выполнить">';
        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.

 
/home/u18456/wiki.flintnet.ru/www/data/pages/joomla_plugin/urfa_present.txt · Последние изменения: 2009/08/10 15:26 От kayfolom
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki