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

Технические вопросы по UTM 5.0
Закрыто
Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

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

Смена пароля:
{user_password_change} {change_password_message}
{form_change_password}

SMS обслуживание:
{sms_service}{sms_service_message}
{form_phones}

Подарок другу
{user_present}{present_message}
Ваш баланс {balance}
Максимальная сумма подарка {max_present_sum}
{form_present}

Кредит:
{user_credit}{change_credit_message}
Баланс {balance}
Кредит {current_credit}
Кредит действителен до {current_credit_date}
Размер возможного кредита {max_credit_sum}
{form_change_credit}

Смена тарифа
{user_tariff}{change_tariff_message}
Расчетный период
Начало {discount_period_start}
Конец {discount_period_end}
Тариф
Текущий тариф {current_tariff}
Следующий тариф {next_tariff}
Смена тарифа {form_change_tariff}

Информация
{user_info}
Лицевой счет {basic_account}
Логин {login}
ФИО {full_name}
Номер ICQ {icq_number}
Дата подключения {create_date}
Баланс {balance}
Кредит {credit}
Блокировка {is_blocked}
Интернет {int_status}
Тариф (это табличка)
Стоимость в месяц
Списано в текущем расчетном периоде
Стоимость дневного трафика (6:00-23:00)
Стоимость ночного трафика (23:00-6:00)
Осталось предоплаченного дневного трафика
IP адреса
{tariff}
{cost}
{discounted}
{day_cost}
{night_cost}
{prepaid_traffic}
{IP_addres}

Отчет по платежам
{payment_report}
{payment_report_table}

Трафик за расчетный период
{traffic_discount_period_report}
{traffic_discount_period_report_table}

Трафик за день
{traffic_day_report}
{traffic_day_report_table}

Отчет по услугам
{service_report}
{service_report_table}

CarTer
Сообщения: 62
Зарегистрирован: Пн май 26, 2008 09:18

Сообщение CarTer »

Chrst писал(а):
corwin писал(а):
2 Chrst.
Поделись если не жалко
corwin<at>amberium.ru

Не жалко, ушло.

И мнеб тоже хотелось :roll:
carterelserv@yandex.ru

Han_s
Сообщения: 21
Зарегистрирован: Чт июн 28, 2007 09:55

Сообщение Han_s »

а еще если можно на han at vmb.ru

Аватара пользователя
BlackJack
Сообщения: 35
Зарегистрирован: Чт янв 29, 2009 08:56
Откуда: Voskresensk

Сообщение BlackJack »

Han_s писал(а):а еще если можно на han at vmb.ru
тоже бы хотелось взглянуть на это, если можно . . a.grishin@ncv.ru

scazenec
Сообщения: 44
Зарегистрирован: Сб дек 29, 2007 21:24

Сообщение scazenec »

Chrst.
Поделись личным кабинетом
скинь на kalikin@parusmedia.ru

mf.viper
Сообщения: 59
Зарегистрирован: Ср мар 25, 2009 10:33

Сообщение mf.viper »

Chrst.
А можно мне личный кабинетик если не жалко на viper@grin.by или ruslan.gress@gmail.com

South
Сообщения: 21
Зарегистрирован: Чт фев 12, 2009 14:12
Откуда: С-Петербург
Контактная информация:

to Chrst

Сообщение South »

А можно и мне кабинетик на y.gorlov@gmail.com :-) Спасибо

neiks
Сообщения: 19
Зарегистрирован: Ср мар 12, 2008 11:03

Сообщение neiks »

Разобрался с джумлой, спасибо автору!
Chrst не мог ты поделиться, интересно посмотреть neiks(at)neiks.net.ru
Спасибо!

dokgl
Сообщения: 1
Зарегистрирован: Чт мар 26, 2009 10:48

Сообщение dokgl »

Christ
Очень интересует такой личный кабинет. У меня небольшая сеть, без биллинга вообще - у всех анлим на одинаковой скорости. Можно ли будет адаптировать Ваш шаблон для пользователей, у которых в личном кабинете должны быть тоьлко следующие данные:
фио
дата подключения
дата последней оплаты
дата истечения последней оплаты
история платежей

Причем все изменения на пользовательских страничках делает отдельный человек.

Сам с цмс не возился, но если что можно изучить. Буду рад общению по этому вопросу: dokgl[a]mail.ru

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

dokgl писал(а):Christ
Очень интересует такой личный кабинет. У меня небольшая сеть, без биллинга вообще - у всех анлим на одинаковой скорости. Можно ли будет адаптировать Ваш шаблон для пользователей, у которых в личном кабинете должны быть тоьлко следующие данные:
фио
дата подключения
дата последней оплаты
дата истечения последней оплаты
история платежей

Причем все изменения на пользовательских страничках делает отдельный человек.

