Личный кабинет на готовом движке

Технические вопросы по UTM 5.0
Закрыто
zorg3
Сообщения: 55
Зарегистрирован: Пн окт 13, 2008 15:01

Сообщение zorg3 »

Kayfolom писал(а):
zorg3 писал(а):Подскажите пожалуйста обрабатываемые ключи к плагину замены интерфейса кассира. Хочется попробовать а что прописывать не могу понять!
Я точно не писал интерфейс кассира. Вы можете дать ссылку на первоисточник или здесь опубликовать код плагина?
extpay php

Код: Выделить всё

<?php

defined&#40; '_JEXEC' &#41; or die&#40; 'Restricted access' &#41;;

//@ini_set&#40;"display_errors", "1"&#41;;
error_reporting&#40;E_ALL&#41;;

jimport&#40; 'joomla.plugin.plugin' &#41;;
jimport&#40; 'joomla.database.database' &#41;;

require_once&#40;"/usr/local/www/urfa/URFAClient.php"&#41;;

//require_once&#40;"./urfa/URFAConfig.php"&#41;;

$mainframe->registerEvent&#40; 'onPrepareContent', 'plgUserPaymentModify' &#41;;

function plgUserPaymentModify&#40;&$row, &$params, $page=0&#41;&#123;
    $pos = strpos&#40;$row->text, 'payments&#125;'&#41;;
    if &#40;$pos > 0&#41; &#123;
//        $row->text = preg_replace&#40;'/&#123;user_credit&#125;/', '', $row->text&#41;;

		include &#40;"/usr/local/www/urfa/URFAConfig.php"&#41;;

		$UTMCore_Login=$_SESSION&#91;'URFA'&#93;&#91;'login'&#93;;
		$UTMCore_Password=$_SESSION&#91;'URFA'&#93;&#91;'password'&#93;;
		try &#123;
	        $urfa_admin = new URFAClient_Admin&#40;$UTMCore_Login,$UTMCore_Password&#41;;
//			$urfa_user5 = new URFAClient_User5&#40;$_SESSION&#91;'URFA'&#93;&#91;'login'&#93;, $_SESSION&#91;'URFA'&#93;&#91;'password'&#93;&#41;;
		    &#125; catch &#40;Exception $exception&#41; &#123; 
		         echo "Error in line ", $exception->getLine&#40;&#41;;
	    	     echo $exception->getMessage&#40;&#41;;
		   &#125; 
//*************************** Получение суииы платежей за месяц начало
//***************** Обработка страницы ввода платежей
        
	$pagehtml = '';
//	$pagehtml.=$_SESSION&#91;'URFA'&#93;&#91;'login'&#93;." ".$_SESSION&#91;'URFA'&#93;&#91;'password'&#93;;
	if &#40;strpos&#40;$row->text,'report_payments&#125;'&#41;<=0&#41;&#123;
        $is_searched = JRequest&#58;&#58;getVar&#40;'searched'&#41;;
        $is_payed = JRequest&#58;&#58;getVar&#40;'payed'&#41;;
        if &#40;isset&#40;$is_searched&#41;&#41; &#123; 
            $fio=JRequest&#58;&#58;getVar&#40;'fio'&#41;;
	$userlog=JRequest&#58;&#58;getVar&#40;'user'&#41;;
	$acc_id=JRequest&#58;&#58;getVar&#40;'account'&#41;;
	$patterns=array&#40;&#41;;
	if &#40;isset&#40;$userlog&#41;&& $userlog!='' && $fio==''&#41;&#123;
	$patterns&#91;0&#93;&#91;'pattern'&#93;=$userlog;
	$patterns&#91;0&#93;&#91;'what_id'&#93;=2;
	$patterns&#91;0&#93;&#91;'criteria_id'&#93;=1;
&#125;
	if &#40;isset&#40;$acc_id&#41;&& $acc_id!='' && $fio==''&#41;&#123;
	$patterns&#91;0&#93;&#91;'pattern'&#93;=$acc_id;
	$patterns&#91;0&#93;&#91;'what_id'&#93;=3;
	$patterns&#91;0&#93;&#91;'criteria_id'&#93;=1;
&#125;
	if &#40;isset&#40;$fio&#41; && $fio!=''&#41;&#123;
	$patterns&#91;0&#93;&#91;'pattern'&#93;=$fio;
	
	$patterns&#91;0&#93;&#91;'what_id'&#93;=5;
	$patterns&#91;0&#93;&#91;'criteria_id'&#93;=1;
