Личный кабинет на готовом движке
Вот список обрабатываемых ключей. Вам остается только красиво отформатировать. Обязателен только первый ключ (он сигнализирует плагину что надо обработать страницу). Остальные ключи на ваше усмотрение - что хотите показывать то и пишите (к примеру если не нужен номер аськи, то и нафиг его).
Смена пароля:
{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}
Смена пароля:
{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}
Chrst писал(а):
corwin писал(а):
2 Chrst.
Поделись если не жалко
corwin<at>amberium.ru
Не жалко, ушло.
И мнеб тоже хотелось
carterelserv@yandex.ru
corwin писал(а):
2 Chrst.
Поделись если не жалко
corwin<at>amberium.ru
Не жалко, ушло.
И мнеб тоже хотелось

carterelserv@yandex.ru
тоже бы хотелось взглянуть на это, если можно . . a.grishin@ncv.ruHan_s писал(а):а еще если можно на han at vmb.ru
-
- Сообщения: 21
- Зарегистрирован: Чт фев 12, 2009 14:12
- Откуда: С-Петербург
- Контактная информация:
to Chrst
А можно и мне кабинетик на y.gorlov@gmail.com
Спасибо

Christ
Очень интересует такой личный кабинет. У меня небольшая сеть, без биллинга вообще - у всех анлим на одинаковой скорости. Можно ли будет адаптировать Ваш шаблон для пользователей, у которых в личном кабинете должны быть тоьлко следующие данные:
фио
дата подключения
дата последней оплаты
дата истечения последней оплаты
история платежей
Причем все изменения на пользовательских страничках делает отдельный человек.
Сам с цмс не возился, но если что можно изучить. Буду рад общению по этому вопросу: dokgl[a]mail.ru
Очень интересует такой личный кабинет. У меня небольшая сеть, без биллинга вообще - у всех анлим на одинаковой скорости. Можно ли будет адаптировать Ваш шаблон для пользователей, у которых в личном кабинете должны быть тоьлко следующие данные:
фио
дата подключения
дата последней оплаты
дата истечения последней оплаты
история платежей
Причем все изменения на пользовательских страничках делает отдельный человек.
Сам с цмс не возился, но если что можно изучить. Буду рад общению по этому вопросу: dokgl[a]mail.ru
- Chrst
- Сообщения: 370
- Зарегистрирован: Пт май 11, 2007 09:28
- Откуда: Медиахолдинг "ЛеККС"
- Контактная информация:
Смущает ключевая фраза "без биллинга вообще"dokgl писал(а):Christ
Очень интересует такой личный кабинет. У меня небольшая сеть, без биллинга вообще - у всех анлим на одинаковой скорости. Можно ли будет адаптировать Ваш шаблон для пользователей, у которых в личном кабинете должны быть тоьлко следующие данные:
фио
дата подключения
дата последней оплаты
дата истечения последней оплаты
история платежей
Причем все изменения на пользовательских страничках делает отдельный человек.
Сам с цмс не возился, но если что можно изучить. Буду рад общению по этому вопросу: dokgl[a]mail.ru

Личный кабинет дергает данные с БД биллинга, причем биллинг это основная часть, а кабинет - всего лишь средство отображения.
Это не самый дешевый биллингПричем все изменения на пользовательских страничках делает отдельный человек.

