*/
public static function newFromID( $id ) {
$t = Title::newFromID( $id );
- # @todo FIXME: Doesn't inherit right
- return $t == null ? null : new self( $t );
- # return $t == null ? null : new static( $t ); // PHP 5.3
+ return $t == null ? null : new static( $t );
}
/**
return $article;
}
+ /**
+ * Get the page this view was redirected from
+ * @return Title|null
+ * @since 1.28
+ */
+ public function getRedirectedFrom() {
+ return $this->mRedirectedFrom;
+ }
+
/**
* Tell the page view functions that this view was redirected
* from another page on the wiki.
function fetchContent() {
// BC cruft!
- ContentHandler::deprecated( __METHOD__, '1.21' );
+ wfDeprecated( __METHOD__, '1.21' );
if ( $this->mContentLoaded && $this->mContent ) {
return $this->mContent;
* page of the given title.
*/
public function view() {
- global $wgUseFileCache, $wgDebugToolbar, $wgMaxRedirects;
+ global $wgUseFileCache, $wgDebugToolbar;
# Get variables from query string
# As side effect this will load the revision and update the title
# Try client and file cache
if ( !$wgDebugToolbar && $oldid === 0 && $this->mPage->checkTouched() ) {
- # Use the greatest of the page's timestamp or the timestamp of any
- # redirect in the chain (bug 67849)
- $timestamp = $this->mPage->getTouched();
- if ( isset( $this->mRedirectedFrom ) ) {
- $timestamp = max( $timestamp, $this->mRedirectedFrom->getTouched() );
-
- # If there can be more than one redirect in the chain, we have
- # to go through the whole chain too in case an intermediate
- # redirect was changed.
- if ( $wgMaxRedirects > 1 ) {
- $titles = Revision::newFromTitle( $this->mRedirectedFrom )
- ->getContent( Revision::FOR_THIS_USER, $user )
- ->getRedirectChain();
- $thisTitle = $this->getTitle();
- foreach ( $titles as $title ) {
- if ( Title::compare( $title, $thisTitle ) === 0 ) {
- break;
- }
- $timestamp = max( $timestamp, $title->getTouched() );
- }
- }
- }
-
# Try to stream the output from file cache
if ( $wgUseFileCache && $this->tryFileCache() ) {
wfDebug( __METHOD__ . ": done file cache\n" );
return false;
}
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_REPLICA );
$oldestRevisionTimestamp = $dbr->selectField(
'revision',
'MIN( rev_timestamp )',
if ( !$rc ) {
// Don't cache: This can be hit if the page gets accessed very fast after
- // its creation / latest upload or in case we have high slave lag. In case
+ // its creation / latest upload or in case we have high replica DB lag. In case
// the revision is too old, we will already return above.
return false;
}
// This, as a side-effect, also makes sure that the following query isn't being run for
// pages with a larger history, unless the user has the 'bigdelete' right
// (and is about to delete this page).
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_REPLICA );
$revisions = $edits = (int)$dbr->selectField(
'revision',
'COUNT(rev_page)',
/**
* Check if the page can be cached
+ * @param integer $mode One of the HTMLFileCache::MODE_* constants (since 1.28)
* @return bool
*/
- public function isFileCacheable() {
+ public function isFileCacheable( $mode = HTMLFileCache::MODE_NORMAL ) {
$cacheable = false;
- if ( HTMLFileCache::useFileCache( $this->getContext() ) ) {
+ if ( HTMLFileCache::useFileCache( $this->getContext(), $mode ) ) {
$cacheable = $this->mPage->getId()
&& !$this->mRedirectedFrom && !$this->getTitle()->isRedirect();
// Extension may have reason to disable file caching on some pages.
* Call to WikiPage function for backwards compatibility.
* @see WikiPage::doPurge
*/
- public function doPurge() {
- return $this->mPage->doPurge();
+ public function doPurge( $flags = WikiPage::PURGE_ALL ) {
+ return $this->mPage->doPurge( $flags );
+ }
+
+ /**
+ * Call to WikiPage function for backwards compatibility.
+ * @see WikiPage::getLastPurgeTimestamp
+ */
+ public function getLastPurgeTimestamp() {
+ return $this->mPage->getLastPurgeTimestamp();
}
/**
/**
* Call to WikiPage function for backwards compatibility.
* @see WikiPage::getText
+ * @deprecated since 1.21 use WikiPage::getContent() instead
*/
public function getText( $audience = Revision::FOR_PUBLIC, User $user = null ) {
- ContentHandler::deprecated( __METHOD__, '1.21' );
+ wfDeprecated( __METHOD__, '1.21' );
return $this->mPage->getText( $audience, $user );
}