mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-28 20:45:00 +03:00
В списке людей отображается есть ли заметка от текущего пользователя о юзере
This commit is contained in:
parent
7de670d01f
commit
d604951300
|
@ -1285,7 +1285,7 @@ class ActionProfile extends Action {
|
|||
* Заметка текущего пользователя о юзере
|
||||
*/
|
||||
if ($this->oUserCurrent) {
|
||||
$this->Viewer_Assign('oUserNote',$this->User_GetUserNote($this->oUserProfile->getId(),$this->oUserCurrent->getId()));
|
||||
$this->Viewer_Assign('oUserNote',$this->oUserProfile->getUserNote());
|
||||
}
|
||||
$this->Viewer_Assign('iCountFriendsUser',$this->User_GetCountUsersFriend($this->oUserProfile->getId()));
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ class ModuleComment extends Module {
|
|||
*/
|
||||
$aTargets=array();
|
||||
//$aTargets['topic']=isset($aAllowData['target']) && is_array($aAllowData['target']) ? $this->Topic_GetTopicsAdditionalData($aTargetId['topic'],$aAllowData['target']) : $this->Topic_GetTopicsAdditionalData($aTargetId['topic']);
|
||||
$aTargets['topic']=$this->Topic_GetTopicsAdditionalData($aTargetId['topic'],array('blog'=>array('owner'=>array())));
|
||||
$aTargets['topic']=$this->Topic_GetTopicsAdditionalData($aTargetId['topic'],array('blog'=>array('owner'=>array()),'user'=>array()));
|
||||
$aVote=array();
|
||||
if (isset($aAllowData['vote']) and $this->oUserCurrent) {
|
||||
$aVote=$this->Vote_GetVoteByArray($aCommentId,'comment',$this->oUserCurrent->getId());
|
||||
|
|
|
@ -117,7 +117,7 @@ class ModuleUser extends Module {
|
|||
*/
|
||||
public function GetUsersAdditionalData($aUserId,$aAllowData=null) {
|
||||
if (is_null($aAllowData)) {
|
||||
$aAllowData=array('vote','session','friend','geo_target');
|
||||
$aAllowData=array('vote','session','friend','geo_target','note');
|
||||
}
|
||||
func_array_simpleflip($aAllowData);
|
||||
if (!is_array($aUserId)) {
|
||||
|
@ -134,6 +134,7 @@ class ModuleUser extends Module {
|
|||
$aFriends=array();
|
||||
$aVote=array();
|
||||
$aGeoTargets=array();
|
||||
$aNotes=array();
|
||||
if (isset($aAllowData['session'])) {
|
||||
$aSessions=$this->GetSessionsByArrayId($aUserId);
|
||||
}
|
||||
|
@ -147,6 +148,9 @@ class ModuleUser extends Module {
|
|||
if (isset($aAllowData['geo_target'])) {
|
||||
$aGeoTargets=$this->Geo_GetTargetsByTargetArray('user',$aUserId);
|
||||
}
|
||||
if (isset($aAllowData['note']) and $this->oUserCurrent) {
|
||||
$aNotes=$this->GetUserNotesByArray($aUserId,$this->oUserCurrent->getId());
|
||||
}
|
||||
/**
|
||||
* Добавляем данные к результату
|
||||
*/
|
||||
|
@ -173,6 +177,13 @@ class ModuleUser extends Module {
|
|||
} else {
|
||||
$oUser->setGeoTarget(null);
|
||||
}
|
||||
if (isset($aAllowData['note'])) {
|
||||
if (isset($aNotes[$oUser->getId()])) {
|
||||
$oUser->setUserNote($aNotes[$oUser->getId()]);
|
||||
} else {
|
||||
$oUser->setUserNote(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $aUsers;
|
||||
|
@ -1391,6 +1402,34 @@ class ModuleUser extends Module {
|
|||
public function GetUserNoteById($iId) {
|
||||
return $this->oMapper->GetUserNoteById($iId);
|
||||
}
|
||||
/**
|
||||
* Возвращает список заметок пользователя по ID целевых юзеров
|
||||
*
|
||||
* @param array $aUserId Список ID целевых пользователей
|
||||
* @param int $sUserId ID пользователя, кто оставлял заметки
|
||||
* @return array
|
||||
*/
|
||||
public function GetUserNotesByArray($aUserId,$sUserId) {
|
||||
if (!$aUserId) {
|
||||
return array();
|
||||
}
|
||||
if (!is_array($aUserId)) {
|
||||
$aUserId=array($aUserId);
|
||||
}
|
||||
$aUserId=array_unique($aUserId);
|
||||
$aNotes=array();
|
||||
$s=join(',',$aUserId);
|
||||
if (false === ($data = $this->Cache_Get("user_notes_{$sUserId}_id_{$s}"))) {
|
||||
$data = $this->oMapper->GetUserNotesByArrayUserId($aUserId,$sUserId);
|
||||
foreach ($data as $oNote) {
|
||||
$aNotes[$oNote->getTargetUserId()]=$oNote;
|
||||
}
|
||||
|
||||
$this->Cache_Set($aNotes, "user_notes_{$sUserId}_id_{$s}", array("user_note_change_by_user_{$sUserId}"), 60*60*24*1);
|
||||
return $aNotes;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
/**
|
||||
* Удаляет заметку по ID
|
||||
*
|
||||
|
@ -1398,6 +1437,9 @@ class ModuleUser extends Module {
|
|||
* @return bool
|
||||
*/
|
||||
public function DeleteUserNoteById($iId) {
|
||||
if ($oNote=$this->GetUserNoteById($iId)) {
|
||||
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array("user_note_change_by_user_{$oNote->getUserId()}"));
|
||||
}
|
||||
return $this->oMapper->DeleteUserNoteById($iId);
|
||||
}
|
||||
/**
|
||||
|
@ -1411,6 +1453,7 @@ class ModuleUser extends Module {
|
|||
$oNote->setDateAdd(date("Y-m-d H:i:s"));
|
||||
}
|
||||
|
||||
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array("user_note_change_by_user_{$oNote->getUserId()}"));
|
||||
if ($oNoteOld=$this->GetUserNote($oNote->getTargetUserId(),$oNote->getUserId()) ) {
|
||||
$oNoteOld->setText($oNote->getText());
|
||||
$this->oMapper->UpdateUserNote($oNoteOld);
|
||||
|
|
|
@ -426,6 +426,19 @@ class ModuleUser_EntityUser extends Entity {
|
|||
return $this->Stream_IsSubscribe($oUserCurrent->getId(),$this->getId());
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Возвращает объект заметки о подльзователе, которую оставил текущий пользователй
|
||||
*
|
||||
* @return ModuleUser_EntityNote|null
|
||||
*/
|
||||
public function getUserNote() {
|
||||
$oUserCurrent=$this->User_GetUserCurrent();
|
||||
if ($this->_getDataOne('user_note')===null and $oUserCurrent) {
|
||||
$this->_aData['user_note']=$this->User_GetUserNote($this->getId(),$oUserCurrent->getId());
|
||||
}
|
||||
return $this->_getDataOne('user_note');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Устанавливает ID пользователя
|
||||
|
|
|
@ -1038,6 +1038,33 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Возвращает список заметок пользователя по ID целевых юзеров
|
||||
*
|
||||
* @param array $aArrayId Список ID целевых пользователей
|
||||
* @param int $sUserId ID пользователя, кто оставлял заметки
|
||||
* @return array
|
||||
*/
|
||||
public function GetUserNotesByArrayUserId($aArrayId,$sUserId) {
|
||||
if (!is_array($aArrayId) or count($aArrayId)==0) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$sql = "SELECT
|
||||
*
|
||||
FROM
|
||||
".Config::Get('db.table.user_note')."
|
||||
WHERE target_user_id IN (?a) and user_id = ?d
|
||||
";
|
||||
$aRows=$this->oDb->select($sql,$aArrayId,$sUserId);
|
||||
$aRes=array();
|
||||
if ($aRows) {
|
||||
foreach ($aRows as $aRow) {
|
||||
$aRes[]=Engine::GetEntity('ModuleUser_EntityNote',$aRow);
|
||||
}
|
||||
}
|
||||
return $aRes;
|
||||
}
|
||||
/**
|
||||
* Удаляет заметку по ID
|
||||
*
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
{if $aUsersList}
|
||||
{foreach from=$aUsersList item=oUserList}
|
||||
{assign var="oSession" value=$oUserList->getSession()}
|
||||
{assign var="oUserNote" value=$oUserList->getUserNote()}
|
||||
<tr>
|
||||
<td class="cell-name">
|
||||
<a href="{$oUserList->getUserWebPath()}"><img src="{$oUserList->getProfileAvatarPath(48)}" alt="avatar" class="avatar" /></a>
|
||||
|
@ -41,6 +42,9 @@
|
|||
</td>
|
||||
<td>
|
||||
{if $oUserCurrent}
|
||||
{if $oUserNote}
|
||||
<button type="submit" class="button button-action button-action-send-message" title="{$oUserNote->getText()}"><i class="icon-synio-send-message"></i></button>
|
||||
{/if}
|
||||
<a href="{router page='talk'}add/?talk_users={$oUserList->getLogin()}"><button type="submit" class="button button-action button-action-send-message"><i class="icon-synio-send-message"></i><span>{$aLang.user_write_prvmsg}</span></button></a>
|
||||
{/if}
|
||||
</td>
|
||||
|
|
Loading…
Reference in a new issue