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

Технические вопросы по UTM 5.0
Закрыто
edison
Сообщения: 68
Зарегистрирован: Сб авг 15, 2009 11:34

Сообщение edison »

ds писал(а):
edison писал(а):Вопрос к DS kayfolom а как насчет функции а лучше плагина для активации карты оплаты???

Что по этому поводу?? В утм кабинете есть эта функция.
Насколько я понимаю, речь про функцию rpcf_user5_card_payment. Пишется за 1 минуту вместе с чтением примеров.
а примерчик набросать :)

edison
Сообщения: 68
Зарегистрирован: Сб авг 15, 2009 11:34

Сообщение edison »

Кайфолом а почему в вики не все плагины выложены??

Например кредит по времени у меня прекрасно работает но там его нет. И перевод средств тоже отлично работает.

Вот кстати отчет по трафику 100% работающий от Интеграла, переделанный мной под МИСКУЛЬ
PHP

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

<?php
 
//@ini_set&#40;"display_errors", "1"&#41;;
//error_reporting&#40;E_ALL&#41;;
 
defined&#40; '_JEXEC' &#41; or die&#40; 'Restricted access' &#41;;
 
require_once&#40;"./urfa/URFAClient.php"&#41;;
 
$mainframe->registerEvent&#40; 'onPrepareContent', 'plgReport_TR_Modify' &#41;;
 
function plgReport_TR_Modify&#40;&$row, &$params, $page=0&#41;&#123;

    $pos_report = strpos&#40;$row->text, '&#123;traffic_period_report&#125;'&#41;;
    if &#40;$pos_report!==false&#41; &#123;
        $row->text = preg_replace&#40;'/&#123;traffic_period_report&#125;/', '', $row->text&#41;;
		include &#40;"./urfa/URFAConfig.php"&#41;;
		$db_connect=mysql_connect&#40;$db_urfa_host,$db_urfa_user,$db_urfa_password&#41; or die &#40;"Connect failed"&#41;;
		mysql_select_db&#40;$db_urfa_base,$db_connect&#41;;
//************************************************************************************************************************		
// Функция выбора даты
@$btn=$_POST&#91;'btn'&#93;;
//echo $btn;

function addopt &#40;$str, $val, $select&#41;
&#123;
  if &#40;$select&#41;
  &#123;
    $ret='<OPTION value='.$val.' selected>'.$str.'</OPTION>';
  &#125; else
  &#123;
    $ret='<OPTION value='.$val.'>'.$str.'</OPTION>';
  &#125;
  
  return $ret;
&#125;

//$btn=$_POST&#91;'btn'&#93;;

if &#40;isset&#40;$btn&#41;&#41;
&#123;
  $d1=$_POST&#91;'daystart'&#93;;
  $d2=$_POST&#91;'dayend'&#93;;
  $m1=$_POST&#91;'monthstart'&#93;;
  $m2=$_POST&#91;'monthend'&#93;;
  $y1=$_POST&#91;'yearstart'&#93;;
  $y2=$_POST&#91;'yearend'&#93;;
  $torder=$_POST&#91;'torder'&#93;;
//  $sorttype=$_POST&#91;'sorttype'&#93;;
&#125; else
&#123;
  $y1=$y2=date&#40;"Y"&#41;;
  $m1=date&#40;"m"&#41;;
  $d1=mktime&#40;0, 0, 0, $m1, 1, $y1&#41;;
  $d1=date&#40;"d",$d1&#41;;
  $m2=$m1;
  $d2=date&#40;"d"&#41;;
  $torder="1";
  $sorttype="asc";
&#125;


// Выбор даты начала
$form_select_sdate = "";
$form_select_sdate = "	<form method=POST><SELECT class=text_i name=day1 ONCHANGE=\"form.daystart.value=options&#91;this.selectedIndex&#93;.value\">";
		
$x=1;
while &#40;$x<32&#41;
&#123; 
  if &#40;$x<10&#41;
  &#123;
    $y='0';
  &#125; else 
  &#123;
    $y='';
  &#125;

  if &#40;$x==$d1&#41;
  &#123;
    $form_select_sdate .= addopt &#40;$y.$x,$x,1&#41;;
  &#125; else
  &#123; 
    $form_select_sdate .= addopt &#40;$y.$x,$x,0&#41;;
  &#125;
  $x++;
&#125;

