コード例 #1
0
ファイル: Thread.php プロジェクト: Sywooch/forums
 public function Tinhte_XenTag_actionSave(XenForo_DataWriter_Discussion_Thread $dw)
 {
     /* @var $tagModel Tinhte_XenTag_Model_Tag */
     $tagModel = $this->getModelFromCache('Tinhte_XenTag_Model_Tag');
     $forum = $dw->getExtraData(XenForo_DataWriter_Discussion_Thread::DATA_FORUM);
     $thread = $dw->getMergedData();
     if (!empty($forum) and $tagModel->canTagThread($thread, $forum)) {
         $tags = $tagModel->processInput($this->_input);
         if ($tags !== false) {
             $dw->Tinhte_XenTag_setTags($tags);
         }
     }
     // sondh@2012-08-11
     // just to be safe...
     unset($GLOBALS[Tinhte_XenTag_Constants::GLOBALS_CONTROLLERPUBLIC_THREAD_SAVE]);
 }
コード例 #2
0
ファイル: Forum.php プロジェクト: Sywooch/forums
 public function Tinhte_XenTag_actionAddThread(XenForo_DataWriter_Discussion_Thread $dw)
 {
     /* @var $tagModel Tinhte_XenTag_Model_Tag */
     $tagModel = $this->getModelFromCache('Tinhte_XenTag_Model_Tag');
     $forum = $dw->Tinhte_XenTag_getForumData();
     if ($tagModel->canTagThread(false, $forum)) {
         // only save tags if this user has the permission
         $tags = $tagModel->processInput($this->_input);
         if ($tags !== false) {
             $dw->Tinhte_XenTag_setTags($tags);
         }
     }
     $postDw = $dw->getFirstMessageDw();
     $postDw->setExtraData(Tinhte_XenTag_XenForo_DataWriter_DiscussionMessage_Post::DATA_SKIP_UPDATE_THREAD_TAGS, true);
     $dw->setExtraData(Tinhte_XenTag_XenForo_DataWriter_Discussion_Thread_Base::DATA_UPDATE_TAGS_FROM_POST, true);
     // sondh@2012-08-11
     // just to be safe...
     unset($GLOBALS[Tinhte_XenTag_Constants::GLOBALS_CONTROLLERPUBLIC_FORUM_ADD_THREAD]);
 }
コード例 #3
0
ファイル: Post.php プロジェクト: Sywooch/forums
 public static function updateThreadDwFromPostDw(XenForo_DataWriter_Discussion_Thread $threadDw, XenForo_DataWriter_DiscussionMessage_Post $postDw)
 {
     if (!Tinhte_XenTag_Option::get('tagThreadWithHashtags')) {
         return false;
     }
     $message = $postDw->get('message');
     $tagTexts = Tinhte_XenTag_Integration::parseHashtags($message);
     $threadTags = $threadDw->Tinhte_XenTag_getTags();
     $threadTagTexts = Tinhte_XenTag_Helper::getTextsFromTagsOrTexts($threadTags);
     $threadSafes = Tinhte_XenTag_Helper::getSafeTagsTextArrayForSearch($threadTagTexts);
     $isChanged = false;
     foreach ($tagTexts as $tagText) {
         $safe = Tinhte_XenTag_Helper::getSafeTagTextForSearch($tagText);
         if (!in_array($safe, $threadSafes)) {
             $threadTags[] = $tagText;
             $threadSafes[] = $safe;
             $isChanged = true;
         }
     }
     if ($isChanged) {
         $threadDw->Tinhte_XenTag_setTags($threadTags);
         return true;
     }
     return false;
 }