Make PhameBlog full text searchable
Summary: Ref T9897, makes blogs searchable Test Plan: Make a blog, index it, search for it. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Maniphest Tasks: T9897 Differential Revision: https://secure.phabricator.com/D16119
This commit is contained in:
@@ -3764,6 +3764,7 @@ phutil_register_library_map(array(
|
|||||||
'PhameBlogEditEngine' => 'applications/phame/editor/PhameBlogEditEngine.php',
|
'PhameBlogEditEngine' => 'applications/phame/editor/PhameBlogEditEngine.php',
|
||||||
'PhameBlogEditor' => 'applications/phame/editor/PhameBlogEditor.php',
|
'PhameBlogEditor' => 'applications/phame/editor/PhameBlogEditor.php',
|
||||||
'PhameBlogFeedController' => 'applications/phame/controller/blog/PhameBlogFeedController.php',
|
'PhameBlogFeedController' => 'applications/phame/controller/blog/PhameBlogFeedController.php',
|
||||||
|
'PhameBlogFulltextEngine' => 'applications/phame/search/PhameBlogFulltextEngine.php',
|
||||||
'PhameBlogListController' => 'applications/phame/controller/blog/PhameBlogListController.php',
|
'PhameBlogListController' => 'applications/phame/controller/blog/PhameBlogListController.php',
|
||||||
'PhameBlogListView' => 'applications/phame/view/PhameBlogListView.php',
|
'PhameBlogListView' => 'applications/phame/view/PhameBlogListView.php',
|
||||||
'PhameBlogManageController' => 'applications/phame/controller/blog/PhameBlogManageController.php',
|
'PhameBlogManageController' => 'applications/phame/controller/blog/PhameBlogManageController.php',
|
||||||
@@ -8615,6 +8616,7 @@ phutil_register_library_map(array(
|
|||||||
'PhabricatorDestructibleInterface',
|
'PhabricatorDestructibleInterface',
|
||||||
'PhabricatorApplicationTransactionInterface',
|
'PhabricatorApplicationTransactionInterface',
|
||||||
'PhabricatorConduitResultInterface',
|
'PhabricatorConduitResultInterface',
|
||||||
|
'PhabricatorFulltextInterface',
|
||||||
),
|
),
|
||||||
'PhameBlog404Controller' => 'PhameLiveController',
|
'PhameBlog404Controller' => 'PhameLiveController',
|
||||||
'PhameBlogArchiveController' => 'PhameBlogController',
|
'PhameBlogArchiveController' => 'PhameBlogController',
|
||||||
@@ -8625,6 +8627,7 @@ phutil_register_library_map(array(
|
|||||||
'PhameBlogEditEngine' => 'PhabricatorEditEngine',
|
'PhameBlogEditEngine' => 'PhabricatorEditEngine',
|
||||||
'PhameBlogEditor' => 'PhabricatorApplicationTransactionEditor',
|
'PhameBlogEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||||
'PhameBlogFeedController' => 'PhameBlogController',
|
'PhameBlogFeedController' => 'PhameBlogController',
|
||||||
|
'PhameBlogFulltextEngine' => 'PhabricatorFulltextEngine',
|
||||||
'PhameBlogListController' => 'PhameBlogController',
|
'PhameBlogListController' => 'PhameBlogController',
|
||||||
'PhameBlogListView' => 'AphrontTagView',
|
'PhameBlogListView' => 'AphrontTagView',
|
||||||
'PhameBlogManageController' => 'PhameBlogController',
|
'PhameBlogManageController' => 'PhameBlogController',
|
||||||
|
|||||||
@@ -34,6 +34,11 @@ final class PhabricatorPhameBlogPHIDType extends PhabricatorPHIDType {
|
|||||||
$handle->setName($blog->getName());
|
$handle->setName($blog->getName());
|
||||||
$handle->setFullName($blog->getName());
|
$handle->setFullName($blog->getName());
|
||||||
$handle->setURI('/phame/blog/view/'.$blog->getID().'/');
|
$handle->setURI('/phame/blog/view/'.$blog->getID().'/');
|
||||||
|
|
||||||
|
if ($blog->isArchived()) {
|
||||||
|
$handle->setStatus(PhabricatorObjectHandle::STATUS_CLOSED);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
28
src/applications/phame/search/PhameBlogFulltextEngine.php
Normal file
28
src/applications/phame/search/PhameBlogFulltextEngine.php
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
final class PhameBlogFulltextEngine
|
||||||
|
extends PhabricatorFulltextEngine {
|
||||||
|
|
||||||
|
protected function buildAbstractDocument(
|
||||||
|
PhabricatorSearchAbstractDocument $document,
|
||||||
|
$object) {
|
||||||
|
|
||||||
|
$blog = $object;
|
||||||
|
|
||||||
|
$document->setDocumentTitle($blog->getName());
|
||||||
|
|
||||||
|
$document->addField(
|
||||||
|
PhabricatorSearchDocumentFieldType::FIELD_BODY,
|
||||||
|
$blog->getDescription());
|
||||||
|
|
||||||
|
$document->addRelationship(
|
||||||
|
$blog->isArchived()
|
||||||
|
? PhabricatorSearchRelationship::RELATIONSHIP_CLOSED
|
||||||
|
: PhabricatorSearchRelationship::RELATIONSHIP_OPEN,
|
||||||
|
$blog->getPHID(),
|
||||||
|
PhabricatorPhameBlogPHIDType::TYPECONST,
|
||||||
|
PhabricatorTime::getNow());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -9,7 +9,8 @@ final class PhameBlog extends PhameDAO
|
|||||||
PhabricatorProjectInterface,
|
PhabricatorProjectInterface,
|
||||||
PhabricatorDestructibleInterface,
|
PhabricatorDestructibleInterface,
|
||||||
PhabricatorApplicationTransactionInterface,
|
PhabricatorApplicationTransactionInterface,
|
||||||
PhabricatorConduitResultInterface {
|
PhabricatorConduitResultInterface,
|
||||||
|
PhabricatorFulltextInterface {
|
||||||
|
|
||||||
const MARKUP_FIELD_DESCRIPTION = 'markup:description';
|
const MARKUP_FIELD_DESCRIPTION = 'markup:description';
|
||||||
|
|
||||||
@@ -370,4 +371,10 @@ final class PhameBlog extends PhameDAO
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* -( PhabricatorFulltextInterface )--------------------------------------- */
|
||||||
|
|
||||||
|
public function newFulltextEngine() {
|
||||||
|
return new PhameBlogFulltextEngine();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user