$form_select_sdate .= '</SELECT>
<SELECT class=text_i name=month1 ONCHANGE="form.monthstart.value=options&#91;this.selectedIndex&#93;.value">';
if &#40;$m1==1&#41; &#123;$form_select_sdate .= addopt &#40;'январь',1,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'январь',1,0&#41;;&#125;
if &#40;$m1==2&#41; &#123;$form_select_sdate .= addopt &#40;'февраль',2,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'февраль',2,0&#41;;&#125;
if &#40;$m1==3&#41; &#123;$form_select_sdate .= addopt &#40;'март',3,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'март',3,0&#41;;&#125;
if &#40;$m1==4&#41; &#123;$form_select_sdate .= addopt &#40;'апрель',4,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'апрель',4,0&#41;;&#125;
if &#40;$m1==5&#41; &#123;$form_select_sdate .= addopt &#40;'май',5,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'май',5,0&#41;;&#125;
if &#40;$m1==6&#41; &#123;$form_select_sdate .= addopt &#40;'июнь',6,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'июнь',6,0&#41;;&#125;
if &#40;$m1==7&#41; &#123;$form_select_sdate .= addopt &#40;'июль',7,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'июль',7,0&#41;;&#125;
if &#40;$m1==8&#41; &#123;$form_select_sdate .= addopt &#40;'август',8,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'август',8,0&#41;;&#125;
if &#40;$m1==9&#41; &#123;$form_select_sdate .= addopt &#40;'сентябрь',9,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'сентябрь',9,0&#41;;&#125;
if &#40;$m1==10&#41; &#123;$form_select_sdate .= addopt &#40;'октябрь',10,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'октябрь',10,0&#41;;&#125;
if &#40;$m1==11&#41; &#123;$form_select_sdate .= addopt &#40;'ноябрь',11,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'ноябрь',11,0&#41;;&#125;
if &#40;$m1==12&#41; &#123;$form_select_sdate .= addopt &#40;'декабрь',12,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;'декабрь',12,0&#41;;&#125;
$form_select_sdate .= '</SELECT>
<SELECT class=text_i name=year1 ONCHANGE="form.yearstart.value=options&#91;this.selectedIndex&#93;.value">';
$year = date&#40;"Y"&#41;;
if &#40;$y1== $year&#41;    &#123;$form_select_sdate .= addopt &#40;$year,$year,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;$year,$year,0&#41;;&#125;
if &#40;$y1== $year-1 &#41; &#123;$form_select_sdate .= addopt &#40;$year-1,$year-1,1&#41;;&#125; else &#123;$form_select_sdate .= addopt &#40;$year-1,$year-1,0&#41;;&#125;
$form_select_sdate .= '</SELECT>Дата начала&#58;<br>';
/// Конец выбора даты начала

// Выбор даты окончания
$form_select_edate = "";
//выбор дня недели
$form_select_edate .= '<SELECT class=text_i name=day2 ONCHANGE="form.dayend.value=options&#91;this.selectedIndex&#93;.value">';
$x=1;
while &#40;$x<32&#41;
&#123; 
  if &#40;$x<10&#41;
  &#123;
    $y='0';
  &#125; else 
  &#123;
    $y='';
  &#125;

  if &#40;$x==$d2&#41;
  &#123;
    $form_select_edate .= addopt &#40;$y.$x,$x,1&#41;;
  &#125; else
  &#123; 
    $form_select_edate .= addopt &#40;$y.$x,$x,0&#41;;
  &#125;
  $x++;
&#125;
$form_select_edate .= '</SELECT>

<SELECT class=text_i name=month2 ONCHANGE="form.monthend.value=options&#91;this.selectedIndex&#93;.value">';
if &#40;$m2==1&#41; &#123;$form_select_edate .= addopt &#40;'январь',1,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'январь',1,0&#41;;&#125;
if &#40;$m2==2&#41; &#123;$form_select_edate .= addopt &#40;'февраль',2,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'февраль',2,0&#41;;&#125;
if &#40;$m2==3&#41; &#123;$form_select_edate .= addopt &#40;'март',3,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'март',3,0&#41;;&#125;
if &#40;$m2==4&#41; &#123;$form_select_edate .= addopt &#40;'апрель',4,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'апрель',4,0&#41;;&#125;
if &#40;$m2==5&#41; &#123;$form_select_edate .= addopt &#40;'май',5,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'май',5,0&#41;;&#125;
if &#40;$m2==6&#41; &#123;$form_select_edate .= addopt &#40;'июнь',6,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'июнь',6,0&#41;;&#125;
if &#40;$m2==7&#41; &#123;$form_select_edate .= addopt &#40;'июль',7,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'июль',7,0&#41;;&#125;
if &#40;$m2==8&#41; &#123;$form_select_edate .= addopt &#40;'август',8,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'август',8,0&#41;;&#125;
if &#40;$m2==9&#41; &#123;$form_select_edate .= addopt &#40;'сентябрь',9,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'сентябрь',9,0&#41;;&#125;
if &#40;$m2==10&#41; &#123;$form_select_edate .= addopt &#40;'октябрь',10,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'октябрь',10,0&#41;;&#125;
if &#40;$m2==11&#41; &#123;$form_select_edate .= addopt &#40;'ноябрь',11,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'ноябрь',11,0&#41;;&#125;
if &#40;$m2==12&#41; &#123;$form_select_edate .= addopt &#40;'декабрь',12,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'декабрь',12,0&#41;;&#125;
$form_select_edate .= '</SELECT>

<SELECT name=year2 ONCHANGE="form.yearend.value=options&#91;this.selectedIndex&#93;.value">';
if &#40;$y2== $year&#41;   &#123;$form_select_edate .= addopt &#40;$year,$year,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;$year,$year,0&#41;;&#125;
if &#40;$y2== $year-1&#41; &#123;$form_select_edate .= addopt &#40;$year-1,$year-1,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;$year-1,$year-1,0&#41;;&#125;
$form_select_edate .= '</SELECT>Дата окончания&#58;<br>
         <input type=hidden value="'.$d1.'" name=daystart>
         <input type=hidden value="'.$m1.'" name=monthstart>
         <input type=hidden value="'.$y1.'" name=yearstart>
         <input type=hidden value="'.$d2.'" name=dayend>
         <input type=hidden value="'.$m2.'" name=monthend>
         <input type=hidden value="'.$y2.'" name=yearend>
         <input type=hidden value="1" name=btn>';
$form_select_edate .= 'Группировка&nbsp;';

