$this->mRequest = $request;
}
- $ctype = $this->mRequest->getText( 'ctype' );
- $smaxage = $this->mRequest->getInt( 'smaxage', $wgSquidMaxage );
+ $ctype = $this->mRequest->getVal( 'ctype' );
+ $smaxage = $this->mRequest->getIntOrNull( 'smaxage', $wgSquidMaxage );
$maxage = $this->mRequest->getInt( 'maxage', $wgSquidMaxage );
- $this->mExpandTemplates = $this->mRequest->getText( 'templates' ) === 'expand';
- $this->mOldId = $this->mRequest->getInt( 'oldid' );
+ $this->mExpandTemplates = $this->mRequest->getVal( 'templates' ) === 'expand';
+
+ $oldid = $this->mRequest->getInt( 'oldid' );
+ switch ( $wgRequest->getText( 'direction' ) ) {
+ case 'next':
+ # output next revision, or nothing if there isn't one
+ if ( $oldid ) {
+ $oldid = $this->mTitle->getNextRevisionId( $oldid );
+ }
+ $oldid = $oldid ? $oldid : -1;
+ break;
+ case 'prev':
+ # output previous revision, or nothing if there isn't one
+ if ( ! $oldid ) {
+ # get the current revision so we can get the penultimate one
+ $this->mArticle->getTouched();
+ $oldid = $this->mArticle->mLatest;
+ }
+ $prev = $this->mTitle->getPreviousRevisionId( $oldid );
+ $oldid = $prev ? $prev : -1 ;
+ break;
+ case 'cur':
+ $oldid = 0;
+ break;
+ }
+ $this->mOldId = $oldid;
+
# special case for 'generated' raw things: user css/js
- $gen = $this->mRequest->getText( 'gen' );
+ $gen = $this->mRequest->getVal( 'gen' );
if($gen == 'css') {
$this->mGen = $gen;
- if($smaxage == '') $smaxage = $wgSquidMaxage;
+ if( is_null( $smaxage ) ) $smaxage = $wgSquidMaxage;
if($ctype == '') $ctype = 'text/css';
- } else if ($gen == 'js') {
+ } elseif ($gen == 'js') {
$this->mGen = $gen;
- if($smaxage == '') $smaxage = $wgSquidMaxage;
+ if( is_null( $smaxage ) ) $smaxage = $wgSquidMaxage;
if($ctype == '') $ctype = $wgJsMimeType;
} else {
$this->mGen = false;
}
$this->mCharset = $wgInputEncoding;
- $this->mSmaxage = $smaxage;
+ $this->mSmaxage = intval( $smaxage );
$this->mMaxage = $maxage;
if ( $ctype == '' or ! in_array( $ctype, $allowedCTypes ) ) {
$this->mContentType = 'text/x-wiki';
}
function getArticleText() {
- global $wgParser;
-
if( $this->mTitle ) {
$text = '';