protected function _setInternal($table, $field, $newValue, $forceSet = false) { if ($table === 'xf_post' && $field === 'message' && Tinhte_XenTag_Option::get('useHashtag')) { $tagTexts = Tinhte_XenTag_Integration::parseHashtags($newValue, true); if ($this->_tagger === null) { /** @var XenForo_Model_Tag $tagModel */ $tagModel = $this->getModelFromCache('XenForo_Model_Tag'); $this->_tagger = $tagModel->getTagger('post'); if ($this->isUpdate()) { $this->_tagger->setPermissionsFromContext($this->getDiscussionData(), $this->_Tinhte_XenTag_getForumInfo()); $this->_tagger->setContent($this->get('post_id'), false); } else { $this->_tagger->setPermissionsFromContext($this->_Tinhte_XenTag_getForumInfo()); } } $this->_tagger->setTags($tagTexts); $errors = $this->_tagger->getErrors(); if (!empty($errors)) { $this->mergeErrors($errors); } } parent::_setInternal($table, $field, $newValue, $forceSet); }
protected function _setInternal($table, $field, $newValue, $forceSet = false) { if ($table === 'xf_post' and $field === 'message') { $forum = $this->_Tinhte_XenTag_getForumInfo(); $maximumTags = intval($this->getModelFromCache('XenForo_Model_Forum')->Tinhte_XenTag_getMaximumHashtags($forum)); if ($maximumTags === -1 or $maximumTags > 0) { $this->_Tinhte_XenTag_tagTexts = Tinhte_XenTag_Integration::parseHashtags($newValue, true); } else { // always pickup [HAHSTAG]s in post, we will show error message later if found $this->_Tinhte_XenTag_tagTexts = Tinhte_XenTag_Integration::parseHashtags($newValue); } } return parent::_setInternal($table, $field, $newValue, $forceSet); }