$form_select_edate .= '<SELECT class=text_i name=torder ONCHANGE="form.trafforder.value=options&#91;this.selectedIndex&#93;.value">';
	if &#40;$torder==1&#41; &#123;$form_select_edate .= addopt &#40;'общая',1,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'общая',1,0&#41;;&#125;
	if &#40;$torder==2&#41; &#123;$form_select_edate .= addopt &#40;'по дням',2,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'по дням',2,0&#41;;&#125;
	if &#40;$torder==3&#41; &#123;$form_select_edate .= addopt &#40;'по часам',3,1&#41;;&#125; else &#123;$form_select_edate .= addopt &#40;'по часам',3,0&#41;;&#125;
$form_select_edate .= '</SELECT>';
$form_select_edate .= '<input type=submit value="Показать">
         </form>';
// Конец выбора даты окончания
$data_1=mktime&#40;0, 0, 0, $m1, $d1, $y1&#41;;
$data_2=mktime&#40;23, 59, 59, $m2, $d2, $y2&#41;;

$raznica=$data_2-$data_1;
// Конец - Функция выбора даты
//************************************************************************************************************************
// Запросы к базе на выбор траффика
$result_sql = "";
if &#40;$btn == "1"&#41;
&#123;
 if &#40;$torder == "1"&#41;
 &#123;
	$q = '
		SELECT 
		  discount_transactions_iptraffic_all.account_id,
		  Sum&#40;discount_transactions_iptraffic_all.bytes&#41; AS bytes,
		  Sum&#40;discount_transactions_iptraffic_all.discount&#41; AS discount,
		  t_class.t_class_name,
		  discount_transactions_iptraffic_all.base_cost
		FROM
		  discount_transactions_iptraffic_all
		  LEFT OUTER JOIN t_class ON &#40;t_class.id = discount_transactions_iptraffic_all.t_class&#41;
		WHERE
		  discount_transactions_iptraffic_all.account_id = '.$_SESSION&#91;'URFA'&#93;&#91;'basic_account'&#93;.' AND 
		  discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND 
		  discount_transactions_iptraffic_all.discount_date <= '.$data_2.'
		GROUP BY
		  discount_transactions_iptraffic_all.account_id,
		  t_class.t_class_name,
		  discount_transactions_iptraffic_all.base_cost
		';

		//echo $q1;
    		$result=mysql_query &#40;$q&#41;;

	  $result_sql .= "<table width=500 border=1 bordercolor=#5283CF cellspacing=0 cellpadding=5>
			<tr>
			<td align=center>Дата начала</td>
			<td align=center>Дата окончания</td>
			<td align=center>Тип траффика</td>
			<td align=center>Цена за 1Мб</td>
			<td align=center>Траффик&#40;Мб&#41;</td>
			<td align=center>Сумма</td>
			</tr>";

		while &#40;$row1 = mysql_fetch_assoc&#40;$result&#41;&#41; 
		&#123;
         	 if &#40;isset&#40;$row1&#91;'bytes'&#93;&#41;&#41;
	         &#123;
		  $traff = round&#40;$row1&#91;'bytes'&#93;/1024/1024, 3&#41;;
		  $traff = str_replace&#40;"." , "," , $traff&#41;;
	 	 &#125;else
		 &#123;
	          $traff = "&nbsp;";
	         &#125;

		$summa = round&#40;$row1&#91;'discount'&#93;, 2&#41;;
		$startdate  = $d1."/".$m1."/".$y1;
		$enddate = $d2."/".$m2."/".$y2;
		  if &#40;!isset&#40;$traff&#41;&#41; &#123; $traff = 0; &#125;
		
		$result_sql .= "	<tr>
					<td align=center>".$startdate."</td>
					<td align=center>".$enddate."</td>
					<td align=right>".$row1&#91;'t_class_name'&#93;."</td>
					<td align=right>".$row1&#91;'base_cost'&#93;."</td>
					<td align=right>".$traff."</td>
					<td align=right>".$summa."</td>
					</tr>";

		&#125;
	  	$result_sql .=	"</table>";

  &#125;elseif &#40;$torder == "2"&#41;
