$tpl->set( 'numberofwatchingusers', false );
if ( $out->isArticle() && $title->exists() ) {
if ( $this->isRevisionCurrent() ) {
- $page = WikiPage::factory( $title );
if ( !$wgDisableCounters ) {
- $viewcount = $page->getCount();
+ $viewcount = $title->getCount();
if ( $viewcount ) {
$tpl->set( 'viewcount', $this->msg( 'viewcount' )->numParams( $viewcount )->parse() );
}
}
if ( $wgMaxCredits != 0 ) {
- $tpl->set( 'credits', Action::factory( 'credits', $page, $this->getContext() )->getCredits( $wgMaxCredits, $wgShowCreditsIfMax ) );
+ $tpl->set( 'credits', Action::factory( 'credits', WikiPage::factory( $title ),
+ $this->getContext() )->getCredits( $wgMaxCredits, $wgShowCreditsIfMax ) );
} else {
$tpl->set( 'lastmod', $this->lastModified() );
}
var $mFragment; // /< Title fragment (i.e. the bit after the #)
var $mArticleID = -1; // /< Article ID, fetched from the link cache on demand
var $mLatestID = false; // /< ID of most recent revision
+ var $mCounter = -1; // /< Number of times this page has been viewed (-1 means "not loaded")
var $mRestrictions = array(); // /< Array of groups allowed to edit this article
var $mOldRestrictions = false;
var $mCascadeRestriction; ///< Cascade restrictions on this page to included templates and images?
$this->mRedirect = (bool)$row->page_is_redirect;
if ( isset( $row->page_latest ) )
$this->mLatestID = (int)$row->page_latest;
+ if ( isset( $row->page_counter ) )
+ $this->mCounter = (int)$row->page_counter;
} else { // page not found
$this->mArticleID = 0;
$this->mLength = 0;
$this->mRedirect = false;
$this->mLatestID = 0;
+ $this->mCounter = 0;
}
}
return $deleted;
}
+ /**
+ * Get the number of views of this page
+ *
+ * @return int The view count for the page
+ */
+ public function getCount() {
+ if ( $this->mCounter == -1 ) {
+ if ( $this->exists() ) {
+ $dbr = wfGetDB( DB_SLAVE );
+ $this->mCounter = $dbr->selectField( 'page',
+ 'page_counter',
+ array( 'page_id' => $this->getArticleID() ),
+ __METHOD__
+ );
+ } else {
+ $this->mCounter = 0;
+ }
+ }
+
+ return $this->mCounter;
+ }
+
/**
* Get the article ID for this Title from the link cache,
* adding it if necessary
$this->mRedirect = null;
$this->mLength = -1;
$this->mLatestID = false;
+ $this->mCounter = -1;
}
/**
/**@{{
* @protected
*/
- public $mCounter = -1; // !< Integer (-1 means "not loaded")
public $mDataLoaded = false; // !< Boolean
public $mIsRedirect = false; // !< Boolean
public $mLatest = false; // !< Integer (false means "not loaded")
public function clear() {
$this->mDataLoaded = false;
- $this->mCounter = -1; # Not loaded
$this->mRedirectTarget = null; # Title object if set
$this->mLastRevision = null; # Latest revision
$this->mTimestamp = '';
# Old-fashioned restrictions
$this->mTitle->loadRestrictions( $data->page_restrictions );
- $this->mCounter = intval( $data->page_counter );
$this->mTouched = wfTimestamp( TS_MW, $data->page_touched );
$this->mIsRedirect = intval( $data->page_is_redirect );
$this->mLatest = intval( $data->page_latest );
}
/**
+ * Get the number of views of this page
+ *
* @return int The view count for the page
*/
public function getCount() {
- if ( -1 == $this->mCounter ) {
- $id = $this->getId();
-
- if ( $id == 0 ) {
- $this->mCounter = 0;
- } else {
- $dbr = wfGetDB( DB_SLAVE );
- $this->mCounter = $dbr->selectField( 'page',
- 'page_counter',
- array( 'page_id' => $id ),
- __METHOD__
- );
- }
- }
-
- return $this->mCounter;
+ return $this->mTitle->getCount();
}
/**