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

Технические вопросы по UTM 5.0
Закрыто
xandrman
Сообщения: 12
Зарегистрирован: Ср апр 29, 2009 11:53

Сообщение xandrman »

Был бы очень рад, если бы кто нибудь поделился данной стоящей вещью! Будьте добры! admin@berezka-lan.net

tail-n
Сообщения: 101
Зарегистрирован: Пн июн 01, 2009 02:32

Сообщение tail-n »

Был бы очень признателен. tail-n@list.ru Спасибо!

RHAmzin
Сообщения: 72
Зарегистрирован: Чт апр 03, 2008 05:27

Вопросы по движку для Joomla

Сообщение RHAmzin »

1) Что может быть причиной в php коде, что при переходах (по ссылкам, навигация в меню) вылетает на первоначальную страницу авторизации?


2) На что могут указывать данные ошибки:
1. Notice: Undefined offset: 2 in /usr/local/www/apache22/data/urfa/URFAClient_Packet.php on line 130
2. Warning: unpack() [function.unpack]: Type d: not enough input, need 8, have 0 in urfa/URFAClient_Packet.php on line 179179


3) в user-tariff есть строка $service_id = 108; // id услуги "Смена тарифа"
Нужно завести услугу "Смена тарифа", только вот какая: периодическая, передача трафика или как?

у меня при смене тарифа пишет
Notice: Undefined variable: discount_period_id in /usr/local/www/apache22/data/plugins/content/user_tariff.php on line 52
Notice: Undefined variable: tariff_link_id in /usr/local/www/apache22/data/plugins/content/user_tariff.php on line 52
Notice: Undefined variable: tariff_link_id in /usr/local/www/apache22/data/plugins/content/user_tariff.php on line 53Ошибка смены тарифа следующего расчетного периода

и создает новый тариф, подключая к уже существующему


4) СМена пароля только для личного кабинета?

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

Сообщение Kayfolom »

Вопрос 1 :
Выбрасывает на страницу авторизации и предлагает снова логинится? Глянте в сторону сессий - где хранятся (у меня в базе), не слетают ли и прочее.

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

Вопрос 3 :
$service_id = 108; // id услуги "Смена тарифа" - обычная разовая услуга, посредством нее снимаю деньги за смену тарифа. Можете убрать вызов вообще, если предполагаете бесплатную смену.

По смене тарифа опять же попробуйте этот кусок кода потестить отдельно. Если у вас добавляет еще один тариф, то возможно передаются не правильные параметры в функцию
$urfa_admin->rpcf_link_user_tariff($user_id, $account_id, $tariff_current, $urfa_next_tariff, $discount_period_id, $tariff_link_id);
Конкретно $tariff_link_id - это должен быть номер существующей у вас на акке связки, т.е. этим параметром вы показываете КАКОЙ именно тариф изменить. Если он неверный, то результат будет как у вас.

Вопрос 4 :
Гляньте код смены пароля - $urfa_user5->rpcf_user5_change_password($urfa_old_password,$urfa_new_password,$urfa_new_password_ret); //-0x4021
Джумла авторизует пользователей по логинам-паролям биллинга, и не существует никакого отдельного пароля на личный кабинет.

zorg3
Сообщения: 55
Зарегистрирован: Пн окт 13, 2008 15:01

Сообщение zorg3 »

Будьте добры! Скинте пожалуйста на zorg@regionnet.ru

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

Сообщение Kayfolom »

Будьте добры, указывайте что именно вы хотите чтоб вам скинули. В этой ветке обсуждалось несколько личных кабинетов, укажите какой именно вас заинтересовал.

zorg3
Сообщения: 55
Зарегистрирован: Пн окт 13, 2008 15:01

Сообщение zorg3 »

Kayfolom писал(а):Будьте добры, указывайте что именно вы хотите чтоб вам скинули. В этой ветке обсуждалось несколько личных кабинетов, укажите какой именно вас заинтересовал.
Сбросьте пожалуйста Вашу последнюю версию личного кабинета! zorg(a)regionnet.ru. Заранее благодарен!

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

Сообщение Kayfolom »

ок понял :) Но высылать не буду, буду скоро выкладывать на http://wiki.flintnet.ru , думаю начну в конце этой недели как время будет посвободней.

Исправил урл, на автомате вначале вбил свой локальный ;)
Последний раз редактировалось Kayfolom Ср июн 24, 2009 12:59, всего редактировалось 2 раза.

zorg3
Сообщения: 55
Зарегистрирован: Пн окт 13, 2008 15:01

Сообщение zorg3 »

ОК! Будем подождать! :D

RHAmzin
Сообщения: 72
Зарегистрирован: Чт апр 03, 2008 05:27

Сообщение RHAmzin »

Подскажите, discount_period_id - за что отвечает?