//********************************************************
  &#123;
	if &#40;$raznica <= "2678400" &#41; 
	&#123;
	$all_summa=0;	
	$q = '
		SELECT 
		  discount_transactions_iptraffic_all.account_id AS aid,
		  Sum&#40;discount_transactions_iptraffic_all.bytes&#41; AS bytes,
		  discount_transactions_iptraffic_all.discount_date_day AS day,
		  discount_transactions_iptraffic_all.base_cost,
		  SUM&#40;discount_transactions_iptraffic_all.discount&#41; AS discount,
  		  t_class.t_class_name
		FROM
		  discount_transactions_iptraffic_all
		  LEFT OUTER JOIN t_class ON &#40;t_class.id = discount_transactions_iptraffic_all.t_class&#41;
		WHERE
		  discount_transactions_iptraffic_all.account_id = '.$_SESSION&#91;'URFA'&#93;&#91;'basic_account'&#93;.' AND 
		  discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND 
		  discount_transactions_iptraffic_all.discount_date <= '.$data_2.'
		GROUP BY
		  discount_transactions_iptraffic_all.account_id,
		  discount_transactions_iptraffic_all.discount_date_day,
		  discount_transactions_iptraffic_all.base_cost,
		  t_class.t_class_name
		ORDER BY
		  day ASC';
    		$result=mysql_query &#40;$q&#41;;
  	$result_sql .= "<table width=500 border=1 bordercolor=#5283CF cellspacing=0 cellpadding=2>
		<tr>
		<td align=center>Дата</a></td>
		<td align=center>Тип траффика</td>
		<td align=center>Цена за 1Мб</td>
		<td align=center>Траффик&#40;Мб&#41;</a></td>
		<td align=center>Сумма</td>
		</tr>";
		
	while &#40;$row1 = mysql_fetch_assoc&#40;$result&#41;&#41; 
	&#123;	
         if &#40;isset&#40;$row1&#91;'bytes'&#93;&#41;&#41;
         &#123;
	  $traff = round&#40;$row1&#91;'bytes'&#93;/1024/1024, 4&#41;;
	  $traff = str_replace&#40;"." , "," , $traff&#41;;
	  $all_summa = $all_summa + $row1&#91;'discount'&#93;;
	 &#125;else
	 &#123;
          $traff = "&nbsp;";
         &#125;

	$data=date &#40;"d/m/Y", $row1&#91;'day'&#93;&#41;;
	$summa = round&#40;$row1&#91;'discount'&#93;, 2&#41;;


  	$result_sql .= "<tr>
		<td align=center>".$data."</td>
		<td>".$row1&#91;'t_class_name'&#93;."</td>
		<td align=right>".$row1&#91;'base_cost'&#93;."</td>
		<td align=right>".$traff."</td>
		<td align=right>".$summa."</td>
	</tr>";

	&#125;

	$all_summa = round&#40;$all_summa, 2&#41;;
  	$result_sql .= "<tr>
		<td colspan=3><b>Итого</b></td>
		<td align=right><b>&nbsp;</b></td>
		<td align=right><b>".$all_summa."</b></td>
		</tr>";
  	$result_sql .= "</table>";
        &#125;else&#123; $result_sql = "Выберите период с разницой не более 1 месяца."; &#125;
	
  //********************************************************
  &#125;elseif &#40;$torder == "3"&#41;
  &#123;
  
  // Сортировка по часам ***********************************
	if &#40;$raznica <= "86400" &#41; 
	&#123;
		$all_summa=0;	
		$q = 'SELECT
				discount_transactions_iptraffic_all.account_id AS aid,
				Sum&#40;discount_transactions_iptraffic_all.bytes&#41; AS bytes,
				discount_transactions_iptraffic_all.discount_date_hour AS hours,
				t_class.t_class_name,
				discount_transactions_iptraffic_all.base_cost,
				Sum&#40;discount_transactions_iptraffic_all.discount&#41; AS discount
			FROM 
				discount_transactions_iptraffic_all
				LEFT OUTER JOIN t_class on t_class.id=discount_transactions_iptraffic_all.t_class
			WHERE
				discount_transactions_iptraffic_all.account_id = '.$_SESSION&#91;'URFA'&#93;&#91;'basic_account'&#93;.' AND
				t_class.is_deleted = 0 AND
				discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND
				discount_transactions_iptraffic_all.discount_date <= '.$data_2.'
			GROUP BY
				discount_transactions_iptraffic_all.discount_date_hour,
				discount_transactions_iptraffic_all.account_id,
				t_class.t_class_name,
				discount_transactions_iptraffic_all.base_cost
			ORDER BY
				hours ASC';
    		$result=mysql_query &#40;$q&#41;;

  		$result_sql .="<table width=500 border=1 bordercolor=#5283CF cellspacing=0 cellpadding=2>
		<tr>
		<td align=center>Дата</a></td>
		<td align=center>Тип трафика</a></td>
		<td align=center>Цена за 1Мб</a></td>
		<td align=center>Трафик&#40;Мб&#41;</a></td>
		<td align=center>Сумма</td>
		</tr>";
		
		while &#40;$row1 = mysql_fetch_assoc&#40;$result&#41;&#41; 
		&#123;	
	         if &#40;isset&#40;$row1&#91;'bytes'&#93;&#41;&#41;
	         &#123;
		  $traff = round&#40;$row1&#91;'bytes'&#93;/1024/1024, 4&#41;;
		  $traff = str_replace&#40;"." , "," , $traff&#41;;
	  	  $all_summa = $all_summa + $row1&#91;'discount'&#93;;
		 &#125;else
		 &#123;
	          $traff = "&nbsp;";
	         &#125;
	
		 $summa = round&#40;$row1&#91;'discount'&#93;, 2&#41;;
		 $data=date&#40;"d/m/Y - H&#58;i&#58;s", $row1&#91;'hours'&#93;&#41;;
	
	  	$result_sql .= "<tr>
			<td align=center>".$data."</td>
			<td align=center>".$row1&#91;'t_class_name'&#93;."</td>
			<td align=right>".$row1&#91;'base_cost'&#93;."</td>
			<td align=right>".$traff."</td>
			<td align=right>".$summa."</td>
		</tr>";
		&#125;
	
		$all_summa = round&#40;$all_summa, 2&#41;;
	  	$result_sql .= "<tr>
		<td colspan=3><b>Итого</b></td>
		<td align=right><b>&nbsp;</b></td>
		<td align=right><b>".$all_summa."</b></td>
		</tr>";

	  	$result_sql .= "</table>";
        &#125;else&#123; $result_sql = "Выберите период с разницой не более одних суток "; &#125;

	


  //********************************************************
  &#125;elseif &#40;$torder == "4"&#41;
  &#123;
  // Сортировка по месяцам
  echo "По месяцам";
  &#125;
