Личный кабинет на готовом движке
- Chrst
- Сообщения: 370
- Зарегистрирован: Пт май 11, 2007 09:28
- Откуда: Медиахолдинг "ЛеККС"
- Контактная информация:
На счет "поделись" - не жалко.
Единственно писалось в сжатые сроки и для себя. Отсюда вытекает стиль написания - практически нет комментариев и мануалов. И другой момент для того, чтобы адаптировать "под себя" прийдется изрядно полазить по коду.
Т.е. варианты:
1. Можно выложить как есть
2. Попросить о доработке и выложить уже в более потребном виде.
Единственно писалось в сжатые сроки и для себя. Отсюда вытекает стиль написания - практически нет комментариев и мануалов. И другой момент для того, чтобы адаптировать "под себя" прийдется изрядно полазить по коду.
Т.е. варианты:
1. Можно выложить как есть
2. Попросить о доработке и выложить уже в более потребном виде.
Не очень поможет. css использован только в общем плане все остальное в коде.хотя бы .CSS
Тема самописная, в стиле близком корпоративному сайту, но, наверное, подойдет в большинстве случаев.тему скажи
Выкладывай как есть, если можно на мыло dj_antares@mail.ruChrst писал(а):На счет "поделись" - не жалко.
Единственно писалось в сжатые сроки и для себя. Отсюда вытекает стиль написания - практически нет комментариев и мануалов. И другой момент для того, чтобы адаптировать "под себя" прийдется изрядно полазить по коду.
Т.е. варианты:
1. Можно выложить как есть
2. Попросить о доработке и выложить уже в более потребном виде.
Не очень поможет. css использован только в общем плане все остальное в коде.хотя бы .CSSТема самописная, в стиле близком корпоративному сайту, но, наверное, подойдет в большинстве случаев.тему скажи
Сделал и вроде отладил пару плагинов под Джумлу. Версия джумлы Joomla! 1.5.8.
Технология следующая - ставим джумлу (лучше чистую, без демо контента), создаем пользователя с правами SuperAdministrator, пользователь с таким же логином и паролем должен существовать в UTM. В админке джумлы, Расширения-Медеждер модулей создаем модуль Вход, даем ему права доступа ВСЕМ. Проверяем чтоб он отображался при входе на сайт.
Устанавливаем плагин авторизации http://www.ukhta-inform.ru/urfa.zip , в менеджере плагинов включаем его, и отключаем родной плагин авторизации джумлы.
После этого сайт должен пускать пользователей UTM без проблем.
Ставим плагин http://www.ukhta-inform.ru/user_info.zip (аналог первой страницы родного личного кабинета - инфа юзера и включения/отключение инета). В менеджере плагинов не забываем его включить.
В менеждере материалов создаем материал, в примеру Информация, не забываем установить права доступа к нему только для зарегестрированных пользователей, делаем ему менюшку и т.п.
Содержимое материла следующее:
При показе пользователю элементы типа {full_name} будут заменяться на реальные данные пользователя UTM. Делаем красивое форматирование (я к примеру сделал просто табличку, но можно использовать любое форматирование странички и любое расположение , порядок и состав элементов).
Да, плагинам нужна urfa php ( viewtopic.php?p=40512#40512 ) - создайте папку urfa в корне сайта и в папке administrator, киньте туда урфу.
Подведу итог: на данном итапе полностью работает авторизация и аналог первой страницы Личного кабинет. Работает включение и отключение интернета - пример для интерактивных страниц (отчетов, смен тарифа, пароля и прочего...)
В качестве наглядной демонстрации простоты задуманной системы исходные тексты модулей:
Авторизация:
Информация пользователя
Технология следующая - ставим джумлу (лучше чистую, без демо контента), создаем пользователя с правами SuperAdministrator, пользователь с таким же логином и паролем должен существовать в UTM. В админке джумлы, Расширения-Медеждер модулей создаем модуль Вход, даем ему права доступа ВСЕМ. Проверяем чтоб он отображался при входе на сайт.
Устанавливаем плагин авторизации http://www.ukhta-inform.ru/urfa.zip , в менеджере плагинов включаем его, и отключаем родной плагин авторизации джумлы.
После этого сайт должен пускать пользователей UTM без проблем.
Ставим плагин http://www.ukhta-inform.ru/user_info.zip (аналог первой страницы родного личного кабинета - инфа юзера и включения/отключение инета). В менеджере плагинов не забываем его включить.
В менеждере материалов создаем материал, в примеру Информация, не забываем установить права доступа к нему только для зарегестрированных пользователей, делаем ему менюшку и т.п.
Содержимое материла следующее:
Код: Выделить всё
{user_info}
Полное имя : {full_name}
Логин : {login}
Баланс : {balance}
Кредит : {credit}
Номер лицевого счета : {basic_account}
Блокировка : {is_blocked}
Дата создания : {create_date}
Адрес : {actual_address}
Номер ICQ : {icq_number}
Интернет : {int_status}
Да, плагинам нужна urfa php ( viewtopic.php?p=40512#40512 ) - создайте папку urfa в корне сайта и в папке administrator, киньте туда урфу.
Подведу итог: на данном итапе полностью работает авторизация и аналог первой страницы Личного кабинет. Работает включение и отключение интернета - пример для интерактивных страниц (отчетов, смен тарифа, пароля и прочего...)
В качестве наглядной демонстрации простоты задуманной системы исходные тексты модулей:
Авторизация:
Код: Выделить всё
<?php
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );
require_once("./urfa/URFAClient.php");
jimport( 'joomla.plugin.plugin' );
class plgAuthenticationURFA extends JPlugin
{
// Конструктор
function plgAuthenticationURFA(& $subject, $config) {
parent::__construct($subject, $config);
}
// Аутентификация
function onAuthenticate( $credentials, $options, &$response )
{
$urfa_user5 = new URFAClient_User5($credentials['username'], $credentials['password']);
$userinfo = $urfa_user5->rpcf_user5_get_user_info();
if ($userinfo[login]==$credentials['username']) {
$user = $userinfo[login]; // Bring this in line with the rest of the system
$response->fullname = $userinfo[full_name];
// К сожалению получить емайл достаточно проблематично без вызова нескольких функий - экономим
$response->email = time().'@domain.net';
$response->status = JAUTHENTICATE_STATUS_SUCCESS;
$response->error_message = '';
$_SESSION[URFA][login]=$userinfo[login];
$_SESSION[URFA][password]=$credentials['password'];
} else {
$response->status = JAUTHENTICATE_STATUS_FAILURE;
$response->error_message = 'Invalid password';
}
}
}
Код: Выделить всё
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once("./urfa/URFAClient.php");
$mainframe->registerEvent( 'onPrepareContent', 'plgUserInfoModify' );
function plgUserInfoModify(&$row, &$params, $page=0){
$pos = strpos($row->text, '{user_info}');
if ($pos > 0) {
$row->text = preg_replace('/{user_info}/', '', $row->text);
$urfa_user5 = new URFAClient_User5($_SESSION[URFA][login], $_SESSION[URFA][password]);
$uri = & JFactory::getURI();
if ($uri->_vars[urfa_cmd]=='enable_int') {
$urfa_user5->rpcf_user5_change_int_status(1);
array_pop($uri->_vars);
}
if ($uri->_vars[urfa_cmd]=='disable_int') {
$urfa_user5->rpcf_user5_change_int_status(0);
array_pop($uri->_vars);
}
$userinfo = $urfa_user5->rpcf_user5_get_user_info();
$row->text = preg_replace('/{full_name}/', $userinfo[full_name], $row->text);
$row->text = preg_replace('/{login}/', $userinfo[login], $row->text);
$row->text = preg_replace('/{basic_account}/', $userinfo[basic_account], $row->text);
switch ($userinfo[is_blocked]) {
case 0:
$is_blocked = "No";
break;
case 16:
$is_blocked = "Yes, no admin";
break;
case 256:
$is_blocked = "Yes";
break;
case 768:
$is_blocked = "Yes, no abonplat";
break;
}
$row->text = preg_replace('/{is_blocked}/', $is_blocked, $row->text);
$row->text = preg_replace('/{balance}/', sprintf ("%01.2f",$userinfo[balance]), $row->text);
$row->text = preg_replace('/{credit}/', sprintf ("%01.2f",$userinfo[credit]), $row->text);
$row->text = preg_replace('/{create_date}/', date("d.m.Y",$userinfo[create_date]), $row->text);
$row->text = preg_replace('/{actual_address}/', $userinfo[actual_address], $row->text);
$row->text = preg_replace('/{icq_number}/', $userinfo[icq_number], $row->text);
$enable_inet = "<A HREF=?".$uri->_query."&urfa_cmd=enable_int>ENABLE</A>";
$disable_inet = "<A HREF=?".$uri->_query."&urfa_cmd=disable_int>DISABLE</A>";
if ($userinfo[int_status]==1) {
$row->text = preg_replace('/{int_status}/', 'ENABLE '.$disable_inet, $row->text);
} else {
$row->text = preg_replace('/{int_status}/', 'DISABLE '.$enable_inet, $row->text);
}
}
}
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Дык как раз выбрал джумлу как живой и развивающийся проект, плюс у них специальная команда security lab занимающаяся отловом багов, бэкдоров и прочего.mikkey finn писал(а):в джумле слишком много багов. а вообще - респект и уважуха.
Ну а вообще неторопясь допишу плагинов под аналог родного кабинета, погоняю у себя, исходники выложу на пробу.