diff --git a/classes/actions/ActionProfile.class.php b/classes/actions/ActionProfile.class.php index 9bcd87dc..79f8e62b 100644 --- a/classes/actions/ActionProfile.class.php +++ b/classes/actions/ActionProfile.class.php @@ -128,6 +128,10 @@ class ActionProfile extends Action { * Получаем список друзей */ $aUsersFrend=$this->User_GetUsersFrend($this->oUserProfile->getId()); + /** + * Получаем список тех у кого в друзьях + */ + $aUsersSelfFrend=$this->User_GetUsersSelfFrend($this->oUserProfile->getId()); /** * Получаем список блогов в которых состоит юзер */ @@ -142,6 +146,7 @@ class ActionProfile extends Action { $this->Viewer_Assign('aBlogsUser',$aBlogsUser); $this->Viewer_Assign('aBlogsOwner',$aBlogsOwner); $this->Viewer_Assign('aUsersFrend',$aUsersFrend); + $this->Viewer_Assign('aUsersSelfFrend',$aUsersSelfFrend); $this->Viewer_AddHtmlTitle('Профиль '.$this->oUserProfile->getLogin()); $this->Viewer_AddHtmlTitle('Whois'); /** diff --git a/classes/modules/user/User.class.php b/classes/modules/user/User.class.php index 6a12d806..5e0cac3a 100644 --- a/classes/modules/user/User.class.php +++ b/classes/modules/user/User.class.php @@ -388,5 +388,18 @@ class User extends Module { } return $data; } + /** + * Получает список тех у кого в друзьях + * + * @param unknown_type $sUserId + * @return unknown + */ + public function GetUsersSelfFrend($sUserId) { + if (false === ($data = $this->Cache_Get("user_self_frend_{$sUserId}"))) { + $data = $this->oMapper->GetUsersSelfFrend($sUserId); + $this->Cache_Set($data, "user_self_frend_{$sUserId}", array("frend_change_frend_{$sUserId}"), 60*5); + } + return $data; + } } ?> \ No newline at end of file diff --git a/classes/modules/user/mapper/User.mapper.class.php b/classes/modules/user/mapper/User.mapper.class.php index 4006d77f..a3bf9183 100644 --- a/classes/modules/user/mapper/User.mapper.class.php +++ b/classes/modules/user/mapper/User.mapper.class.php @@ -367,5 +367,28 @@ class Mapper_User extends Mapper { } return $aUsers; } + + public function GetUsersSelfFrend($sUserId) { + $sql = "SELECT + u.* + FROM + ".DB_TABLE_FREND." as uf, + ".DB_TABLE_USER." as u + WHERE + uf.user_frend_id = ?d + AND + uf.user_id = u.user_id + AND + u.user_activate = 1 + ORDER BY u.user_login; + "; + $aUsers=array(); + if ($aRows=$this->oDb->select($sql,$sUserId)) { + foreach ($aRows as $aUser) { + $aUsers[]=new UserEntity_User($aUser); + } + } + return $aUsers; + } } ?> \ No newline at end of file diff --git a/templates/skin/habra/actions/ActionProfile/whois.tpl b/templates/skin/habra/actions/ActionProfile/whois.tpl index 57349c3c..71bf89c4 100644 --- a/templates/skin/habra/actions/ActionProfile/whois.tpl +++ b/templates/skin/habra/actions/ActionProfile/whois.tpl @@ -103,6 +103,22 @@ {/if} + + + {if $aUsersSelfFrend} +
+
+
+ В друзьях у: +
+
+ {foreach from=$aUsersSelfFrend item=oUserFrend} + посмотреть профиль{$oUserFrend->getLogin()} + {/foreach} +
+
+
+ {/if} {if $aBlogsOwner}