Сам с цмс не возился, но если что можно изучить. Буду рад общению по этому вопросу: dokgl[a]mail.ru
Смущает ключевая фраза "без биллинга вообще" :shock:
Личный кабинет дергает данные с БД биллинга, причем биллинг это основная часть, а кабинет - всего лишь средство отображения.
Причем все изменения на пользовательских страничках делает отдельный человек.
Это не самый дешевый биллинг :lol:

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

Сообщение Kayfolom »

Интересно, а можно такого человека сертифицировать? ;) Представляю картину - сидит на узле толпа сертифицированных гастрайбайтеров и на калькуляторах считают и сортируют пакеты ;)

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

при ручном учете сертификация не нужна :)

msvv
Сообщения: 7
Зарегистрирован: Пн янв 19, 2009 15:03
Откуда: Вологда

Сообщение msvv »

Chrst
Скинь пожалуйста твой ЛК на m.saltaev [собака] tehnosoft.ru. Буду оочень признателен!!!

Мы сейчас как раз запускаемся с нетаповским биллингом, дошли до уровня установки веб-морды для клиентов. Потехоньку разбираюсь, что да как.))

Возможно прийдется подпилить под наши услуги и задачи, поэтому как появятся конструктивные предложения - сразу же выложу сюда!!!

lmrvsk
Сообщения: 5
Зарегистрирован: Чт дек 25, 2008 10:51
Откуда: Сибирь

Сообщение lmrvsk »

Chrst, хотелось бы последнюю версию на inbox@lmrv.sk
Заранее спасибо!

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

Сообщение Kayfolom »

Сделал новый плагин к джумле - HTTP-отчет. Данные берутся из lightsquid (выбрал как наиболее легко читаемые), но можно переделать на неччто другое.
URFA-клиента для плагина не требуется...

Чтобы работало необходимо заполнить массив $_SESSION['URFA']['IP'] IP-адресами текущего аккаунта. Я это делаю на странице информации (открывается по дефолту в моей джумле), при выполнении отчета по тарифам:

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

		$_SESSION&#91;'URFA'&#93;&#91;'IP'&#93; = '';
		for &#40;$i=0;$i<$services_info&#91;'ipgroup_size'&#93;;$i++&#41; &#123;
			$IP_list = $IP_list.$services_info&#91;'ipgroup_size_list'&#93;&#91;$i&#93;&#91;'ip'&#93;.'<BR>';
			$_SESSION&#91;'URFA'&#93;&#91;'IP'&#93;&#91;$i&#93;=$services_info&#91;'ipgroup_size_list'&#93;&#91;$i&#93;&#91;'ip'&#93;; 
		&#125;
user_report_http.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>user_report_http</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>HTTP lightsquid report</description>
	<files>
		<filename plugin="user_report_http">user_report_http.php</filename>
	</files>
    <params />
</install>
user_report_http.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;;

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

function plgUserReportHTTP&#40;&$row, &$params, $page=0&#41;&#123;
	$lightsquid_report = "/var/www/html/lightsquid/report/"; // Путь к отчетам lightsquid
    $pos = strpos&#40;$row->text, '&#123;user_report_http&#125;'&#41;;
    if &#40;$pos > 0&#41; &#123;
        $row->text = preg_replace&#40;'/&#123;user_report_http&#125;/', '', $row->text&#41;;
//*******************************  Форма начало
        $i = 0;
		$dir = opendir &#40;$lightsquid_report&#41;;
		while &#40; $file = readdir &#40;$dir&#41;&#41; &#123;
			if &#40;&#40; $file != "."&#41; && &#40;$file != ".."&#41;&#41; &#123;
				$done = false;
				$array_dates&#91;$i&#93; = $file;
				$i++; 
			&#125;
		&#125;
		closedir &#40;$dir&#41;;
		rsort&#40;$array_dates&#41;;
		$form_title = '<FORM METHOD="POST">';
		if &#40;isset&#40;$uri->_vars&#91;'date_select'&#93;&#41;&#41; &#123;
			unset&#40;$uri->_vars&#91;'date_select'&#93;&#41;;
		&#125;
		if &#40;isset&#40;$uri->_vars&#91;'IP_select'&#93;&#41;&#41; &#123;
			unset&#40;$uri->_vars&#91;'IP_select'&#93;&#41;;
		&#125;
		$form_footer = '</FORM>';
		$form_body = '';
        $form_body = $form_body.'Выберите дату &#58; <SELECT NAME="date_select"> ';
        foreach&#40;$array_dates as $str&#41; &#123;
			$array_date = sscanf&#40;$str, "%4s%2s%2s"&#41;;
			$form_body = $form_body.'<OPTION VALUE='.$str.'>'.$array_date&#91;2&#93;.".".$array_date&#91;1&#93;.".".$array_date&#91;0&#93;.'г.</OPTION>';
		&#125;
        $form_body = $form_body."</SELECT>";
        $form_body = $form_body.'       Выберите адрес &#58; <SELECT NAME="IP_select"> ';
        foreach&#40;$_SESSION&#91;'URFA'&#93;&#91;'IP'&#93; as $IP&#41; &#123;
			$form_body = $form_body.'<OPTION VALUE='.$IP.'>'.$IP.'</OPTION>';
		&#125;
        $form_body = $form_body."</SELECT>       ";
        $form_body = $form_body."<input type='submit' value='Выполнить'>";
		$date_select_form = $form_title.$form_body.$form_footer;
