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
	 Chad Little
					Chad Little