1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-01 05:55:02 +03:00
ifhub.club/application/classes/modules/comment/entity/Comment.entity.class.php
2014-10-08 15:49:34 +07:00

578 lines
13 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/*
* 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>
*
*/
/**
* Объект сущности комментариев
*
* @package application.modules.comment
* @since 1.0
*/
class ModuleComment_EntityComment extends Entity
{
/**
* Возвращает ID коммента
*
* @return int|null
*/
public function getId()
{
return $this->_getDataOne('comment_id');
}
/**
* Возвращает ID родительского коммента
*
* @return int|null
*/
public function getPid()
{
return $this->_getDataOne('comment_pid');
}
/**
* Возвращает значение left для дерева nested set
*
* @return int|null
*/
public function getLeft()
{
return $this->_getDataOne('comment_left');
}
/**
* Возвращает значение right для дерева nested set
*
* @return int|null
*/
public function getRight()
{
return $this->_getDataOne('comment_right');
}
/**
* Возвращает 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 getTargetParentId()
{
return $this->_getDataOne('target_parent_id') ? $this->_getDataOne('target_parent_id') : 0;
}
/**
* Возвращает ID пользователя, автора комментария
*
* @return int|null
*/
public function getUserId()
{
return $this->_getDataOne('user_id');
}
/**
* Возвращает текст комментария
*
* @return string|null
*/
public function getText()
{
return $this->_getDataOne('comment_text');
}
/**
* Возвращает исходный текст комментария
*
* @return string|null
*/
public function getTextSource()
{
return $this->_getDataOne('comment_text_source') ? $this->_getDataOne('comment_text_source') : '';
}
/**
* Возвращает дату комментария
*
* @return string|null
*/
public function getDate()
{
return $this->_getDataOne('comment_date');
}
/**
* Возвращает дату последнего редактирования комментария
*
* @return string|null
*/
public function getDateEdit()
{
return $this->_getDataOne('comment_date_edit');
}
/**
* Возвращает IP пользователя
*
* @return string|null
*/
public function getUserIp()
{
return $this->_getDataOne('comment_user_ip');
}
/**
* Возвращает рейтинг комментария
*
* @return string
*/
public function getRating()
{
return number_format(round($this->_getDataOne('comment_rating'), 2), 0, '.', '');
}
/**
* Возвращает количество проголосовавших
*
* @return int|null
*/
public function getCountVote()
{
return $this->_getDataOne('comment_count_vote');
}
/**
* Возвращает количество редактирований комментария
*
* @return int|null
*/
public function getCountEdit()
{
return $this->_getDataOne('comment_count_edit');
}
/**
* Возвращает флаг удаленного комментария
*
* @return int|null
*/
public function getDelete()
{
return $this->_getDataOne('comment_delete');
}
/**
* Возвращает флаг опубликованного комментария
*
* @return int
*/
public function getPublish()
{
return $this->_getDataOne('comment_publish') ? 1 : 0;
}
/**
* Возвращает хеш комментария
*
* @return string|null
*/
public function getTextHash()
{
return $this->_getDataOne('comment_text_hash');
}
/**
* Возвращает уровень вложенности комментария
*
* @return int|null
*/
public function getLevel()
{
return $this->_getDataOne('comment_level');
}
/**
* Проверяет является ли комментарий плохим
*
* @return bool
*/
public function isBad()
{
if ($this->getRating() <= Config::Get('module.comment.bad')) {
return true;
}
return false;
}
/**
* Возвращает объект пользователя
*
* @return ModuleUser_EntityUser|null
*/
public function getUser()
{
return $this->_getDataOne('user');
}
/**
* Возвращает объект владельца
*
* @return mixed|null
*/
public function getTarget()
{
return $this->_getDataOne('target');
}
/**
* Возвращает объект голосования
*
* @return ModuleVote_EntityVote|null
*/
public function getVote()
{
return $this->_getDataOne('vote');
}
/**
* Проверяет является ли комментарий избранным у текущего пользователя
*
* @return bool|null
*/
public function getIsFavourite()
{
return $this->_getDataOne('comment_is_favourite');
}
/**
* Возвращает количество избранного
*
* @return int|null
*/
public function getCountFavourite()
{
return $this->_getDataOne('comment_count_favourite');
}
/**
* Проверка на разрешение редактировать комментарий
*
* @return mixed
*/
public function isAllowEdit()
{
return $this->ACL_IsAllowEditComment($this, $this->User_GetUserCurrent());
}
/**
* Возвращает количество секунд в течении которых возможно редактирование
*
* @return int
*/
public function getEditTimeRemaining()
{
$oUser = $this->User_GetUserCurrent();
if (($oUser and $oUser->isAdministrator()) or !Config::Get('acl.update.comment.limit_time')) {
return 0;
}
$iTime = Config::Get('acl.update.comment.limit_time') - (time() - strtotime($this->getDate()));
return $iTime > 0 ? $iTime : 0;
}
/**
* Проверка на разрешение удалить комментарий
*
* @return mixed
*/
public function isAllowDelete()
{
return $this->ACL_IsAllowDeleteComment($this, $this->User_GetUserCurrent());
}
/**
* Устанавливает ID комментария
*
* @param int $data
*/
public function setId($data)
{
$this->_aData['comment_id'] = $data;
}
/**
* Устанавливает ID родительского комментария
*
* @param int $data
*/
public function setPid($data)
{
$this->_aData['comment_pid'] = $data;
}
/**
* Устанавливает значени left для дерева nested set
*
* @param int $data
*/
public function setLeft($data)
{
$this->_aData['comment_left'] = $data;
}
/**
* Устанавливает значени right для дерева nested set
*
* @param int $data
*/
public function setRight($data)
{
$this->_aData['comment_right'] = $data;
}
/**
* Устанавливает 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 setTargetParentId($data)
{
$this->_aData['target_parent_id'] = $data;
}
/**
* Устанавливает ID пользователя
*
* @param int $data
*/
public function setUserId($data)
{
$this->_aData['user_id'] = $data;
}
/**
* Устанавливает текст комментария
*
* @param string $data
*/
public function setText($data)
{
$this->_aData['comment_text'] = $data;
}
/**
* Устанавливает исходный текст комментария
*
* @param string $data
*/
public function setTextSource($data)
{
$this->_aData['comment_text_source'] = $data;
}
/**
* Устанавливает дату комментария
*
* @param string $data
*/
public function setDate($data)
{
$this->_aData['comment_date'] = $data;
}
/**
* Устанавливает дату последнего редактирования комментария
*
* @param string $data
*/
public function setDateEdit($data)
{
$this->_aData['comment_date_edit'] = $data;
}
/**
* Устанавливает IP пользователя
*
* @param string $data
*/
public function setUserIp($data)
{
$this->_aData['comment_user_ip'] = $data;
}
/**
* Устанавливает рейтинг комментария
*
* @param float $data
*/
public function setRating($data)
{
$this->_aData['comment_rating'] = $data;
}
/**
* Устанавливает количество проголосавших
*
* @param int $data
*/
public function setCountVote($data)
{
$this->_aData['comment_count_vote'] = $data;
}
/**
* Устанавливает количество редактирований комментария
*
* @param int $data
*/
public function setCountEdit($data)
{
$this->_aData['comment_count_edit'] = $data;
}
/**
* Устанавливает флаг удаленности комментария
*
* @param int $data
*/
public function setDelete($data)
{
$this->_aData['comment_delete'] = $data;
}
/**
* Устанавливает флаг публикации
*
* @param int $data
*/
public function setPublish($data)
{
$this->_aData['comment_publish'] = $data;
}
/**
* Устанавливает хеш комментария
*
* @param strign $data
*/
public function setTextHash($data)
{
$this->_aData['comment_text_hash'] = $data;
}
/**
* Устанавливает уровень вложенности комментария
*
* @param int $data
*/
public function setLevel($data)
{
$this->_aData['comment_level'] = $data;
}
/**
* Устаналвает объект пользователя
*
* @param ModuleUser_EntityUser $data
*/
public function setUser($data)
{
$this->_aData['user'] = $data;
}
/**
* Устанавливает объект владельца
*
* @param mixed $data
*/
public function setTarget($data)
{
$this->_aData['target'] = $data;
}
/**
* Устанавливает объект голосования
*
* @param ModuleVote_EntityVote $data
*/
public function setVote($data)
{
$this->_aData['vote'] = $data;
}
/**
* Устанавливает факт нахождения комментария в избранном у текущего пользователя
*
* @param bool $data
*/
public function setIsFavourite($data)
{
$this->_aData['comment_is_favourite'] = $data;
}
/**
* Устанавливает количество избранного
*
* @param int $data
*/
public function setCountFavourite($data)
{
$this->_aData['comment_count_favourite'] = $data;
}
}