У меня при смене показывает

user_id=533 account_id=537 tariff_current=44 urfa_next_tariff=40 discount_period_id= tariff_link_id=

т.е. discount_period_id и tariff_link_id пустые значения


как они формируются?


Если активировать логи, то получается:

Notice: Undefined variable: discount_period_id in /usr/local/www/apache22/data/jml/plugins/content/user_tariff.php on line 52
Notice: Undefined variable: tariff_link_id in /usr/local/www/apache22/data/jml/plugins/content/user_tariff.php on line 52

user_id=533 account_id=537 tariff_current=44 urfa_next_tariff=40 discount_period_id=

Notice: Undefined variable: discount_period_id in /usr/local/www/apache22/data/jml/plugins/content/user_tariff.php on line 53
tariff_link_id=
Notice: Undefined variable: tariff_link_id in /usr/local/www/apache22/data/jml/plugins/content/user_tariff.php on line 53
Notice: Undefined variable: tariff_link_id in /usr/local/www/apache22/data/jml/plugins/content/user_tariff.php on line 54

Где эти переменные определяются?

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

Сообщение Kayfolom »

Вот мой текущий код плагина смены тарифа:

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

<?php

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

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

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

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

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

function plgUserTariffModify&#40;&$row, &$params, $page=0&#41;&#123;
	include &#40;"./urfa/URFAConfig.php"&#41;;
    $pos = strpos&#40;$row->text, '&#123;user_tariff&#125;'&#41;;

    if &#40;$pos > 0&#41; &#123;
        if &#40;$_SESSION&#91;'URFA'&#93;&#91;'is_juridical'&#93;&#41; &#123;
          $avail_tariffs=array&#40;66,67,68,69&#41;; // id Доступных пользователю тарифов Юрики
        &#125; else &#123;
          $avail_tariffs=array&#40;66,67,68,69,70,71,72&#41;; // id Доступных пользователю тарифов Физики
		&#125;

        $row->text = preg_replace&#40;'/&#123;user_tariff&#125;/', '', $row->text&#41;;

	try &#123;
        $urfa_admin = new URFAClient_Admin&#40;$UTMCore_Login,$UTMCore_Password&#41;;
	    &#125; catch &#40;Exception $exception&#41; &#123; 
	         echo "Error in line ", $exception->getLine&#40;&#41;;
	         echo $exception->getMessage&#40;&#41;;
	   &#125; 
        $user_tariff = $urfa_admin->rpcf_get_user_tariffs&#40;$_SESSION&#91;'URFA'&#93;&#91;'user_id'&#93;&#41;;
//***************** Обработка смены тарифа
        $change_tariff_message = '';
//        $uri = & JFactory&#58;&#58;getURI&#40;&#41;;

        $urfa_next_tariff = JRequest&#58;&#58;getVar&#40;'urfa_next_tariff'&#41;;
        $urfa_next_tariff_accept = JRequest&#58;&#58;getVar&#40;'urfa_next_tariff_accept'&#41;;
        $tariff_change_type = JRequest&#58;&#58;getVar&#40;'tariff_change_type'&#41;;

        if &#40;isset&#40;$urfa_next_tariff&#41; && isset&#40;$urfa_next_tariff_accept&#41;&#41; &#123; 
            $user_id = $_SESSION&#91;'URFA'&#93;&#91;'user_id'&#93;;
            $account_id = $_SESSION&#91;'URFA'&#93;&#91;'basic_account'&#93;;
            $service_id_normal = 108; // id услуги "Смена тарифа"
            $service_id_urgent = 109; // id услуги "Смена тарифа"
            $tariff_current =     $user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'current_tariff'&#93;;
			$discount_period_id = $user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'discount_period_id'&#93;;
            $tariff_link_id =     $user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'tariff_link_id'&#93;;
//            print 'tariff_change_type '.$tariff_change_type;
            if &#40;&#40;$user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'next_tariff'&#93;<>$urfa_next_tariff&#41; or &#40;$tariff_change_type=='urgent'&#41;&#41; &#123;
                $new_tariff_link_id = $urfa_admin->rpcf_link_user_tariff&#40;$user_id, $account_id, $tariff_current, $urfa_next_tariff, $discount_period_id, $tariff_link_id&#41;;
                if &#40;$tariff_link_id==$new_tariff_link_id&#91;'tariff_link_id'&#93;&#41; &#123;
                    $change_tariff_message = 'Тариф следующего расчетного периода успешно изменен.'; 
//                    print $tariff_change_type;
                    if &#40;$tariff_change_type=='urgent'&#41; &#123; // Срочная смена тарфа - изменение конца расчетного периода
//						print "***".$discount_period_id."***";
						$discount_period = $urfa_admin->rpcf_get_discount_period&#40;$discount_period_id&#41;;
