1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-08 01:14:24 +03:00
ifhub.club/classes/modules/wall/entity/Wall.entity.class.php

118 lines
2.9 KiB
PHP
Raw Normal View History

<?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(
array('pid','pid','on'=>array('','add')),
array('user_id','time_limit','on'=>array('add')),
);
2012-03-12 13:40:26 +02:00
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'));
}
/**
* Проверка на ограничение по времени
*
* @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
}
/**
* Валидация родительского сообщения
*
* @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;
}
/**
* Проверка на возможность удаления сообщения
*
* @return bool
*/
public function isAllowDelete() {
if ($oUserCurrent=$this->User_GetUserCurrent()) {
if ($oUserCurrent->getId()==$this->getWallUserId() or $oUserCurrent->isAdministrator()) {
return true;
}
}
return false;
}
/**
* Возвращает пользователя, которому принадлежит стена
*
* @return mixed
*/
public function getWallUser() {
if (!isset($this->_aData['wall_user'])) {
$this->_aData['wall_user']=$this->User_GetUserById($this->getWallUserId());
}
return $this->_aData['wall_user'];
}
/**
* Возвращает URL стены
*
* @return string
*/
public function getUrlWall() {
return $this->getWallUser()->getUserWebPath().'wall/';
}
}
?>