2012-03-11 19:52:17 +02:00
|
|
|
|
<?php
|
|
|
|
|
/*-------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* LiveStreet Engine Social Networking
|
|
|
|
|
* Copyright © 2008 Mzhelskiy Maxim
|
|
|
|
|
*
|
|
|
|
|
*--------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* Official site: www.livestreet.ru
|
|
|
|
|
* Contact e-mail: rus.engine@gmail.com
|
|
|
|
|
*
|
|
|
|
|
* GNU General Public License, version 2:
|
|
|
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
|
|
|
*
|
|
|
|
|
---------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
class ModuleWall_EntityWall extends Entity {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Определяем правила валидации
|
|
|
|
|
*/
|
|
|
|
|
protected $aValidateRules=array(
|
2012-04-13 17:24:53 +03:00
|
|
|
|
array('pid','pid','on'=>array('','add')),
|
|
|
|
|
array('user_id','time_limit','on'=>array('add')),
|
2012-03-11 19:52:17 +02:00
|
|
|
|
);
|
|
|
|
|
|
2012-03-12 13:40:26 +02:00
|
|
|
|
public function Init() {
|
|
|
|
|
parent::Init();
|
2012-04-13 17:24:53 +03:00
|
|
|
|
$this->aValidateRules[]=array('text','string','max'=>Config::Get('module.wall.text_max'),'min'=>Config::Get('module.wall.text_min'),'allowEmpty'=>false,'on'=>array('','add'));
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверка на ограничение по времени
|
|
|
|
|
*
|
|
|
|
|
* @param $sValue
|
|
|
|
|
* @param $aParams
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function ValidateTimeLimit($sValue,$aParams) {
|
|
|
|
|
if ($oUser=$this->User_GetUserById($this->getUserId())) {
|
|
|
|
|
if ($this->ACL_CanAddWallTime($oUser,$this)) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return $this->Lang_Get('wall_add_time_limit');
|
2012-03-12 13:40:26 +02:00
|
|
|
|
}
|
2012-03-11 19:52:17 +02:00
|
|
|
|
/**
|
|
|
|
|
* Валидация родительского сообщения
|
|
|
|
|
*
|
|
|
|
|
* @param $sValue
|
|
|
|
|
* @param $aParams
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function ValidatePid($sValue,$aParams) {
|
|
|
|
|
if (!$sValue) {
|
|
|
|
|
$this->setPid(null);
|
|
|
|
|
return true;
|
|
|
|
|
} elseif ($oParentWall=$this->GetPidWall()) {
|
|
|
|
|
/**
|
|
|
|
|
* Если отвечаем на сообщение нужной стены и оно корневое, то все ОК
|
|
|
|
|
*/
|
|
|
|
|
if ($oParentWall->getWallUserId()==$this->getWallUserId() and !$oParentWall->getPid()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return $this->Lang_Get('wall_add_pid_error');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает родительскую запись
|
|
|
|
|
*
|
|
|
|
|
* @return ModuleWall_EntityWall
|
|
|
|
|
*/
|
|
|
|
|
public function GetPidWall() {
|
|
|
|
|
if ($this->getPid()) {
|
|
|
|
|
return $this->Wall_GetWallById($this->getPid());
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
2012-04-13 15:07:59 +03:00
|
|
|
|
|
2012-04-13 20:12:59 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверка на возможность удаления сообщения
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function isAllowDelete() {
|
|
|
|
|
if ($oUserCurrent=$this->User_GetUserCurrent()) {
|
|
|
|
|
if ($oUserCurrent->getId()==$this->getWallUserId() or $oUserCurrent->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2012-04-14 08:05:46 +03:00
|
|
|
|
/**
|
|
|
|
|
* Возвращает пользователя, которому принадлежит стена
|
|
|
|
|
*
|
|
|
|
|
* @return mixed
|
|
|
|
|
*/
|
2012-04-13 15:07:59 +03:00
|
|
|
|
public function getWallUser() {
|
|
|
|
|
if (!isset($this->_aData['wall_user'])) {
|
|
|
|
|
$this->_aData['wall_user']=$this->User_GetUserById($this->getWallUserId());
|
|
|
|
|
}
|
|
|
|
|
return $this->_aData['wall_user'];
|
|
|
|
|
}
|
2012-04-14 08:05:46 +03:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает URL стены
|
|
|
|
|
*
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getUrlWall() {
|
|
|
|
|
return $this->getWallUser()->getUserWebPath().'wall/';
|
|
|
|
|
}
|
2012-03-11 19:52:17 +02:00
|
|
|
|
}
|
|
|
|
|
?>
|