New hook, 'SearchResultInitFromTitle'
authoryaron <yaron57@gmail.com>
Wed, 5 Sep 2012 02:21:09 +0000 (06:21 +0400)
committeryaron <yaron57@gmail.com>
Wed, 5 Sep 2012 16:03:09 +0000 (20:03 +0400)
This hook lets you change the revision ID used for a page (a Title
object), when displaying that page in search results. It's useful for
the Approved Revs extension, so that pages whose approved revision is
not their latest can have their approved revision, not the latest one,
show up when doing a search text. It's also potentially useful for
other, similar extensions, like FlaggedRevs.

Change-Id: Ic4bad8dfaa83de131db9c8e7667d7f5767d8d5f5

docs/hooks.txt
includes/search/SearchEngine.php

index 7844aaf..3560856 100644 (file)
@@ -1703,6 +1703,11 @@ in the $searchEngine->namespaces array.
 $query : Original query.
 &$parsed : Resultant query with the prefixes stripped.
 
+'SearchResultInitFromTitle': Set the revision used when displaying a page in
+search results.
+$title : Current Title object being displayed in search results.
+&$id: Revision ID (default is false, for latest)
+
 'SearchableNamespaces': An option to modify which namespaces are searchable.
 &$arr : Array of namespaces ($nsId => $name) which will be used.
 
index b505592..2ccb6d3 100644 (file)
@@ -756,8 +756,10 @@ class SearchResult {
        protected function initFromTitle( $title ) {
                $this->mTitle = $title;
                if ( !is_null( $this->mTitle ) ) {
+                       $id = false;
+                       wfRunHooks( 'SearchResultInitFromTitle', array( $title, &$id ) );
                        $this->mRevision = Revision::newFromTitle(
-                               $this->mTitle, false, Revision::READ_NORMAL );
+                               $this->mTitle, $id, Revision::READ_NORMAL );
                        if ( $this->mTitle->getNamespace() === NS_FILE )
                                $this->mImage = wfFindFile( $this->mTitle );
                }