2009-05-10 10:50:39 +03:00
|
|
|
|
<?php
|
2014-10-08 08:20:29 +03:00
|
|
|
|
/*
|
|
|
|
|
* LiveStreet CMS
|
|
|
|
|
* Copyright © 2013 OOO "ЛС-СОФТ"
|
|
|
|
|
*
|
|
|
|
|
* ------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* Official site: www.livestreetcms.com
|
|
|
|
|
* Contact e-mail: office@livestreetcms.com
|
|
|
|
|
*
|
|
|
|
|
* GNU General Public License, version 2:
|
|
|
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
|
|
|
*
|
|
|
|
|
* ------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* @link http://www.livestreetcms.com
|
|
|
|
|
* @copyright 2013 OOO "ЛС-СОФТ"
|
|
|
|
|
* @author Maxim Mzhelskiy <rus.engine@gmail.com>
|
|
|
|
|
*
|
|
|
|
|
*/
|
2008-09-21 09:36:57 +03:00
|
|
|
|
|
2012-06-26 20:11:23 +03:00
|
|
|
|
/**
|
|
|
|
|
* Сущность пользователя
|
|
|
|
|
*
|
2014-10-08 08:20:29 +03:00
|
|
|
|
* @package application.modules.user
|
2012-06-26 20:11:23 +03:00
|
|
|
|
* @since 1.0
|
|
|
|
|
*/
|
2014-10-08 11:49:34 +03:00
|
|
|
|
class ModuleUser_EntityUser extends Entity
|
|
|
|
|
{
|
2015-04-21 06:42:59 +03:00
|
|
|
|
/**
|
|
|
|
|
* Определяем правила валидации
|
|
|
|
|
*
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
|
|
|
|
protected $aValidateRules = array(
|
|
|
|
|
array('login', 'login', 'on' => array('registration', '')), // '' - означает дефолтный сценарий
|
|
|
|
|
array('login', 'login_exists', 'on' => array('registration')),
|
|
|
|
|
array('mail', 'email', 'allowEmpty' => false, 'on' => array('registration', '')),
|
|
|
|
|
array('mail', 'mail_exists', 'on' => array('registration')),
|
|
|
|
|
);
|
|
|
|
|
|
2014-10-08 11:49:34 +03:00
|
|
|
|
/**
|
|
|
|
|
* Определяем дополнительные правила валидации
|
|
|
|
|
*
|
|
|
|
|
* @param array|bool $aParam
|
|
|
|
|
*/
|
|
|
|
|
public function __construct($aParam = false)
|
|
|
|
|
{
|
2015-04-21 06:42:59 +03:00
|
|
|
|
$this->aValidateRules[] = array(
|
|
|
|
|
'password',
|
|
|
|
|
'string',
|
|
|
|
|
'allowEmpty' => false,
|
|
|
|
|
'min' => 5,
|
|
|
|
|
'on' => array('registration'),
|
|
|
|
|
'label' => $this->Lang_Get('auth.labels.password')
|
|
|
|
|
);
|
|
|
|
|
$this->aValidateRules[] = array(
|
|
|
|
|
'password_confirm',
|
|
|
|
|
'compare',
|
|
|
|
|
'compareField' => 'password',
|
|
|
|
|
'on' => array('registration'),
|
|
|
|
|
'label' => $this->Lang_Get('auth.registration.form.fields.password_confirm.label')
|
|
|
|
|
);
|
|
|
|
|
|
2015-02-26 11:55:59 +02:00
|
|
|
|
$sCaptchaValidateType = func_camelize('captcha_' . Config::Get('sys.captcha.type'));
|
2014-10-08 11:49:34 +03:00
|
|
|
|
if (Config::Get('module.user.captcha_use_registration')) {
|
|
|
|
|
$this->aValidateRules[] = array(
|
|
|
|
|
'captcha',
|
2015-02-26 11:55:59 +02:00
|
|
|
|
$sCaptchaValidateType,
|
2015-04-21 06:42:59 +03:00
|
|
|
|
'name' => 'user_signup',
|
|
|
|
|
'on' => array('registration'),
|
|
|
|
|
'label' => $this->Lang_Get('auth.labels.captcha_field')
|
2014-10-08 11:49:34 +03:00
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Config::Get('general.login.captcha')) {
|
2015-04-21 06:42:59 +03:00
|
|
|
|
$this->aValidateRules[] = array(
|
|
|
|
|
'captcha',
|
|
|
|
|
$sCaptchaValidateType,
|
|
|
|
|
'name' => 'user_auth',
|
|
|
|
|
'on' => array('signIn'),
|
|
|
|
|
'label' => $this->Lang_Get('auth.labels.captcha_field')
|
|
|
|
|
);
|
2014-10-08 11:49:34 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
parent::__construct($aParam);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Валидация пользователя
|
|
|
|
|
*
|
|
|
|
|
* @param string $sValue Валидируемое значение
|
|
|
|
|
* @param array $aParams Параметры
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function ValidateLogin($sValue, $aParams)
|
|
|
|
|
{
|
|
|
|
|
if ($this->User_CheckLogin($sValue)) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return $this->Lang_Get('auth.registration.notices.error_login');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Проверка логина на существование
|
|
|
|
|
*
|
|
|
|
|
* @param string $sValue Валидируемое значение
|
|
|
|
|
* @param array $aParams Параметры
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function ValidateLoginExists($sValue, $aParams)
|
|
|
|
|
{
|
2016-02-26 10:20:09 +02:00
|
|
|
|
if ($oUserOld = $this->User_GetUserByLogin($sValue) and $oUserOld->getId() != $this->getId()) {
|
|
|
|
|
return $this->Lang_Get('auth.registration.notices.error_login_used');
|
2014-10-08 11:49:34 +03:00
|
|
|
|
}
|
2016-02-26 10:20:09 +02:00
|
|
|
|
return true;
|
2014-10-08 11:49:34 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Проверка емайла на существование
|
|
|
|
|
*
|
|
|
|
|
* @param string $sValue Валидируемое значение
|
|
|
|
|
* @param array $aParams Параметры
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function ValidateMailExists($sValue, $aParams)
|
|
|
|
|
{
|
2016-02-26 10:20:09 +02:00
|
|
|
|
if ($oUserOld = $this->User_GetUserByMail($sValue) and $oUserOld->getId() != $this->getId()) {
|
|
|
|
|
return $this->Lang_Get('auth.registration.notices.error_mail_used');
|
2014-10-08 11:49:34 +03:00
|
|
|
|
}
|
2016-02-26 10:20:09 +02:00
|
|
|
|
return true;
|
2014-10-08 11:49:34 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает ID пользователя
|
|
|
|
|
*
|
|
|
|
|
* @return int|null
|
|
|
|
|
*/
|
|
|
|
|
public function getId()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_id');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает логин
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getLogin()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_login');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает пароль (ввиде хеша)
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getPassword()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_password');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает емайл
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getMail()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_mail');
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-17 11:46:10 +02:00
|
|
|
|
/**
|
|
|
|
|
* Возвращает флаг админа
|
|
|
|
|
*
|
|
|
|
|
* @return int|null
|
|
|
|
|
*/
|
|
|
|
|
public function getAdmin()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_admin');
|
|
|
|
|
}
|
|
|
|
|
|
2014-10-08 11:49:34 +03:00
|
|
|
|
/**
|
|
|
|
|
* Возвращает дату регистрации
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getDateRegister()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_date_register');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает дату активации
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getDateActivate()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_date_activate');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает дату последнего комментирования
|
|
|
|
|
*
|
|
|
|
|
* @return mixed|null
|
|
|
|
|
*/
|
|
|
|
|
public function getDateCommentLast()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_date_comment_last');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает IP регистрации
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getIpRegister()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_ip_register');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает рейтинг
|
|
|
|
|
*
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getRating()
|
|
|
|
|
{
|
|
|
|
|
return number_format(round($this->_getDataOne('user_rating'), 2), 2, '.', '');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Вовзращает количество проголосовавших
|
|
|
|
|
*
|
|
|
|
|
* @return int|null
|
|
|
|
|
*/
|
|
|
|
|
public function getCountVote()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_count_vote');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает статус активированности
|
|
|
|
|
*
|
|
|
|
|
* @return int|null
|
|
|
|
|
*/
|
|
|
|
|
public function getActivate()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_activate');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает ключ активации
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getActivateKey()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_activate_key');
|
|
|
|
|
}
|
|
|
|
|
|
2015-03-05 18:21:27 +02:00
|
|
|
|
/**
|
|
|
|
|
* Возвращает реферальный код
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
2015-03-07 13:23:38 +02:00
|
|
|
|
public function getReferralCode()
|
2015-03-05 18:21:27 +02:00
|
|
|
|
{
|
2015-03-07 13:23:38 +02:00
|
|
|
|
return $this->_getDataOne('user_referral_code');
|
2015-03-05 18:21:27 +02:00
|
|
|
|
}
|
|
|
|
|
|
2014-10-08 11:49:34 +03:00
|
|
|
|
/**
|
|
|
|
|
* Возвращает имя
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileName()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_name');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает пол
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileSex()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_sex');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает название страны
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileCountry()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_country');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает название региона
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileRegion()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_region');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает название города
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileCity()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_city');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает дату рождения
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileBirthday()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_birthday');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает информацию о себе
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileAbout()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_about');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает дату редактирования профиля
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileDate()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_date');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает полный веб путь до аватра
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileAvatar()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_avatar');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает расширение автара
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileAvatarType()
|
|
|
|
|
{
|
|
|
|
|
return ($sPath = $this->getProfileAvatarPath()) ? pathinfo($sPath, PATHINFO_EXTENSION) : null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает полный веб путь до фото
|
|
|
|
|
*
|
|
|
|
|
* @return string|null
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileFoto()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_profile_foto');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает статус уведомления о новых топиках
|
|
|
|
|
*
|
|
|
|
|
* @return int|null
|
|
|
|
|
*/
|
|
|
|
|
public function getSettingsNoticeNewTopic()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_settings_notice_new_topic');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает статус уведомления о новых комментариях
|
|
|
|
|
*
|
|
|
|
|
* @return int|null
|
|
|
|
|
*/
|
|
|
|
|
public function getSettingsNoticeNewComment()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_settings_notice_new_comment');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает статус уведомления о новых письмах
|
|
|
|
|
*
|
|
|
|
|
* @return int|null
|
|
|
|
|
*/
|
|
|
|
|
public function getSettingsNoticeNewTalk()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_settings_notice_new_talk');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает статус уведомления о новых ответах в комментариях
|
|
|
|
|
*
|
|
|
|
|
* @return int|null
|
|
|
|
|
*/
|
|
|
|
|
public function getSettingsNoticeReplyComment()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_settings_notice_reply_comment');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает статус уведомления о новых друзьях
|
|
|
|
|
*
|
|
|
|
|
* @return int|null
|
|
|
|
|
*/
|
|
|
|
|
public function getSettingsNoticeNewFriend()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_settings_notice_new_friend');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает значения пользовательских полей
|
|
|
|
|
*
|
|
|
|
|
* @param bool $bOnlyNoEmpty Возвращать или нет только не пустые
|
|
|
|
|
* @param string $sType Тип полей
|
|
|
|
|
* @return array
|
|
|
|
|
*/
|
|
|
|
|
public function getUserFieldValues($bOnlyNoEmpty = true, $sType = '')
|
|
|
|
|
{
|
|
|
|
|
return $this->User_getUserFieldsValues($this->getId(), $bOnlyNoEmpty, $sType);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает объект сессии
|
|
|
|
|
*
|
|
|
|
|
* @return ModuleUser_EntitySession|null
|
|
|
|
|
*/
|
|
|
|
|
public function getSession()
|
|
|
|
|
{
|
|
|
|
|
if (!$this->_getDataOne('session')) {
|
|
|
|
|
$this->_aData['session'] = $this->User_GetSessionByUserId($this->getId());
|
|
|
|
|
}
|
|
|
|
|
return $this->_getDataOne('session');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает статус онлайн пользователь или нет
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function isOnline()
|
|
|
|
|
{
|
|
|
|
|
if ($oSession = $this->getSession()) {
|
|
|
|
|
if (time() - strtotime($oSession->getDateLast()) < Config::Get('module.user.time_onlive')) { // 10 минут
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает полный веб путь до аватара нужного размера
|
|
|
|
|
*
|
|
|
|
|
* @param int $iSize Размер
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileAvatarPath($iSize = 100)
|
|
|
|
|
{
|
2014-11-14 16:29:32 +02:00
|
|
|
|
if (is_numeric($iSize)) {
|
|
|
|
|
$iSize .= 'crop';
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-28 13:17:07 +02:00
|
|
|
|
if ($this->getProfileAvatar()) {
|
2014-11-14 16:29:32 +02:00
|
|
|
|
return $this->Media_GetImageWebPath($this->getProfileAvatar(), $iSize);
|
2014-10-08 11:49:34 +03:00
|
|
|
|
} else {
|
2014-12-28 13:17:07 +02:00
|
|
|
|
return $this->Media_GetImagePathBySize(Config::Get('path.skin.assets.web') . '/images/avatars/avatar_' . ($this->getProfileSex() == 'woman' ? 'female' : 'male') . '.png',
|
|
|
|
|
$iSize);
|
2014-10-08 11:49:34 +03:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-14 15:35:53 +02:00
|
|
|
|
/**
|
|
|
|
|
* Формирует массив с путями до аватаров
|
|
|
|
|
*
|
|
|
|
|
* @param object $oUser Пользователь
|
|
|
|
|
* @return array Массив с путями до аватаров
|
|
|
|
|
*/
|
2014-11-14 16:29:32 +02:00
|
|
|
|
public function getProfileAvatarsPath()
|
2014-11-14 15:35:53 +02:00
|
|
|
|
{
|
|
|
|
|
$aAvatars = array();
|
|
|
|
|
|
|
|
|
|
foreach (Config::Get('module.user.avatar_size') as $sSize) {
|
2014-12-28 13:17:07 +02:00
|
|
|
|
$aAvatars[$sSize] = $this->getProfileAvatarPath($sSize);
|
2014-11-14 15:35:53 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $aAvatars;
|
|
|
|
|
}
|
|
|
|
|
|
2014-10-08 11:49:34 +03:00
|
|
|
|
/**
|
|
|
|
|
* Возвращает полный веб путь до фото
|
|
|
|
|
*
|
|
|
|
|
* @return null|string
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileFotoPath()
|
|
|
|
|
{
|
|
|
|
|
if ($this->getProfileFoto()) {
|
|
|
|
|
return $this->Media_GetImageWebPath($this->getProfileFoto());
|
|
|
|
|
}
|
|
|
|
|
return $this->getProfileFotoDefault();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает дефолтную фото
|
|
|
|
|
*
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getProfileFotoDefault()
|
|
|
|
|
{
|
|
|
|
|
return Config::Get('path.skin.assets.web') . '/images/avatars/user_photo_' . ($this->getProfileSex() == 'woman' ? 'female' : 'male') . '.png';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает объект голосования за пользователя текущего пользователя
|
|
|
|
|
*
|
|
|
|
|
* @return ModuleVote_EntityVote|null
|
|
|
|
|
*/
|
|
|
|
|
public function getVote()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('vote');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает статус дружбы
|
|
|
|
|
*
|
|
|
|
|
* @return bool|null
|
|
|
|
|
*/
|
|
|
|
|
public function getUserIsFriend()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_is_friend');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает статус администратора сайта
|
|
|
|
|
*
|
2015-09-09 06:17:25 +03:00
|
|
|
|
* @return bool
|
2014-10-08 11:49:34 +03:00
|
|
|
|
*/
|
|
|
|
|
public function isAdministrator()
|
|
|
|
|
{
|
2015-09-09 06:17:25 +03:00
|
|
|
|
return (bool)$this->getAdmin();
|
2014-10-08 11:49:34 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает веб путь до профиля пользователя
|
|
|
|
|
*
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getUserWebPath()
|
|
|
|
|
{
|
|
|
|
|
return Router::GetPath('profile') . $this->getLogin() . '/';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает объект дружбы с текущим пользователем
|
|
|
|
|
*
|
|
|
|
|
* @return ModuleUser_EntityFriend|null
|
|
|
|
|
*/
|
|
|
|
|
public function getUserFriend()
|
|
|
|
|
{
|
|
|
|
|
return $this->_getDataOne('user_friend');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Проверяет подписан ли текущий пользователь на этого
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function isFollow()
|
|
|
|
|
{
|
|
|
|
|
if ($oUserCurrent = $this->User_GetUserCurrent()) {
|
|
|
|
|
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');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает имя пользователя для отображения на сайте
|
|
|
|
|
* В дефолте логин пользователя
|
|
|
|
|
*
|
|
|
|
|
* @return null|string
|
|
|
|
|
*/
|
|
|
|
|
public function getDisplayName()
|
|
|
|
|
{
|
|
|
|
|
return $this->getLogin();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем возможность редактирования пользователя текущим юзером
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function isAllowEdit()
|
|
|
|
|
{
|
|
|
|
|
if ($oUser = $this->User_GetUserCurrent()) {
|
|
|
|
|
if ($oUser->getId() == $this->getId() or $oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2015-11-09 12:03:23 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверка на возможность создания блога юзером
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function isAllowCreateBlog()
|
|
|
|
|
{
|
|
|
|
|
if ($this->isAdministrator() or $this->getRating() >= Config::Get('acl.create.blog.rating')) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2014-10-08 11:49:34 +03:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает ID пользователя
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setId($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_id'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает логин
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setLogin($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_login'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает пароль (ввиде хеша)
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setPassword($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_password'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает емайл
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setMail($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_mail'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-17 11:46:10 +02:00
|
|
|
|
/**
|
|
|
|
|
* Устанавливает флаг админа
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setAdmin($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_admin'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
2014-10-08 11:49:34 +03:00
|
|
|
|
/**
|
|
|
|
|
* Устанавливает дату регистрации
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setDateRegister($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_date_register'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает дату активации
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setDateActivate($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_date_activate'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает дату последнего комментирования
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setDateCommentLast($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_date_comment_last'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает IP регистрации
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setIpRegister($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_ip_register'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает рейтинг
|
|
|
|
|
*
|
|
|
|
|
* @param float $data
|
|
|
|
|
*/
|
|
|
|
|
public function setRating($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_rating'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает количество проголосовавших
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setCountVote($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_count_vote'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает статус активированности
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setActivate($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_activate'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает ключ активации
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setActivateKey($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_activate_key'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
2015-03-05 18:21:27 +02:00
|
|
|
|
/**
|
|
|
|
|
* Устанавливает реферальный код
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
2015-03-07 13:23:38 +02:00
|
|
|
|
public function setReferralCode($data)
|
2015-03-05 18:21:27 +02:00
|
|
|
|
{
|
2015-03-07 13:23:38 +02:00
|
|
|
|
$this->_aData['user_referral_code'] = $data;
|
2015-03-05 18:21:27 +02:00
|
|
|
|
}
|
|
|
|
|
|
2014-10-08 11:49:34 +03:00
|
|
|
|
/**
|
|
|
|
|
* Устанавливает имя
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileName($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_name'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает пол
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileSex($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_sex'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает название страны
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileCountry($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_country'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает название региона
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileRegion($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_region'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает название города
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileCity($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_city'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает дату рождения
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileBirthday($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_birthday'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает информацию о себе
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileAbout($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_about'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает дату редактирования профиля
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileDate($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_date'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает полный веб путь до аватра
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileAvatar($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_avatar'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает полный веб путь до фото
|
|
|
|
|
*
|
|
|
|
|
* @param string $data
|
|
|
|
|
*/
|
|
|
|
|
public function setProfileFoto($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_profile_foto'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает статус уведомления о новых топиках
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setSettingsNoticeNewTopic($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_settings_notice_new_topic'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает статус уведомления о новых комментариях
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setSettingsNoticeNewComment($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_settings_notice_new_comment'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает статус уведомления о новых письмах
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setSettingsNoticeNewTalk($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_settings_notice_new_talk'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает статус уведомления о новых ответах в комментариях
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setSettingsNoticeReplyComment($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_settings_notice_reply_comment'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает статус уведомления о новых друзьях
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setSettingsNoticeNewFriend($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_settings_notice_new_friend'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает объект сессии
|
|
|
|
|
*
|
|
|
|
|
* @param ModuleUser_EntitySession $data
|
|
|
|
|
*/
|
|
|
|
|
public function setSession($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['session'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает статус дружбы
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setUserIsFriend($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_is_friend'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливает объект голосования за пользователя текущего пользователя
|
|
|
|
|
*
|
|
|
|
|
* @param ModuleVote_EntityVote $data
|
|
|
|
|
*/
|
|
|
|
|
public function setVote($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['vote'] = $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливаем статус дружбы с текущим пользователем
|
|
|
|
|
*
|
|
|
|
|
* @param int $data
|
|
|
|
|
*/
|
|
|
|
|
public function setUserFriend($data)
|
|
|
|
|
{
|
|
|
|
|
$this->_aData['user_friend'] = $data;
|
|
|
|
|
}
|
2014-05-28 08:37:30 +03:00
|
|
|
|
}
|