//						print_r&#40;$discount_period&#41;;
						$start = $discount_period&#91;'start_date'&#93;;
						$expire = strtotime&#40;"+1 day"&#41;;
						$expire = strtotime&#40;date&#40;"d.m.Y",$expire&#41;&#41;;
						$periodic_type_t = 3;
						$cd = 1;
						$di = 0;
//print $start."<BR>";
//print date&#40;"d.m.Y",$start&#41;."<BR>";
//print $expire."<BR>";
//print date&#40;"d.m.Y H&#58;i&#58;s",$expire&#41;."<BR>";
						$urfa_admin->rpcf_add_discount_period&#40;$discount_period_id,$start,$expire,$periodic_type_t,$cd,$di&#41;; //0x2603
                    	$change_tariff_message = $change_tariff_message."<BR> Дата конца текущего расчетного периода успешно изменена.";
						$urfa_admin->rpcf_add_once_service_to_user&#40;$user_id,$account_id,$service_id_urgent,0,0,time&#40;&#41;,1,0&#41;; //0x2555
                    &#125; else &#123;
						$urfa_admin->rpcf_add_once_service_to_user&#40;$user_id,$account_id,$service_id_normal,0,0,time&#40;&#41;,1,0&#41;; //0x2555
					&#125;
                    $user_tariff = $urfa_admin->rpcf_get_user_tariffs&#40;$_SESSION&#91;'URFA'&#93;&#91;'user_id'&#93;&#41;;
//                    print 'good';
//                    $urfa_admin->rpcf_add_once_service_to_user&#40;$user_id, $account_id, $service_id&#41;; //0x2551
//$res = rpcf_add_once_service_to_user2&#40;$user_id,$account_id,$service_id,$tplink,$slink_id,$discount_date,$quantity,$invoice_id&#41;; //0x2555


                &#125; else &#123;
                    $change_tariff_message = 'Ошибка смены тарифа следующего расчетного периода'; 
                &#125;
            &#125;
//            array_pop&#40;$uri->_vars&#41;;
        &#125;
//***************** Обработка смены тарифа конец
	$discount_period = $urfa_admin->rpcf_get_discount_period&#40;$user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'discount_period_id'&#93;&#41;;
	$discount_period_start = date&#40;"Дата d.m.Yг. время H&#58;i",$discount_period&#91;'start_date'&#93;&#41;;
	$discount_period_end = date&#40;"Дата d.m.Yг. время H&#58;i",$discount_period&#91;'end_date'&#93;&#41;;
	$current_tariff = $urfa_admin->rpcf_get_tariff&#40;$user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'current_tariff'&#93;&#41;;
	$next_tariff = $urfa_admin->rpcf_get_tariff&#40;$user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'next_tariff'&#93;&#41;;
//*******************************  Форма смены тарифа начало
	$form_title = '<FORM METHOD="POST">';
	 if &#40;isset&#40;$uri->_vars&#91;'urfa_next_tariff'&#93;&#41;&#41; &#123;
        unset&#40;$uri->_vars&#91;'urfa_next_tariff'&#93;&#41;;
     &#125;
	 if &#40;isset&#40;$uri->_vars&#91;'urfa_next_tariff_accept'&#93;&#41;&#41; &#123;
        unset&#40;$uri->_vars&#91;'urfa_next_tariff_accept'&#93;&#41;;
     &#125;
	 if &#40;isset&#40;$uri->_vars&#91;'tariff_change_type'&#93;&#41;&#41; &#123;
        unset&#40;$uri->_vars&#91;'tariff_change_type'&#93;&#41;;
     &#125;

	$form_footer = '</FORM>';
        $form_body = '';
//        while&#40;list&#40;$key, $val&#41; = each&#40;$uri->_vars&#41;&#41; &#123;
//          $form_body = $form_body.'<input type="hidden" name="'.$key.'" value="'.$val.'">';
//        &#125;
        $form_body = $form_body.'<SELECT NAME="urfa_next_tariff"> ';
	$tariffs_list = $urfa_admin->rpcf_get_tariffs_list&#40;&#41;;
	for &#40;$j=0;$j<count&#40;$avail_tariffs&#41;;$j++&#41; &#123;
        	for &#40;$i=0;$i<$tariffs_list&#91;'count'&#93;;$i++&#41; &#123;
                	if &#40;$tariffs_list&#91;'tariffs'&#93;&#91;$i&#93;&#91;'id'&#93;==$avail_tariffs&#91;$j&#93;&#41; &#123;
				$form_body = $form_body.'<OPTION VALUE='.$tariffs_list&#91;'tariffs'&#93;&#91;$i&#93;&#91;'id'&#93;.'>'.$tariffs_list&#91;'tariffs'&#93;&#91;$i&#93;&#91;'name'&#93;.'</OPTION>';
				break;
			&#125;
		&#125;
	&#125;
        $form_body = $form_body.'</SELECT> <BR> <BR>';
		$form_body = $form_body.'<input name="tariff_change_type" type="radio" value="normal" checked> Со следующего Расчетного периода &#40;стоимость услуги 30р.&#41; <BR>';
		$form_body = $form_body.'<input name="tariff_change_type" type="radio" value="urgent" align=left> Срочная смена, с ближайшей полуночи &#40;стоимость услуги 100р.&#41; Внимание - прочтите условия!!! <BR>';
        $form_body = $form_body.'<BR> <BR>';
        $form_body = $form_body.'<input name="urfa_next_tariff_accept" type="checkbox" value="accepted">Я понимаю и принимаю условия смены тарифа</input>';
        $form_body = $form_body.'<BR> <BR> <input type="submit" value="Сменить тариф">';
	$form_change_tariff = $form_title.$form_body.$form_footer;