//*******************************  Форма конец
//*******************************  Формирование отчета начало
		$http_report_message = '';
		$report_table = '';
        $date_select = JRequest&#58;&#58;getVar&#40;'date_select'&#41;;
        $IP_select = JRequest&#58;&#58;getVar&#40;'IP_select'&#41;;
        if &#40;isset&#40;$date_select&#41; & isset&#40;$IP_select&#41;&#41; &#123; 
			$array_date = sscanf&#40;$date_select, "%4s%2s%2s"&#41;;
			$array_date = sscanf&#40;$date_select, "%4s%2s%2s"&#41;;
			$list = @file&#40;$lightsquid_report.$date_select."/".$IP_select&#41;;
			if &#40;$list!=''&#41; &#123;
				$http_report_message = "Отчет по HTTP-трафику за ".$array_date&#91;2&#93;.".".$array_date&#91;1&#93;.".".$array_date&#91;0&#93;.'г. по IP-адресу '.$IP_select;
					@array_splice&#40;$list, 0, 1&#41;;
		        $report_table = '<table border="1" cellpadding="4" style="background-color&#58;#8db3e2"><tbody>';
				$report_table = $report_table.'</tr>';
				$report_table = $report_table.'<tr><th align=center>Посещённые сайты</th><th align=center>Соединений</th><th align=center>Объем</th>';
				foreach&#40;$list as $str&#41; &#123;
					preg_match_all&#40;"/\S&#123;1,&#125;/i", $str, $content_array&#41;;
	//				$content_array = explode &#40;" ", $str&#41;;
	//				$content_array = split &#40;'&#91;  &#93;', $str&#41;;
					$report_table = $report_table.'<tr style="background-color&#58;#dbe5f1">';
					$report_table = $report_table.'<td align=left><A HREF="http&#58;//'.$content_array&#91;'0'&#93;&#91;'0'&#93;.'" target="_blank">'.$content_array&#91;'0'&#93;&#91;'0'&#93;.'</A></td>';
					$report_table = $report_table.'<td align=right>'.$content_array&#91;'0'&#93;&#91;'2'&#93;.'</td>';
					if &#40;&#40;$content_array&#91;'0'&#93;&#91;'1'&#93;/1024&#41;>1024&#41; &#123;
						$report_table = $report_table.'<td align=right>'.sprintf&#40;"%01.3f Mб",$content_array&#91;'0'&#93;&#91;'1'&#93;/1024/1024&#41;.'</td>';
					&#125; else &#123;
						$report_table = $report_table.'<td align=right>'.sprintf&#40;"%01.3f Kб",$content_array&#91;'0'&#93;&#91;'1'&#93;/1024&#41;.'</td>';
					&#125;
					$report_table = $report_table.'</tr>';
				&#125;
				$report_table = $report_table.'</tbody></table>';
			&#125; else &#123;
				$http_report_message = "Данные за период ".$array_date&#91;2&#93;.".".$array_date&#91;1&#93;.".".$array_date&#91;0&#93;.'г. по IP-адресу '.$IP_select." отсутствуют";
			&#125;
        &#125;
//*******************************  Формирование отчета конец
        $row->text = preg_replace&#40;'/&#123;http_report_message&#125;/', $http_report_message, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;report_table&#125;/', $report_table, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;date_select_form&#125;/', $date_select_form, $row->text&#41;;
	&#125;
&#125; 
Отчет простенький, но на его базе можно сделать продвинутый - с инфой по времени потребления, и прочими плюшками. Не стал наворачивать по причине "не дружбы" с парсингом в php (не врубаюсь я в регулярные выражения). Если кто поможет куском кода способным корректно залить в массив строку из статистики lightsquid, буду признателен.

Да, чуть не забыл, темплэйт страницы выглядит примерно так:

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

Отчет по HTTP-трафику 
Внимание, отчет по HTTP-трафику не отражает общее количество потребленного трафика, обычно он несколько меньше общего количества.

&#123;user_report_http&#125; 

&#123;date_select_form&#125; 

&#123;http_report_message&#125; 

&#123;report_table&#125;  

Закрыто