Итак, нам нужно совместить файлы modules/account/user/view/index.php (этот файл отвечает за просмотр пользователя) и modules/account/user/user/index.php (этот файл отвечает за просмотр сессий), кроме этого, нам понадобится настроить шаблоны, поэтому придется править файл templates/Uniel/Classes/UserAccount.php. Откроем эти все файлы.
Сначала работам с modules/account/user/view/index.php.
Находим:
$groups=$GLOBALS['Eleanor']->module['user']['groups'] ? explode(',,',trim($GLOBALS['Eleanor']->module['user']['groups'],',')) : array();
Заменяем на:
$groups=Eleanor::GetUserGroups();
Находим:
$user=&$GLOBALS['Eleanor']->module['user'];
Заменяем на:
$R=Eleanor::$Db->Query('SELECT `id`,`u`.`full_name`,`u`.`name`,`forum_id`,`groups`,`u`.`register`,`u`.`last_visit`,`u`.`language`,`u`.`timezone`,`e`.* FROM `'.USERS_TABLE.'` `u` INNER JOIN `'.P.'users_extra` `e` USING (`id`) INNER JOIN `'.P.'users_site` `s` USING(`id`) WHERE `id`='.(int)Eleanor::$Login->GetUserValue('id').' LIMIT 1');
$user=$R->fetch_assoc();
Теперь берем все полезное содержимое, а именно:
Eleanor::LoadOptions('user-profile',false);
$groups=Eleanor::GetUserGroups();
if($groups)
{
$R=Eleanor::$Db->Query('SELECT `id`,`title_l` `title`,`html_pref`,`html_end` FROM `'.P.'groups` WHERE `id`'.Eleanor::$Db->In($groups));
$main=reset($groups);
$tosort=$groups=$grs=array();
while($a=$R->fetch_assoc())
{
$a['title']=$a['title'] ? Eleanor::FilterLangValues((array)unserialize($a['title'])) : '';
$a['_a']=$GLOBALS['Eleanor']->Url->special.$GLOBALS['Eleanor']->Url->Construct(array('module'=>$GLOBALS['Eleanor']->module['sections']['groups']),false).'#group-'.$a['id'];
$a['_main']=$main==$a['id'];
$grs[$a['id']]=array_slice($a,1);
$tosort[$a['id']]=$a['title'];
}
asort($tosort,SORT_STRING);
foreach($tosort as $k=>&$v)
$groups[$k]=$grs[$k];
}
class_exists('OwnBB');
include_once Eleanor::$root.'core/ownbb/url.php';
$R=Eleanor::$Db->Query('SELECT `id`,`u`.`full_name`,`u`.`name`,`forum_id`,`groups`,`u`.`register`,`u`.`last_visit`,`u`.`language`,`u`.`timezone`,`e`.* FROM `'.USERS_TABLE.'` `u` INNER JOIN `'.P.'users_extra` `e` USING (`id`) INNER JOIN `'.P.'users_site` `s` USING(`id`) WHERE `id`='.(int)Eleanor::$Login->GetUserValue('id').' LIMIT 1');
$user=$R->fetch_assoc();
if($user['signature'])
$user['signature']=OwnBB::Parse($user['signature']);
if($user['site'])
$user['site']=OwnBbCode_url::PreDisplay('',false,$user['site'],true);
if($user['vk'])
$user['vk']=OwnBbCode_url::PreDisplay('',false,'http://vk.com/'.$user['vk'],true);
if($user['twitter'])
$user['twitter']=OwnBbCode_url::PreDisplay('',false,'http://twitter.com/'.$user['twitter'],true);
if($user['facebook'])
$user['facebook']=OwnBbCode_url::PreDisplay('',false,'http://facebook.com/'.$user['facebook'],true);
И...
Далее работаем с файлом modules/account/user/user/index.php
Находим:
return Eleanor::$Template->AcMain($sessions);
Заменяем на:
return Eleanor::$Template->AcMain($sessions,$user,$groups);
Вставляем перед этой строкой, то, что взяли ранее из файла modules/account/user/view/index.php .
И наконец, работаем с шаблоном templates/Uniel/Classes/UserAccount.php
Находим метод
public static function AcUserInfo($groups)
Все содержимое этого метода (содержимое не включает себя фигурные скобки {}) копируем куда-нибудь и начинаем работать с ним.
Находим и удаляем:
$user=$GLOBALS['Eleanor']->module['user'];
$C=static::Menu('view','main','main');
Находим:
return$C.$Lst;
Заменяем на:
$C.=$Lst;
Копируем. Теперь возвращаемся к файлу UserAccount.php, находим (метод AcMain):
->Title('Открытые сессии');
или (зависит от версии) ->Title(static::$lang['sessions']);
. И вставляем все под этой строкой.
Находим:
public static function AcMain($sessions)
Заменяем на:
public static function AcMain($sessions,$user,$groups)
Далее в этом же методе находим:
->Title('Открытые сессии')
и удаляем. Обратите внимание, точку с запятой удалять не надо.
Радуемся жизни, все работает
