mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-28 20:45:00 +03:00
Документация классов
This commit is contained in:
parent
318e26fae4
commit
0a7c5a53c1
|
@ -80,8 +80,6 @@ class ModuleUser extends Module {
|
|||
* В куках стоит время на сколько запоминать юзера
|
||||
*/
|
||||
$this->AutoLogin();
|
||||
|
||||
$this->oMapper->SetUserCurrent($this->oUserCurrent);
|
||||
/**
|
||||
* Обновляем сессию
|
||||
*/
|
||||
|
@ -1371,7 +1369,6 @@ class ModuleUser extends Module {
|
|||
public function GetCountUserNotesByUserId($iUserId) {
|
||||
return $this->oMapper->GetCountUserNotesByUserId($iUserId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращет заметку по автору и пользователю
|
||||
*
|
||||
|
|
|
@ -15,13 +15,19 @@
|
|||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Маппер для работы с БД
|
||||
*
|
||||
* @package modules.user
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleUser_MapperUser extends Mapper {
|
||||
protected $oUserCurrent=null;
|
||||
|
||||
public function SetUserCurrent($oUserCurrent) {
|
||||
$this->oUserCurrent=$oUserCurrent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавляет юзера
|
||||
*
|
||||
* @param ModuleUser_EntityUser $oUser Объект пользователя
|
||||
* @return int|bool
|
||||
*/
|
||||
public function Add(ModuleUser_EntityUser $oUser) {
|
||||
$sql = "INSERT INTO ".Config::Get('db.table.user')."
|
||||
(user_login,
|
||||
|
@ -39,7 +45,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновляет юзера
|
||||
*
|
||||
* @param ModuleUser_EntityUser $oUser Объект пользователя
|
||||
* @return bool
|
||||
*/
|
||||
public function Update(ModuleUser_EntityUser $oUser) {
|
||||
$sql = "UPDATE ".Config::Get('db.table.user')."
|
||||
SET
|
||||
|
@ -98,8 +109,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Получить юзера по ключу сессии
|
||||
*
|
||||
* @param string $sKey Сессионный ключ
|
||||
* @return int|null
|
||||
*/
|
||||
public function GetUserBySessionKey($sKey) {
|
||||
$sql = "SELECT
|
||||
s.user_id
|
||||
|
@ -113,7 +128,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Создание пользовательской сессии
|
||||
*
|
||||
* @param ModuleUser_EntitySession $oSession
|
||||
* @return bool
|
||||
*/
|
||||
public function CreateSession(ModuleUser_EntitySession $oSession) {
|
||||
$sql = "REPLACE INTO ".Config::Get('db.table.session')."
|
||||
SET
|
||||
|
@ -126,7 +146,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
";
|
||||
return $this->oDb->query($sql,$oSession->getKey(), $oSession->getUserId(), $oSession->getIpCreate(), $oSession->getIpLast(), $oSession->getDateCreate(), $oSession->getDateLast());
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновление данных сессии
|
||||
*
|
||||
* @param ModuleUser_EntitySession $oSession
|
||||
* @return int|bool
|
||||
*/
|
||||
public function UpdateSession(ModuleUser_EntitySession $oSession) {
|
||||
$sql = "UPDATE ".Config::Get('db.table.session')."
|
||||
SET
|
||||
|
@ -136,7 +161,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
";
|
||||
return $this->oDb->query($sql,$oSession->getIpLast(), $oSession->getDateLast(), $oSession->getUserId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Список сессий юзеров по ID
|
||||
*
|
||||
* @param array $aArrayId Список ID пользователей
|
||||
* @return array
|
||||
*/
|
||||
public function GetSessionsByArrayId($aArrayId) {
|
||||
if (!is_array($aArrayId) or count($aArrayId)==0) {
|
||||
return array();
|
||||
|
@ -156,7 +186,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aRes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Список юзеров по ID
|
||||
*
|
||||
* @param array $aArrayId Список ID пользователей
|
||||
* @return array
|
||||
*/
|
||||
public function GetUsersByArrayId($aArrayId) {
|
||||
if (!is_array($aArrayId) or count($aArrayId)==0) {
|
||||
return array();
|
||||
|
@ -179,7 +214,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aUsers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить юзера по ключу активации
|
||||
*
|
||||
* @param string $sKey Ключ активации
|
||||
* @return int|null
|
||||
*/
|
||||
public function GetUserByActivateKey($sKey) {
|
||||
$sql = "SELECT
|
||||
u.user_id
|
||||
|
@ -191,8 +231,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Получить юзера по мылу
|
||||
*
|
||||
* @param string $sMail Емайл
|
||||
* @return int|null
|
||||
*/
|
||||
public function GetUserByMail($sMail) {
|
||||
$sql = "SELECT
|
||||
u.user_id
|
||||
|
@ -204,7 +248,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить юзера по логину
|
||||
*
|
||||
* @param string $sLogin Логин пользователя
|
||||
* @return int|null
|
||||
*/
|
||||
public function GetUserByLogin($sLogin) {
|
||||
$sql = "SELECT
|
||||
u.user_id
|
||||
|
@ -217,8 +266,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Получить список юзеров по дате последнего визита
|
||||
*
|
||||
* @param int $iLimit Количество
|
||||
* @return array
|
||||
*/
|
||||
public function GetUsersByDateLast($iLimit) {
|
||||
$sql = "SELECT
|
||||
user_id
|
||||
|
@ -236,7 +289,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список юзеров по дате регистрации
|
||||
*
|
||||
* @param int $iLimit Количество
|
||||
* @return array
|
||||
*/
|
||||
public function GetUsersByDateRegister($iLimit) {
|
||||
$sql = "SELECT
|
||||
user_id
|
||||
|
@ -256,28 +314,44 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aReturn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает количество пользователй
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountUsers() {
|
||||
$sql = "SELECT count(*) as count FROM ".Config::Get('db.table.user')." WHERE user_activate = 1";
|
||||
$result=$this->oDb->selectRow($sql);
|
||||
return $result['count'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает количество активных пользователей
|
||||
*
|
||||
* @param string $sDateActive Дата
|
||||
* @return mixed
|
||||
*/
|
||||
public function GetCountUsersActive($sDateActive) {
|
||||
$sql = "SELECT count(*) as count FROM ".Config::Get('db.table.session')." WHERE session_date_last >= ? ";
|
||||
$result=$this->oDb->selectRow($sql,$sDateActive);
|
||||
return $result['count'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает количество пользователей в разрезе полов
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function GetCountUsersSex() {
|
||||
$sql = "SELECT user_profile_sex AS ARRAY_KEY, count(*) as count FROM ".Config::Get('db.table.user')." WHERE user_activate = 1 GROUP BY user_profile_sex ";
|
||||
$result=$this->oDb->select($sql);
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Получить список юзеров по первым буквам логина
|
||||
*
|
||||
* @param string $sUserLogin Логин
|
||||
* @param int $iLimit Количество
|
||||
* @return array
|
||||
*/
|
||||
public function GetUsersByLoginLike($sUserLogin,$iLimit) {
|
||||
$sql = "SELECT
|
||||
user_id
|
||||
|
@ -297,11 +371,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aReturn;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Добавляет друга
|
||||
*
|
||||
* @param ModuleUser_EntityFriend $oFriend Объект дружбы(связи пользователей)
|
||||
* @return bool
|
||||
*/
|
||||
public function AddFriend(ModuleUser_EntityFriend $oFriend) {
|
||||
$sql = "INSERT INTO ".Config::Get('db.table.friend')."
|
||||
(user_from,
|
||||
|
@ -324,7 +399,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаляет информацию о дружбе из базы данных
|
||||
*
|
||||
* @param ModuleUser_EntityFriend $oFriend Объект дружбы(связи пользователей)
|
||||
* @return bool
|
||||
*/
|
||||
public function EraseFriend(ModuleUser_EntityFriend $oFriend) {
|
||||
$sql = "DELETE FROM ".Config::Get('db.table.friend')."
|
||||
WHERE
|
||||
|
@ -338,7 +418,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновляет информацию о друге
|
||||
*
|
||||
* @param ModuleUser_EntityFriend $oFriend Объект дружбы(связи пользователей)
|
||||
* @return bool
|
||||
*/
|
||||
public function UpdateFriend(ModuleUser_EntityFriend $oFriend) {
|
||||
$sql = "
|
||||
UPDATE ".Config::Get('db.table.friend')."
|
||||
|
@ -363,13 +448,11 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить отношей дружбы по массиву идентификаторов
|
||||
* Получить список отношений друзей
|
||||
*
|
||||
* @param array $aArrayId
|
||||
* @param string $sUserId
|
||||
* @param int $iStatus
|
||||
* @param array $aArrayId Список ID пользователей проверяемых на дружбу
|
||||
* @param int $sUserId ID пользователя у которого проверяем друзей
|
||||
* @return array
|
||||
*/
|
||||
public function GetFriendsByArrayId($aArrayId,$sUserId) {
|
||||
|
@ -400,12 +483,13 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aRes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список друзей указанного пользователя
|
||||
* Получает список друзей
|
||||
*
|
||||
* @param string $sUserId
|
||||
* @param int $iStatus
|
||||
* @param int $sUserId ID пользователя
|
||||
* @param int $iCount Возвращает общее количество элементов
|
||||
* @param int $iCurrPage Номер страницы
|
||||
* @param int $iPerPage Количество элементов на страницу
|
||||
* @return array
|
||||
*/
|
||||
public function GetUsersFriend($sUserId,&$iCount,$iCurrPage,$iPerPage) {
|
||||
|
@ -445,7 +529,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
rsort($aUsers,SORT_NUMERIC);
|
||||
return array_unique($aUsers);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает количество друзей
|
||||
*
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountUsersFriend($sUserId) {
|
||||
$sql = "SELECT
|
||||
count(*) as c
|
||||
|
@ -473,7 +562,6 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список заявок на добавление в друзья от указанного пользователя
|
||||
*
|
||||
|
@ -507,7 +595,6 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aUsers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список заявок на добавление в друзья от указанного пользователя
|
||||
*
|
||||
|
@ -541,12 +628,13 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aUsers;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Получает инвайт по его коду
|
||||
*
|
||||
* @param string $sCode Код инвайта
|
||||
* @param int $iUsed Флаг испольщования инвайта
|
||||
* @return ModuleUser_EntityInvite|null
|
||||
*/
|
||||
public function GetInviteByCode($sCode,$iUsed=0) {
|
||||
$sql = "SELECT * FROM ".Config::Get('db.table.invite')." WHERE invite_code = ? and invite_used = ?d ";
|
||||
if ($aRow=$this->oDb->selectRow($sql,$sCode,$iUsed)) {
|
||||
|
@ -554,7 +642,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавляет новый инвайт
|
||||
*
|
||||
* @param ModuleUser_EntityInvite $oInvite Объект инвайта
|
||||
* @return int|bool
|
||||
*/
|
||||
public function AddInvite(ModuleUser_EntityInvite $oInvite) {
|
||||
$sql = "INSERT INTO ".Config::Get('db.table.invite')."
|
||||
(invite_code,
|
||||
|
@ -568,7 +661,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновляет инвайт
|
||||
*
|
||||
* @param ModuleUser_EntityInvite $oInvite бъект инвайта
|
||||
* @return bool
|
||||
*/
|
||||
public function UpdateInvite(ModuleUser_EntityInvite $oInvite) {
|
||||
$sql = "UPDATE ".Config::Get('db.table.invite')."
|
||||
SET
|
||||
|
@ -582,7 +680,13 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает число использованых приглашений юзером за определенную дату
|
||||
*
|
||||
* @param int $sUserIdFrom ID пользователя
|
||||
* @param string $sDate Дата
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountInviteUsedByDate($sUserIdFrom,$sDate) {
|
||||
$sql = "SELECT count(invite_id) as count FROM ".Config::Get('db.table.invite')." WHERE user_from_id = ?d and invite_date_add >= ? ";
|
||||
if ($aRow=$this->oDb->selectRow($sql,$sUserIdFrom,$sDate)) {
|
||||
|
@ -590,7 +694,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает полное число использованных приглашений юзера
|
||||
*
|
||||
* @param int $sUserIdFrom ID пользователя
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountInviteUsed($sUserIdFrom) {
|
||||
$sql = "SELECT count(invite_id) as count FROM ".Config::Get('db.table.invite')." WHERE user_from_id = ?d";
|
||||
if ($aRow=$this->oDb->selectRow($sql,$sUserIdFrom)) {
|
||||
|
@ -598,7 +707,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает список приглашенных юзеров
|
||||
*
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetUsersInvite($sUserId) {
|
||||
$sql = "SELECT
|
||||
i.user_to_id
|
||||
|
@ -614,7 +728,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aUsers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает юзера который пригласил
|
||||
*
|
||||
* @param int $sUserIdTo ID пользователя
|
||||
* @return int|null
|
||||
*/
|
||||
public function GetUserInviteFrom($sUserIdTo) {
|
||||
$sql = "SELECT
|
||||
i.user_from_id
|
||||
|
@ -629,7 +748,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавляем воспоминание(восстановление) пароля
|
||||
*
|
||||
* @param ModuleUser_EntityReminder $oReminder Объект восстановления пароля
|
||||
* @return bool
|
||||
*/
|
||||
public function AddReminder(ModuleUser_EntityReminder $oReminder) {
|
||||
$sql = "REPLACE ".Config::Get('db.table.reminder')."
|
||||
SET
|
||||
|
@ -642,11 +766,21 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
";
|
||||
return $this->oDb->query($sql,$oReminder->getCode(),$oReminder->getUserId(),$oReminder->getDateAdd(),$oReminder->getDateUsed(),$oReminder->getDateExpire(),$oReminder->getIsUsed());
|
||||
}
|
||||
|
||||
/**
|
||||
* Сохраняем воспомнинание(восстановление) пароля
|
||||
*
|
||||
* @param ModuleUser_EntityReminder $oReminder Объект восстановления пароля
|
||||
* @return bool
|
||||
*/
|
||||
public function UpdateReminder(ModuleUser_EntityReminder $oReminder) {
|
||||
return $this->AddReminder($oReminder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получаем запись восстановления пароля по коду
|
||||
*
|
||||
* @param string $sCode Код восстановления пароля
|
||||
* @return ModuleUser_EntityReminder|null
|
||||
*/
|
||||
public function GetReminderByCode($sCode) {
|
||||
$sql = "SELECT
|
||||
*
|
||||
|
@ -659,7 +793,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить дополнительные поля профиля пользователя
|
||||
*
|
||||
* @param array|null $aType Типы полей, null - все типы
|
||||
* @return array
|
||||
*/
|
||||
public function getUserFields($aType) {
|
||||
if (!is_null($aType) and !is_array($aType)) {
|
||||
$aType=array($aType);
|
||||
|
@ -675,7 +814,13 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить по имени поля его значение дял определённого пользователя
|
||||
*
|
||||
* @param int $iUserId ID пользователя
|
||||
* @param string $sName Имя поля
|
||||
* @return string
|
||||
*/
|
||||
public function getUserFieldValueByName($iUserId, $sName) {
|
||||
$sql = 'SELECT value FROM '.Config::Get('db.table.user_field_value').' WHERE
|
||||
user_id = ?d
|
||||
|
@ -684,7 +829,14 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
$ret = $this->oDb->selectCol($sql, $iUserId, $sName);
|
||||
return $ret[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить значения дополнительных полей профиля пользователя
|
||||
*
|
||||
* @param int $iUserId ID пользователя
|
||||
* @param bool $bOnlyNoEmpty Загружать только непустые поля
|
||||
* @param array $aType Типы полей, null - все типы
|
||||
* @return array
|
||||
*/
|
||||
public function getUserFieldsValues($iUserId, $bOnlyNoEmpty, $aType) {
|
||||
if (!is_null($aType) and !is_array($aType)) {
|
||||
$aType=array($aType);
|
||||
|
@ -712,7 +864,14 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Установить значения дополнительных полей профиля пользователя
|
||||
*
|
||||
* @param int $iUserId ID пользователя
|
||||
* @param array $aFields Ассоциативный массив полей id => value
|
||||
* @param int $iCountMax Максимальное количество одинаковых полей
|
||||
* @return bool
|
||||
*/
|
||||
public function setUserFieldsValues($iUserId, $aFields, $iCountMax) {
|
||||
if (!count($aFields)) return;
|
||||
foreach ($aFields as $iId =>$sValue) {
|
||||
|
@ -729,38 +888,72 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
$this->oDb->query($sql, $sValue, $iUserId, $iId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавить поле
|
||||
*
|
||||
* @param ModuleUser_EntityField $oField Объект пользовательского поля
|
||||
* @return bool
|
||||
*/
|
||||
public function addUserField($oField) {
|
||||
$sql = 'INSERT INTO '.Config::Get('db.table.user_field').' SET
|
||||
name = ?, title = ?, pattern = ?, type = ?';
|
||||
return $this->oDb->query($sql, $oField->getName(), $oField->getTitle(), $oField->getPattern(), $oField->getType());
|
||||
}
|
||||
|
||||
/**
|
||||
* Удалить поле
|
||||
*
|
||||
* @param int $iId ID пользовательского поля
|
||||
* @return bool
|
||||
*/
|
||||
public function deleteUserField($iId) {
|
||||
$sql = 'DELETE FROM '.Config::Get('db.table.user_field_value').' WHERE field_id = ?d';
|
||||
$this->oDb->query($sql, $iId);
|
||||
$sql = 'DELETE FROM '.Config::Get('db.table.user_field').' WHERE
|
||||
id = ?d';
|
||||
$this->oDb->query($sql, $iId);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Изменить поле
|
||||
*
|
||||
* @param ModuleUser_EntityField $oField Объект пользовательского поля
|
||||
* @return bool
|
||||
*/
|
||||
public function updateUserField($oField) {
|
||||
$sql = 'UPDATE '.Config::Get('db.table.user_field').' SET
|
||||
name = ?, title = ?, pattern = ?, type = ?
|
||||
WHERE id = ?d';
|
||||
$this->oDb->query($sql, $oField->getName(), $oField->getTitle(), $oField->getPattern(), $oField->getType(), $oField->getId());
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверяет существует ли поле с таким именем
|
||||
*
|
||||
* @param string $sName Имя поля
|
||||
* @param int|null $iId ID поля
|
||||
* @return bool
|
||||
*/
|
||||
public function userFieldExistsByName($sName, $iId) {
|
||||
$sql = 'SELECT id FROM '.Config::Get('db.table.user_field').' WHERE name = ? {AND id != ?d}';
|
||||
return $this->oDb->select($sql, $sName, $iId ? $iId : DBSIMPLE_SKIP);
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверяет существует ли поле с таким ID
|
||||
*
|
||||
* @param int $iId ID поля
|
||||
* @return bool
|
||||
*/
|
||||
public function userFieldExistsById($iId) {
|
||||
$sql = 'SELECT id FROM '.Config::Get('db.table.user_field').' WHERE id = ?d';
|
||||
return $this->oDb->select($sql, $iId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаляет у пользователя значения полей
|
||||
*
|
||||
* @param int $iUserId ID пользователя
|
||||
* @param array|null $aType Список типов для удаления
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteUserFieldValues($iUserId,$aType) {
|
||||
if (!is_null($aType) and !is_array($aType)) {
|
||||
$aType=array($aType);
|
||||
|
@ -771,8 +964,15 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
)';
|
||||
return $this->oDb->query($sql,$iUserId,(is_null($aType) or !count($aType)) ? DBSIMPLE_SKIP : $aType);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает список заметок пользователя
|
||||
*
|
||||
* @param int $iUserId ID пользователя
|
||||
* @param int $iCount Возвращает общее количество элементов
|
||||
* @param int $iCurrPage Номер страницы
|
||||
* @param int $iPerPage Количество элементов на страницу
|
||||
* @return array
|
||||
*/
|
||||
public function GetUserNotesByUserId($iUserId,&$iCount,$iCurrPage,$iPerPage) {
|
||||
$sql = "
|
||||
SELECT *
|
||||
|
@ -790,7 +990,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает количество заметок у пользователя
|
||||
*
|
||||
* @param int $iUserId ID пользователя
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountUserNotesByUserId($iUserId) {
|
||||
$sql = "
|
||||
SELECT count(*) as c
|
||||
|
@ -804,7 +1009,13 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращет заметку по автору и пользователю
|
||||
*
|
||||
* @param int $iTargetUserId ID пользователя о ком заметка
|
||||
* @param int $iUserId ID пользователя автора заметки
|
||||
* @return ModuleUser_EntityNote|null
|
||||
*/
|
||||
public function GetUserNote($iTargetUserId,$iUserId) {
|
||||
$sql = "SELECT * FROM ".Config::Get('db.table.user_note')." WHERE target_user_id = ?d and user_id = ?d ";
|
||||
if ($aRow=$this->oDb->selectRow($sql,$iTargetUserId,$iUserId)) {
|
||||
|
@ -812,7 +1023,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает заметку по ID
|
||||
*
|
||||
* @param int $iId ID заметки
|
||||
* @return ModuleUser_EntityNote|null
|
||||
*/
|
||||
public function GetUserNoteById($iId) {
|
||||
$sql = "SELECT * FROM ".Config::Get('db.table.user_note')." WHERE id = ?d ";
|
||||
if ($aRow=$this->oDb->selectRow($sql,$iId)) {
|
||||
|
@ -820,12 +1036,22 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаляет заметку по ID
|
||||
*
|
||||
* @param int $iId ID заметки
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteUserNoteById($iId) {
|
||||
$sql = "DELETE FROM ".Config::Get('db.table.user_note')." WHERE id = ?d ";
|
||||
return $this->oDb->query($sql,$iId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавляет заметку
|
||||
*
|
||||
* @param ModuleUser_EntityNote $oNote Объект заметки
|
||||
* @return int|null
|
||||
*/
|
||||
public function AddUserNote($oNote) {
|
||||
$sql = "INSERT INTO ".Config::Get('db.table.user_note')." SET ?a ";
|
||||
if ($iId=$this->oDb->query($sql,$oNote->_getData())) {
|
||||
|
@ -833,8 +1059,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Обновляет заметку
|
||||
*
|
||||
* @param ModuleUser_EntityNote $oNote Объект заметки
|
||||
* @return int
|
||||
*/
|
||||
public function UpdateUserNote($oNote) {
|
||||
$sql = "UPDATE ".Config::Get('db.table.user_note')."
|
||||
SET
|
||||
|
@ -844,7 +1074,16 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
return $this->oDb->query($sql,$oNote->getText(),
|
||||
$oNote->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает список пользователей по фильтру
|
||||
*
|
||||
* @param array $aFilter Фильтр
|
||||
* @param array $aOrder Сортировка
|
||||
* @param int $iCount Возвращает общее количество элементов
|
||||
* @param int $iCurrPage Номер страницы
|
||||
* @param int $iPerPage Количество элментов на страницу
|
||||
* @return array
|
||||
*/
|
||||
public function GetUsersByFilter($aFilter,$aOrder,&$iCount,$iCurrPage,$iPerPage) {
|
||||
$aOrderAllow=array('user_id','user_login','user_date_register','user_rating','user_skill','user_profile_name');
|
||||
$sOrder='';
|
||||
|
@ -897,8 +1136,12 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
}
|
||||
return $aResult;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает список префиксов логинов пользователей (для алфавитного указателя)
|
||||
*
|
||||
* @param int $iPrefixLength Длина префикса
|
||||
* @return array
|
||||
*/
|
||||
public function GetGroupPrefixUser($iPrefixLength=1) {
|
||||
$sql = "
|
||||
SELECT SUBSTRING(`user_login` FROM 1 FOR ?d ) as prefix
|
||||
|
|
|
@ -18,8 +18,15 @@
|
|||
/**
|
||||
* Модуль для работы с голосованиями
|
||||
*
|
||||
* @package modules.vote
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleVote extends Module {
|
||||
/**
|
||||
* Объект маппера
|
||||
*
|
||||
* @var ModuleVote_MapperVote
|
||||
*/
|
||||
protected $oMapper;
|
||||
|
||||
/**
|
||||
|
@ -29,12 +36,11 @@ class ModuleVote extends Module {
|
|||
public function Init() {
|
||||
$this->oMapper=Engine::GetMapper(__CLASS__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавляет голосование
|
||||
*
|
||||
* @param ModuleVote_EntityVote $oVote
|
||||
* @return unknown
|
||||
* @param ModuleVote_EntityVote $oVote Объект голосования
|
||||
* @return bool
|
||||
*/
|
||||
public function AddVote(ModuleVote_EntityVote $oVote) {
|
||||
if (!$oVote->getIp()) {
|
||||
|
@ -47,14 +53,13 @@ class ModuleVote extends Module {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает голосование
|
||||
*
|
||||
* @param unknown_type $sTargetId
|
||||
* @param unknown_type $sTargetType
|
||||
* @param unknown_type $sUserId
|
||||
* @return unknown
|
||||
* @param int $sTargetId ID владельца
|
||||
* @param string $sTargetType Тип владельца
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return ModuleVote_EntityVote|null
|
||||
*/
|
||||
public function GetVote($sTargetId,$sTargetType,$sUserId) {
|
||||
$data=$this->GetVoteByArray($sTargetId,$sTargetType,$sUserId);
|
||||
|
@ -63,12 +68,13 @@ class ModuleVote extends Module {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список голосований по списку айдишников
|
||||
*
|
||||
* @param unknown_type $sTargetId
|
||||
* @param unknown_type $sTargetType
|
||||
* @param array $aTargetId Список ID владельцев
|
||||
* @param string $sTargetType Тип владельца
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetVoteByArray($aTargetId,$sTargetType,$sUserId) {
|
||||
if (!$aTargetId) {
|
||||
|
@ -132,10 +138,10 @@ class ModuleVote extends Module {
|
|||
/**
|
||||
* Получить список голосований по списку айдишников, но используя единый кеш
|
||||
*
|
||||
* @param unknown_type $aTargetId
|
||||
* @param unknown_type $sTargetType
|
||||
* @param unknown_type $sUserId
|
||||
* @return unknown
|
||||
* @param array $aTargetId Список ID владельцев
|
||||
* @param string $sTargetType Тип владельца
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetVoteByArraySolid($aTargetId,$sTargetType,$sUserId) {
|
||||
if (!is_array($aTargetId)) {
|
||||
|
@ -158,18 +164,16 @@ class ModuleVote extends Module {
|
|||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаляет голосование из базы по списку идентификаторов таргета
|
||||
*
|
||||
* @param array|int $aTargetId
|
||||
* @param string $sTargetType
|
||||
* @param array|int $aTargetId Список ID владельцев
|
||||
* @param string $sTargetType Тип владельца
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteVoteByTarget($aTargetId, $sTargetType) {
|
||||
if (!is_array($aTargetId)) $aTargetId=array($aTargetId);
|
||||
$aTargetId=array_unique($aTargetId);
|
||||
|
||||
/**
|
||||
* Чистим зависимые кеши
|
||||
*/
|
||||
|
|
|
@ -15,50 +15,124 @@
|
|||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
class ModuleVote_EntityVote extends Entity
|
||||
{
|
||||
/**
|
||||
* Сущность голосования
|
||||
*
|
||||
* @package modules.vote
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleVote_EntityVote extends Entity {
|
||||
/**
|
||||
* Возвращает ID владельца
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getTargetId() {
|
||||
return $this->_getDataOne('target_id');
|
||||
}
|
||||
/**
|
||||
* Возвращает тип владельца
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getTargetType() {
|
||||
return $this->_getDataOne('target_type');
|
||||
}
|
||||
/**
|
||||
* Возвращает ID проголосовавшего пользователя
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getVoterId() {
|
||||
return $this->_getDataOne('user_voter_id');
|
||||
}
|
||||
/**
|
||||
* Возвращает направление голоса: 0, 1, -1
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getDirection() {
|
||||
return $this->_getDataOne('vote_direction');
|
||||
}
|
||||
/**
|
||||
* Возвращает значение при голосовании
|
||||
*
|
||||
* @return float|null
|
||||
*/
|
||||
public function getValue() {
|
||||
return $this->_getDataOne('vote_value');
|
||||
}
|
||||
/**
|
||||
* Возвращает дату голосования
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getDate() {
|
||||
return $this->_getDataOne('vote_date');
|
||||
}
|
||||
/**
|
||||
* Возвращает IP голосовавшего
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getIp() {
|
||||
return $this->_getDataOne('vote_ip');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Устанавливает ID владельца
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setTargetId($data) {
|
||||
$this->_aData['target_id']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает тип владельца
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setTargetType($data) {
|
||||
$this->_aData['target_type']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает ID проголосовавшего пользователя
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setVoterId($data) {
|
||||
$this->_aData['user_voter_id']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает направление голоса: 0, 1, -1
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setDirection($data) {
|
||||
$this->_aData['vote_direction']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает значение при голосовании
|
||||
*
|
||||
* @param float $data
|
||||
*/
|
||||
public function setValue($data) {
|
||||
$this->_aData['vote_value']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает дату голосования
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setDate($data) {
|
||||
$this->_aData['vote_date']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает IP голосовавшего
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setIp($data) {
|
||||
$this->_aData['vote_ip']=$data;
|
||||
}
|
||||
|
|
|
@ -15,9 +15,19 @@
|
|||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Маппер для работы с БД
|
||||
*
|
||||
* @package modules.vote
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleVote_MapperVote extends Mapper {
|
||||
|
||||
|
||||
/**
|
||||
* Добавляет голосование
|
||||
*
|
||||
* @param ModuleVote_EntityVote $oVote Объект голосования
|
||||
* @return bool
|
||||
*/
|
||||
public function AddVote(ModuleVote_EntityVote $oVote) {
|
||||
$sql = "INSERT INTO ".Config::Get('db.table.vote')."
|
||||
(target_id,
|
||||
|
@ -36,8 +46,14 @@ class ModuleVote_MapperVote extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Получить список голосований по списку айдишников
|
||||
*
|
||||
* @param array $aArrayId Список ID владельцев
|
||||
* @param string $sTargetType Тип владельца
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetVoteByArray($aArrayId,$sTargetType,$sUserId) {
|
||||
if (!is_array($aArrayId) or count($aArrayId)==0) {
|
||||
return array();
|
||||
|
@ -60,7 +76,13 @@ class ModuleVote_MapperVote extends Mapper {
|
|||
}
|
||||
return $aVotes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаляет голосование из базы по списку идентификаторов таргета
|
||||
*
|
||||
* @param array|int $aTargetId Список ID владельцев
|
||||
* @param string $sTargetType Тип владельца
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteVoteByTarget($aTargetId,$sTargetType) {
|
||||
$sql = "
|
||||
DELETE FROM ".Config::Get('db.table.vote')."
|
||||
|
|
|
@ -18,13 +18,23 @@
|
|||
/**
|
||||
* Модуль Wall - записи на стене профиля пользователя
|
||||
*
|
||||
* @package modules.wall
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleWall extends Module {
|
||||
|
||||
/**
|
||||
* Объект маппера
|
||||
*
|
||||
* @var ModuleWall_MapperWall
|
||||
*/
|
||||
protected $oMapper;
|
||||
/**
|
||||
* Объект текущего пользователя
|
||||
*
|
||||
* @var ModuleUser_EntityUser|null
|
||||
*/
|
||||
protected $oUserCurrent;
|
||||
|
||||
|
||||
/**
|
||||
* Инициализация
|
||||
*
|
||||
|
@ -33,12 +43,10 @@ class ModuleWall extends Module {
|
|||
$this->oMapper=Engine::GetMapper(__CLASS__);
|
||||
$this->oUserCurrent=$this->User_GetUserCurrent();
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавление записи на стену
|
||||
*
|
||||
* @param ModuleWall_EntityWall $oWall
|
||||
*
|
||||
* @param ModuleWall_EntityWall $oWall Объект записи на стене
|
||||
* @return bool|ModuleWall_EntityWall
|
||||
*/
|
||||
public function AddWall($oWall) {
|
||||
|
@ -60,27 +68,23 @@ class ModuleWall extends Module {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновление записи
|
||||
*
|
||||
* @param ModuleWall_EntityWall $oWall
|
||||
*
|
||||
* @param ModuleWall_EntityWall $oWall Объект записи на стене
|
||||
* @return bool
|
||||
*/
|
||||
public function UpdateWall($oWall) {
|
||||
return $this->oMapper->UpdateWall($oWall);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение списка записей по фильтру
|
||||
*
|
||||
* @param $aFilter
|
||||
* @param $aOrder
|
||||
* @param int $iCurrPage
|
||||
* @param int $iPerPage
|
||||
* @param array $aAllowData
|
||||
*
|
||||
* @param array $aFilter Фильтр
|
||||
* @param array $aOrder Сортировка
|
||||
* @param int $iCurrPage Номер страницы
|
||||
* @param int $iPerPage Количество элементов на страницу
|
||||
* @param array $aAllowData Список типов дополнительных данных для подгрузки в сообщения стены
|
||||
* @return array('collection'=>array,'count'=>int)
|
||||
*/
|
||||
public function GetWall($aFilter,$aOrder,$iCurrPage=1,$iPerPage=10,$aAllowData=null) {
|
||||
|
@ -94,19 +98,16 @@ class ModuleWall extends Module {
|
|||
/**
|
||||
* Возвращает число сообщений на стене по фильтру
|
||||
*
|
||||
* @param $aFilter
|
||||
*
|
||||
* @param array $aFilter Фильтр
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountWall($aFilter) {
|
||||
return $this->oMapper->GetCountWall($aFilter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение записей по ID, без дополнительных данных
|
||||
*
|
||||
* @param array $aWallId
|
||||
*
|
||||
* @param array $aWallId Список ID сообщений
|
||||
* @return array
|
||||
*/
|
||||
public function GetWallsByArrayId($aWallId) {
|
||||
|
@ -121,13 +122,11 @@ class ModuleWall extends Module {
|
|||
}
|
||||
return $aWalls;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение записей по ID с дополнительные связаными данными
|
||||
*
|
||||
* @param $aWallId
|
||||
* @param array $aAllowData
|
||||
*
|
||||
* @param array $aWallId Список ID сообщений
|
||||
* @param array $aAllowData Список типов дополнительных данных для подгрузки в сообщения стены
|
||||
* @return array
|
||||
*/
|
||||
public function GetWallAdditionalData($aWallId,$aAllowData=null) {
|
||||
|
@ -197,12 +196,10 @@ class ModuleWall extends Module {
|
|||
}
|
||||
return $aWalls;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение записи по ID
|
||||
*
|
||||
* @param int $iId
|
||||
*
|
||||
* @param int $iId ID сообщения/записи
|
||||
* @return ModuleWall_EntityWall
|
||||
*/
|
||||
public function GetWallById($iId) {
|
||||
|
@ -212,12 +209,10 @@ class ModuleWall extends Module {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновляет родительские данные у записи - количество ответов и ID последних ответов
|
||||
*
|
||||
* @param ModuleWall_EntityWall $oWall
|
||||
*
|
||||
* @param ModuleWall_EntityWall $oWall Объект записи на стене
|
||||
* @param null|int $iLimit
|
||||
*/
|
||||
public function UpdatePidWall($oWall,$iLimit=null) {
|
||||
|
@ -237,11 +232,10 @@ class ModuleWall extends Module {
|
|||
}
|
||||
$this->UpdateWall($oWall);
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаление сообщения
|
||||
*
|
||||
* @param $oWall
|
||||
* @param ModuleWall_EntityWall $oWall Объект записи на стене
|
||||
*/
|
||||
public function DeleteWall($oWall) {
|
||||
$this->oMapper->DeleteWallsByPid($oWall->getId());
|
||||
|
@ -250,6 +244,5 @@ class ModuleWall extends Module {
|
|||
$this->UpdatePidWall($oWallParent);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
|
@ -15,16 +15,26 @@
|
|||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Сущность записи на стене
|
||||
*
|
||||
* @package modules.wall
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleWall_EntityWall extends Entity {
|
||||
|
||||
/**
|
||||
* Определяем правила валидации
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $aValidateRules=array(
|
||||
array('pid','pid','on'=>array('','add')),
|
||||
array('user_id','time_limit','on'=>array('add')),
|
||||
);
|
||||
|
||||
/**
|
||||
* Инициализация
|
||||
*/
|
||||
public function Init() {
|
||||
parent::Init();
|
||||
$this->aValidateRules[]=array('text','string','max'=>Config::Get('module.wall.text_max'),'min'=>Config::Get('module.wall.text_min'),'allowEmpty'=>false,'on'=>array('','add'));
|
||||
|
@ -32,10 +42,9 @@ class ModuleWall_EntityWall extends Entity {
|
|||
/**
|
||||
* Проверка на ограничение по времени
|
||||
*
|
||||
* @param $sValue
|
||||
* @param $aParams
|
||||
*
|
||||
* @return bool
|
||||
* @param string $sValue Проверяемое значение
|
||||
* @param array $aParams Параметры
|
||||
* @return bool|string
|
||||
*/
|
||||
public function ValidateTimeLimit($sValue,$aParams) {
|
||||
if ($oUser=$this->User_GetUserById($this->getUserId())) {
|
||||
|
@ -48,10 +57,9 @@ class ModuleWall_EntityWall extends Entity {
|
|||
/**
|
||||
* Валидация родительского сообщения
|
||||
*
|
||||
* @param $sValue
|
||||
* @param $aParams
|
||||
*
|
||||
* @return bool
|
||||
* @param string $sValue Проверяемое значение
|
||||
* @param array $aParams Параметры
|
||||
* @return bool|string
|
||||
*/
|
||||
public function ValidatePid($sValue,$aParams) {
|
||||
if (!$sValue) {
|
||||
|
@ -67,11 +75,10 @@ class ModuleWall_EntityWall extends Entity {
|
|||
}
|
||||
return $this->Lang_Get('wall_add_pid_error');
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает родительскую запись
|
||||
*
|
||||
* @return ModuleWall_EntityWall
|
||||
* @return ModuleWall_EntityWall|null
|
||||
*/
|
||||
public function GetPidWall() {
|
||||
if ($this->getPid()) {
|
||||
|
@ -79,7 +86,6 @@ class ModuleWall_EntityWall extends Entity {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверка на возможность удаления сообщения
|
||||
*
|
||||
|
@ -93,11 +99,10 @@ class ModuleWall_EntityWall extends Entity {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает пользователя, которому принадлежит стена
|
||||
*
|
||||
* @return mixed
|
||||
* @return ModuleUser_EntityUser|null
|
||||
*/
|
||||
public function getWallUser() {
|
||||
if (!$this->_getDataOne('wall_user')) {
|
||||
|
@ -105,7 +110,6 @@ class ModuleWall_EntityWall extends Entity {
|
|||
}
|
||||
return $this->_getDataOne('wall_user');
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает URL стены
|
||||
*
|
||||
|
|
|
@ -15,8 +15,19 @@
|
|||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Маппер для работы с БД
|
||||
*
|
||||
* @package modules.wall
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleWall_MapperWall extends Mapper {
|
||||
|
||||
/**
|
||||
* Добавление записи на стену
|
||||
*
|
||||
* @param ModuleWall_EntityWall $oWall Объект записи на стене
|
||||
* @return bool|int
|
||||
*/
|
||||
public function AddWall($oWall) {
|
||||
$sql = "INSERT INTO ".Config::Get('db.table.wall')." SET ?a ";
|
||||
if ($iId=$this->oDb->query($sql,$oWall->_getData())) {
|
||||
|
@ -24,8 +35,12 @@ class ModuleWall_MapperWall extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Обновление записи
|
||||
*
|
||||
* @param ModuleWall_EntityWall $oWall Объект записи на стене
|
||||
* @return bool
|
||||
*/
|
||||
public function UpdateWall($oWall) {
|
||||
$sql = "UPDATE ".Config::Get('db.table.wall')."
|
||||
SET
|
||||
|
@ -37,17 +52,34 @@ class ModuleWall_MapperWall extends Mapper {
|
|||
$oWall->getLastReply(),
|
||||
$oWall->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаление записи
|
||||
*
|
||||
* @param int $iId ID записи
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteWallById($iId) {
|
||||
$sql = "DELETE FROM ".Config::Get('db.table.wall')." WHERE id = ?d ";
|
||||
return $this->oDb->query($sql,$iId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $iPid ID родительской записи
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteWallsByPid($iPid) {
|
||||
$sql = "DELETE FROM ".Config::Get('db.table.wall')." WHERE pid = ?d ";
|
||||
return $this->oDb->query($sql,$iPid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение списка записей по фильтру
|
||||
*
|
||||
* @param array $aFilter Фильтр
|
||||
* @param array $aOrder Сортировка
|
||||
* @param int $iCount Возвращает общее количество элементов
|
||||
* @param int $iCurrPage Номер страницы
|
||||
* @param int $iPerPage Количество элементов на страницу
|
||||
* @return array
|
||||
*/
|
||||
public function GetWall($aFilter,$aOrder,&$iCount,$iCurrPage,$iPerPage) {
|
||||
$aOrderAllow=array('id','date_add');
|
||||
$sOrder='';
|
||||
|
@ -99,8 +131,12 @@ class ModuleWall_MapperWall extends Mapper {
|
|||
}
|
||||
return $aResult;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает число сообщений на стене по фильтру
|
||||
*
|
||||
* @param array $aFilter Фильтр
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountWall($aFilter) {
|
||||
$sql = "SELECT
|
||||
count(*) as c
|
||||
|
@ -129,7 +165,12 @@ class ModuleWall_MapperWall extends Mapper {
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение записей по ID, без дополнительных данных
|
||||
*
|
||||
* @param array $aArrayId Список ID сообщений
|
||||
* @return array
|
||||
*/
|
||||
public function GetWallsByArrayId($aArrayId) {
|
||||
if (!is_array($aArrayId) or count($aArrayId)==0) {
|
||||
return array();
|
||||
|
|
|
@ -16,16 +16,17 @@
|
|||
*/
|
||||
/**
|
||||
* Управление простым конфигом в виде массива
|
||||
*
|
||||
* @package engine.lib
|
||||
* @since 1.0
|
||||
*/
|
||||
class Config {
|
||||
|
||||
/**
|
||||
* Default instance to operate with
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const DEFAULT_CONFIG_INSTANCE = 'general';
|
||||
|
||||
/**
|
||||
* Mapper rules for Config Path <-> Constant Name relations
|
||||
*
|
||||
|
@ -34,14 +35,12 @@ class Config {
|
|||
static protected $aMapper = array(
|
||||
|
||||
);
|
||||
|
||||
/**
|
||||
* Массив сущностей класса
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
static protected $aInstance=array();
|
||||
|
||||
/**
|
||||
* Store for configuration entries for current instance
|
||||
*
|
||||
|
@ -59,6 +58,8 @@ class Config {
|
|||
/**
|
||||
* Ограничиваем объект только одним экземпляром
|
||||
*
|
||||
* @static
|
||||
* @param string $sName Название инстанции конфига
|
||||
* @return Config
|
||||
*/
|
||||
static public function getInstance($sName=self::DEFAULT_CONFIG_INSTANCE) {
|
||||
|
@ -69,13 +70,14 @@ class Config {
|
|||
return self::$aInstance[$sName];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load configuration array from file
|
||||
*
|
||||
* @param string $sFile
|
||||
* @param bool $bRewrite
|
||||
* @return Config
|
||||
* @static
|
||||
* @param string $sFile Путь до файла конфига
|
||||
* @param bool $bRewrite Перезаписывать значения
|
||||
* @param string $sInstance Название инстанции конфига
|
||||
* @return bool|Config
|
||||
*/
|
||||
static public function LoadFromFile($sFile,$bRewrite=true,$sInstance=self::DEFAULT_CONFIG_INSTANCE) {
|
||||
// Check if file exists
|
||||
|
@ -86,13 +88,14 @@ class Config {
|
|||
$aConfig=include($sFile);
|
||||
return self::Load($aConfig,$bRewrite,$sInstance);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load configuration array from given array
|
||||
*
|
||||
* @param string $aConfig
|
||||
* @param bool $bRewrite
|
||||
* @return Config
|
||||
* @static
|
||||
* @param array $aConfig Массив конфига
|
||||
* @param bool $bRewrite Перезаписывать значения
|
||||
* @param string $sInstance Название инстанции конфига
|
||||
* @return bool|Config
|
||||
*/
|
||||
static public function Load($aConfig,$bRewrite=true,$sInstance=self::DEFAULT_CONFIG_INSTANCE) {
|
||||
// Check if it`s array
|
||||
|
@ -103,11 +106,21 @@ class Config {
|
|||
self::getInstance($sInstance)->SetConfig($aConfig,$bRewrite);
|
||||
return self::getInstance($sInstance);
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает текущий полный конфиг
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function GetConfig() {
|
||||
return $this->aConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* Устанавливает значения конфига
|
||||
*
|
||||
* @param array $aConfig Массив конфига
|
||||
* @param bool $bRewrite Перезаписывать значения
|
||||
* @return bool
|
||||
*/
|
||||
public function SetConfig($aConfig=array(),$bRewrite=true) {
|
||||
if (is_array($aConfig)) {
|
||||
if ($bRewrite) {
|
||||
|
@ -120,12 +133,11 @@ class Config {
|
|||
$this->aConfig=array();
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrive information from configuration array
|
||||
*
|
||||
* @param string $sKey Path to needed value
|
||||
* @param string $sInstance Name of needed instance
|
||||
* @param string $sKey Ключ
|
||||
* @param string $sInstance Название инстанции конфига
|
||||
* @return mixed
|
||||
*/
|
||||
static public function Get($sKey='', $sInstance=self::DEFAULT_CONFIG_INSTANCE) {
|
||||
|
@ -136,12 +148,11 @@ class Config {
|
|||
|
||||
return self::getInstance($sInstance)->GetValue($sKey,$sInstance);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает значение из конфигурации по переданному ключу
|
||||
*
|
||||
* @param string $sKey
|
||||
* @param string $sInstance
|
||||
* @param string $sKey Ключ
|
||||
* @param string $sInstance Название инстанции конфига
|
||||
* @return mixed
|
||||
*/
|
||||
public function GetValue($sKey, $sInstance=self::DEFAULT_CONFIG_INSTANCE) {
|
||||
|
@ -160,7 +171,14 @@ class Config {
|
|||
$cfg = self::KeyReplace($cfg,$sInstance);
|
||||
return $cfg;
|
||||
}
|
||||
|
||||
/**
|
||||
* Заменяет плейсхолдеры ключей в значениях конфига
|
||||
*
|
||||
* @static
|
||||
* @param string|array $cfg Значения конфига
|
||||
* @param string $sInstance Название инстанции конфига
|
||||
* @return array|mixed
|
||||
*/
|
||||
static public function KeyReplace($cfg,$sInstance=self::DEFAULT_CONFIG_INSTANCE) {
|
||||
if(is_array($cfg)) {
|
||||
foreach($cfg as $k=>$v) {
|
||||
|
@ -182,7 +200,6 @@ class Config {
|
|||
}
|
||||
return $cfg;
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to find element by given key
|
||||
* Using function ARRAY_KEY_EXISTS (like in SPL)
|
||||
|
@ -210,13 +227,12 @@ class Config {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add information in config array by handle path
|
||||
*
|
||||
* @param string $sKey
|
||||
* @param mixed $value
|
||||
* @param string $sInstance
|
||||
* @param string $sKey Ключ
|
||||
* @param mixed $value Значение
|
||||
* @param string $sInstance Название инстанции конфига
|
||||
* @return bool
|
||||
*/
|
||||
static public function Set($sKey,$value,$sInstance=self::DEFAULT_CONFIG_INSTANCE) {
|
||||
|
@ -245,7 +261,6 @@ class Config {
|
|||
eval($sEval);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find all keys recursivly in config array
|
||||
*
|
||||
|
@ -260,12 +275,11 @@ class Config {
|
|||
// If it`s array, get array_keys recursive
|
||||
return $this->func_array_keys_recursive($cfg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Define constants using config-constant mapping
|
||||
*
|
||||
* @param string $sKey
|
||||
* @param string $sInstance
|
||||
* @param string $sKey Ключ
|
||||
* @param string $sInstance Название инстанции конфига
|
||||
* @return bool
|
||||
*/
|
||||
static public function DefineConstant($sKey='',$sInstance=self::DEFAULT_CONFIG_INSTANCE) {
|
||||
|
@ -288,15 +302,20 @@ class Config {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Сливает ассоциативные массивы
|
||||
*
|
||||
* @param array $aArr1 Массив
|
||||
* @param array $aArr2 Массив
|
||||
* @return array
|
||||
*/
|
||||
protected function ArrayEmerge($aArr1,$aArr2) {
|
||||
return $this->func_array_merge_assoc($aArr1,$aArr2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Рекурсивный вариант array_keys
|
||||
*
|
||||
* @param array $array
|
||||
* @param array $array Массив
|
||||
* @return array
|
||||
*/
|
||||
protected function func_array_keys_recursive($array) {
|
||||
|
@ -315,13 +334,12 @@ class Config {
|
|||
return $keys;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Сливает два ассоциативных массива
|
||||
*
|
||||
* @param unknown_type $aArr1
|
||||
* @param unknown_type $aArr2
|
||||
* @return unknown
|
||||
* @param array $aArr1 Массив
|
||||
* @param array $aArr2 Массив
|
||||
* @return array
|
||||
*/
|
||||
protected function func_array_merge_assoc($aArr1,$aArr2) {
|
||||
$aRes=$aArr1;
|
||||
|
|
|
@ -17,19 +17,59 @@
|
|||
/**
|
||||
* Ведение профайлинга
|
||||
*
|
||||
* @package engine.lib
|
||||
* @since 1.0
|
||||
*/
|
||||
class ProfilerSimple {
|
||||
|
||||
/**
|
||||
* Инстанция профайлера
|
||||
*
|
||||
* @var ProfilerSimple
|
||||
*/
|
||||
static protected $oInstance=null;
|
||||
/**
|
||||
* Массив данных
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $aTimes;
|
||||
/**
|
||||
* Уникальный номер
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $sRequestId;
|
||||
/**
|
||||
* Счетчик
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $iTimeId;
|
||||
/**
|
||||
* Текущий родитель
|
||||
*
|
||||
* @var int|null
|
||||
*/
|
||||
protected $iTimePidCurrent=null;
|
||||
/**
|
||||
* Статус активности профайлера
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $bEnable;
|
||||
/**
|
||||
* Путь до файла лога профайлера
|
||||
*
|
||||
* @var string|null
|
||||
*/
|
||||
protected $sFileName=null;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Инициализация
|
||||
*
|
||||
* @param string $sFileName Путь до файла лога профайлера
|
||||
* @param bool $bEnable Статус активности
|
||||
*/
|
||||
protected function __construct($sFileName,$bEnable) {
|
||||
$this->bEnable=$bEnable;
|
||||
$this->sFileName=$sFileName;
|
||||
|
@ -39,6 +79,9 @@ class ProfilerSimple {
|
|||
/**
|
||||
* Ограничиваем объект только одним экземпляром
|
||||
*
|
||||
* @static
|
||||
* @param null $sFileName Путь до файла лога профайлера
|
||||
* @param bool $bEnable Статус активности
|
||||
* @return ProfilerSimple
|
||||
*/
|
||||
static public function getInstance($sFileName=null,$bEnable=true) {
|
||||
|
@ -49,7 +92,13 @@ class ProfilerSimple {
|
|||
return self::$oInstance;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Запуск подсчета времени выполнения операции
|
||||
*
|
||||
* @param string $sName Название операции
|
||||
* @param string $sComment Описание
|
||||
* @return bool|int
|
||||
*/
|
||||
public function Start($sName,$sComment='') {
|
||||
if (!$this->bEnable) {
|
||||
return false;
|
||||
|
@ -66,7 +115,12 @@ class ProfilerSimple {
|
|||
$this->iTimePidCurrent=$this->iTimeId;
|
||||
return $this->iTimeId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Завершение подсчета времени выполнения операции
|
||||
*
|
||||
* @param int $iTimeId Номер операции
|
||||
* @return bool
|
||||
*/
|
||||
public function Stop($iTimeId) {
|
||||
if (!$this->bEnable or !$iTimeId or !isset($this->aTimes[$this->sRequestId.$iTimeId])) {
|
||||
return false;
|
||||
|
@ -75,7 +129,11 @@ class ProfilerSimple {
|
|||
$this->aTimes[$this->sRequestId.$iTimeId]['time_full']=$this->GetTimeFull($iTimeId);
|
||||
$this->iTimePidCurrent=$this->aTimes[$this->sRequestId.$iTimeId]['time_pid'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Сохранение лога в файл
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function Save() {
|
||||
if (!$this->bEnable or !$this->sFileName) {
|
||||
return false;
|
||||
|
@ -100,15 +158,16 @@ class ProfilerSimple {
|
|||
fclose($fp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Сохраняем лог при завершении работы
|
||||
*/
|
||||
public function __destruct() {
|
||||
$this->Save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Вычисляет полное время замера
|
||||
*
|
||||
* @param int $iTimeId
|
||||
* @param int $iTimeId Номер операции
|
||||
* @return float
|
||||
*/
|
||||
protected function GetTimeFull($iTimeId) {
|
||||
|
|
Loading…
Reference in a new issue