Exemple #1
0
 /**
  * Проверка на ограничение по времени на постинг на стене
  *
  * @param ModuleUser_EntityUser $oUser    Пользователь
  * @param ModuleWall_EntityWall $oWall    Объект сообщения на стене
  *
  * @return bool
  */
 public function CanAddWallTime($oUser, $oWall)
 {
     // * Для администраторов ограничение по времени не действует
     if ($oUser->isAdministrator() || $oUser->isModerator() || Config::Get('acl.create.wall.limit_time') == 0 || $oUser->getRating() >= Config::Get('acl.create.wall.limit_time_rating')) {
         return true;
     }
     if ($oWall->getUserId() == $oWall->getWallUserId()) {
         return true;
     }
     // * Получаем последнее сообщение
     $aWall = E::ModuleWall()->GetWall(array('user_id' => $oWall->getUserId()), array('id' => 'desc'), 1, 1, array());
     // * Если сообщений нет
     if ($aWall['count'] == 0) {
         return true;
     }
     $oWallLast = array_shift($aWall['collection']);
     $sDate = strtotime($oWallLast->getDateAdd());
     if ($sDate && time() - $sDate < Config::Get('acl.create.wall.limit_time')) {
         return false;
     }
     return true;
 }
 /**
  * Уведомление о новом сообщение на стене
  *
  * @param ModuleWall_EntityWall $oWall	Объект нового сообщения на стене
  * @param ModuleUser_EntityUser $oUser	Объект пользователя
  */
 public function SendWallNew(ModuleWall_EntityWall $oWall, ModuleUser_EntityUser $oUser)
 {
     $this->Send($oWall->getWallUser(), 'notify.wall.new.tpl', $this->Lang_Get('notify_subject_wall_new'), array('oUserTo' => $oWall->getWallUser(), 'oWall' => $oWall, 'oUser' => $oUser, 'oUserWall' => $oWall->getWallUser()));
 }
 /**
  * Обновление записи
  *
  * @param ModuleWall_EntityWall $oWall Объект записи на стене
  * @return bool
  */
 public function UpdateWall($oWall)
 {
     $sql = "UPDATE " . Config::Get('db.table.wall') . "\n      SET\n         count_reply = ?d,\n         last_reply = ?\n      WHERE id = ?d\n    ";
     return $this->oDb->query($sql, $oWall->getCountReply(), $oWall->getLastReply(), $oWall->getId());
 }
Exemple #4
0
 /**
  * Уведомление о новом сообщение на стене
  *
  * @param ModuleWall_EntityWall $oWall    Объект нового сообщения на стене
  * @param ModuleUser_EntityUser $oUser    Объект пользователя
  *
  * @return bool
  */
 public function SendWallNew(ModuleWall_EntityWall $oWall, ModuleUser_EntityUser $oUser)
 {
     return $this->Send($oWall->getWallUser(), 'wall_new.tpl', E::ModuleLang()->Get('notify_subject_wall_new'), array('oUserTo' => $oWall->getWallUser(), 'oWall' => $oWall, 'oUser' => $oUser, 'oUserWall' => $oWall->getWallUser()));
 }
Exemple #5
0
 /**
  * Удаление сообщения
  *
  * @param ModuleWall_EntityWall $oWall    Объект записи на стене
  */
 public function DeleteWall($oWall)
 {
     $this->oMapper->DeleteWallsByPid($oWall->getId());
     $this->oMapper->DeleteWallById($oWall->getId());
     if ($oWallParent = $oWall->GetPidWall()) {
         $this->UpdatePidWall($oWallParent);
     }
 }
Exemple #6
0
 /**
  * Обновляет родительские данные у записи - количество ответов и ID последних ответов
  *
  * @param ModuleWall_EntityWall $oWall
  *
  * @param null|int $iLimit
  */
 public function UpdatePidWall($oWall, $iLimit = null)
 {
     if (is_null($iLimit)) {
         $iLimit = Config::Get('module.wall.count_last_reply');
     }
     $aResult = $this->GetWall(array('pid' => $oWall->getId()), array('id' => 'desc'), 1, $iLimit, array());
     if ($aResult['count']) {
         $oWall->setCountReply($aResult['count']);
         $oWall->setLastReply(join(',', array_keys($aResult['collection'])));
         $this->UpdateWall($oWall);
     }
 }
Exemple #7
0
 /**
  * Обновление записи
  *
  * @param ModuleWall_EntityWall $oWall    Объект записи на стене
  *
  * @return bool
  */
 public function UpdateWall($oWall)
 {
     $sql = "\n            UPDATE ?_wall\n\t\t\tSET \n\t\t\t \tcount_reply = ?d,\n\t\t\t \tlast_reply = ?\n\t\t\tWHERE id = ?d\n\t\t";
     $bResult = $this->oDb->query($sql, $oWall->getCountReply(), $oWall->getLastReply(), $oWall->getId());
     return $bResult !== false;
 }
 /**
  * Уведомление о новом сообщение на стене
  *
  * @param ModuleWall_EntityWall $oWall Объект нового сообщения на стене
  * @param ModuleUser_EntityUser $oUser Объект пользователя
  */
 public function SendNotifyWallNew(ModuleWall_EntityWall $oWall, ModuleUser_EntityUser $oUser)
 {
     $this->Notify_Send($oWall->getWallUser(), 'wall.new.tpl', $this->Lang_Get('emails.wall_new.subject'), array('oUserTo' => $oWall->getWallUser(), 'oWall' => $oWall, 'oUser' => $oUser, 'oUserWall' => $oWall->getWallUser()));
 }
 /**
  * Обновление записи
  *
  * @param ModuleWall_EntityWall $oWall Объект записи на стене
  * @return bool
  */
 public function UpdateWall($oWall)
 {
     $sql = "UPDATE " . Config::Get('db.table.wall') . "\n\t\t\tSET \n\t\t\t \tcount_reply = ?d,\n\t\t\t \tlast_reply = ?\n\t\t\tWHERE id = ?d\n\t\t";
     $res = $this->oDb->query($sql, $oWall->getCountReply(), $oWall->getLastReply(), $oWall->getId());
     return $this->IsSuccessful($res);
 }