1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-02 22:45:02 +03:00
This commit is contained in:
Mzhelskiy Maxim 2012-04-15 14:10:59 +04:00
parent d75eead7bf
commit 9474da4b82
7 changed files with 560 additions and 517 deletions

View file

@ -408,6 +408,16 @@ class ModuleStream extends Module {
$aIds = $this->oMapper->getUserSubscribes($iUserId);
return $this->User_GetUsersAdditionalData($aIds);
}
/**
* Проверяет подписан ли пользователь на конкретного пользователя
*
* @param $iUserId
* @param $iTargetUserId
* @return bool
*/
public function IsSubscribe($iUserId,$iTargetUserId) {
return $this->oMapper->IsSubscribe($iUserId,$iTargetUserId);
}
/**
* Редактирование списка событий, на которые подписан юзер
* @param int $iUserId

View file

@ -18,13 +18,13 @@
class ModuleStream_MapperStream extends Mapper {
public function AddEvent($oObject) {
$sql = "INSERT INTO ".Config::Get('db.table.stream_event')." SET ?a ";
$sql = "INSERT INTO ".Config::Get('db.table.stream_event')." SET ?a ";
if ($iId=$this->oDb->query($sql,$oObject->_getData())) {
return $iId;
}
}
return false;
}
}
public function GetEventByTarget($sEventType, $iTargetId, $iUserId=null) {
$sql = "SELECT * FROM
".Config::Get('db.table.stream_event')."
@ -34,13 +34,13 @@ class ModuleStream_MapperStream extends Mapper {
}
return null;
}
public function UpdateEvent($oObject) {
$sql = "UPDATE ".Config::Get('db.table.stream_event')." SET ?a WHERE id = ?d ";
$sql = "UPDATE ".Config::Get('db.table.stream_event')." SET ?a WHERE id = ?d ";
return $this->oDb->query($sql,$oObject->_getData(array('publish')),$oObject->getId());
}
public function getTypesList($iUserId) {
$sql = 'SELECT event_type FROM ' . Config::Get('db.table.stream_user_type') . ' WHERE user_id = ?d';
$aRet = $this->oDb->selectCol($sql, $iUserId);
@ -112,4 +112,13 @@ class ModuleStream_MapperStream extends Mapper {
$this->oDb->query($sql, $iUserId, $iTargetUserId);
}
public function IsSubscribe($iUserId,$iTargetUserId) {
$sql = 'SELECT * FROM ' . Config::Get('db.table.stream_subscribe') . ' WHERE
user_id = ?d AND target_user_id = ?d LIMIT 0,1';
if ($this->oDb->selectRow($sql, $iUserId, $iTargetUserId)) {
return true;
}
return false;
}
}

File diff suppressed because it is too large Load diff

View file

@ -357,8 +357,8 @@ class ModuleUser extends Module {
*/
public function Shutdown() {
if ($this->oUserCurrent) {
$iCountTalkNew=$this->Talk_GetCountTalkNew($this->oUserCurrent->getId());
$this->Viewer_Assign('iUserCurrentCountTalkNew',$iCountTalkNew);
$this->Viewer_Assign('iUserCurrentCountTalkNew',$this->Talk_GetCountTalkNew($this->oUserCurrent->getId()));
$this->Viewer_Assign('iUserCurrentCountTopicDraft',$this->Topic_GetCountDraftTopicsByUserId($this->oUserCurrent->getId()));
}
$this->Viewer_Assign('oUserCurrent',$this->oUserCurrent);
}
@ -546,8 +546,8 @@ class ModuleUser extends Module {
$this->oSession->setIpLast(func_getIp());
if (false === ($data = $this->Cache_Get("user_session_{$this->oSession->getUserId()}"))) {
$data=array(
'time'=>time(),
'session'=>$this->oSession
'time'=>time(),
'session'=>$this->oSession
);
} else {
$data['session']=$this->oSession;
@ -1213,68 +1213,68 @@ class ModuleUser extends Module {
}
/**
* Получить дополниетльные поля профиля пользователя
* Получить дополниетльные поля профиля пользователя
* @param array $aType Типы полей, null - все типы
* @return type
*/
* @return type
*/
public function getUserFields($aType=null) {
return $this->oMapper->getUserFields($aType);
}
/**
* Получить значения дополнительных полей профиля пользователя
* @param int $iUserId
* @param bool $bOnlyNoEmpty Загружать только непустые поля
* @param array $aType Типы полей, null - все типы
* @return type
*/
* Получить значения дополнительных полей профиля пользователя
* @param int $iUserId
* @param bool $bOnlyNoEmpty Загружать только непустые поля
* @param array $aType Типы полей, null - все типы
* @return type
*/
public function getUserFieldsValues($iUserId, $bOnlyNoEmpty = true, $aType=array('')) {
return $this->oMapper->getUserFieldsValues($iUserId, $bOnlyNoEmpty, $aType);
}
/**
* Получить по имени поля его значение дял определённого пользователя
* @param type $iUserId
* @param type $bOnlyNoEmpty Загружать только непустые поля
* @return type
*/
* Получить по имени поля его значение дял определённого пользователя
* @param type $iUserId
* @param type $bOnlyNoEmpty Загружать только непустые поля
* @return type
*/
public function getUserFieldValueByName($iUserId, $sName) {
return $this->oMapper->getUserFieldValueByName($iUserId, $sName);
}
/**
* Установить значения дополнительных полей профиля пользователя
* @param type $iUserId
* @param type $aFields Ассоциативный массив полей id => value
* @return type
*/
* Установить значения дополнительных полей профиля пользователя
* @param type $iUserId
* @param type $aFields Ассоциативный массив полей id => value
* @return type
*/
public function setUserFieldsValues($iUserId, $aFields, $bSingle=true) {
return $this->oMapper->setUserFieldsValues($iUserId, $aFields, $bSingle);
}
/**
* Добавить поле
* @param type $sName
* @return type
*/
* Добавить поле
* @param type $sName
* @return type
*/
public function addUserField($oField) {
return $this->oMapper->addUserField($oField);
}
/**
* Изменить поле
* @param type $sName
* @return type
*/
* Изменить поле
* @param type $sName
* @return type
*/
public function updateUserField($oField) {
return $this->oMapper->updateUserField($oField);
}
/**
* Удалить поле
* @param type $iId
* @return type
*/
* Удалить поле
* @param type $iId
* @return type
*/
public function deleteUserField($iId) {
return $this->oMapper->deleteUserField($iId);
}

View file

@ -71,105 +71,105 @@ class ModuleUser_EntityUser extends Entity {
}
public function getId() {
return $this->_aData['user_id'];
}
public function getLogin() {
return $this->_aData['user_login'];
}
public function getPassword() {
return $this->_aData['user_password'];
}
public function getMail() {
return $this->_aData['user_mail'];
}
public function getSkill() {
return number_format(round($this->_aData['user_skill'],2), 2, '.', '');
}
public function getDateRegister() {
return $this->_aData['user_date_register'];
}
public function getDateActivate() {
return $this->_aData['user_date_activate'];
}
public function getDateCommentLast() {
return $this->_aData['user_date_comment_last'];
}
public function getIpRegister() {
return $this->_aData['user_ip_register'];
}
public function getRating() {
return number_format(round($this->_aData['user_rating'],2), 2, '.', '');
}
public function getCountVote() {
return $this->_aData['user_count_vote'];
}
public function getActivate() {
return $this->_aData['user_activate'];
}
public function getActivateKey() {
return $this->_aData['user_activate_key'];
}
public function getProfileName() {
return $this->_aData['user_profile_name'];
}
public function getProfileSex() {
return $this->_aData['user_profile_sex'];
}
public function getProfileCountry() {
return $this->_aData['user_profile_country'];
}
public function getProfileRegion() {
return $this->_aData['user_profile_region'];
}
public function getProfileCity() {
return $this->_aData['user_profile_city'];
}
public function getProfileBirthday() {
return $this->_aData['user_profile_birthday'];
}
public function getProfileAbout() {
return $this->_aData['user_profile_about'];
}
public function getProfileDate() {
return $this->_aData['user_profile_date'];
}
public function getProfileAvatar() {
return $this->_aData['user_profile_avatar'];
}
public function getProfileAvatarType() {
return ($sPath=$this->getProfileAvatarPath()) ? pathinfo($sPath,PATHINFO_EXTENSION) : null;
}
public function getProfileFoto() {
return $this->_aData['user_profile_foto'];
}
public function getSettingsNoticeNewTopic() {
return $this->_aData['user_settings_notice_new_topic'];
}
public function getSettingsNoticeNewComment() {
return $this->_aData['user_settings_notice_new_comment'];
}
public function getSettingsNoticeNewTalk() {
return $this->_aData['user_settings_notice_new_talk'];
}
public function getSettingsNoticeReplyComment() {
return $this->_aData['user_settings_notice_reply_comment'];
}
public function getSettingsNoticeNewFriend() {
return $this->_aData['user_settings_notice_new_friend'];
}
public function getUserFieldValues($bOnlyNoEmpty = true, $sType='') {
return $this->_aData['user_id'];
}
public function getLogin() {
return $this->_aData['user_login'];
}
public function getPassword() {
return $this->_aData['user_password'];
}
public function getMail() {
return $this->_aData['user_mail'];
}
public function getSkill() {
return number_format(round($this->_aData['user_skill'],2), 2, '.', '');
}
public function getDateRegister() {
return $this->_aData['user_date_register'];
}
public function getDateActivate() {
return $this->_aData['user_date_activate'];
}
public function getDateCommentLast() {
return $this->_aData['user_date_comment_last'];
}
public function getIpRegister() {
return $this->_aData['user_ip_register'];
}
public function getRating() {
return number_format(round($this->_aData['user_rating'],2), 2, '.', '');
}
public function getCountVote() {
return $this->_aData['user_count_vote'];
}
public function getActivate() {
return $this->_aData['user_activate'];
}
public function getActivateKey() {
return $this->_aData['user_activate_key'];
}
public function getProfileName() {
return $this->_aData['user_profile_name'];
}
public function getProfileSex() {
return $this->_aData['user_profile_sex'];
}
public function getProfileCountry() {
return $this->_aData['user_profile_country'];
}
public function getProfileRegion() {
return $this->_aData['user_profile_region'];
}
public function getProfileCity() {
return $this->_aData['user_profile_city'];
}
public function getProfileBirthday() {
return $this->_aData['user_profile_birthday'];
}
public function getProfileAbout() {
return $this->_aData['user_profile_about'];
}
public function getProfileDate() {
return $this->_aData['user_profile_date'];
}
public function getProfileAvatar() {
return $this->_aData['user_profile_avatar'];
}
public function getProfileAvatarType() {
return ($sPath=$this->getProfileAvatarPath()) ? pathinfo($sPath,PATHINFO_EXTENSION) : null;
}
public function getProfileFoto() {
return $this->_aData['user_profile_foto'];
}
public function getSettingsNoticeNewTopic() {
return $this->_aData['user_settings_notice_new_topic'];
}
public function getSettingsNoticeNewComment() {
return $this->_aData['user_settings_notice_new_comment'];
}
public function getSettingsNoticeNewTalk() {
return $this->_aData['user_settings_notice_new_talk'];
}
public function getSettingsNoticeReplyComment() {
return $this->_aData['user_settings_notice_reply_comment'];
}
public function getSettingsNoticeNewFriend() {
return $this->_aData['user_settings_notice_new_friend'];
}
public function getUserFieldValues($bOnlyNoEmpty = true, $sType='') {
return $this->User_getUserFieldsValues($this->getId(), $bOnlyNoEmpty,$sType);
}
public function getSession() {
public function getSession() {
if (!isset($this->_aData['session'])) {
$this->_aData['session']=$this->User_GetSessionByUserId($this->getId());
}
return $this->_aData['session'];
}
return $this->_aData['session'];
}
public function isOnline() {
if ($oSession=$this->getSession()) {
if (time()-strtotime($oSession->getDateLast())<60*10) { // 10 минут
@ -178,13 +178,13 @@ class ModuleUser_EntityUser extends Entity {
}
return false;
}
public function getProfileAvatarPath($iSize=100) {
if ($sPath=$this->getProfileAvatar()) {
return str_replace('_100x100',(($iSize==0)?"":"_{$iSize}x{$iSize}"),$sPath."?".date('His',strtotime($this->getProfileDate())));
} else {
return Config::Get('path.static.skin').'/images/avatar_'.$iSize.'x'.$iSize.'.jpg';
}
}
public function getProfileAvatarPath($iSize=100) {
if ($sPath=$this->getProfileAvatar()) {
return str_replace('_100x100',(($iSize==0)?"":"_{$iSize}x{$iSize}"),$sPath."?".date('His',strtotime($this->getProfileDate())));
} else {
return Config::Get('path.static.skin').'/images/avatar_'.$iSize.'x'.$iSize.'.jpg';
}
}
public function getProfileFotoPath() {
if ($this->getProfileFoto()) {
return $this->getProfileFoto();
@ -194,129 +194,139 @@ class ModuleUser_EntityUser extends Entity {
public function getProfileFotoDefault() {
return Config::Get('path.static.skin').'/images/user_foto_250.png';
}
public function getVote() {
return $this->_aData['vote'];
}
public function getUserIsFriend() {
return $this->_aData['user_is_friend'];
}
public function isAdministrator() {
return $this->_aData['user_is_administrator'];
}
public function getUserWebPath() {
return Router::GetPath('profile').$this->getLogin().'/';
}
/**
* Возвращает статус дружбы с текущим пользователем
*
* @return int
*/
public function getUserFriend() {
return $this->_aData['user_friend'];
}
public function setId($data) {
$this->_aData['user_id']=$data;
}
public function setLogin($data) {
$this->_aData['user_login']=$data;
}
public function setPassword($data) {
$this->_aData['user_password']=$data;
}
public function setMail($data) {
$this->_aData['user_mail']=$data;
}
public function setSkill($data) {
$this->_aData['user_skill']=$data;
}
public function setDateRegister($data) {
$this->_aData['user_date_register']=$data;
}
public function setDateActivate($data) {
$this->_aData['user_date_activate']=$data;
}
public function setDateCommentLast($data) {
$this->_aData['user_date_comment_last']=$data;
}
public function setIpRegister($data) {
$this->_aData['user_ip_register']=$data;
}
public function setRating($data) {
$this->_aData['user_rating']=$data;
}
public function setCountVote($data) {
$this->_aData['user_count_vote']=$data;
}
public function setActivate($data) {
$this->_aData['user_activate']=$data;
}
public function setActivateKey($data) {
$this->_aData['user_activate_key']=$data;
}
public function setProfileName($data) {
$this->_aData['user_profile_name']=$data;
}
public function setProfileSex($data) {
$this->_aData['user_profile_sex']=$data;
}
public function setProfileCountry($data) {
$this->_aData['user_profile_country']=$data;
}
public function setProfileRegion($data) {
$this->_aData['user_profile_region']=$data;
}
public function setProfileCity($data) {
$this->_aData['user_profile_city']=$data;
}
public function setProfileBirthday($data) {
$this->_aData['user_profile_birthday']=$data;
}
public function setProfileAbout($data) {
$this->_aData['user_profile_about']=$data;
}
public function setProfileDate($data) {
$this->_aData['user_profile_date']=$data;
}
public function setProfileAvatar($data) {
$this->_aData['user_profile_avatar']=$data;
}
public function setProfileFoto($data) {
$this->_aData['user_profile_foto']=$data;
}
public function setSettingsNoticeNewTopic($data) {
$this->_aData['user_settings_notice_new_topic']=$data;
}
public function setSettingsNoticeNewComment($data) {
$this->_aData['user_settings_notice_new_comment']=$data;
}
public function setSettingsNoticeNewTalk($data) {
$this->_aData['user_settings_notice_new_talk']=$data;
}
public function setSettingsNoticeReplyComment($data) {
$this->_aData['user_settings_notice_reply_comment']=$data;
}
public function setSettingsNoticeNewFriend($data) {
$this->_aData['user_settings_notice_new_friend']=$data;
}
public function setSession($data) {
$this->_aData['session']=$data;
}
public function setUserIsFriend($data) {
$this->_aData['user_is_friend']=$data;
}
public function setVote($data) {
$this->_aData['vote']=$data;
}
/**
* Устанавливаем статус дружбы с текущим пользователем
*
* @param int $data
*/
public function setUserFriend($data) {
$this->_aData['user_friend']=$data;
}
public function getVote() {
return $this->_aData['vote'];
}
public function getUserIsFriend() {
return $this->_aData['user_is_friend'];
}
public function isAdministrator() {
return $this->_aData['user_is_administrator'];
}
public function getUserWebPath() {
return Router::GetPath('profile').$this->getLogin().'/';
}
/**
* Возвращает статус дружбы с текущим пользователем
*
* @return int
*/
public function getUserFriend() {
return $this->_aData['user_friend'];
}
/**
* Проверяет подписан ли текущий пользователь на этого
*
* @return bool
*/
public function isFollow() {
if ($oUserCurrent=$this->User_GetUserCurrent()) {
return $this->Stream_IsSubscribe($oUserCurrent->getId(),$this->getId());
}
}
public function setId($data) {
$this->_aData['user_id']=$data;
}
public function setLogin($data) {
$this->_aData['user_login']=$data;
}
public function setPassword($data) {
$this->_aData['user_password']=$data;
}
public function setMail($data) {
$this->_aData['user_mail']=$data;
}
public function setSkill($data) {
$this->_aData['user_skill']=$data;
}
public function setDateRegister($data) {
$this->_aData['user_date_register']=$data;
}
public function setDateActivate($data) {
$this->_aData['user_date_activate']=$data;
}
public function setDateCommentLast($data) {
$this->_aData['user_date_comment_last']=$data;
}
public function setIpRegister($data) {
$this->_aData['user_ip_register']=$data;
}
public function setRating($data) {
$this->_aData['user_rating']=$data;
}
public function setCountVote($data) {
$this->_aData['user_count_vote']=$data;
}
public function setActivate($data) {
$this->_aData['user_activate']=$data;
}
public function setActivateKey($data) {
$this->_aData['user_activate_key']=$data;
}
public function setProfileName($data) {
$this->_aData['user_profile_name']=$data;
}
public function setProfileSex($data) {
$this->_aData['user_profile_sex']=$data;
}
public function setProfileCountry($data) {
$this->_aData['user_profile_country']=$data;
}
public function setProfileRegion($data) {
$this->_aData['user_profile_region']=$data;
}
public function setProfileCity($data) {
$this->_aData['user_profile_city']=$data;
}
public function setProfileBirthday($data) {
$this->_aData['user_profile_birthday']=$data;
}
public function setProfileAbout($data) {
$this->_aData['user_profile_about']=$data;
}
public function setProfileDate($data) {
$this->_aData['user_profile_date']=$data;
}
public function setProfileAvatar($data) {
$this->_aData['user_profile_avatar']=$data;
}
public function setProfileFoto($data) {
$this->_aData['user_profile_foto']=$data;
}
public function setSettingsNoticeNewTopic($data) {
$this->_aData['user_settings_notice_new_topic']=$data;
}
public function setSettingsNoticeNewComment($data) {
$this->_aData['user_settings_notice_new_comment']=$data;
}
public function setSettingsNoticeNewTalk($data) {
$this->_aData['user_settings_notice_new_talk']=$data;
}
public function setSettingsNoticeReplyComment($data) {
$this->_aData['user_settings_notice_reply_comment']=$data;
}
public function setSettingsNoticeNewFriend($data) {
$this->_aData['user_settings_notice_new_friend']=$data;
}
public function setSession($data) {
$this->_aData['session']=$data;
}
public function setUserIsFriend($data) {
$this->_aData['user_is_friend']=$data;
}
public function setVote($data) {
$this->_aData['vote']=$data;
}
/**
* Устанавливаем статус дружбы с текущим пользователем
*
* @param int $data
*/
public function setUserFriend($data) {
$this->_aData['user_friend']=$data;
}
}
?>

View file

@ -48,8 +48,8 @@
{include file='actions/ActionProfile/friend_item.tpl' oUserFriend=$oUserProfile->getUserFriend()}
<li><a href="{router page='talk'}add/?talk_users={$oUserProfile->getLogin()}">{$aLang.user_write_prvmsg}</a></li>
<li>
<a href="#" onclick="ls.user.followToggle(this, {$oUserProfile->getId()}); return false;" class="{if false}follow{/if}">
{if false}{$aLang.profile_user_unfollow}{else}{$aLang.profile_user_follow}{/if}
<a href="#" onclick="ls.user.followToggle(this, {$oUserProfile->getId()}); return false;" class="{if $oUserProfile->isFollow()}followed{/if}">
{if $oUserProfile->isFollow()}{$aLang.profile_user_unfollow}{else}{$aLang.profile_user_follow}{/if}
</a>
</li>
</ul>

View file

@ -27,10 +27,12 @@
<a href="{router page='blog'}add" class="write-item-image"></a>
<a href="{router page='blog'}add" class="write-item-link">Блог</a>
</li>
<li class="write-item-type-draft">
<a href="{router page='topic'}saved/" class="write-item-image"></a>
<a href="{router page='topic'}saved/" class="write-item-link">{$aLang.topic_menu_saved} (0)</a>
</li>
{if $iUserCurrentCountTopicDraft}
<li class="write-item-type-draft">
<a href="{router page='topic'}saved/" class="write-item-image"></a>
<a href="{router page='topic'}saved/" class="write-item-link">{$aLang.topic_menu_saved} ({$iUserCurrentCountTopicDraft})</a>
</li>
{/if}
</ul>
</div>
{/strip}