&#125;
	$poles=array&#40;&#41;;
	$search=$urfa_admin->rpcf_search_users_new&#40;$poles,$patterns,0&#41;;
	$pagehtml.="<form method=POST>Ф.И.О. абонента&#58;<select name='account_id'>";
	for&#40;$i=0;$i<$search&#91;'user_data_size'&#93;;$i++&#41;&#123;
		$pagehtml.="<option value=".$search&#91;$i&#93;&#91;'basic_account'&#93;.">".$search&#91;$i&#93;&#91;'full_name'&#93;."  ".floor&#40;$search&#91;$i&#93;&#91;'balance'&#93;&#41;."руб. ".$search&#91;$i&#93;&#91;'login'&#93;."</option>";
		&#125;
	$pagehtml.="</select><br /><input type=hidden name='payed' value=1 />Сумма&#40;копейки отделять точкой!&#41;<input type=text name=payment /><input type=submit /></form>";
        &#125;elseif &#40;isset&#40;$is_payed&#41;&#41;&#123;
	$account=JRequest&#58;&#58;getVar&#40;'account_id'&#41;;
	$payment=JRequest&#58;&#58;getVar&#40;'payment'&#41;;
	if &#40;$_SESSION&#91;'URFA'&#93;&#91;'last_payed'&#93;!=$account || $_SESSION&#91;'URFA'&#93;&#91;'last_sum'&#93;!=$payment&#41;&#123;
	$date_now=$urfa_admin->rpcf_get_core_time&#40;&#41;;
	$_SESSION&#91;'URFA'&#93;&#91;'last_sum'&#93;=$payment;
	$payment=preg_replace&#40;'/,/','.',$payment&#41;;
	$_SESSION&#91;'URFA'&#93;&#91;'last_payed'&#93;=$account;
	$pagehtml="<p style='color&#58;green;'>Платеж в пользу абонента с лицевым счетом ";
	$pagehtml.=$account." в размере ".$payment."руб. успешно проведен!</p>";
	$ret=$urfa_admin->rpcf_add_payment_for_account&#40;$account,$payment,$date_now&#91;'time'&#93;,0,102&#41;;
	&#125;else&#123;
	$pagehtml='Вы не можете провести дважды платеж с одной и той же суммой на один и тот же аккаунт!<br>';
	$pagehtml.="Предыдущий ЛС&#58;".$_SESSION&#91;'URFA'&#93;&#91;'last_payed'&#93;."</br>Текущий ЛС&#58;".$account."<br>";
	$pagehtml.="Предыдущий платеж&#58;".$_SESSION&#91;'URFA'&#93;&#91;'last_sum'&#93;."<br>Текущий платеж&#58;".$payment;
	&#125;
/*	if &#40;$ret&#91;'payment_transaction_id'&#93;>0&#41;&#123;
	//success!!!!
//	$pagehtml.=$ret&#91;'payment_transaction_id'&#93;."<br>";
	&#125;else&#123;
	//fail!
	$pagehtml='<p style='color&#58;red;'>ПРОИЗОШЛА ОШИБКА! Платеж в пользу абонента с лицевым счетом ';
	$pagehtml.=$account." в размере ".&#40;int&#41;$payment." НЕ ПРОВЕДЕН!</p>";
//	$pagehtml='';
	&#125;*/
	&#125;else&#123;
	$pagehtml='';
//	$pagehtml.=$_SESSION&#91;'URFA'&#93;&#91;'login'&#93;." ".$_SESSION&#91;'URFA'&#93;&#91;'password'&#93;;

	$pagehtml.="<form method=POST>\n<br>";
	$pagehtml.="<table width='100%'>\n <tr>\n  <td style='align&#58;right;'>Лицевой счет&#58;<input type=text name='account' /></td>\n  <td style='align&#58;left;'>";
	$pagehtml.="Логин&#40;номер договора&#41; user&#58;<input type=text name='user' /></td>\n </tr>\n</table>";
	$pagehtml.="<br><br><br><div width='100%' align='center'>Фамилия&#58;<input type=text name='fio' /></div><br>";
	$pagehtml.="<input type=hidden name='searched' value=1 /><br>";
	$pagehtml.="<input type=submit /></form>";
	&#125;
	&#125;
	$reporthtml='';
//	$reporthtml.=$UTMCore_Login."<br>".$UTMCore_Password."<br>";
	if&#40;strpos&#40;$row->text,'report_payments&#125;'&#41;>0&#41;&#123;
	$date_now=strtotime&#40;"now"&#41;;
    	    $date_from=strtotime&#40;date&#40;"d.m.Y",time&#40;&#41;&#41;&#41;;
	    $reporthtml.="<br>С &#58;".date&#40;"d.m.Y H&#58;m&#58;s",$date_from&#41;." по&#58;".date&#40;"d.m.Y H&#58;m&#58;s",$date_now&#41;."<br>";
		try &#123;
	        $urfa_admin = new URFAClient_Admin&#40;$UTMCore_Login,$UTMCore_Password&#41;;