//*******************************  Форма смены тарифа конец
        $row->text = preg_replace&#40;'/&#123;current_tariff&#125;/', $current_tariff&#91;'tariff_name'&#93;, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;next_tariff&#125;/', $next_tariff&#91;'tariff_name'&#93;, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;discount_period_start&#125;/', $discount_period_start, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;discount_period_end&#125;/', $discount_period_end, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;form_change_tariff&#125;/', $form_change_tariff, $row->text&#41;;
        $row->text = preg_replace&#40;'/&#123;change_tariff_message&#125;/', $change_tariff_message, $row->text&#41;;
    &#125;
&#125; 

Интересующий вас кусок

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

        $user_tariff = $urfa_admin->rpcf_get_user_tariffs&#40;$_SESSION&#91;'URFA'&#93;&#91;'user_id'&#93;&#41;;
//***************** Обработка смены тарифа
        $change_tariff_message = '';
//        $uri = & JFactory&#58;&#58;getURI&#40;&#41;;

        $urfa_next_tariff = JRequest&#58;&#58;getVar&#40;'urfa_next_tariff'&#41;;
        $urfa_next_tariff_accept = JRequest&#58;&#58;getVar&#40;'urfa_next_tariff_accept'&#41;;
        $tariff_change_type = JRequest&#58;&#58;getVar&#40;'tariff_change_type'&#41;;

        if &#40;isset&#40;$urfa_next_tariff&#41; && isset&#40;$urfa_next_tariff_accept&#41;&#41; &#123; 
            $user_id = $_SESSION&#91;'URFA'&#93;&#91;'user_id'&#93;;
            $account_id = $_SESSION&#91;'URFA'&#93;&#91;'basic_account'&#93;;
            $service_id_normal = 108; // id услуги "Смена тарифа"
            $service_id_urgent = 109; // id услуги "Смена тарифа"
            $tariff_current =     $user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'current_tariff'&#93;;
			$discount_period_id = $user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'discount_period_id'&#93;;
            $tariff_link_id =     $user_tariff&#91;'user_tariffs'&#93;&#91;0&#93;&#91;'tariff_link_id'&#93;;
Т.е. Тариф получаем функцией
$user_tariff = $urfa_admin->rpcf_get_user_tariffs($_SESSION['URFA']['user_id']);
А дальше из $user_tariff получаем $discount_period_id = $user_tariff['user_tariffs'][0]['discount_period_id'];

Обратите внимание, что $_SESSION['URFA']['user_id'] берется из сессии. Туда он у меня попадает в плагине авторизации, дабы в течении сессии по многу раз не дергать урфу запрашивая одни и теже параметры.

Да, забыл добавить - плагин авторизации уже опубликован на http://wiki.flintnet.ru , остальные застопорились из за глюков в правах доступа - по какой то причине php на мастерхосте создает файлы и папки с правами выше чем админ площадки ;) Кое что в вики криво создалось и не могу ни переустановить права, ни удалить ;)

RHAmzin
Сообщения: 72
Зарегистрирован: Чт апр 03, 2008 05:27

Сообщение RHAmzin »

Ну вот, другое дело.
Как по маслу!!!!
Спасибо за оперативность!

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

Сообщение Kayfolom »

RHAmzin писал(а):Ну вот, другое дело.
Как по маслу!!!!
Спасибо за оперативность!
Спасибо в стакан не нальешь ;) :P :beer:

zorg3
Сообщения: 55
Зарегистрирован: Пн окт 13, 2008 15:01

Сообщение zorg3 »

Подскажите пожалуйста обрабатываемые ключи к плагину замены интерфейса кассира. Хочется попробовать а что прописывать не могу понять!

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

Сообщение Kayfolom »

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

Закрыто