コード例 #1
0
ファイル: SourceHandler.php プロジェクト: Sywooch/forums
 public function processConstraints(array $constraints, XenForo_Search_DataHandler_Abstract $typeHandler = null)
 {
     $processed = parent::processConstraints($constraints, $typeHandler);
     foreach ($constraints as $constraint => $constraintInfo) {
         if ($constraint == Tinhte_XenTag_Constants::SEARCH_CONSTRAINT_TAGS) {
             $processed[$constraint] = array('metadata' => array(Tinhte_XenTag_Constants::SEARCH_METADATA_TAGS, Tinhte_XenTag_Helper::getSafeTagsTextArrayForSearch($constraintInfo)));
         }
     }
     return $processed;
 }
コード例 #2
0
ファイル: Post.php プロジェクト: Sywooch/forums
 protected function _insertIntoIndex(XenForo_Search_Indexer $indexer, array $data, array $parentData = null)
 {
     $message = $data['message'];
     $message = trim(XenForo_Helper_String::stripQuotes($message, 0));
     $tagTexts = Tinhte_XenTag_Integration::parseHashtags($message);
     if (!empty($tagTexts)) {
         $extraMetadata = array();
         $extraMetadata[Tinhte_XenTag_Constants::SEARCH_METADATA_TAGS] = Tinhte_XenTag_Helper::getSafeTagsTextArrayForSearch($tagTexts);
         $indexer = new Tinhte_XenTag_XenForo_Search_Indexer($indexer, $extraMetadata);
     }
     $result = parent::_insertIntoIndex($indexer, $data, $parentData);
 }
コード例 #3
0
ファイル: Forum.php プロジェクト: Sywooch/forums
 protected function _insertIntoIndex(XenForo_Search_Indexer $indexer, array $data, array $parentData = null)
 {
     $metadata = array();
     if (isset($data[Tinhte_XenTag_Constants::FIELD_FORUM_TAGS])) {
         // sondh@2012-11-05
         // added isset check before trying to unserialize the tags
         // or this may raise an exception (it happens because
         // XenForo_DataWriter::getMergedData doesn't return an array with all the fields
         // the array only includes new or existing data...
         // similar to Tinhte_XenTag_Search_DataHandler_Page
         $tagsOrTexts = Tinhte_XenTag_Helper::unserialize($data[Tinhte_XenTag_Constants::FIELD_FORUM_TAGS]);
     } else {
         $tagsOrTexts = array();
     }
     $tagTexts = Tinhte_XenTag_Helper::getTextsFromTagsOrTexts($tagsOrTexts);
     $metadata[Tinhte_XenTag_Constants::SEARCH_METADATA_TAGS] = Tinhte_XenTag_Helper::getSafeTagsTextArrayForSearch($tagTexts);
     $indexer->insertIntoIndex(Tinhte_XenTag_Constants::CONTENT_TYPE_FORUM, $data['node_id'], $data['title'], $data['description'], XenForo_Application::$time, XenForo_Visitor::getUserId(), 0, $metadata);
 }
コード例 #4
0
ファイル: Thread.php プロジェクト: Sywooch/forums
 protected function _insertIntoIndex(XenForo_Search_Indexer $indexer, array $data, array $parentData = null)
 {
     if (isset($data[Tinhte_XenTag_Constants::FIELD_THREAD_TAGS])) {
         // sondh@2012-11-05
         // added isset check before trying to unserialize the tags
         // read more about this in
         // Tinhte_XenTag_Search_DataHandler_Page::_insertIntoIndex
         $tagsOrTexts = Tinhte_XenTag_Helper::unserialize($data[Tinhte_XenTag_Constants::FIELD_THREAD_TAGS]);
     } else {
         $tagsOrTexts = array();
     }
     if (!empty($tagsOrTexts)) {
         $extraMetadata = array();
         $tagTexts = Tinhte_XenTag_Helper::getTextsFromTagsOrTexts($tagsOrTexts);
         $extraMetadata[Tinhte_XenTag_Constants::SEARCH_METADATA_TAGS] = Tinhte_XenTag_Helper::getSafeTagsTextArrayForSearch($tagTexts);
         $indexer = new Tinhte_XenTag_XenForo_Search_Indexer($indexer, $extraMetadata);
     }
     $result = parent::_insertIntoIndex($indexer, $data, $parentData);
 }
コード例 #5
0
ファイル: Integration.php プロジェクト: Sywooch/forums
 public static function processConstraint(XenForo_Search_SourceHandler_Abstract $sourceHandler, $constraint, $constraintInfo, array $constraints)
 {
     if ($constraint == Tinhte_XenTag_Constants::SEARCH_CONSTRAINT_TAGS) {
         return array('metadata' => array(Tinhte_XenTag_Constants::SEARCH_METADATA_TAGS, implode(' ', Tinhte_XenTag_Helper::getSafeTagsTextArrayForSearch($constraintInfo))));
     }
     return false;
 }
コード例 #6
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;
 }