//			$urfa_user5 = new URFAClient_User5&#40;$_SESSION&#91;'URFA'&#93;&#91;'login'&#93;, $_SESSION&#91;'URFA'&#93;&#91;'password'&#93;&#41;;
		    &#125; catch &#40;Exception $exception&#41; &#123; 
		         echo "Error in line ", $exception->getLine&#40;&#41;;
	    	     echo $exception->getMessage&#40;&#41;;
		   &#125; 

	    $ret=$urfa_admin->rpcf_payments_report_owner&#40;$date_from,$date_now&#41;;
//		$ret=$urfa_admin->rpcf_payments_report_owner&#40;strtotime&#40;date&#40;"d.m.Y",time&#40;&#41;&#41;&#41;,strtotime&#40;time&#40;&#41;&#41;&#41;;
	    $reporthtml.="<table border='2px'><tr style='background&#58;yellow;color&#58;red;'><th>Номер платежа</th><th>Лиц счет</th><th>Логин&#40;номер договора&#41;</th><th>Платеж</th></tr>";
	    $sum=0;
	    for &#40;$i=0;$i<$ret&#91;'count'&#93;;$i++&#41;&#123;
	
		$reporthtml.='<tr><td>'.$ret&#91;$i&#93;&#91;'id'&#93;."</td><td>".$ret&#91;$i&#93;&#91;'account_id'&#93;."</td><td>".$ret&#91;$i&#93;&#91;'login'&#93;."</td><td>".$ret&#91;$i&#93;&#91;'payment'&#93;."</td></tr>";
		$sum+=$ret&#91;$i&#93;&#91;'payment'&#93;;
	    &#125;;
	    $reporthtml.="<tr><td colspan=3>Итого&#58;</td><td style='color&#58;red;'>".$sum."</td></tr></table>";

	&#125;
        $row->text = preg_replace&#40;'/&#123;payments&#125;/', $pagehtml, $row->text&#41;;
	$row->text = preg_replace&#40;'/&#123;report_payments&#125;/',$reporthtml,$row->text&#41;;
    &#125;
&#125; 

extpay xml

Код: Выделить всё

 <?xml version="1.0" encoding="utf-8" ?> 
  <!DOCTYPE install &#40;View Source for full doctype...&#41;> 
- <install version="1.5" type="plugin" group="content">
  <name>URFA External Payments</name> 
  <author>mikkey finn</author> 
  <authorEmail>mikevlz@gmail.ru</authorEmail> 
  <authorUrl>authorUrl</authorUrl> 
  <creationDate>2009</creationDate> 
  <copyright>c</copyright> 
  <license>license</license> 
  <version>1.0</version> 
  <description>description</description> 
- <files>
  <filename plugin="extpay">extpay.php</filename> 
  </files>
  <params /> 
  </install>

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

Обратите внимание на строчки $row->text = preg_replace('/{payments}/', $pagehtml, $row->text);

$row->text - это текст вашей страницы.
preg_replace ищет на ней теги вида {payments} и заменяет на реальный html код сгенерированный плагином.

Т.е. на странице вам надо разместить {payments} и {report_payments}. Не забудьте посмотреть html код готовой страницы - необходимо чтоб тэги были не разрывны. Иногда, визуальные редакторы любят вставлять мусор в слова.

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

На данный момент функция "rpcf_add_service_to_user" не реализована? Как с помощью реализованных функций добавить услугу передачи ip траффика?

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion »

Отчегож подключение услуг отлично работает

Код: Выделить всё

$urfa_admin = new URFAClient_Admin&#40;$login,$pass&#41;;
\\Услуга передачи IP трафика
$test1=array&#40;"user_id"=>"2","account_id"=>"2","service_id"=>"5","service_type"=>"3","tariff_link_id"=>"0","is_blocked"=>"0",
"discount_period_id"=>"143","ip_groups"=>array&#40;0=>array&#40;"ip_address"=>"192.168.0.146","mask"=>"255.255.255.255","iptraffic_login"=>"unlimtest1","iptraffic_password"=>"test","ip_not_vpn"=>"0","router_id"=>"1"&#41;&#41;&#41;;
\\Периодическая услуга
$test1=array&#40;"user_id"=>"2","account_id"=>"2","service_id"=>"6","service_type"=>"2","tariff_link_id"=>"0","is_blocked"=>"0",
"discount_period_id"=>"143"&#41;;
$test = $urfa_admin->rpcf_add_service_to_user&#40;$test1&#41;;

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

