Esempio n. 1
0
 /**
  * Updates denormalized counters. Used after a message has been deleted.
  *
  * @param XenForo_DataWriter_DiscussionMessage $messageDw
  * @param boolean $deleteIfFirstMessage If true and message if first, delete discussion
  *
  * @return string State changes to discussion: delete means remove discussion; firstDelete means first message was removed but still valid
  */
 public function updateCountersAfterMessageDelete(XenForo_DataWriter_DiscussionMessage $messageDw, $deleteIfFirstMessage = true)
 {
     $messageId = $messageDw->getDiscussionMessageId();
     if ($messageId == $this->get('first_post_id')) {
         if (!$deleteIfFirstMessage && $this->rebuildDiscussion()) {
             return 'firstDelete';
         } else {
             return 'delete';
         }
     }
     if ($messageId == $this->get('last_post_id')) {
         $this->updateLastPost();
     }
     if ($messageDw->get('message_state') == 'visible') {
         $this->set('reply_count', $this->get('reply_count') - 1);
     }
     return '';
 }