1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-23 14:00:56 +01:00

Add PhamePost to full text search

Summary: Adds PhamePost object to fulltextsearch index. Some issue searching just "Open" though? Also "closed" objects search fine but don't display as disabled.

Test Plan:
bin/search index --type POST

{F1687043}

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Maniphest Tasks: T9897

Differential Revision: https://secure.phabricator.com/D16116
This commit is contained in:
Chad Little 2016-06-14 12:17:09 -07:00
parent e44d92babc
commit bce44c8b02
4 changed files with 52 additions and 1 deletions

View file

@ -3792,6 +3792,7 @@ phutil_register_library_map(array(
'PhamePostEditController' => 'applications/phame/controller/post/PhamePostEditController.php', 'PhamePostEditController' => 'applications/phame/controller/post/PhamePostEditController.php',
'PhamePostEditEngine' => 'applications/phame/editor/PhamePostEditEngine.php', 'PhamePostEditEngine' => 'applications/phame/editor/PhamePostEditEngine.php',
'PhamePostEditor' => 'applications/phame/editor/PhamePostEditor.php', 'PhamePostEditor' => 'applications/phame/editor/PhamePostEditor.php',
'PhamePostFulltextEngine' => 'applications/phame/search/PhamePostFulltextEngine.php',
'PhamePostHistoryController' => 'applications/phame/controller/post/PhamePostHistoryController.php', 'PhamePostHistoryController' => 'applications/phame/controller/post/PhamePostHistoryController.php',
'PhamePostListController' => 'applications/phame/controller/post/PhamePostListController.php', 'PhamePostListController' => 'applications/phame/controller/post/PhamePostListController.php',
'PhamePostListView' => 'applications/phame/view/PhamePostListView.php', 'PhamePostListView' => 'applications/phame/view/PhamePostListView.php',
@ -8655,6 +8656,7 @@ phutil_register_library_map(array(
'PhabricatorDestructibleInterface', 'PhabricatorDestructibleInterface',
'PhabricatorTokenReceiverInterface', 'PhabricatorTokenReceiverInterface',
'PhabricatorConduitResultInterface', 'PhabricatorConduitResultInterface',
'PhabricatorFulltextInterface',
), ),
'PhamePostArchiveController' => 'PhamePostController', 'PhamePostArchiveController' => 'PhamePostController',
'PhamePostCommentController' => 'PhamePostController', 'PhamePostCommentController' => 'PhamePostController',
@ -8663,6 +8665,7 @@ phutil_register_library_map(array(
'PhamePostEditController' => 'PhamePostController', 'PhamePostEditController' => 'PhamePostController',
'PhamePostEditEngine' => 'PhabricatorEditEngine', 'PhamePostEditEngine' => 'PhabricatorEditEngine',
'PhamePostEditor' => 'PhabricatorApplicationTransactionEditor', 'PhamePostEditor' => 'PhabricatorApplicationTransactionEditor',
'PhamePostFulltextEngine' => 'PhabricatorFulltextEngine',
'PhamePostHistoryController' => 'PhamePostController', 'PhamePostHistoryController' => 'PhamePostController',
'PhamePostListController' => 'PhamePostController', 'PhamePostListController' => 'PhamePostController',
'PhamePostListView' => 'AphrontTagView', 'PhamePostListView' => 'AphrontTagView',

View file

@ -34,7 +34,13 @@ final class PhabricatorPhamePostPHIDType extends PhabricatorPHIDType {
$handle->setName($post->getTitle()); $handle->setName($post->getTitle());
$handle->setFullName($post->getTitle()); $handle->setFullName($post->getTitle());
$handle->setURI('/phame/post/view/'.$post->getID().'/'); $handle->setURI('/phame/post/view/'.$post->getID().'/');
if ($post->isArchived()) {
$handle->setStatus(PhabricatorObjectHandle::STATUS_CLOSED);
} }
}
} }
} }

View file

@ -0,0 +1,34 @@
<?php
final class PhamePostFulltextEngine
extends PhabricatorFulltextEngine {
protected function buildAbstractDocument(
PhabricatorSearchAbstractDocument $document,
$object) {
$post = $object;
$document->setDocumentTitle($post->getTitle());
$document->addField(
PhabricatorSearchDocumentFieldType::FIELD_BODY,
$post->getBody());
$document->addRelationship(
PhabricatorSearchRelationship::RELATIONSHIP_AUTHOR,
$post->getBloggerPHID(),
PhabricatorPeopleUserPHIDType::TYPECONST,
$post->getDateCreated());
$document->addRelationship(
$post->isArchived()
? PhabricatorSearchRelationship::RELATIONSHIP_CLOSED
: PhabricatorSearchRelationship::RELATIONSHIP_OPEN,
$post->getPHID(),
PhabricatorPhamePostPHIDType::TYPECONST,
PhabricatorTime::getNow());
}
}

View file

@ -10,7 +10,8 @@ final class PhamePost extends PhameDAO
PhabricatorSubscribableInterface, PhabricatorSubscribableInterface,
PhabricatorDestructibleInterface, PhabricatorDestructibleInterface,
PhabricatorTokenReceiverInterface, PhabricatorTokenReceiverInterface,
PhabricatorConduitResultInterface { PhabricatorConduitResultInterface,
PhabricatorFulltextInterface {
const MARKUP_FIELD_BODY = 'markup:body'; const MARKUP_FIELD_BODY = 'markup:body';
const MARKUP_FIELD_SUMMARY = 'markup:summary'; const MARKUP_FIELD_SUMMARY = 'markup:summary';
@ -344,4 +345,11 @@ final class PhamePost extends PhameDAO
return array(); return array();
} }
/* -( PhabricatorFulltextInterface )--------------------------------------- */
public function newFulltextEngine() {
return new PhamePostFulltextEngine();
}
} }