Use wfWikiID() instead of $wgDBname in wfIncrStats()
[lhc/web/wiklou.git] / includes / api / ApiQueryRevisions.php
index 1d46b7a..33000e1 100644 (file)
@@ -498,14 +498,14 @@ class ApiQueryRevisions extends ApiQueryBase {
                        // Expand templates after getting section content because
                        // template-added sections don't count and Parser::preprocess()
                        // will have less input
-                       if ( $this->section !== false ) {
+                       if ( $content && $this->section !== false ) {
                                $content = $content->getSection( $this->section, false );
                                if ( !$content ) {
                                        $this->dieUsage( "There is no section {$this->section} in r" . $revision->getId(), 'nosuchsection' );
                                }
                        }
                }
-               if ( $this->fld_content && !$revision->isDeleted( Revision::DELETED_TEXT ) ) {
+               if ( $this->fld_content && $content && !$revision->isDeleted( Revision::DELETED_TEXT ) ) {
                        $text = null;
 
                        if ( $this->generateXML ) {
@@ -569,13 +569,20 @@ class ApiQueryRevisions extends ApiQueryBase {
                                ApiResult::setContent( $vals, $text );
                        }
                } elseif ( $this->fld_content ) {
-                       $vals['texthidden'] = '';
+                       if ( $revision->isDeleted( Revision::DELETED_TEXT ) ) {
+                               $vals['texthidden'] = '';
+                       } else {
+                               $vals['textmissing'] = '';
+                       }
                }
 
                if ( !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
                        global $wgAPIMaxUncachedDiffs;
                        static $n = 0; // Number of uncached diffs we've had
-                       if ( $n < $wgAPIMaxUncachedDiffs ) {
+
+                       if ( is_null( $content ) ) {
+                               $vals['textmissing'] = '';
+                       } elseif ( $n < $wgAPIMaxUncachedDiffs ) {
                                $vals['diff'] = array();
                                $context = new DerivativeContext( $this->getContext() );
                                $context->setTitle( $title );
@@ -788,7 +795,8 @@ class ApiQueryRevisions extends ApiQueryBase {
                                        ApiBase::PROP_TYPE => 'string',
                                        ApiBase::PROP_NULLABLE => true
                                ),
-                               'texthidden' => 'boolean'
+                               'texthidden' => 'boolean',
+                               'textmissing' => 'boolean',
                        ),
                        'contentmodel' => array(
                                'contentmodel' => 'string'