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-24 10:20:49 +03:00
|
|
|
|
/**
|
|
|
|
|
* Объект сущности комментариев
|
|
|
|
|
*
|
2014-10-08 08:20:29 +03:00
|
|
|
|
* @package application.modules.comment
|
2012-06-24 10:20:49 +03:00
|
|
|
|
* @since 1.0
|
|
|
|
|
*/
|
2014-10-08 11:49:34 +03:00
|
|
|
|
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;
|
|
|
|
|
}
|
2014-05-28 08:37:30 +03:00
|
|
|
|
}
|