diff options
Diffstat (limited to 'includes/LinkCache.php')
-rw-r--r-- | includes/LinkCache.php | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/includes/LinkCache.php b/includes/LinkCache.php index 8d035763..dce34592 100644 --- a/includes/LinkCache.php +++ b/includes/LinkCache.php @@ -48,8 +48,8 @@ class LinkCache { /** * Get a field of a title object from cache. * If this link is not good, it will return NULL. - * @param Title $title - * @param string $field ('length','redirect') + * @param $title Title + * @param $field String: ('length','redirect','revision') * @return mixed */ public function getGoodLinkFieldObj( $title, $field ) { @@ -67,17 +67,20 @@ class LinkCache { /** * Add a link for the title to the link cache - * @param int $id - * @param Title $title - * @param int $len - * @param int $redir + * + * @param $id Integer: page's ID + * @param $title Title object + * @param $len Integer: text's length + * @param $redir Integer: whether the page is a redirect + * @param $revision Integer: latest revision's ID */ - public function addGoodLinkObj( $id, $title, $len = -1, $redir = null ) { + public function addGoodLinkObj( $id, $title, $len = -1, $redir = null, $revision = false ) { $dbkey = $title->getPrefixedDbKey(); $this->mGoodLinks[$dbkey] = intval( $id ); $this->mGoodLinkFields[$dbkey] = array( 'length' => intval( $len ), - 'redirect' => intval( $redir ) ); + 'redirect' => intval( $redir ), + 'revision' => intval( $revision ) ); } public function addBadLinkObj( $title ) { @@ -109,15 +112,14 @@ class LinkCache { /** * Add a title to the link cache, return the page_id or zero if non-existent + * * @param $title String: title to add - * @param $len int, page size - * @param $redir bool, is redirect? - * @return integer + * @return Integer */ - public function addLink( $title, $len = -1, $redir = null ) { + public function addLink( $title ) { $nt = Title::newFromDBkey( $title ); if( $nt ) { - return $this->addLinkObj( $nt, $len, $redir ); + return $this->addLinkObj( $nt ); } else { return 0; } @@ -125,13 +127,12 @@ class LinkCache { /** * Add a title to the link cache, return the page_id or zero if non-existent - * @param $nt Title to add. - * @param $len int, page size - * @param $redir bool, is redirect? - * @return integer + * + * @param $nt Title object to add + * @return Integer */ - public function addLinkObj( &$nt, $len = -1, $redirect = null ) { - global $wgAntiLockFlags, $wgProfiler; + public function addLinkObj( $nt ) { + global $wgAntiLockFlags; wfProfileIn( __METHOD__ ); $key = $nt->getPrefixedDBkey(); @@ -164,7 +165,7 @@ class LinkCache { } $s = $db->selectRow( 'page', - array( 'page_id', 'page_len', 'page_is_redirect' ), + array( 'page_id', 'page_len', 'page_is_redirect', 'page_latest' ), array( 'page_namespace' => $nt->getNamespace(), 'page_title' => $nt->getDBkey() ), __METHOD__, $options ); # Set fields... @@ -172,15 +173,18 @@ class LinkCache { $id = intval( $s->page_id ); $len = intval( $s->page_len ); $redirect = intval( $s->page_is_redirect ); + $revision = intval( $s->page_latest ); } else { + $id = 0; $len = -1; $redirect = 0; + $revision = 0; } if ( $id == 0 ) { $this->addBadLinkObj( $nt ); } else { - $this->addGoodLinkObj( $id, $nt, $len, $redirect ); + $this->addGoodLinkObj( $id, $nt, $len, $redirect, $revision ); } wfProfileOut( __METHOD__ ); return $id; |