-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Chrst
Скинь пожалуйста твой ЛК на m.saltaev [собака] tehnosoft.ru. Буду оочень признателен!!!
Мы сейчас как раз запускаемся с нетаповским биллингом, дошли до уровня установки веб-морды для клиентов. Потехоньку разбираюсь, что да как.))
Возможно прийдется подпилить под наши услуги и задачи, поэтому как появятся конструктивные предложения - сразу же выложу сюда!!!
Скинь пожалуйста твой ЛК на m.saltaev [собака] tehnosoft.ru. Буду оочень признателен!!!
Мы сейчас как раз запускаемся с нетаповским биллингом, дошли до уровня установки веб-морды для клиентов. Потехоньку разбираюсь, что да как.))
Возможно прийдется подпилить под наши услуги и задачи, поэтому как появятся конструктивные предложения - сразу же выложу сюда!!!
Chrst, хотелось бы последнюю версию на inbox@lmrv.sk
Заранее спасибо!
Заранее спасибо!
Сделал новый плагин к джумле - HTTP-отчет. Данные берутся из lightsquid (выбрал как наиболее легко читаемые), но можно переделать на неччто другое.
URFA-клиента для плагина не требуется...
Чтобы работало необходимо заполнить массив $_SESSION['URFA']['IP'] IP-адресами текущего аккаунта. Я это делаю на странице информации (открывается по дефолту в моей джумле), при выполнении отчета по тарифам:
user_report_http.xml :
user_report_http.php :
Отчет простенький, но на его базе можно сделать продвинутый - с инфой по времени потребления, и прочими плюшками. Не стал наворачивать по причине "не дружбы" с парсингом в php (не врубаюсь я в регулярные выражения). Если кто поможет куском кода способным корректно залить в массив строку из статистики lightsquid, буду признателен.
Да, чуть не забыл, темплэйт страницы выглядит примерно так:
URFA-клиента для плагина не требуется...
Чтобы работало необходимо заполнить массив $_SESSION['URFA']['IP'] IP-адресами текущего аккаунта. Я это делаю на странице информации (открывается по дефолту в моей джумле), при выполнении отчета по тарифам:
Код: Выделить всё
$_SESSION['URFA']['IP'] = '';
for ($i=0;$i<$services_info['ipgroup_size'];$i++) {
$IP_list = $IP_list.$services_info['ipgroup_size_list'][$i]['ip'].'<BR>';
$_SESSION['URFA']['IP'][$i]=$services_info['ipgroup_size_list'][$i]['ip'];
}
Код: Выделить всё
<?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>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>
Код: Выделить всё
<?php
@ini_set("display_errors", "1");
error_reporting(E_ALL);
defined( '_JEXEC' ) or die( 'Restricted access' );
$mainframe->registerEvent( 'onPrepareContent', 'plgUserReportHTTP' );
function plgUserReportHTTP(&$row, &$params, $page=0){
$lightsquid_report = "/var/www/html/lightsquid/report/"; // Путь к отчетам lightsquid
$pos = strpos($row->text, '{user_report_http}');
if ($pos > 0) {
$row->text = preg_replace('/{user_report_http}/', '', $row->text);
//******************************* Форма начало
$i = 0;
$dir = opendir ($lightsquid_report);
while ( $file = readdir ($dir)) {
if (( $file != ".") && ($file != "..")) {
$done = false;
$array_dates[$i] = $file;
$i++;
}
}
closedir ($dir);
rsort($array_dates);
$form_title = '<FORM METHOD="POST">';
if (isset($uri->_vars['date_select'])) {
unset($uri->_vars['date_select']);
}
if (isset($uri->_vars['IP_select'])) {
unset($uri->_vars['IP_select']);
}
$form_footer = '</FORM>';
$form_body = '';
$form_body = $form_body.'Выберите дату : <SELECT NAME="date_select"> ';
foreach($array_dates as $str) {
$array_date = sscanf($str, "%4s%2s%2s");
$form_body = $form_body.'<OPTION VALUE='.$str.'>'.$array_date[2].".".$array_date[1].".".$array_date[0].'г.</OPTION>';
}
$form_body = $form_body."</SELECT>";
$form_body = $form_body.' Выберите адрес : <SELECT NAME="IP_select"> ';
foreach($_SESSION['URFA']['IP'] as $IP) {
$form_body = $form_body.'<OPTION VALUE='.$IP.'>'.$IP.'</OPTION>';
}
$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::getVar('date_select');
$IP_select = JRequest::getVar('IP_select');
if (isset($date_select) & isset($IP_select)) {
$array_date = sscanf($date_select, "%4s%2s%2s");
$array_date = sscanf($date_select, "%4s%2s%2s");
$list = @file($lightsquid_report.$date_select."/".$IP_select);
if ($list!='') {
$http_report_message = "Отчет по HTTP-трафику за ".$array_date[2].".".$array_date[1].".".$array_date[0].'г. по IP-адресу '.$IP_select;
@array_splice($list, 0, 1);
$report_table = '<table border="1" cellpadding="4" style="background-color:#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($list as $str) {
preg_match_all("/\S{1,}/i", $str, $content_array);
// $content_array = explode (" ", $str);
// $content_array = split ('[ ]', $str);
$report_table = $report_table.'<tr style="background-color:#dbe5f1">';
$report_table = $report_table.'<td align=left><A HREF="http://'.$content_array['0']['0'].'" target="_blank">'.$content_array['0']['0'].'</A></td>';
$report_table = $report_table.'<td align=right>'.$content_array['0']['2'].'</td>';
if (($content_array['0']['1']/1024)>1024) {
$report_table = $report_table.'<td align=right>'.sprintf("%01.3f Mб",$content_array['0']['1']/1024/1024).'</td>';
} else {
$report_table = $report_table.'<td align=right>'.sprintf("%01.3f Kб",$content_array['0']['1']/1024).'</td>';
}
$report_table = $report_table.'</tr>';
}
$report_table = $report_table.'</tbody></table>';
} else {
$http_report_message = "Данные за период ".$array_date[2].".".$array_date[1].".".$array_date[0].'г. по IP-адресу '.$IP_select." отсутствуют";
}
}
//******************************* Формирование отчета конец
$row->text = preg_replace('/{http_report_message}/', $http_report_message, $row->text);
$row->text = preg_replace('/{report_table}/', $report_table, $row->text);
$row->text = preg_replace('/{date_select_form}/', $date_select_form, $row->text);
}
}
Да, чуть не забыл, темплэйт страницы выглядит примерно так:
Код: Выделить всё
Отчет по HTTP-трафику
Внимание, отчет по HTTP-трафику не отражает общее количество потребленного трафика, обычно он несколько меньше общего количества.
{user_report_http}
{date_select_form}
{http_report_message}
{report_table}