Не могли бы вы выложить код этой функции rpcf_add_service_to_user

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion »

Код: Выделить всё

function rpcf_add_service_to_user&#40;$service&#41; &#123; //0x2551
      $ret = array&#40;&#41;;
      if &#40;!$this->connection->urfa_call&#40;0x2551&#41;&#41; &#123;
         print "Error calling function ". __FUNCTION__ ."\n";
         return FALSE;
      &#125;
      $packet = $this->connection->getPacket&#40;&#41;;
      $packet->DataSetInt&#40;$service&#91;'user_id'&#93;&#41;;
      $packet->DataSetInt&#40;$service&#91;'account_id'&#93;&#41;;
      $packet->DataSetInt&#40;$service&#91;'service_id'&#93;&#41;;
      $packet->DataSetInt&#40;$service&#91;'service_type'&#93;&#41;;
      $packet->DataSetString&#40;$service&#91;'return_type'&#93;&#41;;
      $packet->DataSetInt&#40;$service&#91;'tariff_link_id'&#93;&#41;;

      switch&#40;$service&#91;'service_type'&#93;&#41;
      &#123;
         case 1&#58; //once service
             break;
         case 2&#58; //periodic service
            $packet->DataSetInt&#40;$service&#91;'slink_id'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'is_blocked'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'discount_period_id'&#93;&#41;;
            if&#40;$service&#91;'start_date'&#93; == 0&#41; $service&#91;'start_date'&#93; = time&#40;&#41;;
            $packet->DataSetInt&#40;$service&#91;'start_date'&#93;&#41;;
            if&#40;$service&#91;'expire_date'&#93; == 0&#41; $service&#91;'expire_date'&#93; = mktime&#40;0, 0, 0, 1, 1, 2037&#41;;
            $packet->DataSetInt&#40;$service&#91;'expire_date'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'unabon'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'unprepay'&#93;&#41;;
            break;
         case 3&#58; //iptraffic service
            $packet->DataSetInt&#40;$service&#91;'slink_id'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'is_blocked'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'discount_period_id'&#93;&#41;;
            if&#40;$service&#91;'start_date'&#93; == 0&#41; $service&#91;'start_date'&#93; = time&#40;&#41;;
            $packet->DataSetInt&#40;$service&#91;'start_date'&#93;&#41;;
            if&#40;$service&#91;'expire_date'&#93; == 0&#41; $service&#91;'expire_date'&#93; = mktime&#40;0, 0, 0, 1, 1, 2037&#41;;
            $packet->DataSetInt&#40;$service&#91;'expire_date'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'unabon'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'unprepay'&#93;&#41;;
            $ip_groups_count = count&#40;$service&#91;'ip_groups'&#93;&#41;;
            $packet->DataSetInt&#40;$ip_groups_count&#41;;
            for&#40;$i=0;$i<$ip_groups_count;$i++&#41; &#123;
               $packet->DataSetIPAddress&#40;$service&#91;'ip_groups'&#93;&#91;$i&#93;&#91;'ip_address'&#93;&#41;;
               $packet->DataSetIPAddress&#40;$service&#91;'ip_groups'&#93;&#91;$i&#93;&#91;'mask'&#93;&#41;;
               $packet->DataSetString&#40;$service&#91;'ip_groups'&#93;&#91;$i&#93;&#91;'mac'&#93;&#41;;
               $packet->DataSetString&#40;$service&#91;'ip_groups'&#93;&#91;$i&#93;&#91;'iptraffic_login'&#93;&#41;;
               $packet->DataSetString&#40;$service&#91;'ip_groups'&#93;&#91;$i&#93;&#91;'iptraffic_allowed_cid'&#93;&#41;;
               $packet->DataSetString&#40;$service&#91;'ip_groups'&#93;&#91;$i&#93;&#91;'iptraffic_password'&#93;&#41;;
               $packet->DataSetInt&#40;$service&#91;'ip_groups'&#93;&#91;$i&#93;&#91;'ip_not_vpn'&#93;&#41;;
               $packet->DataSetInt&#40;$service&#91;'ip_groups'&#93;&#91;$i&#93;&#91;'dont_use_fw'&#93;&#41;;
               $packet->DataSetInt&#40;$service&#91;'ip_groups'&#93;&#91;$i&#93;&#91;'router_id'&#93;&#41;;
            &#125;
            $quotas_count = count&#40;$service&#91;'quotas'&#93;&#41;;
            $packet->DataSetInt&#40;$quotas_count&#41;;
            for&#40;$i=0;$i<$quotas_count;$i++&#41; &#123;
               $packet->DataSetInt&#40;$service&#91;'quotas'&#93;&#91;$i&#93;&#91;'tclass_id'&#93;&#41;;
               $packet->DataSetLong&#40;$service&#91;'quotas'&#93;&#91;$i&#93;&#91;'quota'&#93;&#41;;
            &#125;
            break;
         case 4&#58; //hotspot service
             break;
         case 5&#58; //dialup service
            $packet->DataSetInt&#40;$service&#91;'slink_id'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'is_blocked'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'discount_period_id'&#93;&#41;;
            if&#40;$service&#91;'start_date'&#93; == 0&#41; $service&#91;'start_date'&#93; = now&#40;&#41;;
            $packet->DataSetInt&#40;$service&#91;'start_date'&#93;&#41;;
            if&#40;$service&#91;'expire_date'&#93; == 0&#41; $service&#91;'expire_date'&#93; = max_time&#40;&#41;;
            $packet->DataSetInt&#40;$service&#91;'expire_date'&#93;&#41;;
            $packet->DataSetString&#40;$service&#91;'dialup_login'&#93;&#41;;
            $packet->DataSetString&#40;$service&#91;'dialup_password'&#93;&#41;;
            $packet->DataSetString&#40;$service&#91;'dialup_allowed_cid'&#93;&#41;;
            $packet->DataSetString&#40;$service&#91;'dialup_allowed_csid'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'callback_enabled'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'unabon'&#93;&#41;;
            $packet->DataSetInt&#40;$service&#91;'unprepay'&#93;&#41;;
            break;
         case 6&#58; //telephony service
         break;

      &#125;
      $this->connection->urfa_send_param&#40;$packet&#41;;
      if&#40;$x = $this->connection->urfa_get_data&#40;&#41;&#41; &#123;
         $this->connection->urfa_get_data&#40;&#41;;
         if&#40;$service&#91;'return_type'&#93; == "integer_return"&#41; &#123;
            $ret&#91;'slink_id'&#93;=$x->DataGetInt&#40;&#41;;
            if&#40;$ret&#91;'slink_id'&#93; == -1&#41; return -1;
         &#125; else &#123;
            $error_msg=$x->DataGetString&#40;&#41;;
            if&#40;$error_msg != ""&#41; &#123;
               $ret&#91;'error_msg'&#93;=$error_msg;
               return -1;
            &#125;
         &#125;
      &#125; else &#123;
         return -1;
      &#125;
      return $ret;

   &#125;