&#125;

//***********************************************************************************************************************
        $row->text = preg_replace&#40;'/&#123;traffic_period_form&#125;/', $form_select_sdate.$form_select_edate, $row->text&#41;;
    	$row->text = preg_replace&#40;'/&#123;traffic_period_report_table&#125;/', $result_sql, $row->text&#41;;
	&#125;
&#125;

?>
XML

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

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install SYSTEM "http&#58;//dev.joomla.org/xml/1.5/plugin-install.dtd">
<install version="1.5" type="plugin" group="content">
	<name>Отчет по траффику</name>
	<author>Integral</author>
	<authorEmail>es@konstanta.ru</authorEmail>
	<authorUrl>authorUrl</authorUrl>
	<creationDate>2009</creationDate>
	<copyright>c</copyright>
	<license>license</license>
	<version>1.0</version>
	<description>Отчет по траффику</description>
	<files>
		<filename plugin="report_traffic">report_traffic.php</filename>
	</files>
    <params />
</install>

Прошу добавить в вики сам хотел но мне сказали ждите пароль на почту прошло 3 дня но так и не пришел!

gadmin
Сообщения: 24
Зарегистрирован: Пн дек 04, 2006 11:29

Сообщение gadmin »

Chrst, пришлите и мне пожалста свой кабинет, спасибо за ранее
kotov@psk-net.ru

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

Сообщение Kayfolom »

На http://wiki.flintnet.ru убрал необходимость регистрации для правки-добавления

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

Сообщение icenet »

user_info

