[РЕШЕНО] Что за аномалия?
Хочу реализовать прибавление рейтинга за публикацию топика:
В Action.Topic.class.php добавляю 3 строчки:
Всё ок, работает на ура!
В этом же файле, только ниже, в функции удаления (вконце) добавляю 3 строчки отнимания рейтинга при удалении топика:
Теже 3 строчки, но только знак минус. НЕ РАБОТАЕТ. РЕЙТИНГ НЕ ОТНИМАЕТСЯ!
Понял, потом, что функция отнимания неверна, т.к. если удалит админ или редактор, то у него отнимется рейтинг.
Пределал:
Заменил, и всё равно рейтинг не отнимается. Что не так?
В Action.Topic.class.php добавляю 3 строчки:
if ($this->Topic_AddTopic($oTopic)) { $this->Hook_Run('topic_add_after', array('oTopic'=>$oTopic,'oBlog'=>$oBlog)); /** * Получаем топик, чтоб подцепить связанные данные */ $oTopic=$this->Topic_GetTopicById($oTopic->getId()); /** * Прибавляем 0.4 рейтинга за публикацию топика */ $oUserTopic = $this->oUserCurrent; $oUserTopic->setRating($oUserTopic->getRating()+0.4); // можно в конфиге val вместо 0.4 $this->User_Update($oUserTopic);
Всё ок, работает на ура!
В этом же файле, только ниже, в функции удаления (вконце) добавляю 3 строчки отнимания рейтинга при удалении топика:
protected function EventDelete() { $this->Security_ValidateSendForm(); /** * Получаем номер топика из УРЛ и проверяем существует ли он */ $sTopicId=$this->GetParam(0); if (!($oTopic=$this->Topic_GetTopicById($sTopicId))) { return parent::EventNotFound(); } /** * проверяем есть ли право на удаление топика */ if (!$this->ACL_IsAllowDeleteTopic($oTopic,$this->oUserCurrent)) { return parent::EventNotFound(); } /** * Удаляем топик */ $this->Hook_Run('topic_delete_before', array('oTopic'=>$oTopic)); $this->Topic_DeleteTopic($oTopic); $this->Hook_Run('topic_delete_after', array('oTopic'=>$oTopic)); /** * Отнимаем 0.4 рейтинга */ $oUserTopic = $this->oUserCurrent; $oUserTopic->setRating($oUserTopic->getRating()-0.4); $this->User_Update($oUserTopic);
Теже 3 строчки, но только знак минус. НЕ РАБОТАЕТ. РЕЙТИНГ НЕ ОТНИМАЕТСЯ!
Понял, потом, что функция отнимания неверна, т.к. если удалит админ или редактор, то у него отнимется рейтинг.
Пределал:
$oUserTopic=$this->User_GetUserById($oTopic->getUserId()); $oUserTopic->setRating($oUserTopic->getRating()-0.4); $this->User_Update($oUserTopic);
Заменил, и всё равно рейтинг не отнимается. Что не так?
2 комментария
\plugins\aceadminpanel\classes\actions\ActionTopic.class.php
вставил там код
Всё заработало! А кто бы мог подумать...