&#125;
[/code]

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

Благодарю

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

Кстати в плагинах лучше заменить
if ($pos > 0)
на
if($pos!==false)
потому что если искомый шаблон стоит в самом начале материала strpos вернет 0

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

swibl писал(а):Кстати в плагинах лучше заменить
if ($pos > 0)
на
if($pos!==false)
потому что если искомый шаблон стоит в самом начале материала strpos вернет 0
Да, согласен. Изменил у себя.

parazitUTM
Сообщения: 1
Зарегистрирован: Пн июл 06, 2009 19:41

Сообщение parazitUTM »

Chrst, пришлите и мне пожалста свой кабинетик тоже поюзаю :) за ранее спасибки
mad_driver(@)mail.ru

loki_
Сообщения: 46
Зарегистрирован: Вс фев 12, 2006 16:35

Сообщение loki_ »


Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

Разобрался с правами php на мастерхосте. Опубликовал плагин авторизации и плагин информации http://wiki.flintnet.ru/doku.php?id=joo ... :user_info

Потихоньку буду добавлять остальное....

parazit
Сообщения: 50
Зарегистрирован: Чт июл 02, 2009 07:28

Сообщение parazit »

parazitUTM писал(а):Chrst, пришлите и мне пожалста свой кабинетик тоже поюзаю :) за ранее спасибки
mad_driver(@)mail.ru
блин не тот адрес дал сорри
mad_driver85(@)mail.ru

icenet
Сообщения: 42
Зарегистрирован: Чт май 28, 2009 11:09

Сообщение icenet »

2 Kayfolom
Почемуто при установке user_info, вылетает следующее.

"Ошибка! Не найден XML-файл установки Joomla!"

MiO
Сообщения: 303
Зарегистрирован: Ср окт 01, 2008 23:34

Сообщение MiO »

Прошу последнюю рабочую версию личного кабинета, очень понадобилась balanser @ gmail.com

Закрыто