Эх, немного не под нас данный плагин :(

У нас тариф заведен так:


периодическая услуга = абон плата
тарифный план.
Получается, что стоимость =0, а выводить это для пользователя как то не то, будут много вопросов.

+ еще я так понимаю, что остаток трафика учитывается, если в тарифе указать предоплачеваемый
трафик?
А как быть если стоят границы?
Когда стоят границы еще не верно отображаются стоимости трафика по временным диапазонам.

Может у кого есть переделанный пож такую схему?

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

Сообщение Kayfolom »

icenet писал(а):user_info

Эх, немного не под нас данный плагин :(

У нас тариф заведен так:


периодическая услуга = абон плата
тарифный план.
Получается, что стоимость =0, а выводить это для пользователя как то не то, будут много вопросов.

+ еще я так понимаю, что остаток трафика учитывается, если в тарифе указать предоплачеваемый
трафик?
А как быть если стоят границы?
Когда стоят границы еще не верно отображаются стоимости трафика по временным диапазонам.

Может у кого есть переделанный пож такую схему?
Вывод тарифа и услуг в плагине - около 5 строчек кода на php, все нужные данные и так получаются функцией rpcf_user5_get_services_info. А что выводить и как простейшая задача для первокурсника заштатного вуза. Наймите человека знающего азы php и он вам подгонит все под ваши нужды за пол часа.

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

Сообщение Kayfolom »

Выложил на http://wiki.flintnet.ru еще плагинов
  • authentication Авторизация
    user_info Информация пользователя и включение/отключение интернета
    urfa_password_change Смена пароля аккаунта
    report_dp Отчет по трафику по расчетным периодам
    credit Установка временного кредита
    urfa_present Подарок другу
    user_tariff Смена тарифа (на следующий РП или срочная (с ближайшей полуночи))
    payment_report Отчет по платежам за год, услугам за Х месяцев, трафику за 1 день
    card_payment Активация карт

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

Сообщение Kayfolom »

Отчет по трафику от Integral <filename plugin="report_traffic">report_traffic.php</filename> проверил, работает отлично, внедрил у себя. Спасибо. Выложил на вики.

Всеж таки начинает происходить то на что я надеялся при заваривании всей этой каши ;) В первых постах получал и поддержку и высказывания что это полная глупость, но проект жив, развивается, работает у пары десятков провайдеров (по крайней мере столько людей обращались в аську за помощью). Вот сегодня поставил первый плагин написанный не мной ((С) Integral).

xoma
Сообщения: 23
Зарегистрирован: Чт ноя 15, 2007 10:47

Сообщение xoma »

Смена паролей для личного кабинета и для vpn/pppoe логинов

cat urfa_password_change.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;;

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

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

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

                try &#123;
                $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;;
                        exit;
                &#125;

                try &#123;
            $services = $urfa_user5->rpcf_user5_get_services&#40;&#41;;
                &#125; catch &#40;Exception $exception&#41; &#123;
                        echo "Error in line ", $exception->getLine&#40;&#41;;
                        echo $exception->getMessage&#40;&#41;;
                &#125;

                $service_type = 3; // Передача тарфика
                $service_traff_index = 0;
                for &#40;$i=0;$i<$services&#91;'count'&#93;;$i++&#41; &#123;
                        if &#40;$services&#91;'services'&#93;&#91;$i&#93;&#91;'service_type'&#93;==$service_type&#41; &#123;
                                $service_traff_index = $i;
                                break;
                        &#125;
                &#125;

@$btn1=$_POST&#91;'btn1'&#93;;
@$btn2=$_POST&#91;'btn2'&#93;;
@$btn3=$_POST&#91;'btn3'&#93;;
@$slink_id=$_POST&#91;'slink_id'&#93;;
@$uname_id=$_POST&#91;'uname_id'&#93;;

$change_password_message = '';
$form_change_password = '';
$form1 = '';
$form2 = '';

if &#40;&#40;$btn1==0&#41; and &#40;$btn2==0&#41; and &#40;$btn3==0&#41;&#41;
&#123;
    $form1 = '<font color=red>Внимание!</font> Пароли на доступ к странице статистики и на доступ в интернет могут отличаться. Будьте внимательны.<br>
         В случае утери пароля необходимо обратиться в тех. поддержку тел. 3-79-80<br></br>';

    $form1 .= '<div>Доступ к статистике</div>';

    $form1 .= '<table class=tab_traf0>
           <tr class=tab_traf>
            <td class=tab_traf>Логин</td>
            <td class=tab_traf>Пароль</td>
           </tr>
           <tr>
            <td class=tab_traf>'.$_SESSION&#91;'URFA'&#93;&#91;'login'&#93;.'</td>
            <td class=tab_traf>
              <form action="" method="post" name="ff1">
               <input type=hidden value="1" name=btn1>
               <input type=hidden value="0" name=btn2>
                <A href="JavaScript&#58;document.ff1.submit&#40;&#41;;">Сменить</a>
              </form>
            </td>
           </tr>
           </table>';



                $slink = $services&#91;'services'&#93;&#91;$service_traff_index&#93;&#91;'id'&#93;;
                $services_info = $urfa_user5->rpcf_user5_get_services_info&#40;$services&#91;'services'&#93;&#91;$service_traff_index&#93;&#91;'id'&#93;&#41;;  //-0x4024

                $ip = '';
                $item_id = '';
                $mask = '';
                $login2 = '';

        $form2 .= '<div class="head">Доступ в интернет</div><div id=br2></div>';
        $form2 .= '<table class=tab_traf0>
               <tr class=tab_traf>
                <td class=tab_traf>Логин</td>
                <td class=tab_traf>IP</td>
                <td class=tab_traf>Mask</td>
                <td class=tab_traf>Пароль</td>
               </tr>';

                for &#40;$i=0;$i<$services_info&#91;'ipgroup_size'&#93;;$i++&#41; &#123;
                        $item_id = $services_info&#91;'ipgroup_size_list'&#93;&#91;$i&#93;&#91;'item_id'&#93;;
                        $ip = $services_info&#91;'ipgroup_size_list'&#93;&#91;$i&#93;&#91;'ip'&#93;;
                        $mask = $services_info&#91;'ipgroup_size_list'&#93;&#91;$i&#93;&#91;'mask'&#93;;
                        $login2 = $services_info&#91;'ipgroup_size_list'&#93;&#91;$i&#93;&#91;'login'&#93;;
        if &#40;$login2!=''&#41; &#123;
                  $form2 .= '<tr>
                  <td class=tab_traf>'.$login2.'</td>
                  <td class=tab_traf>'.$ip.'</td>
                  <td class=tab_traf>'.$mask.'</td>
                  <td class=tab_traf>
                  <form action="" method="post" name="ff22'.$i.'">
                      <input type=hidden value='.$slink.' name=slink_id>
                      <input type=hidden value='.$item_id.' name=uname_id>
                      <input type=hidden value="0" name=btn1>
                      <input type=hidden value="1" name=btn2>
                      <A href="JavaScript&#58;document.ff22'.$i.'.submit&#40;&#41;;">Сменить</a>
                    </form>
                  </td>
                 </tr>';
        &#125;
        &#125;
        $form2 .= '</table>';


&#125;
if &#40;&#40;$btn1==1&#41; and &#40;$btn2==0&#41;&#41;&#123;
//Смена пароля к статистике
//***************** Обработка смены пароля к статистике
        $change_password_message = '';
        $urfa_old_password = JRequest&#58;&#58;getVar&#40;'urfa_old_password'&#41;;
        $urfa_new_password = JRequest&#58;&#58;getVar&#40;'urfa_new_password'&#41;;
        $urfa_new_password_ret = JRequest&#58;&#58;getVar&#40;'urfa_new_password_ret'&#41;;
        if &#40;isset&#40;$urfa_old_password&#41; && isset&#40;$urfa_new_password&#41; && isset&#40;$urfa_new_password_ret&#41;&#41; &#123;
                if &#40;$urfa_old_password!='' && $urfa_new_password!='' && $urfa_new_password_ret!=''&#41; &#123;
                        if &#40;$urfa_old_password==$_SESSION&#91;'URFA'&#93;&#91;'password'&#93;&#41; &#123;
                                if &#40;$urfa_new_password==$urfa_new_password_ret&#41; &#123;
                                                try &#123;
                                                        $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;
                                                $res = $urfa_user5->rpcf_user5_change_password&#40;$urfa_old_password,$urfa_new_password,$urfa_new_password_ret&#41;;  //-0x4021
                                        if &#40;$res&#91;'result'&#93;==1&#41; &#123;
                                                $change_password_message = 'Пароль успешно изменен.';
                                                $_SESSION&#91;'URFA'&#93;&#91;'password'&#93; = $urfa_new_password;
                                                &#125; else $change_password_message = 'Ошибка смены пароля!';
                                        &#125; else $change_password_message = 'Не совпадают новый пароль и повтор пароля!';
                                &#125; else $change_password_message = 'Неправильный пароль!';
                        &#125; else $change_password_message = 'Заполните все поля!';
        &#125;
//***************** Обработка смены пароля к статистике конец
//***************** Форма смены пароля к статистике
                if &#40;isset&#40;$uri->_vars&#91;'urfa_old_password'&#93;&#41;&#41; &#123;
                unset&#40;$uri->_vars&#91;'urfa_old_password'&#93;&#41;;
                &#125;
                if &#40;isset&#40;$uri->_vars&#91;'urfa_new_password'&#93;&#41;&#41; &#123;
                        unset&#40;$uri->_vars&#91;'urfa_new_password'&#93;&#41;;
                &#125;
                if &#40;isset&#40;$uri->_vars&#91;'urfa_new_password_ret'&#93;&#41;&#41; &#123;
                        unset&#40;$uri->_vars&#91;'urfa_new_password_ret'&#93;&#41;;
                &#125;
                $form_title = '<FORM METHOD="POST">';
                $form_footer = '</FORM>';
                $form_body = '';
            $form_body = $form_body.'<input type="password" name="urfa_old_password" MAXLENGTH="20" size="20" value=""></input> старый пароль<BR><BR>';
            $form_body = $form_body.'<input type="password" name="urfa_new_password" MAXLENGTH="20" size="20" value=""></input> новый пароль<BR><BR>';
            $form_body = $form_body.'<input type="password" name="urfa_new_password_ret" MAXLENGTH="20" size="20" value=""></input> повторите новый пароль<BR><BR>';

            $form_body = $form_body.'
            <input type=hidden value="1" name=btn1>
            <input type=hidden value="0" name=btn2>
            <input type=hidden value="1" name=btn3>';

        $form_body = $form_body.'<input type=submit value="Изменить" class="button">';
                $form_change_password = $form_title.$form_body.$form_footer;
//***************** Форма смены пароля к статистике конец
&#125;

//Смена сервисного пароля
if &#40;&#40;$btn1==0&#41; and &#40;$btn2==1&#41;&#41;&#123;
//***************** Обработка смены сервисного пароля
        $change_password_message = '';
        $urfa_old_password = JRequest&#58;&#58;getVar&#40;'urfa_old_password'&#41;;
        $urfa_new_password = JRequest&#58;&#58;getVar&#40;'urfa_new_password'&#41;;
        $urfa_new_password_ret = JRequest&#58;&#58;getVar&#40;'urfa_new_password_ret'&#41;;
        if &#40;isset&#40;$urfa_old_password&#41; && isset&#40;$urfa_new_password&#41; && isset&#40;$urfa_new_password_ret&#41;&#41; &#123;
                if &#40;$urfa_old_password!='' && $urfa_new_password!='' && $urfa_new_password_ret!=''&#41; &#123;
                                if &#40;$urfa_new_password==$urfa_new_password_ret&#41; &#123;
                                        $res = $urfa_user5->rpcf_user5_change_password_service&#40;$slink_id,$uname_id,$urfa_old_password,$urfa_new_password,$urfa_new_password_ret&#41;;
                                        if &#40;$res&#91;'result'&#93;==1&#41; &#123;
                                                $change_password_message = 'Пароль успешно изменен.';
                                                &#125; else $change_password_message = 'Неправильный пароль!';
                                        &#125; else $change_password_message = 'Не совпадают новый пароль и повтор пароля!';
                        &#125; else $change_password_message = 'Заполните все поля!2';
        &#125;
//***************** Обработка смены сервисного пароля конец
//***************** Форма смены сервисного пароля начало
                if &#40;isset&#40;$uri->_vars&#91;'urfa_old_password'&#93;&#41;&#41; &#123;
                unset&#40;$uri->_vars&#91;'urfa_old_password'&#93;&#41;;
                &#125;
                if &#40;isset&#40;$uri->_vars&#91;'urfa_new_password'&#93;&#41;&#41; &#123;
                        unset&#40;$uri->_vars&#91;'urfa_new_password'&#93;&#41;;
                &#125;
                if &#40;isset&#40;$uri->_vars&#91;'urfa_new_password_ret'&#93;&#41;&#41; &#123;
                        unset&#40;$uri->_vars&#91;'urfa_new_password_ret'&#93;&#41;;
                &#125;
                $form_title = '<FORM METHOD="POST">';
                $form_footer = '</FORM>';
                $form_body = '';
            $form_body = $form_body.'<input type="password" name="urfa_old_password" MAXLENGTH="20" size="20" value=""></input> старый пароль<BR><BR>';
            $form_body = $form_body.'<input type="password" name="urfa_new_password" MAXLENGTH="20" size="20" value=""></input> новый пароль<BR><BR>';
            $form_body = $form_body.'<input type="password" name="urfa_new_password_ret" MAXLENGTH="20" size="20" value=""></input> повторите новый пароль<BR><BR>';

            $form_body = $form_body.'
            <input type=hidden value='.$slink_id.' name=slink_id>
            <input type=hidden value='.$uname_id.' name=uname_id>
            <input type=hidden value="0" name=btn1>
            <input type=hidden value="1" name=btn2>
            <input type=hidden value="1" name=btn3>';

            $form_body = $form_body.'<input type=submit value="Изменить" class="button">';
            $form_change_password = $form_title.$form_body.$form_footer;
//***************** Форма смены сервисного пароля конец
&#125;
        $row->text = preg_replace&#40;'/&#123;form_change_password&#125;/', $form_change_password, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;change_password_message&#125;/', $change_password_message, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;form1&#125;/', $form1, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;form2&#125;/', $form2, $row->text&#41;;
    &#125;
&#125;
в джумле

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

&#123;user_password_change&#125; 
&#123;form_change_password&#125; 
&#123;change_password_message&#125; 
&#123;form1&#125; 
&#123;form2&#125;
css

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

table.tab_traf0 &#123; 
  border-collapse&#58; collapse; 
  margin&#58; 0; 
  padding&#58; 0; 
  width&#58; 100%; 
&#125; 

tr.tab_traf &#123; 
  background-color&#58; #efefef; 
  font-weight&#58; bold; 
  text-align&#58; center; 
  padding&#58; 4px; 
&#125; 


td.tab_traf &#123; 
  border&#58; #006699 1px solid; 
  padding&#58; 4px; 
font-size&#58;100%; 
font-family&#58;Arial, Helvetica, sans-serif; 
&#125; 

VTB
Сообщения: 2
Зарегистрирован: Сб сен 05, 2009 18:38

Сообщение VTB »

Kayfolom писал(а):Сделал и вроде отладил пару плагинов под Джумлу. Версия джумлы Joomla! 1.5.8.
Технология следующая - ставим джумлу (лучше чистую, без демо контента), создаем пользователя с правами SuperAdministrator, пользователь с таким же логином и паролем должен существовать в UTM. В админке джумлы, Расширения-Медеждер модулей создаем модуль Вход, даем ему права доступа ВСЕМ. Проверяем чтоб он отображался при входе на сайт.
Устанавливаем плагин авторизации http://www.ukhta-inform.ru/urfa.zip , в менеджере плагинов включаем его, и отключаем родной плагин авторизации джумлы.

После этого сайт должен пускать пользователей UTM без проблем.

Ставим плагин http://www.ukhta-inform.ru/user_info.zip (аналог первой страницы родного личного кабинета - инфа юзера и включения/отключение инета). В менеджере плагинов не забываем его включить.
В менеждере материалов создаем материал, в примеру Информация, не забываем установить права доступа к нему только для зарегестрированных пользователей, делаем ему менюшку и т.п.
Содержимое материла следующее:

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

&#123;user_info&#125;
Полное имя &#58; &#123;full_name&#125;
Логин &#58; &#123;login&#125;
Баланс &#58; &#123;balance&#125;
Кредит &#58; &#123;credit&#125;
Номер лицевого счета &#58; &#123;basic_account&#125;
Блокировка &#58; &#123;is_blocked&#125;
Дата создания &#58; &#123;create_date&#125;
Адрес &#58; &#123;actual_address&#125;
Номер ICQ &#58; &#123;icq_number&#125;
Интернет &#58; &#123;int_status&#125; 
При показе пользователю элементы типа {full_name} будут заменяться на реальные данные пользователя UTM. Делаем красивое форматирование (я к примеру сделал просто табличку, но можно использовать любое форматирование странички и любое расположение , порядок и состав элементов).
Да, плагинам нужна urfa php ( viewtopic.php?p=40512#40512 ) - создайте папку urfa в корне сайта и в папке administrator, киньте туда урфу.

Подведу итог: на данном итапе полностью работает авторизация и аналог первой страницы Личного кабинет. Работает включение и отключение интернета - пример для интерактивных страниц (отчетов, смен тарифа, пароля и прочего...)
2kayfolom

Сделал все по инструкуции, вывело ошибку:
Fatal error: Call to undefined method stdClass::onAuthenticate() in D:\Bill\Apache2\htdocs\Joomla\libraries\joomla\user\authentication.php on line 121

Где я ошибся?

Идея очень красивая, снимаю шляпу.

edison
Сообщения: 68
Зарегистрирован: Сб авг 15, 2009 11:34

Сообщение edison »

VTB писал(а):[Где я ошибся?

Идея очень красивая, снимаю шляпу
Включи плагин Autentication URFA
Не забудь еще настроить правильно читай начало этой темы.
В этой теме есть все ответы по всем ошибкам сам маялся пока не прочитал всю тему.

edison
Сообщения: 68
Зарегистрирован: Сб авг 15, 2009 11:34

Сообщение edison »

Вопрос по развитию кабинета!??

Как сообщения то показать те что рассылаются пользователям с примером кода в студию!!

Как детальный трафик посмотреть за период код в студию!!

kirush
Сообщения: 699
Зарегистрирован: Пт фев 04, 2005 13:58

Сообщение kirush »

можно ли с помощтю rpcf_user5_dhs_report выдернуть IP вызывающего абонента?

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

Сообщение Kayfolom »

edison писал(а):Вопрос по развитию кабинета!??

Как сообщения то показать те что рассылаются пользователям с примером кода в студию!!

Как детальный трафик посмотреть за период код в студию!!
Я не использую систему сообщения от нетапа, ввиду ее полной убогости. У меня система сообщения основана на jabber и интегрирована в мою утилиту UTMTray. Выкладывать этот плагин не имеет смысла, ибо без всего остального он бесполезен.

С детальным трафиком таже история. Родная деталка работает настолько медленно, что никакие таймауты не помогут дождаться результата. Да и билинг умрет если одновременно десяток пользователей решат посмотреть ее. У меня деталка заливается в mysql на отдельный сервисный сервак, и оттуда я ее показываю в отчете. Формируется от 3 до 10 сек за сутки детального трафика.

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Там можно после выборки детальку разложить по отдельным таблицам. Одна таблица - один лицевой счет. И таблицу типа оглавления, там номер лицевого и имя таблички с данными. И плюс к тому сделать в таблицах с данными агрегацию с шагом 1 минута. Вообще летать все будет.

Закрыто